网上选课系统.docx
《网上选课系统.docx》由会员分享,可在线阅读,更多相关《网上选课系统.docx(19页珍藏版)》请在冰豆网上搜索。
网上选课系统
目录
第1章绪论3
第2章需求分析3
2.1任务概述4
2.2用户特点4
2.3功能需求4
2.4界面需求5
2.5操作需求5
2.6输入输出需求5
第3章总体设计6
3.1设计思想6
3.2总体设计6
3.3系统层次结构图6
3.4接口设计6
3.5数据库设计7
3.6出错处理设计7
第4章数据库设计9
4.1E-R图9
4.2数据库关系模型设计9
4.3表的建立10
第5章详细设计12
5.1数据库系统实现12
5.2管理员模块实现13
第6章结论19
学习体会19
致谢19
参考文献19
第1章绪论
数据库是按照数据结构来组织、存储和管理数据的仓库。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
它是从60年代初发展起来的计算机技术,经过四十来年的发展,数据库技术己经趋于成熟。
数据库的诞生和发展给计算计信息管理带来了一场巨大的革命,随着应用的扩展与深入,数据库的数量和规模越来越大,就应用而言,也呈现出多样化的应用空间,例如学校的各种管理信息系统、电子出版物、电子商务、远程教育系统等的出现,给web数据库技术提出了更多、更高的要求。
还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于互联网的应用系统的开发,正蓬勃发展并且发挥着较大的作用。
网上选课系统是针对高等院校的在校学生和教师使用。
从学生角度来说,由于学校教学制度的改革,传统的教学模式已经不能适应大部分高等院校开始实行的学生自主选课模式的教学手段,如果仍然通过传统的纸上方式选课,一方面浪费大量的人力、物力资源,另一方面浪费时间以及在人为的统计过程中不可避免出现的差错等情况。
随着高校人数的增多,这种弊端会越来越多的暴露出来。
因此,利用网络,只要学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。
从教师的角度来说,同样是节省了大量的工作量,由于教师课程发布的工作较学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。
作为教师,也只要通过自己的电脑来操作即可,不用奔波于教务处和办公室之间。
课题研究背景
国外的教学科研软件与国内相比开发的早而且比较成熟。
早在七十年代末,美国就建成了NSFNET(国家科学基金网),其课题的申报及课题的进展情况汇报都在网上进行。
其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。
目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。
所有这些都表明,基于Internet的校园网的应用已深入到校园内的各个方面。
课题研究意义
高等院校要想切实提高教学管理工作,就必须在管理制度的改革方面有新的突破,实现信息化管理。
而网上选课系统从课程形式、内容的多样性和选择性上提供了可能,充分体现了学生的自主性。
它既倡导开设多种类型的课程,可打破原有的系别、班级限制,重新组合上课,以满足不同水平、不同兴趣学生的需要,又倡导“三个自主”的原则,即在教师指导下,学生具有自主选择课程内容,自主选择任课教师,自主选择上课时间的自由度,这就给我们学校课程教学提出了新的研究课题。
此外,一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,效率低、出错频率高。
另外,时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
第2章需求分析
2.1任务概述
选课系统用于管理学校的课程、学生、教授相关信息,除了基本的查询、添加功能外,还应有统计功能。
同时操作方面应尽量简单。
2.2用户特点
1)系统管理员:
该用户可以对课程信息、学生信息、教授信息进行维护,同时用户自己也能修改自己的密码与基本信息。
2)学生:
该用户可以自行选课、退课、查看可表、查看成绩、查看应缴费用,同时用户自己也能修改自己的密码与基本信息。
3)教授:
该用户可以选择要上的课程,取消课程,查看、等级学生成绩,同时用户自己也能修改自己的密码与基本信息。
2.3功能需求
功能需求图如下图3-1所示:
图2-1系统功能需求
用例图:
图2-2
各模块具体说明如下:
1)登陆页面:
用户输入合法的用户名和密码完成登陆,如果用户名或密码错误,应输出提示。
2)学生页面:
显示当前用户的名字,以及相关功能连接、按钮。
3)教授页面:
显示当前用户的名字,以及相关功能连接、按钮。
4)管理员页面:
显示当前用户的名字,以及相关功能连接、按钮。
2.4界面需求
界面简洁美观。
2.5操作需求
操作简洁,符合人们通常使用习惯。
2.6输入输出需求
要求输入数据合法,如果非法会跳出出错提示。
第3章总体设计
3.1设计思想
该选课系统用于对课程信息、教授信息、学生信息的维护与查看统计。
能够方便管理员对各种信息的维护,教授、学生对自己相关需求功能的使用,它将具有以下特点:
Ø运行速度快
Ø占用资源少
Ø界面简洁
Ø操作简单
3.2总体设计
1)以用户登陆后的界面为平台,将各模块功能放于该页面
2)采用SSH框架
3)灵活性要求:
视图与业务逻辑分开,低耦合。
采取接口方式编程便于系统的维护以及移植。
4)输入输出要求:
要求输入数据合法,如果非法会跳出出错提示。
3.3系统层次结构图
图3-1系统层次结构图
3.4接口设计
用户接口:
通过鼠标与键盘操作。
内部接口:
使用数据流提供的接口操作各个模块。
3.5数据库设计
概念结构设计是指将需求分析得到的用户需求抽象为信息结构。
描述概念模型的有力工具是E-R模型。
本系统E-R图如下图所示:
图3-2用户E-R图图3-3教授E-R图
图3-4学生E-R图图3-5课程E-R图
图3-6学生选课E-R图图3-7教授选课E-R图
图3-8管理员E-R图图3-9系统E-R图
3.6出错处理设计
以下列出了可能的错误情况及其对应的错误信息:
1)用户名或密码有误,提示:
您输入的用户名或密码有误,请重新输入。
2)管理员模块:
a)课程信息维护:
Ø如果增加一门已存在的课程,输出提示:
该课程已存在。
Ø如果删除一门不存在的课程,输出提示:
该课程不存在。
b)教授信息维护:
Ø如果增加一名已存在的教授,输出提示:
该教授已存在。
Ø如果删除一名不存在的教授,输出提示:
该教授不存在。
c)学生信息维护:
Ø如果增加一名已存在的学生,输出提示:
该学生已存在。
Ø如果删除一名不存在的学生,输出提示:
该学生不存在。
a)修改密码:
输入的原密码不正确,应提示错误
3)学生模块:
如果选择的课程冲突,输出提示:
课程已选择。
4)教授模块:
如果选择的课程冲突,输出提示:
课程已选择。
第四章数据库设计
4.1E-R图
图4-1
4.2数据库关系模型设计
E-R图向关系模型转换:
一个实体型转换为一个关系模式,实体的属性即为关系模式的属性,实体的标识符即为关系模式的键。
根据E-R图,本系统的关系模型为:
1)用户(用户ID,登陆ID,密码,权限);
2)教授(教授ID,姓名,性别,电话,传真,系别,地址,email)
3)学生(学生ID,姓名,性别,电话,系别,地址,email)
4)管理员(管理员ID,姓名,性别,电话,email)
5)课程(课程ID,课程名,课程性质,上课日期,节次,学分,系别)
6)教授选课(教授选课ID,教授ID,课程ID)
7)学生选课(学生选课ID,教授ID,课程ID,学生ID,成绩)
4.3表的建立
(1).Pupils表:
图4-2
(2).Gives表:
图4-3
(3).Scores表:
图4-4
(4).Subjects表:
图4-5
(5).Models表:
图4-6
(6).Managers表:
图4-7
(7).Departments表:
图4-8
(8).Teachers表:
图4-9
第五章详细设计
5.1数据库系统实现
(1)学生表(Pupils)
CreatetablePupils
(PNOchar(9)primarykey,
PNAMEchar(8)notnull,
PWvarchar(20)check(len(PW)>=6),
PSEXchar
(2)check(PSEXin('男','女')),
PZYvarchar(50),
DNOchar
(2),
foreignkey(DNO)referencesDepartments(DNO)
);
(2)教师表(Teachers)
CreatetableTeachers
(TNOchar(9)primarykey,
TNAMEchar(8)notnull,
TZCvarchar(20),
PWvarchar(20)check(len(PW)>=6),
DNOchar
(2),
foreignkey(DNO)referencesDepartments(DNO)
);
(3)系科表(Departments)
CreatetableDepartments
(DNOchar
(2)primarykey,
DNAMEvarchar(50)notnull);
(4)课程表(Subjects)注意:
保证SNO自动编号;
CreatetableSubjects
(SNOsmallintprimarykey,
SNAMEvarchar(50)notnull,
SCREDITsmallint,
SLIMITSsmallintcheck(SLIMITS>0),
SBRIEFvarchar(200),
TNOchar(9),
VERIFYFLAGtinyintdefault'0'
);
(5)成绩表(Scores)
CreatetableScores
(PNOchar(9),
SNOsmallint,
GRADEint,
foreignkey(PNO)referencesPupils(PNO),
foreignkey(SNO)referencesSubjects(SNO)
);
(6)授课表(Gives)注意:
GID要自动编号
CreatetableGives
(GIDintprimarykey,
TNOchar(9),
SNOsmallint,
TERMvarchar(20),
CLASSTIMEvarchar(30),
CLASSROOMvarchar(30),
foreignkey(TNO)referencesTeachers(TNO),
foreignkey(SNO)referencesSubjects(SNO)
);
(7)管理员表(Managers)
CreatetableManagers
(MNOchar(9)primarykey,
MNAMEchar(8)notnull,
PWvarchar(20)check(len(PW)>=6)
);
(8)功能表(Models)注意:
保证FNO自动编号;
CreatetableModels
(FNOsmallintprimarykey,
FSTATUSBITcheck(FSTATUS=0orFSTATUS=1),
FINFOvarchar(50)
);
5.2管理员模块实现
图5-1
图5-2
<%Stringsql="select*frommodels";
ResultSetrs=exe_db.exeSqlQuery(sql);
%>
系统功能状态列表
功能标识 | 功能说明
当前状态
设置
<%while(rs.next()){%>
图5-3
<%
//获取保存在session中的用户UserID值,根据这个值判断用户是否登录
Stringn_ID=(String)session.getAttribute("UserId");
if(n_ID!
=null)
{
StringstrSql="select*fromManagerswhereMNO='"+n_ID+"'";
ResultSetrs=exe_db.exeSqlQuery(strSql);
if(rs.next())
{
try
{
Stringn_MNAME=request.getParameter("MNAME");
Stringn_PW=request.getParameter("PW");
%><%Stringpaw=(String)session.getAttribute("paw");
if(!
n_PW.equals(paw)){n_PW=MD5.md5(n_PW);}
%><%
//将用户资料更新到数据库中
strSql="updateManagerssetMNAME='"+n_MNAME+"',PW='"+n_PW+"'"
+"whereMNO="+n_ID;
exe_db.exeSql(strSql);
out.println("个人信息修改成功!
");
out.println("