选课系统的设计与实现.docx
《选课系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《选课系统的设计与实现.docx(23页珍藏版)》请在冰豆网上搜索。
选课系统的设计与实现
项目说明书
项目名称:
学生自主选课系统
项目成员:
指导老师:
提交日期:
1.系统概述
本文档是针对开发的学生自主选课系统而编写的,文档中将会对软件系统的开发进行详细的分析,主要包括几大方面:
系统的功能实现、系统的运行环境、数据库的描述与设计的各个阶段等等。
1.1系统开发目标
本系统是学生自主选课系统。
随着各大高校的扩招及信息化社会的到来,学校为了合理规划人力资源的利用,保证学校信息的安全性,对信息化处理数据的要求也越来越高。
学生选课系统就是为了减少学校对信息管理的工作量,增强学生选课及成绩信息管理的安全性的双重要求下出现的。
通过本系统,学生可以在网上自主选择自己想要的课程,极大的减少学校在课程统计和学生选课记录上的工作量,而且也可以让学生自己安排选课时间,上课时间等,为学生和学校都提供了很大的方便。
本系统实现的主要功能是学生选课,成绩录入,成绩查询,课程信息管理,用户信息管理等。
采用的B/S架构,其作用范围为所有在校本科生和在校研究生和系统管理员。
项目背景
Internet的发展给我们的教育更加现代化,现在网上信息管理是我们现在教育中的一个热点。
现在,学生跟学校的之间的信息传播只在一指之间,时为我们创造方便快速的途径。
《学生自主选课系统》是高校教学管理系统的重要组成部分。
熟悉教学管理工作的全部过程,从教务工作的实际出发,解决工作中关键性的难点问题,并充分利用计算机网络功能,实现教学工作全过程的计算机管理,帮助具体管理人员从复杂烦琐工作中解放出来。
使得教学管理走向无纸化办公和规范化、现代化管理。
由于Internet具有影响范围广,能够方便快捷的传递信息,具有近乎实时的交互性,本身又是一个巨大无比的信息库等诸多优点。
学生自主选课系统,学生和学校的管理效率。
我们的目标是用学生自主选课系统实现最快对全校学习课程发布以及新闻发布,使学生最快知道,创造现代化的学习环境。
学生选课是大学的主要管理工作之一,涉及到诸多方面,随着教学体制的不断改革,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。
在这里,运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
1.2开发平台
VS2012,ASP开发框架,SQLServer2008。
1.3运行环境
操作系统:
Windows98/2000/XP/2003
数据库:
SQLServer2008
1.4系统的条件与限制
系统必须通过登录才能进行操作。
对于数据库的操作权限大多数都是在管理员中,只有当管理员安排课程后,学生才能选修该课程。
除学生自己外,没有人有权限去修改他人的选课记录。
参考资料
需求分析说明书
概要设计说明书
系统详细设计说明书
软件工程概论郑人杰马素霞殷人昆编著机械工业出版社
2.数据描述
2.1数据的关系
系统逻辑设计要点
管理员信息表:
(管理员ID,管理员姓名,管理员性别,管理员密码)
管理员操作日志:
(管理员日志ID,管理员ID,管理操作描述,管理操作时间)
学生信息表:
(学员学号,所属班级,学生密码,学生姓名,学生性别,当前可选学分,最多选课学分)
学生操作日志:
(学生日志ID,学生学号,操作描述,操作时间)
选课记录表:
(选课ID,课程ID,学生学号,课程成绩,选课时间)
学院专业信息表:
(班级,专业,学院)
公告表:
(公告ID,管理员ID,公告主题,公告内容,发布时间)
课程记录(已发布):
(课程ID,教师ID,科室ID,课程信息ID,班级,周数区间,周几,第几节,容量,剩余可选)
课程固定信息:
(课程信息ID,课程名称,所属类别,所属学院,所属专业,课程学分)
课室信息表:
(课室ID,所属教学楼,课室号,课室容量)
教师信息表:
(教师工号,教师姓名,所属学院,教师性别)
2.2关系属性的类型
一、管理员信息表
字段名
说明
数据类型
长度
允许为空
属性
AdminID
管理员ID
varchar
50
否
主键
AdminName
管理员姓名
varchar
50
否
AdminSex
管理员性别
smallint
50
否
AdminPassword
管理员密码
varchar
50
否
二、管理员操作日志表
字段名
说明
数据类型
长度
允许为空
属性
LogID
管理员日志ID
varchar
50
否
主键
AdminID
管理员ID
varchar
50
否
外键
LogContent
管理操作描述
varchar
50
否
LogDate
管理操作时间
datetime
否
三、学生信息表
字段名
说明
数据类型
长度
允许为空
属性
StudentID
学生学号
varchar
50
否
主键
ClassNo
所属班级
varchar
50
否
外键
StudentPassword
学生密码
varchar
50
否
StudentName
学生姓名
varchar
50
否
StudentSex
学生性别
smallint
RestCredit
当前可选学分
int
MaxCredit
最多选课学分
int
四、学生操作日志表
字段名
说明
数据类型
长度
允许为空
属性
LogID
学生日志ID
varchar
50
否
主键
StudentID
学生学号
varchar
50
否
外键
LogContent
操作描述
varchar
200
否
LogDate
操作时间
datetime
否
五、选课记录表
字段名
说明
数据类型
长度
允许为空
属性
SelectedID
选课ID
varchar
50
否
主键
CourseID
课程ID
varchar
50
否
外键
StudentID
学生学号
varchar
50
否
外键
CourseScore
课程成绩
decimal
否
SelectDate
选课时间
datetime
否
六、学院专业信息表
字段名
说明
数据类型
长度
允许为空
属性
ClassNo
班级
varchar
50
否
主键
Major
专业
varchar
50
否
College
学院
varchar
50
否
七、公告表
字段名
说明
数据类型
长度
允许为空
属性
NoticeID
公告ID
varchar
50
否
主键
AdminID
管理员ID
varchar
50
否
外键
Theme
公告主题
varchar
50
否
NoticeContent
公告内容
varchar
50
否
NoticeDate
发布时间
dateTime
否
八、课程记录表
字段名
说明
数据类型
长度
允许为空
属性
CourseID
课程ID
varchar
50
否
主键
TeacherID
教师ID
varchar
50
否
外键
ClassroomID
课室ID
varchar
50
否
外键
CourseInfoID
课程信息ID
varchar
50
否
外键
ClassNos
班级
Varchar
50
否
Week
周数区间
Varchar
50
否
Day
周几
Varchar
50
否
Period
第几节
Varchar
50
否
MaxNum
容量
int
否
RestNum
剩余可选
Int
否
九、课程固定信息表
字段名
说明
数据类型
长度
允许为空
属性
CourseInfoID
课程信息ID
varchar
50
否
主键
CourseName
课程名称
varchar
50
否
Category
所属类别
varchar
50
否
College
所属学院
varchar
50
否
Major
所属专业
varchar
50
否
CourseCredit
课程学分
int
否
十、课程信息表
字段名
说明
数据类型
长度
允许为空
属性
ClassroomID
课室ID
varchar
50
否
主键
Building
所属教学楼
varchar
50
否
ClassroomNo
课室号
varchar
50
否
MaxNum
课室容量
varchar
50
否
十一、教师信息表
字段名
说明
数据类型
长度
允许为空
属性
TeacherID
教师工号
varchar
50
否
主键
TeacherName
教师姓名
varchar
50
否
TeacherCollege
所属学院
varchar
50
否
TeacherSex
教师性别
smallint
否
2.3实体关系图(E-R图)
2.4数据流图
学生自主选课系统数据流图:
1.管理员公告管理和学生查看公告。
管理员公告管理:
管理员填写公告必要信息(内容,标题),保存时系统动从管理员信息表中获取当前发布公告的管理员姓名和当前时间,和公告信息一起保存到公告信息表内;另一方面,如果需要修改、删除某些公告,要把其更新的信息记录在公告信息表中。
学生查看公告:
从公告信息表中获取相应公告信息,并显示出来。
2.管理员课程管理和学生选课。
管理员课程管理:
管理员新增课程时需要从课室信息表,教室信息表和学院专业信息表内选择空闲课室,任课教师和课程所属学院与专业。
选择后填写课程其余信息,保存后分别将更新的信息分别保存到课室信息表(有课室被使用了),课程固定信息表和课程信息表。
另一方面,如果需要修改、删除某些课程,要把其更新的信息记录在课程固定信息表和课程信息表中。
学生选课:
系统从课程记录表中获取课程信息并显示出来后,学生选择要进修的课程,如果学生被允许选择该门课程,则把选课记录记录到选课记录表中;如果学生不满意自己本学期已选择的课程,可以选择退选,并将退选后的课程记录更新到选课记录表中。
3.课室管理。
第一,当学校新建教学楼或拆除教学楼,课室数量或课室容量发生变化时,管理员通过本系统可以新增新的课室或对现有的课室进行更新,并将更新信息更新到课室记录表中;第二,管理员可以查看在某一个时间段的课室使用状态(使用中或空闲)。
4.学生基本信息管理。
第一,管理员输入新的学生用户的基本信息,并保存到学生信息表中(管理员没有删除学生的权限);第二,如果需要查看当前学生人数,可以从学生信息表中获取当前使用学生用户的账号和姓名,并显示出来;第三,如果学生向学校书面提交重置登录密码的申请,那么管理员可以根据学生的姓名和账号来重置学生登录密码(初始化为123456).
5.学生服务。
本模块共分为四个功能:
课程查询,成绩查询,课程表,修改密码
课程查询:
学生输入任何一个课程名,系统在课程信息表中查找。
如果存在该课程,则显示该课程的开课记录,如果不存在,则提示查无此课程。
成绩查询:
系统根据当前登录用户的账号从选课记录表中获取用户的所有课程成绩,并显示出来。
课程表:
系统根据当前登录用户的账号从选课记录表中获取用户的所有选课记录,并显示出来。
修改密码:
用户输入旧密码和两遍新密码,如果旧密码和学生信息表中的密码相同并且两遍新密码相同,则允许修改密码,把新密码更新到学生信息表中。
课程查询
成绩查询
课程表
修改密码
3.功能描述
3.1功能的划分
本学生自主选课系统主要由九大方面的功能组成:
1.登录。
2.公告管理。
添加公告。
3.课程管理。
添加课程,查看课程,开发学生选课。
4.课室管理。
新增课室。
5.学生基本信息管理。
添加学生,重置学生密码,学生账号表。
6.查看公告。
7.学生服务。
课程查询,成绩查询,修改密码,课程表。
8.查看操作日志。
9.学生选课。
专业外选修,专业内选修,通识课,公识课,重修,退选。
3.2功能描述
1.登录。
不同的用户拥有不同的登录界面,用户输入账号密码登录系统,系统验证用户所提交的账号密码。
如果是正确的账号密码则提示登录成功,并跳转到主界面;反之,则提示账号或密码错误,什么都不做。
管理员登陆:
学生登录:
2.公告管理。
。
当管理员需要发布某些通知或更新说明时,管理员可以通过此功能面向所有学生发布公告,所有学生都可查看。
管理员需要填写公告的内容和标题。
3.课程管理。
课程管理是本系统的重中之重。
管理员发布课程需要分为两个阶段:
阶段一是新增课程,声明新增课程的名称,所属类别,所属学院,所属专业和课程学分,并不说明其余的课程信息。
处于此阶段的课程学生不可选择。
阶段二是发布课程,管理员阶段一所添加的课程新增其他信息如任课教师,地点,上课班别,上课时间和课程容量等,只有通过该阶段发布的课程才可以被学生选取(必修课程系统自动为学生选取)。
查看课程是列出当前已开课的所有课程,管理员也可以输入课程名称,课程编号和任课教师来查找课程信息。
开发学生选课是为了方便管理员对学生选课的管理,不能让学生随时选课或退课
4.课室管理。
当学校新建了新的教学楼并能投入使用的时候,管理员可以使用该功能新增新的教学楼。
当然如果现有的教学楼还有空闲课室没有使用到,也可以使用本功能在已有的教学楼上添加新的课室。
5.学生基本信息管理。
该功能实现对学生账号的管理,包括添加学生账号,重置学生密码和学生账号表(管理员没有权限删除学生也没有权限修改学生信息)。
添加学生即在学生选课系统上增加新的用户,而学生账号表是查看当前使用的学生的信息。
而当有学生忘记了登录密码而不能登录选课系统时,可以通过向学校提交书面申请,由学校相关部门审核通过后通知管理员重置学生密码,管理员需要输入需要重置密码的学生姓名和账号。
6.查看公告。
学生点击查看公告功能,界面中显示管理员已发布的所有公告,而当学生选择好需要查看的公告后,界面显示该公告的标题,内容,发布该公告的管理员姓名,发布时间。
7.学生服务。
课程查询:
学生输入需要查询的课程名称,点击查询按钮,系统显示当前所有关于查询课程的所有开课记录,支持模糊查询,如果没有相关课程的查询记录也会有相应的提示;
成绩查询:
以表格的形式显示出当前登录用户的所有已考核课程的所得成绩;修改密码:
用户输入当前登录密码,新密码和确认密码(也就是再输入一次新密码),如果旧密码不正确或新密码和确认密码不相同,都会修改密码失败并给出相应提示;课程表:
显示当前学期登录用户的所有已选择课程。
8.学生选课。
学生根据自己不同选课需要可以分别选择专业内选修,专业外选修,通识课和公识课类型的课程。
如果学生在之前的学期有过挂科记录的话,也可以通过本系统中的重修功能选择之前已经挂科的课程进行重修(系统会自动判定当前登录用户是否有挂科记录,如果有则显示)。
退选:
用户可以从当前已选修的课程中选择课程退选。
9.查看操作日志。
系统记录用户的操作并形成记录保存到学生操作日志表中。
4.性能描述
A.数据精确度。
本系统的数据类型主要包括:
整型、字符型、日期类型。
数据的录入一定要严格按照数据的格式,否则系统不予响应处理,并显示出错的信息。
B.数据的完整性。
凡是需要录入信息的表单(如添加用户,添加课程课室等),一定要求把所有数据都填写上,以免出现不满足数据的完整性。
C.时间特性。
对于系统所有提交、删除、编辑等操作,以及向数据库查询、更新、插入等操作,可以在1~2秒响应其相关的操作。
D.适应性。
本系统能适应多种操作系统。
5.安全需求
本系统运用了系统的安全机制,用户不能通过注册成为管理员,其用户账号必须由系统管理员进行分配,提供初始的账号和密码,用户以此登录系统后可以进行更改密码的操作(不允许修改账号)。
管理员不允许登录学生的选课系统,除了重置学生密码和添加学生外,管理员不允许修改学生的任何信息,从而保证了学生信息和选课信息的完整性。
学生也不能使用管理员的功能。
6.接口
6.2.1外部接口
以网页的形式使用IE浏览器或360浏览器使用程序,在出错显示上使用JavaScript对话框提示及ASP框架自带的错误提示系统。
6.2.2内部借口
内部接口方面,各模块之间采用控制器调用、函数调用、参数传递、返回值的方式进行信息传递。
6.2.3软件接口
程序使用ASP提供的对SQLServer的接口,进行对数据库的所有访问,数据库备份采用读出并保存到文件的方法,把数据库信息保存到磁盘文件上。
6.2.4硬件接口
在输入方面,对于键盘、鼠标的输入,使用表单、链接等进行传递。
7.系统存在的问题
由于时间和设计等问题系统计划中的某些功能无法实现,如课室的修改、删除,查看空闲课室和系统自动安排课程等,所以系统功能并不完整。
8.收获及心得体会
在本次的课程设计中,我们四个同学组成了系统开发团队,通过对本校学生选课系统的功能进行分析和根据自身在使用学校的选课系统时所遇到的一些问题进行讨论和总结,然后进行资料收集、需求分析、详细设计、系统测试等。
基本上可以熟悉地运用软件工程的设计思想和设计方法去进行此次的课程设计开发,如使用单元测试,集成测试等测试方法进行软件测试。
在开发过程中我们也遇到过许多问题,如:
刚开始分工不合理,导致软件开发进度缓慢;数据库设计不合理;需求分析不完全等。
但是在我们的努力下,都一一克服了。
通过此次的课程设计实验我们学习到了很多,懂得了更加系统的软件开发方法和如何才能更好的调配和控制开发进度。