综合教务管理系统
一、需求分析
1. 系统目标:
实现一个计算机综合教务管理系统,完成班级信息管理,学生信息管理,课程信息管理和学生选课管理等功能。
2. 系统功能需求:
本系统的用户分为超级用户和普通用户两类,超级用户负责系统维护,包括对班级信息,学生个人信息,课程信息的录入,修改,查询,删除等。普通用户即选课学生则只具有为自己选课的权限。
(1) 功能划分:
用户通过身份验证后进入主界面。主界面为超级用户提供6项选择:学生信息管理,课程信息管理,班级信息管理,选课,口令修改和退出系统。普通用户有4项功能选择:选课,课程查询,口令修改和退出系统。
(2) 功能描述:
● 班级信息管理:
给出所有班级的列表,超级用户可以实现增加,修改,查找,删除班级信息,维护指定班级所有学生信息,为指定班级设定必修课和选课学分限制等功能。在维护指定班级学生信息功能中,超级用户可以实现增加,修改,删除学生信息,察看某一学生选课情况,为学生更改口令等功能。在指定班级必修课功能中,以课表形式列出班级所有必修课的课程信息,实现为一个班级增加或删除必修课的功能。
● 学生信息管理:
给出所有学生的列表,超级用户可以增加,修改,删除,查找学生信息,察看某个学生选课情况,为学生修改口令等功能。本项功能与班级信息维护功能中的维护指定班级学生信息功能相似,不同的是本项功能中将列出所有班级的所有学生信息。
● 课程信息管理:
加入,修改,删除课程纪录,察看某门课的选课情况,查询指定的课程信息。
● 选课:
以课表的形式列出学生选课情况,学生可以为自己选修或者退选课程,而超级用户可以为任何学生选修或者退选课程。每个班级都有选课的学分限制,不允许学生选择课程的总学分超过所在班级的选课最大学分限制,而当退出选课功能时,如果选取课程总学分未达到所在班级选课最小学分限制则给出警告信息(因为学生可以多次进入选课界面选课)。
● 修改口令:
用户需要输入原口令,并且两次输入新口令一致后,系统即用新口令代替旧口令。
● 退出系统:
当用户退出系统时,如果选取的课程总学分未达到所在班级选课最小学分限制,则给出警告信息。
3. 开发工具:
该综合教务系统的数据库采用了Microsoft的SQL Server2000企业版,前台应用程序采用了ASP编写,提供了Web界面方便学生从网上使用。由于采用了ADO数据库接口,因此很容易修改为支持ORACLE,SYBASE,DB2等数据库,该系统的结构为B/S结构,即浏览器/服务器结构。
4. 系统的数据流图:
了解用户的应用要求,使用信息流程图分析应用系统中的信息流。综合教务系统的简单信息流如下。
(1)系统的上下文数据流图如图5-38
图5-38 综合教务系统的上下文数据流图
(2) 学生选课的数据流图如图5-39
图5-39 学生选课的数据流图
5. 数据字典
数据项名:学生编号
说明: 标识每个学生身份
类型: CHAR
长度: 7
别名: 学号
取值范围:970000-979999
数据流名:选课申请
说明: 由学生的个人信息,欲选课程信息组成选课申请
来自过程:无
流至过程:身份验证
数据结构:学生个人信息
欲选课信息
数据结构:学生个人信息
说明: 说明了学生的个人情况。
组成: 帐号
密码
数据存储:上课时间信息
说明: 说明了每门课的上课时间,一门课可以有多个上课时间,同一时间可以有多门
课程在上课。
输出数据流:课程上课时间
数据描述:课程编号
上课时间
数量: 每学期20-30个
存取方式:随机存取
处理过程:身份验证
说明: 对学生输入的帐号,密码进行验证,确定正确,得到相应的学生编号。
输入: 学生帐号
密码
选课的课程编号
输出: 学生编号
选课的课程编号
二、数据库的概念设计
1.系统的概念模型:
选课系统DEMO概念模型的E/R图
上图是选课系统DEMO的概念模型的E/R图,该系统涉及的实体集有:
班级实体集:具有属性班级名称和选课学分限制。
学生实体集:具有属性学号、姓名、性别和生日。
课程实体集:具有属性课程号、课程名、学分、授课教师、接纳人数。
上课时间实体集:具有属性时间。 一个班级可以有多个学生,一个学生只能属于一个班级,所以班级和学生之间的联系为1:M的联系。
一个班级可以有多门必修课程,一门课程是多个班级的必修课,所以班级和课程之间的必修联系是M:N的联系。
一个学生课以选修多门课程,一门课程可以被多个学生选修,所以学生和课程之间的联系是M:N的联系。
一门课程可以有多个上课时间,同一时间内可以有多门课程在上课,所以课程和上课时间的联系是M:N的联系。
三、将概念模型转换成关系模型
1. 将E-R模型转换为关系模式
(1) 班级实体集可以转换为关系:
CLASS(CLASSNAME,MAXCREDIT,MINCREDIT)
CLASSNAME表示班级名称,MAXCREDIT表示最大学分限制,MINCREDIT表示最小学分限制。
(2) 学生实体集可以转换为关系
STUDENT(STUDENTID , NAME , SEX , BIRTHDAY)
STUDENTID表示学号,NAME表示姓名,SEX表示性别,BIRTHDAY表示生日
(3) 课程实体可以转换为关系
COURSE(COURSEID, COURSENAME, CREDIT, TEACHER, ACCEPTION)
COURSEID表示课程号,COURSENAM表示课程名,CREDIT表示学分,TEACHER表示授课教师,ACCEPTION表示接纳人数。
(4) 班级和学生之间的联系是1:M的联系,所以没有必要为其建立一个关系,可以通过扩展学生关系来表示:
STUDENT(STUDENTID , NAME , SEX , BIRTHDAY , CLASSNAME)
CLASSNAME表示学生所在班级名。
(5) 班级和课程之间的必修联系可以转换为关系:
CLASSCOURSE(CLASSNAME , COURSEID)
CLASSNAME表示班级名称,COURSEID表示课程号。
(6) 学生和课程之间的选修联系可以转化为关系:
STUDENTCOUSE(STUDENTID, COURSEID)
STUDENTID表示学号,COURSEID表示课程号。
(7) 课程和上课之间的联系可以转化为关系:
COURSETIME(COURSEID , TIME)
COURSEID表示课程号,TIME表示上课时间。
2. 数据库表结构设计:
把关系模型转化为表结构:
班级信息表(class):包含所有的班级信息,定义如下:
学生信息表(student):包含所有学生的个人信息,定义如下:
课程信息表(course):包含所有课程信息,定义如下:
班级必修课表(classcourse):包含所有班级的必修课信息,定义如下:
学生选课表(studentcourse):包含所有学生的选课信息,定义如下:
上课时间表(coursetime):包含所有课程的上课时间,定义如下:
COURSETIME是一个整数,整除10的商表示星期几上课,余数表示当天的第几节课。
用户账号表(user):包含所有用户的账号和口令信息,定义如下:
USERAUTH用0,1表示用户权限,0表示管理员,1表示普通用户。其中普通用户的STUDENTID为学生的学号。
3.实现数据完整性:
通过各种约束,缺省,规则和触发器实现数据的完整性。由于教务系统的重要性,和各个数据之间的复杂相关性,保证数据的完整性显得更为重要。不能让用户随意的删除,修改数据。
(1) CHECK约束保证最大限选学分要大于最小限选学分。
(2) 各种外码约束保证数据的完整性,不能随意删除。外码的设置在上面数据库建表时已经提到。
(3) 主码约束保证实体的完整性,主码的设置在上面数据库建表时也已经提到了。
(4) 创建规则保证学生的年龄在18岁到35岁之间(出生日期在1965-1-1到1982-12-31日之间),不会输入错误数据。
(5) 创建触发器,保证在添加学生信息的时候,自动将该班级的必修课添加到选课表中。
以上只是该教务系统中实现数据完整的部分方法。实际上要考虑的还有很多方面,实现手法也是多种多样。在此留给学生自己思考。
本文来源:https://www.2haoxitong.net/k/doc/2d861c82b9d528ea81c779d1.html
文档为doc格式