资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
大理学院数学与计算机学院
《数据库系统设计》课程设计报告
班级: 级计算机科学与技术1班
学号: 11514
姓名: 刘秀珍
系统名称: 学生选课系统
总分:
实验报告内容及撰写要求:
一、 需求分析
程序的主要功能描述, 能够用文字、 框图、 用例等方式。
参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。
主要应当包含分析的过程及分析后得到的数据流图和数据字典。
二、 数据库设计
2.1 数据库概念设计
实体关系模型设计, 创立分ER图和总体ER图, 并描述总体E-R图合并时的问题解决。
2.2数据库的逻辑设计
根据概念设计结果, 创立数据库的逻辑模型, 建立在具体DBMS下( SQL SERVER ) 的表结构, 并根据规范化理论对表结构进行优化调整。
同时, 根据应用需求, 创立数据库系统所需的外模式( 视图) 、 模式和内模式( 索引) 等, 另外, 应当根据需求, 建立数据完整性约束( 实体完整性, 参照完整性和用户自定义完整性) 。
三、 系统实现
3.1 数据库访问
1) 数据访问类及实现代码
2) SQL语句
3.2 业务逻辑层类及代码
描述业务流程、 数据处理功能的模块代码
3.3表示层的实现
能够用界面截图及其实现类及核心代码描述
四、 总结
一、 需求分析
1.1背景
全校性选修课开设的目的在于扩大学生的知识面、 加强学生素质教育、 培养复合型高级人才, 具有不可替代的重要性。随着教育改革的不断深入和素质教育的加强, 学分制的实施, 选修课在一个学生的培养计划中占的比重将越来越大。
网上选课系统的出现使同学们能够更加自主、 便捷、 准确的进行选课。可是, 由于一般高校中的学生都比较多, 因此带来了诸多如信息管理等问题, 鉴于需要将学生信息、 选课信息等信息数字化以便于管理维护, 我们便想到了利用数据库能够比较良好地解决此类问题, 由此下面我将设计出一个学生选课系统以供参考。
1.2系统设计要求:
设计出一个学生选课数据库系统的简要要求如下:
1)设计要求
① 建立相应的数据库及相关的表、 属性、 约束、 规则、 默认等;
②输入相应的记录( 每个表不少于20条记录) ;
③编写进行数据管理的存储过程。
2)系统用户由系统管理员、 学生用户和教师用户三类组成。
(1)系统管理员的主要功能:
①用户管理( 对教师、 学生信息的管理和维护) ;
②课程管理( 对课程信息的管理和维护) ;
③选课管理( 实现选课功能开放和禁止、 老师成绩输入开放和禁止) 。
(2)学生用户能实现的功能:
①查询和修改个人信息, 如电话、 EMAIL地址;
②进行选课操作, 包括查看课程设置信息、 选课、 退选、 查看已选课程;
③查看自己当前所选课程的信息和以前所选课程的成绩信息。
(3)教师用户能实现的功能:
①查询和修改个人信息, 如电话、 EMAIL地址;
②课程结束后, 教师对所教授的学生进行成绩登记;
③查看自己的教学安排, 包括讲授课程、 学时数、 以往所教授课程的学生成绩等信息。
1.3 概要分析
选课系统主要满足三类用户的要求: 教务处的系统管理员、 教师和学生, 她们所具有的操作权限以及操作内容是不同的。要求选课系统能够满足以下功能: 系统管理员能对学生信息、 教师信息、 课程信息等进行有效的管理和维护, 包括增加、 删除、 修改等基本维护功能和灵活的查询功能; 教师和学生能够对个人基本信息、 授课、 选课所涉及的有关信息进行查询、 更新等操作。
1.4系统主要功能
学生选课系统分为系统管理员、 教师和学生三类用户, 系统管理员的功能包括维护学生信息、 维护教师信息、 维护课程信息; 教师的功能包括查询和修改个人信息、 学生成绩登记, 查询教学安排; 学生的功能包括查询和修改个人信息、 选课相关操作、 查询选课和选课成绩信息。学生选课系统功能模块如图1-1:
维护学生信息
系统管理员
维护教师信息
维护课程信息
查询和修改个人信息
学生选课系统
教师
查询教学安排
登记学生成绩
查询和修改个人信息
查询选课和选课成绩信息
学生
选课相关操作
图1-1学生选课系统功能模块图
1.5数据流图
学生选课系统数据流图如图1-2所示:
管理员界面
维护信息
管理员登录成功查询
登录
教师界面
退出
教师登录成功
登记成绩
学生登录成功
查询
学生界面
选课相关操作
图1-2学生选课系统数据流图
1.6学生选课系统数据字典
1) 数据元素条目:
数据元素条目
名称: 工号 总编号: 0001—0021
说明: 本校教师编号 编号: 0021
类型: 字符
数据元素条目
名称: 姓名 总编号: 0001—0022
说明: 本校教师姓名 编号: 0022
类型: 字符
数据元素条目
名称: 学号 总编号: 01—21
说明: 本校学生的编号 编号: 21
类型: 字符
数据元素条目
名称: 姓名 总编号: 01—22
说明: 本校学生的姓名 编号: 22
类型: 字符
数据元素条目
名称: 课程号 总编号: 001—021
说明: 课程编号 编号: 22
类型: 字符
数据元素条目
名称: 课程名 总编号: 001—022
说明: 课程名称 编号: 22
类型: 字符
数据元素条目
名称: 成绩编号 总编号: 1—30
说明: 每条记录成绩的编号 编号: 30
类型: 字符
数据元素条目
名称: 成绩 总编号: 1—31
说明: 学生所选课程的期末成绩 编号: 31
类型: 数字
2) 数据存储条目:
数据存储条目
名称: 学生表 总编号: 2—01
说明: 学生个人详细信息的汇总表 编号: D1
结构:
学号
姓名
性别
院系
专业
年龄
电话
Email
数据存储条目
名称: 教师表 总编号: 2—02
说明: 教师个人详细信息的汇总表 编号: D2
结构:
工号
姓名
性别
院系
职称
年龄
电话
Email
数据存储条目
名称: 课程表 总编号: 2—03
说明: 学生选课前可选课程的汇总表 编号: D3
结构:
课程号
课程名
学时
学分
任课教师
数据存储条目
名称: 选课信息表 总编号: 2—04
说明: 学生个人所选修课程信息的汇总表 编号: D4
结构:
学号
课程号
工号
成绩
学分
二、 数据库设计
2.1 数据库概念设计
选课数据库系统中的实体有: 学生、 教师、 课程。
1) 学生的属性: 学号、 姓名、 性别、 院系、 专业、 年龄、 电话、 Email
2) 教师的属性: 工号、 姓名、 性别、 院系、 职称、 年龄、 电话、 Email
3) 课程的属性: 课程号、 课程名、 学时、 学分、 任课教师
2.2 E-R图
各实体的E-R图如下所示:
Email
学号
学生
电话
姓名ming
专业
年龄
性别
院系
图2-1学生
Email
工号
教师
电话
姓名ming
性别
院系
职称
年龄
图2-3教师
课程
学时
课程名
任课教师ing
学分
课程号ing
图2-3课程
学生选课系统实体集的E-R图如图2-4所示:
专业
年龄
性别
院系
姓名ming
电话
学生
Email
学号
m
选课
成绩
学分
课程号ing
n
学时
课程
课程名
m
任课教师
任课
1
Email
工号
教师
电话
姓名ming
性别
院系
职称
年龄
图2-4学生选课系统实体集的E-R图
2.3数据库的逻辑设计
根据概念设计结果, 创立数据库的逻辑模型, 建立在具体DBMS下( SQL SERVER ) 的表结构, 并根据规范化理论对表结构进行优化调整。
同时, 根据应用需求, 创立数据库系统所需的外模式( 视图) 、 模式和内模式( 索引) 等, 另外, 应当根据需求, 建立数据完整性约束( 实体完整性, 参照完整性和用户自定义完整性) 。
1) 逻辑转换
根据E-R图将系统中的概念模型转换为具体的表结构, 详细信息如下:
学生( 学号、 姓名、 性别、 院系、 专业、 年龄、 电话、 Email)
课程( 课程号、 课程名、 学时、 学分、 任课教师)
教师( 工号、 姓名、 性别、 院系、 职称、 年龄、 电话、 Email)
选课信息( 学号、 课程号、 工号、 成绩、 学分)
2) 建立在具体DBMS下( SQL SERVER ) 的表结构
根据上述文字描述, 用拼音为表和列取名, 确定列的数据类型及必要的约束规则, 数据库表的基本结构及说明如下:
(1)学生表
列明
数据类型
约束
说明
xuehao
char(10)
主码
学号
xingming
varchar(20)
not null
姓名
xingbie
varchar(4)
not null
性别
yuanxi
varchar(40)
not null
院系
zhuanye
varchar(40)
not null
专业
nianling
tinyint
not null
年龄
dianhua
char(12)
not null
电话
email
varchar(30)
null
Email
( 2) 课程表
列明
数据类型
约束
说明
kechenghao
char(10)
主码
课程号
kechengming
varchar(50)
not null
课程名
xueshi
int
not null
课程性质
xuefen
int
not null
学分
renkejiaoshi
varchar(20)
not null
任课教师
( 3) 教师表
列明
数据类型
约束
说明
gonghao
char(10)
主码
工号
xingming
varchar(20)
not null
姓名
xingbie
varchar(4)
not null
性别
yuanxi
varchar(40)
not null
院系
zhicheng
varchar(40)
not null
职称
nianling
tinyint
not null
年龄
dianhua
char(12)
not null
电话
email
varchar(30)
null
Email
( 4) 选课信息表
列明
数据类型
约束
说明
chengjibianhao
int
主码, 自动生成
成绩编号
xuehao
char(10)
not null
学号
kechenghao
char(10)
not null
课程号
gonghao
char(10)
not null
工号
chengji
char(10)
not null
成绩
xuefen
int
not null
学分
三、 系统实现
3.1 数据库访问
1) 数据访问类及实现代码
Class DataBaseLink
{
Public string strConn @"Data Source=wgzx-04-0291;Initial Catalog=XueShengXuanKeXiTong ; Integrated Security=true";
{
SqlConnection con=new SqlConnection(strConn);
Return con;
}
}
3) SQL语句
( 1) 创立学生表
CREATE TABLE [dbo].[xueshengbiao](
[xuehao] [char](10) NOT NULL,
[xingming] [varchar](20) NOT NULL,
[xingbie] [varchar](4) NOT NULL,
[yuanxi] [varchar](40) NOT NULL,
[zhuanye] [varchar](40) NOT NULL,
[nianling] [tinyint] NOT NULL,
[dianhua] [char](12) NOT NULL,
[email] [varchar](30) NULL,
( 2) 创立教师表
CREATE TABLE [dbo].[jiaoshibiao](
[gonghao] [char](10) NOT NULL,
[xingming] [varchar](20) NOT NULL,
[xingbie] [varchar](4) NOT NULL,
[yuanxi] [varchar](40) NOT NULL,
[zhicheng] [varchar](40) NOT NULL,
[nianling] [tinyint] NOT NULL,
[dianhua] [char](12) NOT NULL,
[email] [varchar](30) NULL,
( 3) 创立课程表
CREATE TABLE [dbo].[kechengbiao](
[kechenghao] [char](10) NOT NULL,
[kechengming] [varchar](50) NOT NULL,
[xueshi] [int] NOT NULL,
[xuefen] [int] NOT NULL,
[renkejiaoshi] [varchar](20) NOT NULL,
( 4) 创立选课信息表
CREATE TABLE [dbo].[xuankexinxibiao](
[chengjibianhao] [int] NOT NULL,
[xuehao] [char](10) NOT NULL,
[kechenghao] [char](10) NOT NULL,
[gonghao] [char](10) NOT NULL,
[chengji] [float] NOT NULL,
[xuefen] [int] NOT NULL,
四、 总结
1、 经过做学生选课系统的设计报告, 我掌握了SQL相关语句的运用;
2、 我觉得在Visual Studio 环境下编写很不容易, 输入数据的时候比较不方便;
3、 整个设计报告完成后, 我掌握了基本的设计步骤, 对以后做毕业设计可能有一些帮助;
4、 在老师和同学的帮助下, 我做出了一个简单的学生选课系统设计报告。可是, 这次系统设计有很多不足之处, 自己有很多没掌握的知识, 在以后的学习中需要更多的努力。
展开阅读全文