学生网上选课数据库课程设计报告.docx
- 文档编号:3414381
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:42
- 大小:874.52KB
学生网上选课数据库课程设计报告.docx
《学生网上选课数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生网上选课数据库课程设计报告.docx(42页珍藏版)》请在冰豆网上搜索。
学生网上选课数据库课程设计报告
数据库应用课程设计报告
设计题目:
学生网上选课系统
班级:
学号:
姓名:
指导教师:
完成日期:
成绩:
摘要
本系统为学生网上选课系统,其开发主要包括数据库的建立和维护以及前端应用程序的开发两个方面。
经过分析,我使用了java开发工具eclipse,开发了登录模块主要用于验证用户身份,进行有效的操作。
在我们所开发的学生网上选课系统中创建了三个用户——学生、教师和管理员,通过身份验证后方可进入。
本系统还包含查询、添加、修改、删除等基本操作,在整个系统设计中充分利用了模块化的设计思想和开发方法,用户在从主界面模块在验证后进入每个子模块进行各个子系统的具体功能操作。
在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成一个满意的可行系统。
第一章系统概括
课程设计选题
考虑到学生网上选课这个系统与我们大学生活是如此贴近,而且在我们平时选课时也经常出现一些不足,所以我选择“学生网上选课系统”这个课题。
除了它比较贴近生活之外,这个项目也会让我对数据库有更新一步的认识与巩固,对身边的各种选课系统有一个更直观的了解。
项目背景
随着科技的发展,高科技技术的不断开发,数据的处理在我们的生活中尤为重要。
教育的不断改革和素质教育的不断加强,学分制的实施,选修课在一个学生的培养计划中的比重越来越大。
现在我们选课以及成绩查询都是在网上进行的,这个对于学生来说更加的自主、便捷。
但是由于一般高校的学生比较多,因此就带来的诸多如信息管理等问题。
鉴于需要将学生信息、选课信息等信息数字化以便于维护管理,我们便想到了利用数据库更加准确的解决此类问题。
所以我决定设计一个适用于高校学生网上选课系统一共参考并且更进一步的了解高校选课的流程以及数据的保存。
课设报告编写目的
无纸化办公的模式现在已经普遍存在,信息自动化处理以及网络式信息交互方式已经普及并且被人们广泛应用,计算机管理学生信息在各大高校都在积极进行,也是高校管理工作的重要内容之一。
学生网上选课与传统的选课方式相比更加的智能便捷并且节约资源,也增加了学生学习过程中的自主权。
学生选课系统无疑是一个比较现代化的教学技术,并且受到人们的重视,是学校管理中不可获取额的一部分。
有了学生网上选课系统不仅方便了学生、教师,更重要的是学校在管理数据方面会更加的方便以及准确。
学生网上选课系统使选课管理工作规范化、系统化、程序化,避免数据丢失,提高信息处理的速度,能够准确及时的查询及更改学生的选课情况。
编写课设报告的目的就在于将学生选课管理系统的设计与实现以及管理维护等工作更加有条理的呈现出来,对开发设计学生选课系统的过程进行记录并且概括,帮助更好的理解、操作、运用学生网上选课系统。
课设报告的组织
课设报告从学生网上选课系统的需求分析到数据库的设计,包括概念设计、逻辑设计、物理设计等,再到最后的实现与维护一一呈现出来,包括最初的设计理念,数据库具体觉得建立以及数据的输入、管理及更新。
包括实现学生选课功能、教师录入成绩功能,管理员对数据库信息的增删改查功能一应俱全。
在这次课程设计中我们都积极参与各项环节的设计,但我们也有分工。
初步列出如下:
XX同学是用Java开发工具eclipse制作前台的界面,建立数据库的连接,用SQL语言建表、视图等;XX同学担任的工作是对系统的需求分析、构思画出数据流图、画出E-R图,把E-R图转化成关系模型并对其进行规范化处理,以及文档的编写、转化初始关系模型和内容摘要等的编写,还担任了Word文档的总结排版。
这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。
第二章系统需求分析部分
该系统能管理学校的教师信息、学生信息、学校开设的所有课程信息、学生选修课程的信息等。
选课系统主要满足三类用户的要求,这三类用户分别是教务处的学生、教师、系统管理员。
他们所具有的操作权限以及操作内容是不同的。
具体的需求分析如下:
学生用户
(1)密码修改
(2)进行选课和退选课程操作
(3)个人信息查询和成绩查询
教师用户
(1)密码修改
(2)选课成绩管理(查询、录入、修改和删除学生选课成绩)
(3)个人信息查询、教学安排查询
管理员用户
(1)密码修改
(2)学生信息管理(查询、添加、修改和删除学生信息)
(3)课程信息管理(查询、添加、修改和删除课程信息)
(4)教师信息管理(查询、添加、修改和删除教师信息)
(5)授课信息管理(查询、添加、修改和删除授课信息)
数据流图
(1)
(2)
(3)
数据字典
数据元素
数据类型
长度
数据来源
学号
nchar
10
学生表
姓名
nchar
8
学生表
性别
nchar
1
学生表
年龄
int
2
学生表
入学时间
datetime
15
学生表
专业
nchar
20
学生表
系别
nchar
20
学生表
密码
nchar
20
学生表
教师工号
nchar
10
教师表
姓名
nchar
8
教师表
性别
nchar
1
教师表
密码
nchar
20
教师表
管理员工号
nchar
10
管理员表
姓名
nchar
8
管理员表
密码
nchar
20
管理员表
课程编号
nchar
10
课程表
课程名
nchar
8
课程表
学分
float
1
课程表
学号
nchar
10
选课表
课程编号
nchar
10
选课表
成绩
numeric
(4,2)
选课表
教师工号
nchar
10
授课表
课程编号
nchar
10
授课表
课时
nchar
10
授课表
第三章系统数据库设计部分
数据库概念结构设计
分E-R图
各个实体的分E-R图分别如下图所示
(1)学生信息实体图
(2)教师信息实体图
(3)管理员信息实体图
(4)课程信息实体图
(5)选课信息实体图
(6)授课信息实体图
局部E-R图
(1)学生课程关系E-R图
(2)教师课程关系E-R图
(3)教师学生关系E-R图
(4)管理员学生关系E-R图
(5)管理员教师关系E-R图
(6)管理员课程关系E-R图
合并E-R图
实体及属性的定义
实体:
学生、教师、管理员、课程、选课、授课
学生实体属性:
学号、姓名、性别、年龄、入学时间、系别、专业、密码
教师实体属性:
教师工号、姓名、性别、密码
管理员属性:
管理员工号、姓名、密码
课程属性:
课程编号、课程名、学分
选课属性:
学号、课程编号、成绩
授课属性:
教师工号、课程编号、课时
多对多联系:
管理、选修、教授
数据库逻辑结构设计
逻辑转换
将E-R图转换成关系数据模式,其中,每个实体转换成一个关系模式,多对多联系转换成独立的关系模式,一对多联系并入多端实体,得到以下初始关系模式:
学生(学号、姓名、性别、年龄、入学时间、系别、专业、密码)
教师(教师工号、姓名、性别、密码、课时)
管理员(管理员工号、姓名、密码)
课程(课程编号、课程名、学分)
选课(学号、课程编号、成绩)
授课(教师工号、课程编号、课时)
管理(管理员工号、学号、教师工号、课程编号)
选修(学号、课程编号、成绩)
教授(学号、教师工号、学分)
细化表结构
(1)学生信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
sno
nchar
10
不允许
有
学号
sname
nchar
8
不允许
有
姓名
ssex
nchar
1
允许
有
性别
sage
int
2
允许
有
年龄
entrancetime
datetime
15
不允许
有
入学时间
smajor
nchar
20
允许
有
专业
ssdept
nchar
20
允许
有
系别
spassword
nchar
20
不允许
有
密码
(2)教师信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
tno
nchar
10
不允许
有
教师工号
tname
nchar
8
不允许
有
姓名
tsex
nchar
1
允许
有
性别
tpassword
nchar
20
不允许
有
密码
(3)管理员信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
mno
nchar
10
不允许
有
管理员工号
mname
nchar
8
不允许
有
姓名
mpassword
nchar
20
不允许
有
密码
(4)课程信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
cno
nchar
10
不允许
有
课程编号
cname
nchar
8
不允许
有
课程名
ccredit
float
1
不允许
有
学分
(5)选课信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
sno
nchar
10
不允许
有
学号
cno
nchar
10
不允许
有
课程编号
grade
numeric
(4,2)
不允许
有
成绩
(6)授课信息表
属性名
数据类型
长度
是否允许为空
有无索引
说明
tno
nchar
10
不允许
有
教师工号
cno
nchar
10
不允许
有
课程编号
ctime
nchar
10
不允许
有
课时
数据库物理结构设计与实施
创建表
本系统共创建了六个表:
学生信息表、教师信息表、系统管理员信息表、课程信息表、选课信息表、授课信息表。
(1)创建student表如下
(2)创建teacher表如下
(3)创建manager表如下
(4)创建course表如下
(5)创建sc表如下
(6)创建tc表如下
各表之间的关系如图:
建立视图
本系统共创建了八个视图
以下是本系统的主要视图:
(1)学生选课总学分视图如下
USE[网上选课系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
createview[dbo].[v_sum_ccredit](sno,sumcredit)
asselectsno,sum(ccredit)
fromtb_course,tb_selecting_course
where=
groupbysno
(2)课程视图如下
USE[网上选课系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
createview
[dbo].[v_course](cno,cname,ccredit)
asselectcno,cname,ccredit
fromtb_course
(3)学生平均成绩视图如下
USE[网上选课系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
createview
[dbo].[v_aver_grade](sno,avggrade)
asselectsno,avg(grade)
fromtb_selecting_course
groupbysno
建立索引
索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查,主键都会自动生成,为了更快的查找索引所以建立了以下索引。
(1)课程编号索引如下
(2)学生姓名和学生学号索引如下
(3)教师工号和教师姓名索引如下
(4)学生学号和课程号索引如下
(5)管理员工号和管理员姓名索引如下
(6)课程编号和课程名索引如下
建立外键及级联
外键是表示两个关系之间的相关联系,以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
级联是当删除主键时外键也会跟着删除,更新时外键也会跟着更新。
(1)tb_selecting_course表上的外键及级联如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_selecting_course]WITHCHECKADDCONSTRAINT[FK_tb_selecting_course_tb_course]FOREIGNKEY([cno])
REFERENCES[dbo].[tb_course]([cno])
ONUPDATECASCADE
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_selecting_course]WITHCHECKADDCONSTRAINT[FK_tb_selecting_course_tb_student]FOREIGNKEY([sno])
REFERENCES[dbo].[tb_student]([sno])
ONUPDATECASCADE
ONDELETECASCADE
(2)tb_teaching_course表上的外键及级联如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_teaching_course]WITHCHECKADDCONSTRAINT[FK_teaching_class_tb_course]FOREIGNKEY([cno])
REFERENCES[dbo].[tb_course]([cno])
ONUPDATECASCADE
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_teaching_course]WITHCHECKADDCONSTRAINT[FK_teaching_class_tb_teacher]FOREIGNKEY([tno])
REFERENCES[dbo].[tb_teacher]([tno])
ONUPDATECASCADE
ONDELETECASCADE
建立约束
(1)课程表的学分约束如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_course]WITHCHECKADDCONSTRAINT[CK_ccredit]CHECK(([ccredit]>=
(1)AND[ccredit]<=(6)))
(2)选课表的成绩约束如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_selecting_course]WITHCHECKADDCONSTRAINT[CK_grade]CHECK(([grade]>=(0)AND[grade]<=(100)))
(3)学生表的成绩约束如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_student]WITHCHECKADDCONSTRAINT[CK_ssex]CHECK(([ssex]='女'OR[ssex]='男'))
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_student]WITHCHECKADDCONSTRAINT[CK_student_age]CHECK(([sage]>=(17)))
(4)教师表的成绩约束如下
USE[网上选课系统]
GO
ALTERTABLE[dbo].[tb_teacher]WITHCHECKADDCONSTRAINT[CK_tsex]CHECK(([tsex]='女'OR[tsex]='男'))
存储过程的建立
存储过程是多条SQL集合,并要求集合中的SQL全部成功执行,不然就全部不执行,有利于进行同步操作。
USE[网上选课系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
createproc[dbo].[ProcInsert]
@snonchar(10),@cnonchar(10),@gradenumeric(5,2)
as
insert
intotb_selecting_course(sno,cno,grade)
values(@sno,@cno,@grade)
selectsname,cname,grade
fromtb_selecting_coursejointb_studenton=
jointb_courseon=
where=@sno
创建触发器
选课成绩更新触发器。
功能:
一旦对选课成绩进行更改操作,就将更改前后的数据记录到cs_log表中。
第四章界面设计与实现
功能模块界面
登录界面
学生管理界面
以学生身份登录后,就进入学生权利模块,学生可以在系统管理里进行密码修改,选课管理里进行选课、退选课程,查询管理里进行成绩查询和个人信息查询,如下图:
教师管理界面
以教师身份登录后,就进入教师权利模块,教师可以在系统管理里进行密码修改,录入管理里进行录入学生成绩处理,查询管理里查询教学安排、学生成绩、个人信息。
4.5管理员管理界面
以管理员身份登录后,就进入管理员权利模块,管理员可以在系统管理里进行密码修改,在学生管理里查询、添加、修改、删除学生信息,在课程管理里查询、添加、修改、删除课程信息,在教师管理里查询、添加、修改、删除教师信息,在选课管理里查询、添加、修改、删除选课信息。
第五章系统测试
用户登录测试
登录信息验证测试:
学生管理信息测试
密码修改
学生选、退选课程
个人信息、成绩查询
教师管理信息测试
选课成绩管理(查询、录入、修改和删除学生选课成绩)
教学安排、个人信息查询
管理员管理信息测试
查询学生信息
添加学生信息
修改学生信息
删除学生信息
第六章总结
自从开设了数据库原理与应用这门课,经过学习,我对数据库的原理和使用有了一定的了解,但是对于数据库的实际应用并不是那么清晰的明白,但是有了这次数据库的课程设计,我对数据库有了新的认识。
“学生网上选课系统”这个课题确实给我带来了很大的挑战,开始以为只是建立几个表,后来才知道数据库的设计是一个系统,还存在着表与表之间的联系,因此我必须要有一个宏观上的认识。
在本次课程设计中,我学到了很多新的知识,比如如何使用SQLServer2005创建完整的数据库、如何使用java设计页面、如何将页面合理的与数据库进行连接等等。
在课程设计的过程当中也会遇到很多自己不能解决的问题,通过自己查阅资料,向同学老师寻求帮助,最终这些问题都解决了,我的“学生网上选课系统”也更加的完整合理。
同时也提高了我的自学能力,在设计过程中,查阅了不少资料,包括网络资料和书籍等,让我收获了许多意想不到的东西,对以后数据库的学习与应用有了很大程度上的提高!
主要参考文献
[1]《数据库系统概论》作者:
王珊萨师煊(第五版高等教育出版社)
[2]《Java应用开发与实践》作者:
刘乃琦苏畅(人民邮电出版社)
[3]《软件工程》作者:
钱乐秋赵文耘牛军钰(第二版清华大学出版社)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 网上 选课 数据库 课程设计 报告