学生网上选课系统的设计与实现_第1页
学生网上选课系统的设计与实现_第2页
学生网上选课系统的设计与实现_第3页
学生网上选课系统的设计与实现_第4页
学生网上选课系统的设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 ASP.net 的学生网上选课系统的设计与实现摘要: 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。针对学生选课这一 环节,本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计,基本实现了学生的在 线信息查询、 选课功能以及教师对课程信息发布的管理等功能。 本程序由 SQL Server 数据库支持, 通 过使用 ASP 语言实现。本文对学生网上选课系统进行了系统分析,详细讲述了系统功能,并对数据 库设计等方面加以说明。关键词 :选课;课程信息发布; MySQL ; ASP1 绪论1.1 课题背景随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管

2、理工作 日趋繁重、复杂。如何把教务工作信息化,模块化,便捷化是现代大学发展的重点,所以迫 切需要研制开发一种综合教务管理软件。 在数字校园理论逐步应用的过程中, 各校一方面不 断投资购建各种硬件、系统软件和网络, 另一方面也不断开发实施了各类教学、科研、 办公 管理等应用系统, 形成了一定规模的信息化建设体系。 但是,由于整体信息化程度相对落后, 经费短缺, 理论体系不健全等原因, 国内各校教务管理系统在机构设置、服务范围、服务质 量及人员要求上与国外高校相比都有一定的差距。目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的 教学模式, 结合国内多年的办学经验, 逐步探

3、索出适合中国特色的教学形式, 国家教育部面 向各级各类学校开展了全面学分制改革。 随着无纸化办公的一步步实现, 信息的自动处理以 及网络式的信息交互方式越来越被人们认可和应用。 让计算机来管理学生的信息是现在各个 高校都在积极进行的工作之一, 也是高校教学管理工作的重要内容之一。 网上选课与传统的 选课方式相比更加节约资源, 同时,随着学生选课自主权的增加, 网上选课有效的避免了 “走 关系” 等不良现象, 使教学更加透明, 为进一步实现完善的计算机教务管理系统和全校信息 系统打下良好的基础。1.2 所用软件的基本知识1.2.1 MySQLMySQL 有关数据库方面的操作。 注意:必须首先登录

4、到 mysql 中,以下操作都是在 mysql 的提示符下进行的, 而且每个命令以分号结束。操作技巧:如果你打命令时,回车后发现忘 记加分号, 你无须重打一遍命令, 只要打个分号回车就可以了。 也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK 。基本命令 : 列出数据库 show databases;选择数据库 use 库名 ; 列出表格 show tables;显示数据表的结构 describe 表名 ;建库 create database 库名 ;建表 use 库名 ;create table 表名( 字段设定列表 ); 删库和删表 drop database 库名

5、;drop table 表名 ;将表中记录清空 delete from 表名 ;显示表中的记录 select * from 表名 ;将文本数据转到数据库中load data local infile " 文件名 " into table 表名 ;(注意 : 文本数据应符合的格式:字段数据之间用tab 键隔开)1.2.2 ASP( Active Server Page )Active Server Pages (ASP) 是服务器端脚本编写环境, 是由 Server 端脚本、 对象以及组件 拓展过的标准主页使用它可以创建和运行动态、交互的 Web 页和基于 Web 的功能强大

6、的 应用程序 ASP 采用的工作模型是典型的 B/S 过程:(1) 一个用户在浏览器的网址栏中添入Active Server Pages文件名称,并回车触发这个Active Server Pages 的申请。(2) 浏览器将这个 Active Server Pages的求发送给IIS(3) Web Server接收这个申请要求并由于其. asp的后缀意识到这是个 Active Server Pag的对象来实现服务器与客户端间的交互;可扩充服务器端功能ASP 与浏览器无关, ASP可以将运行结果一 HTML 的格式传送到客户端浏览器,因而可以使用于各种浏览器。2 系统分析2.1 可行性分析可行性

7、分析是指在当前组织内外的具体条件下,系统开发工作必须具备资源和条件, 看其是否满足系统目标的要求。 在系统开发过程中进行可行性分析, 对于保证资源的合理使 用,避免浪费和一些不必要的失败,都是十分重要的。(1) 目标和方案的可行性:如果采用人工操作的方式,不仅操作不方便,耗费人力、物力、 财力,而且还容易出现错误。 所以当前迫切需要一个计算机化的管理信息系统。 有了 这个系统,就能用较少的人力去管理完成较大的工作量,而各种管理的效率也会大大提高。 开发这个系统,能更好地满足学校要求,使学校的各种信息管理实现无纸化,高效化。(2) 技术方面的可行性:本系统是用ASP结合MySql数据库来开发的一

8、个信息管理软件。 ASP 在数据库方面的特长显得尤为突出:适用于多种数据库结构,通过访问各种数 据库通用组件 , 结合客户端能够创建出完美漂亮且高效的各种软件系统。(3) 经济方面的可行性:系统结构采用当前流行的B/S结构,对客户的配置要求低,客户端只需要有浏览器可以上网就可以登录服务器进行各种信息的管理。 而服务器端也不需 要太高的配置,只要有可以运行asp程序的解释器,可以说整个系统是以最少的投入完成最 好的功能,这就保证了系统的经济可行性。(4) 管理方面的可行性: 作为学校教务信息管理系统之一的选课系统, 对它的管理也 是很方便的, 只需要先将系统配置运行起来, 然后分配好系统的三个主

9、要角色, 就可以投入 实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。根据以上几方面的可行性分析,可以得出结论:学生网上选课系统的开发可行。2.2 功能分析本系统的使用是面向大学院校, 系统的使用对象包括系统管理员, 教师和学生三种身份, 系统管理员登录系统后可以管理学生的信息, 管理教师的信息, 管理每学期各个班级的必修 课程信息, 各个专业每个学期的选修课程信息, 可以为这些课程进行排课; 而教师用户登录 系统后可以查询任意学生的信息, 可以查询自己的授课信息, 可以登记自己所教学生的成绩 信息 , 可以修改自己的登录密码和个人信息;学生用户登录系统后可以查询

10、任一学期自己的 成绩信息,如果系统开放了选课功能, 可以在指定的日期内登录系统后选修该学期的选修课, 可以生成某个学期的课程上课信息表, 可以修改自己的个人信息和登录密码。 本系统一共有 4个主模块(身份验证丨学生管理丨教师管理丨管理员管理),其中每个管理部分又包含了几个子模快,主要功能可概括为为浏览、查询、修改、添加。2.3 系统程序流程图图3- 1系统程序流程图3系统总体设计3.1系统结构设计3.1.1主要功能本系统主要功能。(1) 身份验证:通过登录才可进入选课系统,登录信息提交后检验登录者的身份是 否合法,合法,则转入对应的操作界面。在本系统中,只有三种身份:学生、 教师、管理员。(2

11、) 信息浏览:信息浏览包括已选课程浏览、已发布课程信息浏览。已选课程浏览核对。是为学生提供的查看自己已经选择的课程信息以及删除选择课程。已发布课程 信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览、(3) 信息查询:信息查询包括教师个人信息查询、课程查询、选课查询。课程查询即查询该课程的相关介绍,包括课程内容、开课地点等内容。教师个人信息是查看及修改对应的老师个人信息。通过选课查询可以查看要选择的课程情况。(4) 信息修改:信息修改包括密码的修改,学生信息的修改,教师信息的修改。(5) 信息添加:信息添加包括学生选课、教师课程发布、管理员。学生选课即通过选择选修的课程,添加到学生

12、已选课程中,完成选课任务。教师课程发布即教 师添加新的课程信息,新信息发布后,学生可看到发布的信息。管理员添加学 生、教师、课程的基本信息。3.1.2系统模块功能图图3-2系统功能图3.2数据库设计根据系统功能设计的要求以及功能模块的划分,可以列出以下主要数据项和数据库,主要分为 6 个表:表 Course、表 Student、表 Teacher、表 Admin、表 Selected、表 Published表3.1课程信息表(Course)名称字段名称类别主键非空课程编码CIdintYesYes教师编号TIdvarcharNoNo课程名称CNamevarcharNoNo课程类别CTypevar

13、charNoNo供选学院CCollegevarcharNoNo供选专业CProfessionalvarcharNoNo学分CCreditvarcharNoNo最多人数CMaxvarcharNoNo上课地点CRoomvarcharNoNo课程介绍introductiontextNoNo表3.2 学生信息表(Student)名称字段名称类别主键非空学号SIdvarcharYesYes姓名SNamevarcharNoNo性别SSexcharNoNo所属学院SCollegevarcharNoNo所在专业SProfessionalvarcharNoNo班级SClassvarcharNoNo密码SKeyv

14、archarNoNo表3.3 教师信息表(Teacher)名称字段名称类别主键非空身份证号TIdvarcharYesYes姓名TNamevarcharNoNo性别TSexcharNoNo所属学院TCollegevarcharNoNo所属专业TProfessionalvarcharNoNo密码TKeyvarcharNoNo表3.4 管理员信息表(Admin)名称字段名称类别主键非空登录号AIdvarcharYesYes密码AKeyvarcharNoNo表3.5学生选课信息表(Selected )名称字段名称类别主键非空学号SIdvarcharNoNo课程编码CIdintNoNo表3.6教师发布课

15、程信息表(Published )名称字段名称类别主键非空教师证件号TIdvarcharNoNo课程编码CIdintNoNo4系统详细设计4.1身份验证4.1.1登录功能在登录页面对应的地方输入用户名(学号或身份证号或其它有效证件),密码;确认后登录。在提交后,首先通过学号身份证号或其它有效证件对数据库中的 Student/Teacher/Admin表进行检索,若检索到的记录集为空,则说明学号/身份证号或其它有效证件错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,检查密码是否相等,不相等,作出错处理,相等则转入学生老师管理员登录成功的操作页面, 并将姓名,密码,学号身份证号或其

16、它有效证件以session对象保存起来。出错及系统提示如下:(1) 学号或身份证号或其它有效证件错误,系统这时会提醒“没有该学生!”或“没有该老师! ”或“没有该系统管理员! ”;(2) 密码错误,系统提示“密码错误”。4.1.2密码修改功能密码的修改的前提是用户成功登录,选择密码修改后,按照页面上的提示, 在相应的文本框中输入新密码(两次),确定后提交。转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Stude nt/Teacher中的“密码”字段。本系统密码采用MD5加密。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不

17、相符合”4.2 学生信息管理功能4.2.1 选课信息查询及选课登录成功后,点击菜单“选修课程” ,确定后进入浏览页面。进入页面后,可以对页面 上表格内带链接的信息进行查询, 例如点击“教师”可查询教师信息。 要选择课程, 点击“选 修该课程”后,该课程就会出现在“已选课程”的表格中。若已选过该课程,系统提示“您 已经选了该课程!” 。4.2.2 必修课程信息查询点击菜单“必修课程” ,可看到学生所在专业所开设的必修课程。其中查询数据库所需 要的参数是学生的专业信息传递来的。专业信息的获得是通过session(Sld)对数据表Student查询得到的。进入页面后,可以对页面上表格内带链接的信息进

18、行查询,例如点击“课程名称”可查询课程信息。4.2.3 已选课程信息查询点击菜单“已选课程” ,在选课信息浏览页面中可以查询已经选的课程。课程信息的查 询是通过条件对数据表Course,表Selected,表Teacher等进行查询,将符合条件的信息列出。想要退选课程,点击“取消该课程”按钮即可。4.2.4 学生个人信息点击菜单“学生信息” ,进入选课信息浏览页面查询即可。学生信息的修改首先是通过 条件对数据表Stude nt进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就 可以进行信息修改。4.2.5 密码修改点击菜单“学生信息” ,进入选课信息浏览页面。按照页面上的提示,在相应

19、的文本框 中输入新密码(两次) ,确定后提交。转入执行的 asp 文件后,判断两次输入的新密码是否 相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Student中的“ SKey”字 段。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合” 。4.3 教师课程信息管理功能4.3.1 课程信息发布登录成功后,点击菜单“发布课程” ,进入选课信息浏览页面。如果想要单独查看某专 业该教师可发布课程,在查询条件“课程专业”对应的文本框内输入查询信息(不输入信息 时,表中显示该教师可发布课程的所有课程信息) ,点击“查询”按钮,即可查询。若要发 布课程,按要求输入完整信息(课程

20、名称与课程专业不能改变) ,点击“开设课程”按钮。 若输入信息不完整,系统会提示“请输入 , !” ;当发布的课程的记录已经存在时,系统 提示“您已经发布了该课程! ”。当输入的课程名称或课程专业有误, 系统提示“发布失败! ”。4.3.2 对已发布信息查询对数据表Course,表Published等进行检索,将其中符合条件的信息全部输出;查询需 要的参数是由 session 对象获得的身份证号来确定的,由这二者确定出的即是该老师所发布 过的课程信息。想要取消发布课程,点击“取消发布课程”按钮即可。4.3.3 教师个人信息点击菜单“教师信息” ,进入选课信息浏览页面查询即可。教师信息的修改首先

21、是通过 条件对数据表Teacher进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就 可以进行信息修改。4.3.4 密码修改点击菜单“教师信息” ,进入选课信息浏览页面。按照页面上的提示,在相应的文本框 中输入新密码(两次) ,确定后提交。转入执行的 asp 文件后,判断两次输入的新密码是否 相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Teacher中的“TKey”字段。出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合”。4.4 系统管理员信息管理功能4.4.1 管理教师功能教师信息的添加、修改、删除、查询由管理员完成,教师无权使用。(1) 添加:对数

22、据表“ Teacher'进行添加操作,生成新记录。在管理员登录成功后, 选择“教师信息”即进入教师信息添加页面, 输入要添加的教师身份证号、 教师姓名等教师 信息后(初始密码 admin),点击添加按钮即可。出错及系统提示: 输入的教师的身份证号已存在,系统则提示“添加失败 , 请检查教师证件号是否已经存 在!'。(2) 修改:在管理员登录成功后,选择“教师信息”即进入教师信息页面。对数据库 中的表“ Teacher'查询,在网页相应的的地方显示所要的信息。列出教师信息表后,在表 中查询要修改的教师身份证号后, 点击“修改' 按钮, 修改所要修改的教师的信息,

23、点击“更 新'按钮,若不修改,则点击“取消'按钮。(3) 删除:在管理员登录成功后,选择“教师信息”即进入教师信息页面。查询要删 除的教师身份证号,点击“删除'按钮进行删除。(4) 查询:在教师信息页面,输入要查询专业,点击“查询”按钮即可查询该专业的 教师情况。4.4.2 管理学生功能学生信息的添加、修改、删除、查询功能与管理教师信息基本相同,不再赘述。4.4.3 管理课程功能课程信息的添加、修改、删除查询功能与管理教师信息基本相同,不再赘述。5 设计过程中的问题及解决方法5.1 数据库的连接MySQL 与 SQL server 的连接方式大致相同 , 当 MySQL

24、 与 VS 连接时,需要组件 mysql-connector-net, 通过查找及实践,完成了数据库的建立和连接。如图51:输入信息以连接到选定餡數据源,或单击“更改W蜂另-个数站逓和/或捉拱程序.数据濾:SET Fr«jnavcrk Providar for 呼 更改 ©. . _ms 钛localVs er血剖n亡:rootij测试连接成功,Save ftiy 卫鱼!确运J* 1 ft®®.L确定二IL取梢图5 - 1 mysql数据库的连接数据库连接操作类主要代码:conn Stri ng数据库连接字符串privateconstString=&qu

25、ot;Server=localhost;Database=ChooseCourse;Uid=root;Pwd=sa"返回select得到的数据集public static DataSetExecuteSelectSql( string sqlSelect )MySqlC onn ectio n conn = new MySqlC onn ecti on(conn Stri ng); MySqlDataAd aptersda = new MySqlDataAdapter(sqlSelect,co nn); DataSet ds = new DataSet();try sda.Fill(

26、ds); catch(MySqlExcepti on e) throw new Excepti on( e.Message);return ds;/执行insert, update, delete等语句,返回改变的行数 public static intExecuteSql( string sql )int rows = -1;MySqlC onn ectio n conn = new MySqlC onn ectio n(connStrin g);MySqlComma ndcmd = new MySqlComma nd(sql,c onn);tryconn.Open();rows = cmd

27、.ExecuteNonQuery();catch(MySqlException e)throw new Exception(e.Message);finallycmd.Dispose();conn.Close();return rows;5.2 参数的传递在模块的建立时, 很多时候发现功能不能正常运行, 在检查完程序语句的结构之后, 发 现并没有错误, 于是在检查页面与页面交互时发现了问题, 很多地方传递的参数并没有真正 的执行,还有些地方没有进行参数的设置,才导致了程序的错误。5.3 公共数据由于一开始没有使用 session对象,致使很多功能无法实现, 在学习了 session的相关内 容

28、后才解决了一些具体的问题,包括网页间的参数的传递,公共信息的保存及提取等。6 系统的实现6.1 登录模块6.1.1 登录模块简介登录模块在本系统中用于区别学生、教师、管理员。出于保密性和方便管理等方面的考虑,不同身份在登录本系统后有不同权限。例如:学生登录系统后可查询及选课,教师登录系统后可发布课程。管理员登录系统后可添加教师、学生及课程信息。通过用户权限,选择正确身份,然后输入用户名(学号或身份证号或其它有效证件)、密码,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。(初始密码均为 admin,管理员登录用户名admin)6.1.2登录模块关键代码主要代码如下:prot

29、ected void btn Logi n_Click(object sen der. Even tArgs e)/登录代码int type = Int32.Parse(ddlLogin.Selectedltem.Value);/ 用户类型选择分三种,用switch(type)来区分string user = txtUser.Text.Trim(); 用户证件号,文本框内容赋值给userstri ng in putkey = txtKey.Text.Trim();/ 用户密码,文本框内容赋值给in putkeystri ng key =""stri ng sql =&quo

30、t;"DataSet ds;switch (type)/选择学生,即type值为1,执行case 1;选择教师,即type值为2,执行case 2;选择系统管理员,即type值为3,执行case 3case 1:/验证学生身份代码sql = "select SKey from Student where Sid like '" + user + ""'/ 从表 Student中 查询学号Sid为输入证件号"user"的学生密码ds = Db.ExecuteSelectSql(sql);/ 执行 select类

31、型的 sql语句,返回 selec得到的 数据集if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0&& !ds.Tables0.Rows0.lsNull(0) 判断 select得到的数据集是否 为空,若为空,执行 elsekey = ds.Tables0.Rows00.ToString();/ 将查询到的密码赋值给 key if (MyUtility.MD5(inputkey) = key)/输入密码经过 MD5 加密,并与key相比较/ 相等,便可成

32、功登陆学生选课管理主页面Sessi on "Id" = user;/内置对象SessioraE录用户登录学号 Session"Type" = type; / 内置对象Sessior记录用户登录类型 Response.Redirect("StudentMain.aspx");/ 进入学生选课管理主页 面else/密码错误Response.Redirect("Error.aspx?code=" + Errorinfo.ERR_KEYERROR.ToString();/ 系统提示: 密码错 误else/不存在该学生Res

33、ponse.Redirect("Error.aspx?code=" + Errorinfo.ERR_NOSTUDENT.ToString();/系统提示:不存在该学生break;case 2:/验证教师身份代码与验证学生身份代码类似break;case 3:/验证管理员身份代码与验证学生身份代码类似break;6.1.3登录模块截图1. F令迈(9 v>f, I ML(*)v | . localhostw 擔索-M- 3S0安全浏览踣3儿g请豊录 if4(E)査制里)收藏 帐户x赛成二切换浏盟複式©igjff筍 电Q B 下载+報b -I 100% *cas

34、e 3:/验证管理员身份代码case 3:/验证管理员身份代码图6-2登录页面HBM7 lH* *!«V|iUtf 畔血 *WJI £«WWr疫舟覆学生!图6-3学生登录错误页面6.2学生选课模块6.2.1学生选课模块简介学生选课模块是系统主要模块之一,主要用于学生的网上选课,不同专业学生通过登录选课系统,选择本专业的课程,完成选课任务。菜单:学生信息|必修课程|选修课程已选课程,包括选课信息查询及选课、必修课程信息查询、已选课程信息查询、学生个人信息修改、 密码修改等。622学生选课模块关键代码学生个人信息:protected void Page_Load(ob

35、ject sen der. Even tArgs e)/显示学生信息代码if (!lsPostBack)/表示第一次访问页面时要执行的程序,有点像初始化页面, 当你点击了当前页面的一些按钮后,将不会再执行这些程序string sql = "select * from Student where Sld like '" + Session"ld".ToString() + "“'/从表Student查询学生的所有信息,条件是:学号 Sld为内置对象 Sessio n记录的用户登录学号DataSet ds = Db.ExecuteS

36、electSql(sql); / 执行 select 类型的 sql 语句,返回 select得到的数据集if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0)/ 判断select得到的数据集是否为空IbSId.Text = Session"ld".ToString(); 将Sessior记录的用户登录学号在 Label控件 IbSId上显示 出来txtSName.Text = ds.Tables0.Rows0"SName".ToS

37、trirg();/ 在 TextBox控件txtSName中显示select得到的学生姓名if (ds.Tables0.Rows0"SSex".ToStrirg() = "女")ddlSSex.SelectedIrdex = 0;elseddlSSex.SelectedIrdex = 1;在DropDownList控件ddlSSex中显示select得到的学生性别 txtSCollege.Text = ds.Tables0.Rows0"SCollege".ToStrirg();/ 在 TextBox控件txtSCollege中显示se

38、lect得到的学生学院 txtSProfessioral.Text =ds.Tables0.Rows0SProfessio naF.ToStri ng(); 在 TextBox 控件 txtSProfessional中显示selec得到的学生专业txtSClass.Text = ds.Tables0.Rows0"SClass".ToStrirg();/ 在 TextBox控件txtSClass中显示selec得到的学生班级密码修改:protected void btnUpdateKey_Click(object sender, EventArgs e)/密码修改代码if (

39、txtKey.Text.Trim() != txtKeyOk.Text.Trim()/ 判断输入的新密码与密码确认 输入的密码是否相等,若不相等,执行if语句;相等,不执行if语句Response.Write(MyUtility.Alert(" 两次输入密码不相符合 ");/系统提示:两 次输入密码不相符合return; /返回密码修改页面string sql = "update Student set SKey = '" + MyUtility.MD5(txtKey.Text.Trim() +"'where SId = 

40、9;" + Session"ld" + "”'/ 将表 Studen中学号 SId为内置 对象Session记录的用户登录学号的学生密码更新为修改的密码if (Db.ExecuteSql(sql) = 1) /判断执行update语句,改变的行数是否为1 (即表 Stude n中只有该登录学生的那一行密码信息改变),若为 1,则修改成功;否 则,则修改失败Response.Write(MyUtility.Alert(" 修改成功! ");elseResponse.Write(MyUtility.Alert(" 修改失

41、败! ");学生信息修改:protected void btnUpdateInfo_Click(object sender, EventArgs e)/学生信息修改代码string sql = "update Student set SName = '" + txtSName.Text.Trim() + "'" +",SSex = '" + ddlSSex.SelectedItem.Text + "'" +",SCollege = '" + tx

42、tSCollege.Text.Trim() + "'" +",SProfessional= '" + txtSProfessional.Text.Trim() + "'" +",SClass = '" + txtSClass.Text.Trim() + "'" +"where SId like '" + Session"ld".ToString() + "”'/将表 Studen中学号 SI

43、d为内置对象Session记录的用户登录学号的学生信息更新为修改后的信息if (Db.ExecuteSql(sql) = 1)/判断执行update语句,改变的行数是否为1 (即表 Stude n中只有该登录学生的那一行信息改变),若为 1,则修改成功;否则, 则修改失败Response.Write(MyUtility.Alert(" 修改成功! ");elseResponse.Write(MyUtility.Alert(" 修改失败! ");选课:protected void Page_Load(object sender, EventArgs e)/

44、 可选课程显示代码if ( ! IsPostBack )string sql = "select Course.CId,Course.CName,Course.CProfessional,Teacher.TName, Teacher.TId,Course.CCredit, Course.CMax, Course.CRoom from Teacher inner join Course on Teacher.TId = Course.TId inner join Published on Course.CId = Published.CId inner join Student on

45、Student.SProfessional = Course.CProfessional where CType like ' 选修 ' and Student.SId = '" + Session"Id" + "'"/ 从表 Teacher、表 Course 中查询要在 GridView 控件表格中显示的内容,要求课程类型 CType为选修,课程编号Cid为教师已发布课程表 Published中已存在课程编 号,教师编号TId为课程信息表Course中已存在的教师编号,课程专业Cprofessional为Ses

46、sion记录的用户登录学号的学生的专业(即 GridView控 件表格中显示的内容为教师已发布的本专业的选修课程)DataSet ds = Db.ExecuteSelectSql(sql); if (ds != null && ds.Tables.Count > 0)gvXxCourse.DataSource = ds.Tables0;gvXxCourse.DataBind();/ 将查询结果绑定到 GridView 控件 gvXxCourse (选修课程表)中for (int i = 0; i < ds.Tables0.Rows.Count; i+)/ 循环条件:

47、 查询所得的 表(选修课程表)的数据总行数sql = "select count(*) from Selected where CId = " + ds.Tables0.Rowsi"CId".ToString();/ 查询表 Selected 中的记录数,条件:课程编号CId等于GridView控件gvXxCourse中第i+1行的课程编 号DataSet ds1 = Db.ExecuteSelectSql(sql); if (ds1 != null && ds1.Tables.Count > 0 && ds1.Ta

48、bles0.Rows.Count > 0)gvXxCourse.Rowsi.Cells6.Text =ds1.Tables0.Rows00.ToString(); 将从表 Selected中返回的记录数(即已选该课程人数)在 gvXxCourse中第i+1行、第7列(即已选人数那一列)显示protected void gvXxCourse_RowCommand(object sender, GridViewCommandEventArgs e)/ 判断是否已选课代码if (e.CommandName = "Select") / 控件的 CommandName 属性 g

49、vXxCourse.DataKeyNames = new string "CId" ;/ 主键 int index = Convert.ToInt32(e.CommandArgument);string cid = gvXxCourse.DataKeysindex.Values0.ToString();/ 获取要选择 的课程的课程编号 cidstring sql = "select * from Selected where CId = " + cid + " and SId like '"+Session"ld&q

50、uot;.ToString() + ""/ 从表 Selected中查询登录学生的学 号及选择的课程的课程编号Db.ExecuteSelectSql(sql); DataSet ds = Db.ExecuteSelectSql(sql);bool flag = false; / 选修课程判断标志if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0) flag = true;if (flag)/ 已选修过Response.Write(MyUtility.

51、Alert(" 您已经选了该课程了! "); return;else/未选修过SelectCourse(lnt32.Parse(cid); / 选课private void SelectCourse(int cid)/选课代码int max=0,current=0;string sql = "select CMax from Course where CId = "+cid;/查询所选课程允许的最大人数DataSet ds = Db.ExecuteSelectSql(sql);if ( ds != null && ds.Tables.Co

52、unt > 0 && ds.Tables0.Rows.Count > 0 )max = Int32.Parse(ds.Tables0.Rows00.ToString();/ 最大人数赋值给 maxelsereturn;sql = "select count(*) from Selected where Cid = "+cid; / 查询表 Selected中所选择课程的课程编号的记录数(即已选该课程人数)DataSet ds1 = Db.ExecuteSelectSql(sql);值给 currentif ( ds1 != null &&

53、amp; ds1.Tables.Count > 0 && ds1.Tables0.Rows.Count > 0 )current = int32.Parse(ds1.Tables0.Rows00.ToString();/ 将记录数赋elsereturn;if ( current > max )/ 判断已选该课程人数是否超出允许的最大人数/ 超出Response.Write(MyUtility.Alert(" 人数已满! ");return;sql = "insert into Selected values('"

54、 + Session"id".ToString() + "'," + cid + ")" /符合条件,将登录学生学号及所选课程插入表Selected中if ( Db.ExecuteSql(sql) = 1 )/判断执行insert语句,改变的行数是否为1 (即表Selected中只有该登录学生的所选的课程的课程编号那一行信息改变),若为1,则选课成功;否则,则选课失败Response.Write(MyUtility.Alert(" 选课成功 ");sql = "select count(*) fr

55、om Selected where Cid = " + cid;DataSet ds2 = Db.ExecuteSelectSql(sql);if (ds2 != null && ds2.Tables.Count > 0 && ds2.Tables0.Rows.Count > 0)gvXxCourse.Rowsindex.Cells6.Text =ds2.Tables0.Rows00.ToString(); 更新已选人数elseResponse.Write(MyUtility.Alert(” 选课失败");6.2.3学生选课模块截

56、图图6-4学生信息修改页面图6-5选课页面图6-6课程信息查询页面6.3教师课程管理模块6.3.1 教师课程管理模块简介教师课程管理模块主要用于教师发布新的课程信息, 新信息发布后, 不同专业的学生可 看到发布的关于本专业的课程信息。 菜单: 教师信息 | 发布课程 | 已发课程, 包括课程信息发 布、对已发布信息查询、教师个人信息、密码修改等。6.3.2教师课程管理模块关键代码开设课程:protected void Page_Load(object sender, EventArgs e)/ 在此处放置用户代码以初始化页面 , 显示登录教师可以发布的课程if (!IsPostBack)str

57、ing sql = "select * from Course where TId like '" + Session"Id".ToString() + "'or Tld like '0”:从表Course中查询教师证件号 Tld为登录教师证件号或 为'0'( 管理员设置的教师证件号初始值,表示没有教师发布该课程) 的所有信息DataSet ds = Db.ExecuteSelectSql(sql);if (ds != null && ds.Tables.Count > 0)gvNe

58、wCourse.DataSource = ds.Tables0;gvNewCourse.DataBind();/课程类别分为选修和必修ddlCType.ltems.Clear(); ddlCType.ltems.Add(" 请选择 ");ddlCType.ltems.Add(" 必修 "); ddlCType.ltems.Add(" 选修 ");ddlCType.Selectedlndex = 0; /课程学分从 1-6共分为 12种ddlCCredit.ltems.Clear(); ddlCCredit.ltems.Add(" 请选择 ");ddlCCredit.ltems.Add("1"); ddlCCredit.ltems.Add("1.5");ddlCCredit.Items.Add("6");ddlCType.SelectedIndex = 0;/课程最大人数分为 4种: 50、100、 150、 200ddlCMax.Items.Clear();ddlCMax.Items.Add(" 请选择

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论