资源描述
数据库应用课程设计汇报
设计题目: 学生网上选课系统
班 级:
学 号:
姓 名:
指导老师:
完成日期:
成绩:
摘要
本系统为学生网上选课系统,其开发关键包含数据库建立和维护和前端应用程序开发两个方面。
经过分析,我使用了java开发工具eclipse,开发了登录模块关键用于验证用户身份,进行有效操作。
在我们所开发学生网上选课系统中创建了三个用户——学生、老师和管理员,经过身份验证后方可进入。本系统还包含查询、添加、修改、删除等基础操作,在整个系统设计中充足利用了模块化设计思想和开发方法,用户在从主界面模块在验证后进入每个子模块进行各个子系统具体功效操作。
在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不停修正和改善,直到形成一个满意可行系统。
目录
第一章 系统概括 5
1.1 课程设计选题 5
1.2 项目背景 5
1.3 课设汇报编写目标 5
1.4 课设汇报组织 5
第二章 系统需求分析部分 7
2.1 学生用户 7
2.2 老师用户 7
2.3 管理员用户 7
2.4 数据流图 8
2.5 数据字典 11
第三章 系统数据库设计部分 16
3.1 数据库概念结构设计 16
3.1.1 分E-R图 14
3.1.2 局部E-R图 16
3.1.3 合并E-R图 16
3.1.4 实体及属性定义 16
3.2 数据库逻辑结构设计 16
3.2.1 逻辑转换 16
3.2.2 细化表结构 17
3.3 数据库物理结构设计和实施 18
3.3.1 创建表 18
3.3.2 建立视图 21
3.3.3 建立索引 23
3.3.4 建立外键 24
3.3.5 建立约束 25
3.3.6 存放过程建立 26
3.3.7 创建触发器 27
第四章 界面设计和实现 28
4.1 功效模块界面 28
4.2 登录界面 28
4.3 学生管理界面 29
4.4 老师管理界面 29
4. 5 管理员管理界面 30
第五章 系统测试 31
5.1 用户登录测试 31
5.2 学生管理信息测试 31
5.2.1 密码修改 30
5.2.2 学生选、退选课程 32
5.2.3 个人信息、成绩查询 33
5.3 老师管理信息测试 34
5.3.1 选课成绩管理 34
5.3.2 教学安排、个人信息查询 36
5.4 管理员管理信息测试 37
5.4.1 查询学生信息 37
5.4.2 添加学生信息 37
5.4.3 修改学生信息 38
5.4.4 删除学生信息 38
第六章 总结 39
关键参考文件 39
第一章 系统概括
1.1 课程设计选题
考虑到学生网上选课这个系统和我们大学生活是如此贴近,而且在我们平时选课时也常常出现部分不足,所以我选择“学生网上选课系统”这个课题。除了它比较贴近生活之外,这个项目也会让我对数据库有更新一步认识和巩固,对身边多种选课系统有一个更直观了解。
1.2 项目背景
伴随科技发展,高科技技术不停开发,数据处理在我们生活中尤为关键。教育不停改革和素质教育不停加强,学分制实施,选修课在一个学生培养计划中比重越来越大。
现在我们选课和成绩查询全部是在网上进行,这个对于学生来说愈加自主、便捷。不过因为通常高校学生比较多,所以就带来很多如信息管理等问题。鉴于需要将学生信息、选课信息等信息数字化方便于维护管理,我们便想到了利用数据库愈加正确处理这类问题。所以我决定设计一个适适用于高校学生网上选课系统一共参考而且更深入了解高校选课步骤和数据保留。
1.3 课设汇报编写目标
无纸化办公模式现在已经普遍存在,信息自动化处理和网络式信息交互方法已经普及而且被大家广泛应用,计算机管理学生信息在各大高校全部在主动进行,也是高校管理工作关键内容之一。学生网上选课和传统选课方法相比愈加智能便捷而且节省资源,也增加了学生学习过程中自主权。
学生选课系统无疑是一个比较现代化教学技术,而且受到大家重视,是学校管理中不可获取额一部分。有了学生网上选课系统不仅方便了学生、老师,更关键是学校在管理数据方面会愈加方便和正确。学生网上选课系统使选课管理工作规范化、系统化、程序化,避免数据丢失,提升信息处理速度,能够正确立即查询及更改学生选课情况。编写课设汇报目标就在于将学生选课管理系统设计和实现和管理维护等工作愈加有条理展现出来,对开发设计学生选课系统过程进行统计而且概括,帮助愈加好了解、操作、利用学生网上选课系统。
1.4 课设汇报组织
课设汇报从学生网上选课系统需求分析到数据库设计,包含概念设计、逻辑设计、物理设计等,再到最终实现和维护一一展现出来,包含最初设计理念,数据库具体认为建立和数据输入、管理及更新。包含实现学生选课功效、老师录入成绩功效,管理员对数据库信息增删改查功效一应俱全。
在这次课程设计中我们全部主动参与各项步骤设计,但我们也有分工。初步列出以下:XX同学是用Java开发工具eclipse制作前台界面,建立数据库连接,用SQL语言建表、视图等;XX同学担任工作是对系统需求分析、构思画出数据流图、画出E-R图,把E-R图转化成关系模型并对其进行规范化处理,和文档编写、转化初始关系模型和内容摘要等编写,还担任了Word文档总结排版。这次数据库课程设计让我们对数据库操作有了深入了解,受益匪浅。
第二章 系统需求分析部分
该系统能管理学校老师信息、学生信息、学校开设全部课程信息、学生选修课程信息等。选课系统关键满足三类用户要求,这三类用户分别是教务处学生、老师、系统管理员。她们所含有操作权限和操作内容是不一样。具体需求分析以下:
2.1 学生用户
(1)密码修改
(2)进行选课和退选课程操作
(3)个人信息查询和成绩查询
2.2 老师用户
(1)密码修改
(2)选课成绩管理(查询、录入、修改和删除学生选课成绩)
(3)个人信息查询、教学安排查询
2.3 管理员用户
(1)密码修改
(2)学生信息管理(查询、添加、修改和删除学生信息)
(3)课程信息管理(查询、添加、修改和删除课程信息)
(4)老师信息管理(查询、添加、修改和删除老师信息)
(5)讲课信息管理(查询、添加、修改和删除讲课信息)
2.4 数据流图
输出结果
输入查询请求
查询信息
正确信息
学生界面
验证信息
用户名、密码
选(退选)课程信息
学生
新密码
错误信息
用户名、密码
修改成功
密码
密码修改
修改信息
验证结果
修改成功
选(退选)课程信息
数据库
更新密码
新密码
个人信息
选课表
添加(删除)选课信息
输入查询请求
输出结果
(1)
查询结果
老师
成绩单
成绩单
录入学生成绩
错误信息
用户名、密码
成绩
教学安排
录入成功
成绩查询
正确信息
老师界面
验证信息
个人信息
新密码
选课表
验证结果
用户名、密码
密码修改
成绩查询
查询信息
新密码
个人信息
教学安排
数据库
更新密码
讲课表
讲课信息
密码
个人信息
(2)
更新信息
更新密码
学生信息
更新结果
讲课信息
课程信息
老师信息
个人信息
查询/添加/修改/删除学生信息
密码
查询/添加/修改/删除讲课信息
查询/添加/修改/删除课程信息
查询/添加/修改/删除老师信息
管理员
用户名、密码
错误信息
学生/老师/课程/讲课信息查询
学生/老师/课程/讲课信息添加
用户名、密码
验证信息
学生/老师/课程/讲课信息修改
学生/老师/课程/讲课信息查询
验证结果
数据库
新密码
修改信息
添加信息
查询信息
正确信息
删除信息
信息查询
信息添加
新密码
密码修改
信息删除
信息修改
管理员界面
(3)
2.5 数据字典
数据元素
数据类型
长度
数据起源
学号
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
讲课表
第三章 系统数据库设计部分
3.1数据库概念结构设计
3.1.1 分E-R图
各个实体分E-R图分别以下图所表示
(1) 学生信息实体图
学生
学号
姓名
性别
年纪
入课时间
系别
专业
密码
(2) 老师信息实体图
老师
老师工号
姓名
性别
密码
(3)管理员信息实体图
管理员
管理职员号
姓名
密码
(4)课程信息实体图
课程
课程名
课程编号
学分
(5)选课信息实体图
选课
学号
成绩
课程编号
(6)讲课信息实体图
讲课
课时
课程编号
老师工号
3.1.2 局部E-R图
(1)学生课程关系E-R图
学生
选修
课程
成绩
m
n
(2) 老师课程关系E-R图
老师
教授
课程
课时
m
1
(3) 老师学生关系E-R图
老师
教授
学生
学分
m
n
(4)管理员学生关系E-R图
管理员
管理
学生
m
n
(5)管理员老师关系E-R图
管理员
管理
老师
m
n
(6) 管理员课程关系E-R图
管理员
管理
课程
m
n
3.1.3合并E-R图 管理员
学生
老师
课程
管理
管理
管理
教授
选修
m
m
m
n
n
n
m
n
m
n
教授
m
1
3.1.4 实体及属性定义
实体:学生、老师、管理员、课程、选课、讲课
学生实体属性:学号、姓名、性别、年纪、入课时间、系别、专业、密码
老师实体属性:老师工号、姓名、性别、密码
管理员属性:管理职员号、姓名、密码
课程属性:课程编号、课程名、学分
选课属性: 学号、课程编号、成绩
讲课属性:老师工号、课程编号、课时
多对多联络:管理、选修、教授
3.2 数据库逻辑结构设计
3.2.1 逻辑转换
将E-R图转换成关系数据模式,其中,每个实体转换成一个关系模式,多对多联络转换成独立关系模式,一对多联络并入多端实体,得到以下初始关系模式:
学生(学号、姓名、性别、年纪、入课时间、系别、专业、密码)
老师(老师工号、姓名、性别、密码、课时)
管理员(管理职员号、姓名、密码)
课程(课程编号、课程名、学分)
选课(学号、课程编号、成绩)
讲课(老师工号、课程编号、课时)
管理(管理职员号、学号、老师工号、课程编号)
选修(学号、课程编号、成绩)
教授(学号、老师工号、学分)
3.2.2 细化表结构
(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
不许可
有
课时
3.3 数据库物理结构设计和实施
3.3.1 创建表
本系统共创建了六个表:学生信息表、老师信息表、系统管理员信息表、课程信息表、选课信息表、讲课信息表。
(1)创建student表以下
(2)创建teacher表以下
(3)创建manager表以下
(4)创建course表以下
(5)创建sc表以下
(6)创建tc表以下
各表之间关系图:
3.3.2 建立视图
本系统共创建了八个视图
以下是本系统关键视图:
(1)学生选课总学分视图以下
USE [网上选课系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view [dbo].[v_sum_ccredit](sno,sumcredit)
as select sno,sum(ccredit)
from tb_course,tb_selecting_course
where tb_o=tb_selecting_o
group by sno
(2) 课程视图以下
USE [网上选课系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view
[dbo].[v_course](cno,cname,ccredit)
as select cno,cname,ccredit
from tb_course
(3)学生平均成绩视图以下
USE [网上选课系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create view
[dbo].[v_aver_grade](sno,avggrade)
as select sno,avg(grade)
from tb_selecting_course
group by sno
3.3.3 建立索引
索引是关系数据库中用于存放每一条统计一个对象,关键目标是加紧数据读取速度和完整性检验,主键全部会自动生成,为了愈加快查找索引所以建立了以下索引。
(1)课程编号索引以下
(2)学生姓名和学生学号索引以下
(3)老师工号和老师姓名索引以下
(4)学生学号和课程号索引以下
(5)管理职员号和管理员姓名索引以下
(6)课程编号和课程名索引以下
3.3.4 建立外键及级联
外键是表示两个关系之间相关联络,以另一个关系外键作主关键字表被称为主表,含有另外键表被称为主表从表。级联是当删除主键时外键也会跟着删除,更新时外键也会跟着更新。
(1)tb_selecting_course表上外键及级联以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_selecting_course] WITH CHECK ADD CONSTRAINT [FK_tb_selecting_course_tb_course] FOREIGN KEY([cno])
REFERENCES [dbo].[tb_course] ([cno])
ON UPDATE CASCADE
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_selecting_course] WITH CHECK ADD CONSTRAINT [FK_tb_selecting_course_tb_student] FOREIGN KEY([sno])
REFERENCES [dbo].[tb_student] ([sno])
ON UPDATE CASCADE
ON DELETE CASCADE
(2) tb_teaching_course表上外键及级联以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_teaching_course] WITH CHECK ADD CONSTRAINT [FK_teaching_class_tb_course] FOREIGN KEY([cno])
REFERENCES [dbo].[tb_course] ([cno])
ON UPDATE CASCADE
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_teaching_course] WITH CHECK ADD CONSTRAINT [FK_teaching_class_tb_teacher] FOREIGN KEY([tno])
REFERENCES [dbo].[tb_teacher] ([tno])
ON UPDATE CASCADE
ON DELETE CASCADE
3.3.5 建立约束
(1)课程表学分约束以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_course] WITH CHECK ADD CONSTRAINT [CK_ccredit] CHECK (([ccredit]>=(1) AND [ccredit]<=(6)))
(2) 选课表成绩约束以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_selecting_course] WITH CHECK ADD CONSTRAINT [CK_grade] CHECK (([grade]>=(0) AND [grade]<=(100)))
(3) 学生表成绩约束以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_student] WITH CHECK ADD CONSTRAINT [CK_ssex] CHECK (([ssex]='女' OR [ssex]='男'))
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_student] WITH CHECK ADD CONSTRAINT [CK_student_age] CHECK (([sage]>=(17)))
(4)老师表成绩约束以下
USE [网上选课系统]
GO
ALTER TABLE [dbo].[tb_teacher] WITH CHECK ADD CONSTRAINT [CK_tsex] CHECK (([tsex]='女' OR [tsex]='男'))
3.3.6 存放过程建立
存放过程是多条SQL集合,并要求集合中SQL全部成功实施,不然就全部不实施,有利于进行同时操作。
USE [网上选课系统]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create proc [dbo].[ProcInsert]
@sno nchar(10),@cno nchar(10),@grade numeric(5,2)
as
insert
into tb_selecting_course(sno, cno,grade)
values(@sno,@cno,@grade)
select sname,cname,grade
from tb_selecting_course join tb_student on(tb_selecting_course.sno=tb_student.sno)
join tb_course on(tb_selecting_o=tb_o)
where tb_selecting_course.sno=@sno
3.3.7 创建触发器
选课成绩更新触发器。功效:一旦对选课成绩进行更改操作,就将更改前后数据统计到cs_log表中。
第四章 界面设计和实现
4.1 功效模块界面登录界面
学生
管理员
老师
系统管理
选课管理
查询管理
系统管理
学生管理
课程管理
老师管理
讲课管理
系统管理
选课成绩管理
查询管理
4.2 登录界面
4.3 学生管理界面
以学生身份登录后,就进入学生权利模块,学生能够在系统管理里进行密码修改,选课管理里进行选课、退选课程,查询管理里进行成绩查询和个人信息查询,以下图:
4.4 老师管理界面
以老师身份登录后,就进入老师权利模块,老师能够在系统管理里进行密码修改,录入管理里进行录入学生成绩处理,查询管理里查询教学安排、学生成绩、个人信息。
4. 5 管理员管理界面
以管理员身份登录后,就进入管理员权利模块,管理员能够在系统管理里进行密码修改,在学生管理里查询、添加、修改、删除学生信息,在课程管理里查询、添加、修改、删除课程信息,在老师管理里查询、添加、修改、删除老师信息,在选课管理里查询、添加、修改、删除选课信息。
第五章 系统测试
5.1 用户登录测试
登录信息验证测试:
5.2 学生管理信息测试
5.2.1 密码修改
5.2.2 学生选、退选课程
5.2.3 个人信息、成绩查询
5.3 老师管理信息测试
5.3.1 选课成绩管理(查询、录入、修改和删除学生选课成绩)
5.3.2 教学安排、个人信息查询
5.4 管理员管理信息测试
5.4.1 查询学生信息
5.4.2 添加学生信息
5.4.3 修改学生信息
5.4.4 删除学生信息
第六章 总结
自从开设了数据库原理和应用这门课,经过学习,我对数据库原理和使用有了一定了解,不过对于数据库实际应用并不是那么清楚明白,不过有了这次数据库课程设计,我对数据库有了新认识。“学生网上选课系统”这个课题确实给我带来了很大挑战,开始认为只是建立多个表,以后才知道数据库设计是一个系统,还存在着表和表之间联络,所以我必需要有一个宏观上认识。
在此次课程设计中,我学到了很多新知识,比如怎样使用SQL Server创建完整数据库、怎样使用java设计页面、怎样将页面合理和数据库进行连接等等。在课程设计过程当中也会碰到很多自己不能处理问题,经过自己查阅资料,向同学老师寻求帮助,最终这些问题全部处理了,我“学生网上选课系统”也愈加完整合理。同时也提升了我自学能力,在设计过程中,查阅了不少资料,包含网络资料和书籍等,让我收获了很多意想不到东西,对以后数据库学习和应用有了很大程度上提升!
关键参考文件
[1]《数据库系统概论》 作者:王珊 萨师煊 (第五版 高等教育出版社)
[2]《Java应用开发和实践》 作者:刘乃琦 苏畅 (人民邮电出版社)
[3]《软件工程》 作者:钱乐秋 赵文耘 牛军钰 (第二版 清华大学出版社)
展开阅读全文