摘要:随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能。本程序由SQL Server数据库支持,通过使用ASP语言实现。本文对学生网上选课系统进行了系统分析,详细讲述了系统功能,并对数据库设计等方面加以说明。
关键词:选课;课程信息发布;MySQL;ASP
1绪论
课题背景
随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。如何把教务工作信息化,模块化,便捷化是现代大学发展的重点,所以迫切需要研制开发一种综合教务管理软件。在数字校园理论逐步应用的过程中,各校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内各校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。
目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。随着无纸化办公的一步步实现,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明,为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。
所用软件的基本知识
有关数据库方面的操作。注意:必须首先登录到mysql中,以下操作都是在mysql的提示符下进行的,而且每个命令以分号结束。操作技巧:如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命
令分成几行来打,完后用分号作结束标志就OK。
基本命令:
列出数据库 show databases; 选择数据库 use 库名; 列出表格 show tables;
显示数据表的结构 describe 表名; 建库 create database 库名; 建表 use 库名;
create table 表名(字段设定列表); 删库和删表 drop database 库名;
drop table 表名;
将表中记录清空 delete from 表名; 显示表中的记录 select * from 表名;
将文本数据转到数据库中 load data local infile \"文件名\" into table 表名; (注意:文本数据应符合的格式:字段数据之间用tab键隔开)
Server Page)
Active Server Pages (ASP) 是服务器端脚本编写环境,是由Server端脚本、对象以及组件拓展过的标准主页使用它可以创建和运行动态、交互的Web 页和基于 Web 的功能强大的应用程序.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系统分析
可行性分析
可行性分析是指在当前组织内外的具体条件下,系统开发工作必须具备资源和条件,看其是否满足系统目标的要求。在系统开发过程中进行可行性分析,对于保证资源的合理使用,避免浪费和一些不必要的失败,都是十分重要的。
(1)目标和方案的可行性:如果采用人工操作的方式,不仅操作不方便,耗费人力、物力、财力,而且还容易出现错误。所以当前迫切需要一个计算机化的管理信息系统。有了这个系统,就能用较少的人力去管理完成较大的工作量,而各种管理的效率也会大大提高。开发这个系统,能更好地满足学校要求,使学校的各种信息管理实现无纸化,高效化。
(2)技术方面的可行性:本系统是用ASP结合MySql数据库来开发的一个信息管理软件。ASP在数据库方面的特长显得尤为突出:适用于多种数据库结构,通过访问各种数据库通用组件,结合客户端能够创建出完美漂亮且高效的各种软件系统。
(3)经济方面的可行性:系统结构采用当前流行的B/S结构,对客户的配置要求低,客户端只需要有浏览器可以上网就可以登录服务器进行各种信息的管理。而服务器端也不需要太高的配置,只要有可以运行asp程序的解释器,可以说整个系统是以最少的投入完成最好的功能,这就保证了系统的经济可行性。
(4)管理方面的可行性:作为学校教务信息管理系统之一的选课系统,对它的管理也是很方便的,只需要先将系统配置运行起来,然后分配好系统的三个主要角色,就可以投入实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。
根据以上几方面的可行性分析,可以得出结论:学生网上选课系统的开发可行。 功能分析
本系统的使用是面向大学院校,系统的使用对象包括系统管理员,教师和学生三种身份,系统管理员登录系统后可以管理学生的信息,管理教师的信息,管理每学期各个班级的必修课程信息,各个专业每个学期的选修课程信息,可以为这些课程进行排课;而教师用户登录系统后可以查询任意学生的信息,可以查询自己的授课信息,可以登记自己所教学生的成绩信息,可以修改自己的登录密码和个人信息;学生用户登录系统后可以查询任一学期自己的成绩信息,如果系统开放了选课功能,可以在指定的日期内登录系统后选修该学期的选修课,可以生成某个学期的课程上课信息表,可以修改自己的个人信息和登录密码。本系统一共有4个主模块(身份验证|学生管理|教师管理|管理员管理),其中每个管理部分又包含了几个子模快,主要功能可概括为为浏览、查询、修改、添加。
系统程序流程图
登录界面 用户权限 学生 教师 管理员 N 登录验证 Y 主界面 操作 结束 图3-1 系统程序流程图
3系统总体设计
系统结构设计 主要功能
本系统主要功能。
(1)身份验证:通过登录才可进入选课系统,登录信息提交后检验登录者的身份是
否合法,合法,则转入对应的操作界面。在本系统中,只有三种身份:学生、教师、管理员。
(2)信息浏览:信息浏览包括已选课程浏览、已发布课程信息浏览。已选课程浏览
是为学生提供的查看自己已经选择的课程信息以及删除选择课程。已发布课程信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览、核对。
(3)信息查询:信息查询包括教师个人信息查询、课程查询、选课查询。课程查询即
查询该课程的相关介绍,包括课程内容、开课地点等内容。教师个人信息是查看及修改对应的老师个人信息。通过选课查询可以查看要选择的课程情况。 (4)信息修改:信息修改包括密码的修改,学生信息的修改,教师信息的修改。 (5)信息添加:信息添加包括学生选课、教师课程发布、管理员。学生选课即通过
选择选修的课程,添加到学生已选课程中,完成选课任务。教师课程发布即教师添加新的课程信息,新信息发布后,学生可看到发布的信息。管理员添加学生、教师、课程的基本信息。
系统模块功能图
学生网上选课系统 登录功能 学生管理功能 教师管理功能 管理员管理功能 登录 学生信息 必修课程 选修课程 已选课程 教师信息 发布课程 已发课程 教师信息 学生信息 课程信息 密码修改 密码修改
图3-2 系统功能图
数据库设计
根据系统功能设计的要求以及功能模块的划分,可以列出以下主要数据项和数据库,主要分为6个表:表Course、表Student、表Teacher、表Admin、表Selected、表Published
表 课程信息表(Course)
名称 课程编码 教师编号 课程名称 课程类别 供选学院 供选专业 学分 最多人数 上课地点 课程介绍 字段名称 CId TId CName CType CCollege CProfessional CCredit CMax CRoom CIntroduction 类别 int varchar varchar varchar varchar varchar varchar varchar varchar text 主键 Yes No No No No No No No No No 非空 Yes No No No No No No No No No 表 学生信息表(Student)
名称 学号 姓名 性别 所属学院 所在专业 班级 密码 字段名称 SId SName SSex SCollege SProfessional SClass SKey 类别 varchar varchar char varchar varchar varchar varchar 主键 Yes No No No No No No 非空 Yes No No No No No No 表 教师信息表(Teacher)
名称 身份证号 姓名 性别 所属学院 所属专业 密码 字段名称 TId TName TSex TCollege TProfessional TKey 类别 varchar varchar char varchar varchar varchar 主键 Yes No No No No No 非空 Yes No No No No No 表 管理员信息表(Admin)
名称 登录号 密码 字段名称 AId AKey 类别 varchar varchar 主键 Yes No 非空 Yes No 表 学生选课信息表(Selected)
名称 学号 课程编码 字段名称 SId CId 类别 varchar int 主键 No No 非空 No No 表 教师发布课程信息表(Published)
名称 教师证件号 课程编码 字段名称 TId CId 类别 varchar int 主键 No No 非空 No No
4系统详细设计
身份验证 登录功能
在登录页面对应的地方输入用户名(学号或身份证号或其它有效证件),密码;确认后登录。在提交后,首先通过学号\身份证号或其它有效证件对数据库中的Student/Teacher/Admin表进行检索,若检索到的记录集为空,则说明学号/身份证号或其它有效证件错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,检查密码是否相等,不相等,作出错处理,相等则转入学生\老师\管理员登录成功的操作页面,并将姓名,密码,学号\身份证号或其它有效证件以session对象保存起来。
出错及系统提示如下:
(1)学号或身份证号或其它有效证件错误,系统这时会提醒“没有该学生!”或“没有该老师!”或“没有该系统管理员!”; (2)密码错误,系统提示“密码错误”。
密码修改功能
密码的修改的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Student/Teacher中的“密码”字段。本系统密码采用MD5加密。
出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合”。
学生信息管理功能
选课信息查询及选课
登录成功后,点击菜单“选修课程”,确定后进入浏览页面。进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“教师”可查询教师信息。要选择课程,点击“选修该课程”后,该课程就会出现在“已选课程”的表格中。若已选过该课程,系统提示“您已经选了该课程!”。
必修课程信息查询
点击菜单“必修课程”,可看到学生所在专业所开设的必修课程。其中查询数据库所需要的参数是学生的专业信息传递来的。专业信息的获得是通过session(SId)对数据表Student查询得到的。进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“课程名称”可查询课程信息。
已选课程信息查询
点击菜单“已选课程”,在选课信息浏览页面中可以查询已经选的课程。课程信息的查询是通过条件对数据表Course,表Selected,表Teacher等进行查询,将符合条件的信息列出。想要退选课程,点击“取消该课程”按钮即可。
学生个人信息
点击菜单“学生信息”,进入选课信息浏览页面查询即可。学生信息的修改首先是通过条件对数据表Student进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。 密码修改
点击菜单“学生信息”,进入选课信息浏览页面。按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Student中的“SKey”字
段。
出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合”。
教师课程信息管理功能
课程信息发布
登录成功后,点击菜单“发布课程”,进入选课信息浏览页面。如果想要单独查看某专业该教师可发布课程,在查询条件“课程专业”对应的文本框内输入查询信息(不输入信息时,表中显示该教师可发布课程的所有课程信息),点击“查询”按钮,即可查询。若要发布课程,按要求输入完整信息(课程名称与课程专业不能改变),点击“开设课程”按钮。若输入信息不完整,系统会提示“请输入……!”;当发布的课程的记录已经存在时,系统提示“您已经发布了该课程!”。当输入的课程名称或课程专业有误,系统提示“发布失败!”。
对已发布信息查询
对数据表Course,表Published等进行检索,将其中符合条件的信息全部输出;查询需要的参数是由session对象获得的身份证号来确定的,由这二者确定出的即是该老师所发布过的课程信息。想要取消发布课程,点击“取消发布课程”按钮即可。
教师个人信息
点击菜单“教师信息”,进入选课信息浏览页面查询即可。教师信息的修改首先是通过条件对数据表Teacher进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。 密码修改
点击菜单“教师信息”,进入选课信息浏览页面。按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Teacher中的“TKey”字段。
出错及系统提示:新密码两次输入不同,系统提示“两次输入密码不相符合”。
系统管理员信息管理功能
管理教师功能
教师信息的添加、修改、删除、查询由管理员完成,教师无权使用。
(1)添加:对数据表“Teacher”进行添加操作,生成新记录。在管理员登录成功后,选择“教师信息”即进入教师信息添加页面,输入要添加的教师身份证号、教师姓名等教师信息后(初始密码admin),点击添加按钮即可。
出错及系统提示:
输入的教师的身份证号已存在,系统则提示“添加失败,请检查教师证件号是否已经存在!”。
(2)修改:在管理员登录成功后,选择“教师信息”即进入教师信息页面。对数据库中的表“Teacher”查询,在网页相应的的地方显示所要的信息。列出教师信息表后,在表中查询要修改的教师身份证号后,点击“修改”按钮,修改所要修改的教师的信息,点击“更新”按钮,若不修改,则点击“取消”按钮。
(3)删除:在管理员登录成功后,选择“教师信息”即进入教师信息页面。查询要删除的教师身份证号,点击“删除”按钮进行删除。
(4)查询:在教师信息页面,输入要查询专业,点击“查询”按钮即可查询该专业的教师情况。
管理学生功能
学生信息的添加、修改、删除、查询功能与管理教师信息基本相同,不再赘述。
管理课程功能
课程信息的添加、修改、删除查询功能与管理教师信息基本相同,不再赘述。
5设计过程中的问题及解决方法
数据库的连接
MySQL与SQL server的连接方式大致相同,当MySQL与VS连接时,需要组件mysql-connector-net,通过查找及实践,完成了数据库的建立和连接。如图5-1:
图5-1 mysql数据库的连接
数据库连接操作类主要代码:
登录界面 选择用户类型 输入用户名+密码 N
登录验证 Y 操作主界面 > 0 && ![0].Rows[0].IsNull(0))ows[0][0].ToString();
oString() + \"'\";>
0)oString();ows[0][\"SName\"].ToString();ows[0][\"SSex\"].ToString() == \"女\") = 0; else = 1;
ows[0][\"SCollege\"].ToString();
ows[0][\"SProfessional\"].ToString();ows[0][\"SClass\"].ToString();oString() + \"'\";
i++)ows[i][\"CId\"].ToString();> 0)
{
[i].Cells[6].Text = [0].Rows[0][0].ToString();alues[0].ToString();oString() + \"'\";> 0) flag = true; if (flag)> 0 ) {
max = [0].Rows[0][0].ToString());> 0 ) {
current = [0].Rows[0][0].ToString());oString() + \"',\" + cid + \")\"; > 0) [index].Cells[6].Text = [0].Rows[0][0].ToString();
oString() + \"' or TId like '0'\";oString() + \"' and CName like '\" + + \"' and CProfessional like '\" + + \"'\";
> 0) { flag = true; oString() + \"'\" +
\ + \"'\" + \ + \"'\" + \ + \"'\" + \ + \"'\" + \ + \"'\" +
\" where(TId like '\" + Session[\"Id\"].ToString() + \"' or TId like '0')and
CName like '\" + + \"' and CProfessional like '\" + + \"'\";oString() + \"' and CName like '\" + + \"' and CProfessional like '\" + + \"'\";oString() + \"' or TId like '0') and CProfessional like '\" + + \"'\";
…oString() + \"' or TId like '0'\"; …
alues[0].ToString();ells[0].Controls[0])).
().Trim();
…
string SKey = ((TextBox)[].Cells[6].Controls[0])).
().Trim();
alues[0].ToString();//获取学号sid
string sql = \"delete from Student where SId = \" + sid;//从表Student删除学号为sid的学生信息 (sql);
DataBind();//数据绑定到GridView中 }
通过专业对表查询:
protected void btnAdminViewStudent_Click(object sender, EventArgs e)
{//管理员通过输入搜索条件“学生专业“来查询该专业的学生 DataBind();//数据绑定到GridView中 }
系统管理员管理模块截图
图6-10 添加学生页面
图6-11 添加课程页面
7结论
通过这次毕业论文的撰写,我对学生网上选课系统有了更明确的认识。网上选课系统的实现,使我对数据库软件MySQL、ASP等软件应用有了更深一步的理解。由于在此之前对于ASP.NET及数据库的使用知识掌握不太好,所以实现中遇到许多困难。在整个设计阶段感受最为深刻的是掌握学习的方式和解决问题的方法。首先是解决问题的方式,虽然面临的信息很多,但是如何从大量的信息中筛选出所需的信息,有用的信息,才是解决问题的关键。另外一个就是解决问题的方法,就像我在解决设计中的很多问题一样,通过看书或在网上寻找有关资料,虽然得到的信息大部分都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们从大量的信息中筛选出所需的信息,而通过实践才能最快的找到解决问题的方案。我深刻的体会到了这一点的重要性,也牢记主了这一点,在今后的学习和研究中我也会继续将这种方法延续下去。
因篇幅问题不能全部显示,请点此查看更多更全内容