学生选课系统设计报告.docx
《学生选课系统设计报告.docx》由会员分享,可在线阅读,更多相关《学生选课系统设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
学生选课系统设计报告
大理学院数学与计算机学院
《数据库系统设计》课程设计报告
班级:
2012级计算机科学与技术1班
学号:
201211514
姓名:
刘秀珍
系统名称:
学生选课系统
总分:
实验报告内容及撰写要求:
一、需求分析
程序的主要功能描述,可以用文字、框图、用例等方式。
参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。
主要应当包含分析的过程及分析后得到的数据流图和数据字典。
二、数据库设计
2.1数据库概念设计
实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。
2.2数据库的逻辑设计
根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQLSERVER2005)的表结构,并根据规范化理论对表结构进行优化调整。
同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。
三、系统实现
3.1数据库访问
1)数据访问类及实现代码
2)SQL语句
3.2业务逻辑层类及代码
描述业务流程、数据处理功能的模块代码
3.3表示层的实现
可以用界面截图及其实现类及核心代码描述
四、总结
一、需求分析
1.1背景
全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。
随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。
网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。
但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。
1.2系统设计要求:
设计出一个学生选课数据库系统的简要要求如下:
1)设计要求
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.2E-R图
各实体的E-R图如下所示:
图2-1学生
图2-3教师
图2-3课程
学生选课系统实体集的E-R图如图2-4所示:
m
n
m
1
图2-4学生选课系统实体集的E-R图
2.3数据库的逻辑设计
根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQLSERVER2005)的表结构,并根据规范化理论对表结构进行优化调整。
同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。
1)逻辑转换
根据E-R图将系统中的概念模型转换为具体的表结构,详细信息如下:
学生(学号、姓名、性别、院系、专业、年龄、电话、Email)
课程(课程号、课程名、学时、学分、任课教师)
教师(工号、姓名、性别、院系、职称、年龄、电话、Email)
选课信息(学号、课程号、工号、成绩、学分)
2)建立在具体DBMS下(SQLSERVER2005)的表结构
根据上述文字描述,用拼音为表和列取名,确定列的数据类型及必要的约束规则,数据库表的基本结构及说明如下:
(1)学生表
列明
数据类型
约束
说明
xuehao
char(10)
主码
学号
xingming
varchar(20)
notnull
姓名
xingbie
varchar(4)
notnull
性别
yuanxi
varchar(40)
notnull
院系
zhuanye
varchar(40)
notnull
专业
nianling
tinyint
notnull
年龄
dianhua
char(12)
notnull
电话
email
varchar(30)
null
Email
(2)课程表
列明
数据类型
约束
说明
kechenghao
char(10)
主码
课程号
kechengming
varchar(50)
notnull
课程名
xueshi
int
notnull
课程性质
xuefen
int
notnull
学分
renkejiaoshi
varchar(20)
notnull
任课教师
(3)教师表
列明
数据类型
约束
说明
gonghao
char(10)
主码
工号
xingming
varchar(20)
notnull
姓名
xingbie
varchar(4)
notnull
性别
yuanxi
varchar(40)
notnull
院系
zhicheng
varchar(40)
notnull
职称
nianling
tinyint
notnull
年龄
dianhua
char(12)
notnull
电话
email
varchar(30)
null
Email
(4)选课信息表
列明
数据类型
约束
说明
chengjibianhao
int
主码,自动生成
成绩编号
xuehao
char(10)
notnull
学号
kechenghao
char(10)
notnull
课程号
gonghao
char(10)
notnull
工号
chengji
char(10)
notnull
成绩
xuefen
int
notnull
学分
三、系统实现
3.1数据库访问
1)数据访问类及实现代码
ClassDataBaseLink
{
PublicstringstrConn@"DataSource=wgzx-04-0291;InitialCatalog=XueShengXuanKeXiTong;IntegratedSecurity=true";
{
SqlConnectioncon=newSqlConnection(strConn);
Returncon;
}
}
3)SQL语句
(1)创建学生表
CREATETABLE[dbo].[xueshengbiao](
[xuehao][char](10)NOTNULL,
[xingming][varchar](20)NOTNULL,
[xingbie][varchar](4)NOTNULL,
[yuanxi][varchar](40)NOTNULL,
[zhuanye][varchar](40)NOTNULL,
[nianling][tinyint]NOTNULL,
[dianhua][char](12)NOTNULL,
[email][varchar](30)NULL,
(2)创建教师表
CREATETABLE[dbo].[jiaoshibiao](
[gonghao][char](10)NOTNULL,
[xingming][varchar](20)NOTNULL,
[xingbie][varchar](4)NOTNULL,
[yuanxi][varchar](40)NOTNULL,
[zhicheng][varchar](40)NOTNULL,
[nianling][tinyint]NOTNULL,
[dianhua][char](12)NOTNULL,
[email][varchar](30)NULL,
(3)创建课程表
CREATETABLE[dbo].[kechengbiao](
[kechenghao][char](10)NOTNULL,
[kechengming][varchar](50)NOTNULL,
[xueshi][int]NOTNULL,
[xuefen][int]NOTNULL,
[renkejiaoshi][varchar](20)NOTNULL,
(4)创建选课信息表
CREATETABLE[dbo].[xuankexinxibiao](
[chengjibianhao][int]NOTNULL,
[xuehao][char](10)NOTNULL,
[kechenghao][char](10)NOTNULL,
[gonghao][char](10)NOTNULL,
[chengji][float]NOTNULL,
[xuefen][int]NOTNULL,
四、总结
1、通过做学生选课系统的设计报告,我掌握了SQL相关语句的运用;
2、我觉得在VisualStudio2005环境下编写很不容易,输入数据的时候比较不方便;
3、整个设计报告完成后,我掌握了基本的设计步骤,对以后做毕业设计可能有一些帮助;
4、在老师和同学的帮助下,我做出了一个简单的学生选课系统设计报告。
但是,这次系统设计有很多不足之处,自己有很多没掌握的知识,在以后的学习中需要更多的努力。