学生网上选课系统的设计与实现.docx
- 文档编号:8100280
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:34
- 大小:5.33MB
学生网上选课系统的设计与实现.docx
《学生网上选课系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《学生网上选课系统的设计与实现.docx(34页珍藏版)》请在冰豆网上搜索。
学生网上选课系统的设计与实现
基于ASP.net的学生网上选课系统的设计与实现
摘要:
随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。
针对学生选课这一环节,本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计,基本实现了学生的在线信息查询、选课功能以及教师对课程信息发布的管理等功能。
本程序由SQLServer数据库支持,通过使用ASP语言实现。
本文对学生网上选课系统进行了系统分析,详细讲述了系统功能,并对数据库设计等方面加以说明。
关键词:
选课;课程信息发布;MySQL;ASP
1绪论
1.1课题背景
随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。
如何把教务工作信息化,模块化,便捷化是现代大学发展的重点,所以迫切需要研制开发一种综合教务管理软件。
在数字校园理论逐步应用的过程中,各校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。
但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内各校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。
目前国家的教育体制也正处在不断改革、创新的阶段,教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。
随着无纸化办公的一步步实现,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。
让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。
网上选课与传统的选课方式相比更加节约资源,同时,随着学生选课自主权的增加,网上选课有效的避免了“走关系”等不良现象,使教学更加透明,为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。
1.2所用软件的基本知识
1.2.1MySQL
MySQL有关数据库方面的操作。
注意:
必须首先登录到mysql中,以下操作都是在mysql的提示符下进行的,而且每个命令以分号结束。
操作技巧:
如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
基本命令:
列出数据库 showdatabases;
选择数据库 use库名;
列出表格 showtables;
显示数据表的结构 describe表名;
建库 createdatabase库名;
建表 use库名;
createtable表名(字段设定列表);
删库和删表 dropdatabase库名;
droptable表名;
将表中记录清空 deletefrom表名;
显示表中的记录 select*from表名;
将文本数据转到数据库中 loaddatalocalinfile"文件名"intotable表名;
(注意:
文本数据应符合的格式:
字段数据之间用tab键隔开)
1.2.2ASP(ActiveServerPage)
ActiveServerPages(ASP)是服务器端脚本编写环境,是由Server端脚本、对象以及组件拓展过的标准主页使用它可以创建和运行动态、交互的Web页和基于Web的功能强大的应用程序.ASP采用的工作模型是典型的B/S过程:
(1)一个用户在浏览器的网址栏中添入ActiveServerPages文件名称,并回车触发这个ActiveServerPages的申请。
(2)浏览器将这个ActiveServerPages的求发送给IIS
(3)WebServer接收这个申请要求并由于其.asp的后缀意识到这是个ActiveServerPag的对象来实现服务器与客户端间的交互;可扩充服务器端功能.ASP与浏览器无关,ASP可以将运行结果一HTML的格式传送到客户端浏览器,因而可以使用于各种浏览器。
2系统分析
2.1可行性分析
可行性分析是指在当前组织内外的具体条件下,系统开发工作必须具备资源和条件,看其是否满足系统目标的要求。
在系统开发过程中进行可行性分析,对于保证资源的合理使用,避免浪费和一些不必要的失败,都是十分重要的。
(1)目标和方案的可行性:
如果采用人工操作的方式,不仅操作不方便,耗费人力、物力、财力,而且还容易出现错误。
所以当前迫切需要一个计算机化的管理信息系统。
有了这个系统,就能用较少的人力去管理完成较大的工作量,而各种管理的效率也会大大提高。
开发这个系统,能更好地满足学校要求,使学校的各种信息管理实现无纸化,高效化。
(2)技术方面的可行性:
本系统是用ASP结合MySql数据库来开发的一个信息管理软件。
ASP在数据库方面的特长显得尤为突出:
适用于多种数据库结构,通过访问各种数据库通用组件,结合客户端能够创建出完美漂亮且高效的各种软件系统。
(3)经济方面的可行性:
系统结构采用当前流行的B/S结构,对客户的配置要求低,客户端只需要有浏览器可以上网就可以登录服务器进行各种信息的管理。
而服务器端也不需要太高的配置,只要有可以运行asp程序的解释器,可以说整个系统是以最少的投入完成最好的功能,这就保证了系统的经济可行性。
(4)管理方面的可行性:
作为学校教务信息管理系统之一的选课系统,对它的管理也是很方便的,只需要先将系统配置运行起来,然后分配好系统的三个主要角色,就可以投入实际使用,作为系统使用者如管理员,教师和学生基本都是会知道如何进行电脑操作的。
根据以上几方面的可行性分析,可以得出结论:
学生网上选课系统的开发可行。
2.2功能分析
本系统的使用是面向大学院校,系统的使用对象包括系统管理员,教师和学生三种身份,系统管理员登录系统后可以管理学生的信息,管理教师的信息,管理每学期各个班级的必修课程信息,各个专业每个学期的选修课程信息,可以为这些课程进行排课;而教师用户登录系统后可以查询任意学生的信息,可以查询自己的授课信息,可以登记自己所教学生的成绩信息,可以修改自己的登录密码和个人信息;学生用户登录系统后可以查询任一学期自己的成绩信息,如果系统开放了选课功能,可以在指定的日期内登录系统后选修该学期的选修课,可以生成某个学期的课程上课信息表,可以修改自己的个人信息和登录密码。
本系统一共有4个主模块(身份验证|学生管理|教师管理|管理员管理),其中每个管理部分又包含了几个子模快,主要功能可概括为为浏览、查询、修改、添加。
2.3系统程序流程图
图3-1 系统程序流程图
3系统总体设计
3.1系统结构设计
3.1.1主要功能
本系统主要功能。
(1)身份验证:
通过登录才可进入选课系统,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。
在本系统中,只有三种身份:
学生、教师、管理员。
(2)信息浏览:
信息浏览包括已选课程浏览、已发布课程信息浏览。
已选课程浏览是为学生提供的查看自己已经选择的课程信息以及删除选择课程。
已发布课程信息浏览用于各代课老师查询自己已经发布的课程信息,主要用于浏览、核对。
(3)信息查询:
信息查询包括教师个人信息查询、课程查询、选课查询。
课程查询即查询该课程的相关介绍,包括课程内容、开课地点等内容。
教师个人信息是查看及修改对应的老师个人信息。
通过选课查询可以查看要选择的课程情况。
(4)信息修改:
信息修改包括密码的修改,学生信息的修改,教师信息的修改。
(5)信息添加:
信息添加包括学生选课、教师课程发布、管理员。
学生选课即通过选择选修的课程,添加到学生已选课程中,完成选课任务。
教师课程发布即教师添加新的课程信息,新信息发布后,学生可看到发布的信息。
管理员添加学生、教师、课程的基本信息。
3.1.2系统模块功能图
图3-2 系统功能图
3.2数据库设计
根据系统功能设计的要求以及功能模块的划分,可以列出以下主要数据项和数据库,主要分为6个表:
表Course、表Student、表Teacher、表Admin、表Selected、表Published
表3.1课程信息表(Course)
名称
字段名称
类别
主键
非空
课程编码
CId
int
Yes
Yes
教师编号
TId
varchar
No
No
课程名称
CName
varchar
No
No
课程类别
CType
varchar
No
No
供选学院
CCollege
varchar
No
No
供选专业
CProfessional
varchar
No
No
学分
CCredit
varchar
No
No
最多人数
CMax
varchar
No
No
上课地点
CRoom
varchar
No
No
课程介绍
CIntroduction
text
No
No
表3.2学生信息表(Student)
名称
字段名称
类别
主键
非空
学号
SId
varchar
Yes
Yes
姓名
SName
varchar
No
No
性别
SSex
char
No
No
所属学院
SCollege
varchar
No
No
所在专业
SProfessional
varchar
No
No
班级
SClass
varchar
No
No
密码
SKey
varchar
No
No
表3.3教师信息表(Teacher)
名称
字段名称
类别
主键
非空
身份证号
TId
varchar
Yes
Yes
姓名
TName
varchar
No
No
性别
TSex
char
No
No
所属学院
TCollege
varchar
No
No
所属专业
TProfessional
varchar
No
No
密码
TKey
varchar
No
No
表3.4管理员信息表(Admin)
名称
字段名称
类别
主键
非空
登录号
AId
varchar
Yes
Yes
密码
AKey
varchar
No
No
表3.5学生选课信息表(Selected)
名称
字段名称
类别
主键
非空
学号
SId
varchar
No
No
课程编码
CId
int
No
No
表3.6教师发布课程信息表(Published)
名称
字段名称
类别
主键
非空
教师证件号
TId
varchar
No
No
课程编码
CId
int
No
No
4系统详细设计
4.1身份验证
4.1.1登录功能
在登录页面对应的地方输入用户名(学号或身份证号或其它有效证件),密码;确认后登录。
在提交后,首先通过学号\身份证号或其它有效证件对数据库中的Student/Teacher/Admin表进行检索,若检索到的记录集为空,则说明学号/身份证号或其它有效证件错误,从而转到相应的出错处理程序,若记录集不为空,再进行密码判断,检查密码是否相等,不相等,作出错处理,相等则转入学生\老师\管理员登录成功的操作页面,并将姓名,密码,学号\身份证号或其它有效证件以session对象保存起来。
出错及系统提示如下:
(1)学号或身份证号或其它有效证件错误,系统这时会提醒“没有该学生!
”或“没有该老师!
”或“没有该系统管理员!
”;
(2)密码错误,系统提示“密码错误”。
4.1.2密码修改功能
密码的修改的前提是用户成功登录,选择密码修改后,按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。
转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Student/Teacher中的“密码”字段。
本系统密码采用MD5加密。
出错及系统提示:
新密码两次输入不同,系统提示“两次输入密码不相符合”。
4.2学生信息管理功能
4.2.1选课信息查询及选课
登录成功后,点击菜单“选修课程”,确定后进入浏览页面。
进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“教师”可查询教师信息。
要选择课程,点击“选修该课程”后,该课程就会出现在“已选课程”的表格中。
若已选过该课程,系统提示“您已经选了该课程!
”。
4.2.2必修课程信息查询
点击菜单“必修课程”,可看到学生所在专业所开设的必修课程。
其中查询数据库所需要的参数是学生的专业信息传递来的。
专业信息的获得是通过session(SId)对数据表Student查询得到的。
进入页面后,可以对页面上表格内带链接的信息进行查询,例如点击“课程名称”可查询课程信息。
4.2.3已选课程信息查询
点击菜单“已选课程”,在选课信息浏览页面中可以查询已经选的课程。
课程信息的查询是通过条件对数据表Course,表Selected,表Teacher等进行查询,将符合条件的信息列出。
想要退选课程,点击“取消该课程”按钮即可。
4.2.4学生个人信息
点击菜单“学生信息”,进入选课信息浏览页面查询即可。
学生信息的修改首先是通过条件对数据表Student进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。
4.2.5密码修改
点击菜单“学生信息”,进入选课信息浏览页面。
按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。
转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Student中的“SKey”字段。
出错及系统提示:
新密码两次输入不同,系统提示“两次输入密码不相符合”。
4.3教师课程信息管理功能
4.3.1课程信息发布
登录成功后,点击菜单“发布课程”,进入选课信息浏览页面。
如果想要单独查看某专业该教师可发布课程,在查询条件“课程专业”对应的文本框内输入查询信息(不输入信息时,表中显示该教师可发布课程的所有课程信息),点击“查询”按钮,即可查询。
若要发布课程,按要求输入完整信息(课程名称与课程专业不能改变),点击“开设课程”按钮。
若输入信息不完整,系统会提示“请输入……!
”;当发布的课程的记录已经存在时,系统提示“您已经发布了该课程!
”。
当输入的课程名称或课程专业有误,系统提示“发布失败!
”。
4.3.2对已发布信息查询
对数据表Course,表Published等进行检索,将其中符合条件的信息全部输出;查询需要的参数是由session对象获得的身份证号来确定的,由这二者确定出的即是该老师所发布过的课程信息。
想要取消发布课程,点击“取消发布课程”按钮即可。
4.3.3教师个人信息
点击菜单“教师信息”,进入选课信息浏览页面查询即可。
教师信息的修改首先是通过条件对数据表Teacher进行查询,符合条件后在文本框中输入完整信息后进行覆盖写入,就可以进行信息修改。
4.3.4密码修改
点击菜单“教师信息”,进入选课信息浏览页面。
按照页面上的提示,在相应的文本框中输入新密码(两次),确定后提交。
转入执行的asp文件后,判断两次输入的新密码是否相等,若不等,出错;否则,用新密码代替旧密码,更新数据库表Teacher中的“TKey”字段。
出错及系统提示:
新密码两次输入不同,系统提示“两次输入密码不相符合”。
4.4系统管理员信息管理功能
4.4.1管理教师功能
教师信息的添加、修改、删除、查询由管理员完成,教师无权使用。
(1)添加:
对数据表“Teacher”进行添加操作,生成新记录。
在管理员登录成功后,选择“教师信息”即进入教师信息添加页面,输入要添加的教师身份证号、教师姓名等教师信息后(初始密码admin),点击添加按钮即可。
出错及系统提示:
输入的教师的身份证号已存在,系统则提示“添加失败,请检查教师证件号是否已经存在!
”。
(2)修改:
在管理员登录成功后,选择“教师信息”即进入教师信息页面。
对数据库中的表“Teacher”查询,在网页相应的的地方显示所要的信息。
列出教师信息表后,在表中查询要修改的教师身份证号后,点击“修改”按钮,修改所要修改的教师的信息,点击“更新”按钮,若不修改,则点击“取消”按钮。
(3)删除:
在管理员登录成功后,选择“教师信息”即进入教师信息页面。
查询要删除的教师身份证号,点击“删除”按钮进行删除。
(4)查询:
在教师信息页面,输入要查询专业,点击“查询”按钮即可查询该专业的教师情况。
4.4.2管理学生功能
学生信息的添加、修改、删除、查询功能与管理教师信息基本相同,不再赘述。
4.4.3管理课程功能
课程信息的添加、修改、删除查询功能与管理教师信息基本相同,不再赘述。
5设计过程中的问题及解决方法
5.1数据库的连接
MySQL与SQLserver的连接方式大致相同,当MySQL与VS连接时,需要组件mysql-connector-net,通过查找及实践,完成了数据库的建立和连接。
如图5-1:
图5-1mysql数据库的连接
数据库连接操作类主要代码:
//数据库连接字符串
privateconstStringconnString=@"Server=localhost;Database=ChooseCourse;Uid=root;Pwd=sa";
//返回select得到的数据集
publicstaticDataSetExecuteSelectSql(stringsqlSelect)
{
MySqlConnectionconn=newMySqlConnection(connString);
MySqlDataAdaptersda=newMySqlDataAdapter(sqlSelect,conn);
DataSetds=newDataSet();
try
{sda.Fill(ds); }
catch(MySqlExceptione)
{thrownewException(e.Message);}
returnds;
}
//执行insert,update,delete等语句,返回改变的行数
publicstaticintExecuteSql(stringsql)
{
introws=-1;
MySqlConnectionconn=newMySqlConnection(connString);
MySqlCommandcmd=newMySqlCommand(sql,conn);
try
{
conn.Open();
rows=cmd.ExecuteNonQuery();
}
catch(MySqlExceptione)
{
thrownewException(e.Message);
}
finally
{
cmd.Dispose();
conn.Close();
}
returnrows;
}
5.2参数的传递
在模块的建立时,很多时候发现功能不能正常运行,在检查完程序语句的结构之后,发现并没有错误,于是在检查页面与页面交互时发现了问题,很多地方传递的参数并没有真正的执行,还有些地方没有进行参数的设置,才导致了程序的错误。
5.3公共数据
由于一开始没有使用session对象,致使很多功能无法实现,在学习了session的相关内容后才解决了一些具体的问题,包括网页间的参数的传递,公共信息的保存及提取等。
6系统的实现
6.1登录模块
6.1.1登录模块简介
登录模块在本系统中用于区别学生、教师、管理员。
出于保密性和方便管理等方面的考虑,不同身份在登录本系统后有不同权限。
例如:
学生登录系统后可查询及选课,教师登录系统后可发布课程。
管理员登录系统后可添加教师、学生及课程信息。
通过用户权限,选择正确身份,然后输入用户名(学号或身份证号或其它有效证件)、密码,登录信息提交后检验登录者的身份是否合法,合法,则转入对应的操作界面。
(初始密码均为admin,管理员登录用户名admin)
图6-1登录模块流程图
6.1.2登录模块关键代码
主要代码如下:
protectedvoidbtnLogin_Click(objectsender,EventArgse)
{//登录代码
inttype=Int32.Parse(ddlLogin.SelectedItem.Value);//用户类型选择分三种,用switch(type)来区分
stringuser=txtUser.Text.Trim();//用户证件号,文本框内容赋值给user
stringinputkey=txtKey.Text.Trim();//用户密码,文本框内容赋值给inputkey
stringkey="";
stringsql="";
DataSetds;
switch(type)
{//选择学生,即type值为1,执行case1;选择教师,即type值为2,执行case2;选择
系统管理员,即type值为3,执行case3
case1:
//验证学生身份代码
sql="selectSKeyfromStudentwhereSIdlike'"+user+"'";//从表Student中查询学号SId为输入证件号"user"的学生密码
ds=Db.ExecuteSelectSql(sql);//执行select类型的sql语句,返回select得到的数据集
if(ds!
=null&&ds.Tables.Count>0&&ds.Tables[0].Rows.Count>0&&!
ds.Tables[0].Rows[0].IsNull(0))//判断select得到的数据集是否为空,若为空,
执行else
{
key=ds.Tables[0].Rows[0][0].ToString();//将查询到的密码赋值给key
if(MyUtility.MD5(inputkey)==key)//输入密码经过MD5加密,并与key相比较
{//相等,便可成功登陆学生选课管理主页面
Session["Id"]=user;//内置对象Session记录用户登录学号
Session["Type"]=type;//内置对象Session记录用户登录类型
Response.Redirect("StudentMain.aspx");//进入学生选课管理主页面
}
else//密码错误
{Response.Redirect("Error.aspx?
code="+ErrorInfo.ERR_KEYERROR.ToString());}//系统提示:
密码错误
}
else//不存在该学生
{
Response.Redirect("Error.aspx?
code="+ErrorInfo.ERR_NOSTUDENT.ToString());
//系统提示:
不存在该学生
}
break;
case2:
//验证教师身份代码
…//与验证学生身份代码类似
br
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 网上 选课 系统 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)