学生选修课管理系统.docx
《学生选修课管理系统.docx》由会员分享,可在线阅读,更多相关《学生选修课管理系统.docx(35页珍藏版)》请在冰豆网上搜索。
学生选修课管理系统
数据库系统设计课程设计任务书
设计题目
选修课管理系统
指导教师
班级
学生
课程设计功能要求
本系统主要实现三大功能:
一、学生选课
1)学生登陆
2)进行初选,复选,补退选
3)查询选课情况,上课时间、地点与上课老师
4)修改登陆密码,添加或删除选课的相关信息
5)查询成绩
二、教师查询
1)教师登陆
2)查询课程信息(上课时间、地点以及课程是否被取消,查询选择自己课程的学生清单)
3)修改登陆密码
4)登记学生成绩
三、管理员对选修课管理
1)设置学生可选修的课程范围以及选课的约束条件
2)添加课程,修改密码、浏览选课情况、关闭选课人数不足15的课程
3)对选修课进行排课
4)登记选修课的成绩
课程设计步骤与方法
1)需求分析:
为提出的问题找出解决的办法和思路。
2)概念分析与设计:
利用概念模型E-R图实现信息基本逻辑。
3)逻辑分析与设计:
根据概念分析进一步抽象数据库关系逻辑模型。
4)物理分析与设计:
抽象出计算机数据物理模型。
5)功能实现:
根据具体课程设计功能要求实现具体数据的功能。
6)整体数据库系统实现。
7)整理设计课程设计说明书并上交审查。
课程设计说明书要求:
课程设计说明书要求:
1)封面
2)课程设计任务书
3)目录
4)正文
5)参考文献
设计工作计划与进度安排
第十一周:
完成数据库课程设计任务书
第十四周:
查找项目相关背景资料、功能要求以及发展前景
第十五周:
需求分析的任务与方法,运用数据字典,并画出相应的流程图等
第十六周:
整理相关概念,使用E-R图实现信息的基本逻辑,建立对应的模型
第十七周:
整理出关系模式,并把E-R图形式转换成抽象的模式
第十八周:
运用命令、约束条件、索引等方式,然后使用SQL语言进行数据库的设计,最好撰写出课程设计说明书并打印,提交审查
设计考核要求
1.考勤20%
2.课程设计说明书50%
3.答辩30%
计算机科学与技术学院制
1.相关专业背景功能---------------------------------1
2.需求分析---------------------------------------4
3.概念模型与E-R图__________________________________13
4.E-R模型转换-----------------------------------14
5.数据库设计与建立------------------------------17
6、连接数据库---------------------------------------23
7.个人总结-----------------------------------------24
8.参考文献--------------------------------------25
一、选修课管理系统的相关背景功能
选修课管理系统是一个面向学校教务管理人员、教师和学生并为其提供服务的管理系统。
选修课管理系统所经历的三个阶段
一、没有电脑的年代,网上选课根本不存在,当时学生根据自己的爱好兴趣等方面,先选择相应的课程,然后由班级上报院系,再通过人工整理所上报的信息的办法,决定每个人的选课信息以及任课老师所教的课程,也就是说几乎谈不上选修课管理系统这么一说。
二、每个院系有了为数不多的几台电脑后,班级上报院系的信息,由院系先在电脑上登记,最后交给教务处,教务处通过选修课管理系统(还不够完善),经过审核决定最终结果并公布;
三、电脑普及率很高,也就是现在这样,网上选课已不成问题,教务处直接通过选修课管理系统,了解与审核选课信息,最终决定最后的结果并公布。
有关选修课的概念与定义
选修课与“必修课”相对。
主要指高等学校和中等专业学校中学习某一专业的学生可以有选择地学习的课程。
在教学计划中一般不作硬性规定。
分限制性选修课程(某些特定专业指定选修课程,对该专业来说可视为必修课)和非限制性选修课程(任意专业选修课程)两种。
一般大学的课程都分为校定必修,院定必修,限选课和任选课这四种,你可以根据你的爱好来选择选修课,也可以选一些专业方面的课程来修。
选修课不能全都选,学校有规定一学期最高能修多少个学分,你不能超出这个限制。
开设选修课的意义
选修课的开设是基于社会对复合型人才的需求,旨在加强大学生人文素质和科学素质的养成和提高,培养全面发展的高素质人才。
要对学生的公共选修课进行管理,每学期由教务处依据教学计划列出所开设的选修课程,学生自主选课,教务处根据选课情况进行调整,最后确定选修各门课程的学生名单,并对选修课进行排课和对选修课成绩进行登记。
可设置学生可选修的课程范围以及选修的约束条件。
可指定范围内的学分约束及课程门数约束,可指定选修课教师的开设班级的约束条件,开设班级的人数限制。
约束条件将作为学生在网上选课审核的标准。
应实时显示选课冲突信息。
网上选课的好处:
大学期间总会有很多公共选修课,以往的选课方法是随堂报名。
这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。
原因是传统的选课方法没有预见性,大家没有事先协调好。
使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,不用浪费体力去选课,还可以使教学资源合理平均地分配。
学校的选修课网上选课报名问题:
–教师网上登记选修课(课程审核)
–学生网上选课
–报名名单调整
–导出全校选课报名报表等等
选修课管理系统的功能
1.选课。
学生能够在网上实现正常学期的本专业本年级推荐选课、本院系开设课程、体育课、政治课、公共英语课、文科计算机课、通选课和公选课的选课;
2.成绩查询。
学生能够在网上快速、便捷地查询到自己所有学期的课程成绩(包括本院系所学课程成绩、辅修/双学位成绩)。
3.选课情况查询。
学生从网上就可以了解自己的选课情况(包括正常学期和暑期学校的选课),避免了许多不必要的麻烦。
4.退课情况查询。
学生可以清楚地查看到自己退课的时间和所用的IP地址。
5.体育课评估。
6.修改密码。
此功能更加完善了系统的功能。
7.用户注销。
不仅方便用户退出系统重新进行别的操作,而且更为重要的是它能够及时保证用户在使用此系统时的安全性。
系统设置:
系统管理员配置相关信息,包括教师登记课程时间范围,学生选课时间范围,每班最多人数,选修课上课日期,选课学生范围等;
教师登记课程:
开课教师在规定的时间内登记自己要开设的选修课程;
学生选课:
学生在规定的选课时间内自由选课报名,在规定时间内,可以退选、补选、改选课程;
选课调整:
学生选课期截止后,系统管理员可以根据学生本人、班主任或者任课教师的要求针对个别学生的选课进行调整,包括强制选课、退选、换选三种;
生成报表:
自动生成EXCEL报表,包括学生本人的选课列表、给班主任的选课名单和给上课教师的报名名单
选修课管理系统的使用说明
一、学生选课
6)学生登陆
7)进行初选,复选,补退选
8)查询选课情况,上课时间、地点与上课老师
9)修改登陆密码,添加或删除选课的相关信息
10)查询成绩
二、教师查询
5)教师登陆
6)查询课程信息(上课时间、地点以及课程是否被取消,查询选择自己课程的学生清单)
7)修改登陆密码
8)登记学生成绩
三、管理员对选修课管理
5)设置学生可选修的课程范围以及选课的约束条件
6)添加课程,修改密码、浏览选课情况、关闭选课人数不足15的课程
7)对选修课进行排课
登记选修课的成绩
现行选修课管理系统的特点
完全基于浏览器的操作界面,操作简便
灵活的选课管理、灵活选课配置、课程审核设置、学生范围限定等
严格的选课匹配
教师限时课程登记
学生限时网上选课
保证选课学生在班级之间均匀分布,杜绝过分集中
管理员可以调整学生选课名单
轻松导出各类选课报表
预测选修课管理系统的发展
随着科学技术的不断进步,电脑将会基本普及,各种系统的完善程度将会大幅提高,上一个新台阶,到那时,我想选修课管理系统也将更灵活,操作更简单,更人性化与智能化。
二、需求分析
学生包含学号等属性,通过登记系统保存学生成绩的信息。
学生通过分组程序分出选修课的学生名单。
课程包含课程号,名称等属性。
分组信息分出选修课教师,教师包含名称,教师编号属性。
用户通过SQLSERVER2000的查询分析器直接输入各种操作代码,其中包括对系统管理员的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。
具体需求分析如下:
选修课管理系统功能图:
•系统功能需求:
•1.开设课程管理
–管理员对所开设的课程进行管理,允许对所开设的课程进行增加,修改,删除等。
•2.查询
–可以按课程名,教师名,学号等多种方式查询课程信息。
对于学生的选课信息,学生只能查询本人的。
•3.学生选课管理
–学生根据所查询的课程信息,选择自己所要选修的课程。
对于已经选择了,但不希望选修的课程,可以进行退选。
每个学生最多选修8个学分。
•4.用户信息管理
–能够使用系统的每个学生、教师和管理员每人都有一个ID,管理员可以对用户进行增加,删除,修改等操作。
•5.学生成绩管理
•成绩管理包括如下功能:
(1)成绩录入
–管理员录入学生的成绩信息。
(2)成绩查询
–学生可以查看自己所选各科课程的成绩。
教师可以查询自己所教课程的学生成绩,并打印报表。
参与者用例图:
分析参与者:
•学生、教师、管理员都是学校里的人员,有一些相同的属性,如ID,姓名,部门等,可以将三者的共性提取出来,形成一个抽象的参与者——用户。
系统可以识别三个参与者:
学生,教师和管理员。
学生:
查询课表,选课,查询考试成绩
教师:
查询课表,查询课程成绩
管理员:
管理所开设的课程,管理用户,录入成绩,执行各种查询功能。
学生选课的数据流图:
①数据项:
以“学号”为例
数据项名:
学号
数据项含义:
唯一标识每一个学生
别名:
学生编号
数据类型:
字符型长度:
8取值范围:
00000~99999
取值含义:
前2位为入学年号,后3位为顺序编号
与其他数据项的逻辑关系:
(无)
②数据结构:
以“学生”为例
数据结构名:
学生
含义说明:
是学籍管理子系统的主体数据结构,定义了一个学生的有关信息
组成:
学号,姓名,性别,年龄,所在系
③数据流:
以“选课信息”为例
数据流名:
选课信息
说明:
学生所选课程信息
数据流来源:
“学生选课”处理
数据流去向:
“学生选课”存储
组成:
学号,课程号
④数据存储:
以“学生选课”为例
数据存储名:
学生选课
说明:
记录学生所选课程的成绩
编号:
(无)
流入的数据流:
选课信息,成绩信息
流出的数据流:
选课信息,成绩信息
组成:
学号,课程号,成绩
存取方式:
随机存取
⑤处理过程:
以“学生选课”为例
处理过程名:
学生选课
说明:
学生从可选修的课程中选出课程
输入数据流:
学生,课程
输出数据流:
学生选课
根据系统需求中的描述,又可以将系统分为两个顶层用例:
选课管理和成绩管理
•选课管理和成绩管理顶层用例图
•
•选课管理用例可以分解为:
•1.课程信息查询:
提供按学生查询,按任课教师查询,按课程名查询等多种查询方式。
•2.选课:
学生对自己所选的课程进行管理,包括增加所选课程,删除所选课程等。
•3.课程信息管理:
管理员对学校所开设的课程进行管理,包括增加课程,删除课程,修改课程信息等。
•4.用户管理:
为简化处理,假设系统从学生管理系统中获取学生信息,从学校人事管理系统中获取教师信息。
•选课管理用例图:
•成绩管理用例可以分解为以下用例:
•1. 学生成绩查询
•学生查询自己所选课程的成绩。
•2. 课程成绩查询
•教师查询自己所教课程的学生成绩。
•3. 成绩管理
•管理员录入或修改学生成绩。
•学生成绩管理用例图
分析用户如何登录到系统中
1.2前置条件:
无
1.3后置条件:
如果用例成功,则用户登录到系统中。
否则,系统状态不变。
1.4事件流
1.4.1基本流
(1)当用户开始使用系统时,登录用例启动;
(2)系统提示用户输入用户名和密码;
(3)用户提交;
(4)系统验证输入的用户名和密码,用户登录成功
1.4.2备选流
在基本流4中,如果用户输入的名字或密码没有通过验证,系统提示错误信息,用户可以重新输入或中止该用例。
用户登录用例图:
根据以上对系统的总体需求分析,我们就可以对选修课管理系统有个整体的概念。
通过对各个用例图的的分析与研究,就可以对选课管理系统的整个过程有个很具体的把握,并且可以知道和明白其工作原理与系统处理细节问题。
三、概念模型与E-R图
概念模型介绍:
学生选修课管理系统的流程:
首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。
有权限的人可以对这些数据库信息进行修改和删除。
所有用户均可以进行信息查询和统计。
数据流分析
学生选课管理系统的数据流程:
首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。
有权限的人可以对这些库信息进行修改和删除处理。
所有用户均可以进行信息查询和统计,结果可以报表打印。
选修课选课系统主要分为两大模块:
管理员模块和一般用户模块,管理员可以是教师也可以是学生,不过管理员必须承担一定的责任。
管理员模块又分为对用户的管理和对选课的管理,对用户的管理模块应有的功能是对新用户的添加,对无用用户的删除;选课管理模块应有的功能包括新开设选修课信息的添加,对原有课程信息的修改,对学校不再开设的课程进行删除,一轮选课结束以后对各科选课人数归零。
一般用户模块既学生应用模块是该系统最基本的功能模块,因为此模块应完成访客登录的身份验证,学生选修公共选修课记录的添加,对公共选修课信息的查询,对教师信息的查询,学生对自己已经选修哪些课进行查询。
所以,按照需要完成的要求又分成了各具体执行模块。
学生实体E-R图
教师实体E-R图
课程实体E-R图
管理员实体E-R图
整体E-R图:
四、E-R模型转换成关系数据库
E-R模型转换成关系数据库的一般规则:
1.将每一个实体转换成一个关系。
2.所有主码必须定义非空。
3.对于二元联系,按照下列规则定义外码:
a.一对一联系:
将”一”表中的主码作为外码放在”多”表中。
如上图中的计算机系与教师的关系,计算机系只有一个系主任。
b.弱实体:
将父表的主码作为外码放在弱实体中。
如上图学生与亲属的关系中亲属就是弱实体。
c.一对多联系:
将一个表的主码作为外码放在另一个表中。
如上图中的班级与学生的联系。
d.多对多联系:
建立复合实体,复合实体的主码由两个父实体的主码复合组成。
如上图中学生与课表的关系就是多对多的联系,应建立一个复合实体:
成绩。
设计关系模型如下:
下划线为关系的码
学生(学号,姓名,性别,年龄,班级,所在系号,备注)
Student(Student_id,Student_name,Student_sex,Student_time,Student_classid,Student_age,Student_else)
此为学生实体对应的关系模式。
教师(教师号,姓名,班级,系别,备注)
Teacher(Teacher_id,Teacher_name,Teacher_class,Teacher_dept,Teacher_else)
此为教师实体对应的关系模式。
课程(课程号,课程名,系名,学分,开课时间,课程表)
Course(Course_id,Course_name,Course_time,Class_credit,Course_dept)
此为课程实体对应的关系模式。
管理员(用户名,密码,登录类型)
Manger(Manger_id,Manger_Passwod,Manger_Power)
此为管理员实体对应的关系模式。
五、数据库设计与建立
在系统中设立6张表:
除了有学生、教师、课程基本表分别记录学生、教师、课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用户表,记录用户登录系统时的用户名、密码以及权限。
同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门课的成绩,便于管理员对成绩的录入、修改以及用户对成绩的查询和检索:
教师教课表的内容主要是包含教师所教课程的信息。
首先是用户信息数据表(Manger),用于存储学生管理系统中所有参与人员的信息,包括教师登录信息、学生登录信息,这样做的目的是可以方便系统判断用户登录的类型,以及对用户类型的统一管理。
用户信息没有包括太多的内容,主要有用户登录号、用户密码、用户权限代码,读者可以根据自己的具体需要添加字段,表1显示了表中各个字段的数据类型、大小以及简短描述。
表1用户信息数据表(Manger)
列名
数据类型
宽度
字段描述
Manger_id
Char
10
用户名,设为主键
Manger_Passwod
Char
20
用户登录本系统时的用户密码
Manger_Power
Int
4
用户的类型,0-本校注册学生,1-管理员
在系统中,最重要的对象是学生,系统设计了学生信息数据表(student),用于存储本校所有学生信息,其中包括在校生,也包括已毕业学生。
表5-7中显示了表中各个字段的数据类型、大小以及简短描述。
表2学生信息数据表(Student)
列名
数据类型
宽度
字段描述
Student_id
char
20
学生的学号,设为主键
Student_name
char
20
学生姓名
Student_sex
Char
4
学生性别
Student_time
Char
8
学生入学时间
Student_classid
char
50
学生所在班级号
Student_age
int
4
学生年龄
Student_else
char
50
备注
系统构建教师信息数据表(teacher)用来存储本校所有教师信息,教师信息表给出一个较为简单的结构。
表3显示了表中各个字段的数据类型、大小以及简短描述。
表3教师信息数据表(teacher)
列名
数据类型
宽度
字段描述
Teacher_id
char
5
记录教师号,设为主键
Teacher_name
char
10
记录教师姓名
Teacher_class
char
20
记录教师所在班级
Teacher_dept
char
20
记录教师所在系
Teacher_else
char
50
备注
每一个教师讲授什么课程都有记录,而且一门课可能会有多个老师授课。
因此必须包括课程名称、年度、学期、班级号等,以便管理员或学生查询信息,系统采用教师_课程记录数据表(teacher_course)记录以上信息。
如表4所示表中各个字段的数据类型、大小以及简短描述。
表4教师-课程记录数据表(teacher_course)
列名
数据类型
宽度
字段描述
ID
Int
4
教师-课程记录的惟一ID号,设为主键
Teacherid
Varchar
50
教师号
Courseid
Varchar
50
教师所任课程号
Teacher_class
Varchar
50
教师所教班级号
Course_year
Char
5
年度学期
Course_men
Int
4
教师所任选修课程限报人数
学生总是离不开课程,系统设计了课程信息数据表(course),用于存储本校所有课程信息,其中包括课程类型、学分等。
表5显示了表中各个字段的数据类型、大小以及简短描述。
表5课程信息数据表(course)
列名
数据类型
宽度
字段描述
Course_id
char
50
课程号,设为主键
Course_name
char
50
课程名
Course_time
char
40
开课时间
Class_credit
Int
4
课程学分
Course_dept
char
50
课程所在系
学生所学课程都会有成绩,并且每个学生每一门课只有一个成绩。
系统设计了学生-课程信息数据表(student—course),用于存储本校所有学生所学课程信息,表6显示了表中各个字段的数据类型、大小以及简短描述。
表6学生-课程记录数据表(student_course)
列名
数据类型
宽度
字段描述
ID
char
10
学生-课程记录的惟一ID号,设为主键
Studen_id
char
10
学生学号
Course_id
char
10
学生所学课程号
Stude_grade
Int
4
学生成绩
Course_dept
char
50
学生所学课程所在系
系统使用MicrosoftSQLServer2000建立数据库,库名为Elective。
库中设计的六个表
使用T-SQL建立数据库Elective
createdatabaseelective
on
(name='electivedb',
filename='e:
\database\elective.mdf',
size=2,
maxsize=10,
filegrowth=1)
logon
(name='electivelog',
filename='e:
\database\elective_log.ldf',
size=1,
maxsize=5,
filegrowth=1)
go
1、使用T-SQL脚本建立学生信息数据表(Student)。
createtablestudent(
S_idchar(20)primarykey,
S_namechar(40)notnull,
S_sexchar(4)notnull,
S_deptchar(20)notnull,
S_agechar(8)notnull,
S_classidchar(50)notnull,
S_elsechar(50)notnull,
)
2、使用T-SQL脚本建立教师信息数据表(Teacher)。
createtableteacher(
T_idchar(