数据库课程设计学生学籍管理系统设计与实现.docx
《数据库课程设计学生学籍管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生学籍管理系统设计与实现.docx(21页珍藏版)》请在冰豆网上搜索。
数据库课程设计学生学籍管理系统设计与实现
数据库原理及应用课程设计
学生学籍管理系统设计与实现
学生姓名
学号
班级
指导教师
2010年12月28日
课程设计任务书
2010—2011学年第一学期
专业:
信息与计算机科学学号:
姓名:
课程设计名称:
数据库原理及应用课程设计
设计题目:
学生学籍管理系统设计与实现
完成期限:
自2010年12月20日至2010年12月31日共2周
设计依据、要求及主要内容:
通过对学校学籍管理业务进行分析、调查,设计学生学籍管理系统。
主要内容及要求如下:
(1)建立数据库
根据系统功能设计的要求以及功能模块的划分,设计相关数据库。
(2)学生信息管理模块
实现学生基本情况的录入、修改、删除等基本操作;对学生基本信息能提供灵活的查询方式。
(3)学生成绩管理模块
实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。
(4)完成一个班级的学期选课功能。
(5)统计功能;系统具有成绩统计、排名等功能。
关键词:
SQL2000server;VC程序设计;学生学籍管理系统;
1课题描述
随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。
在各大中小学校,用计算机管理学校的信息已经越来越普遍了。
用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性,提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
该课程设计要求设计一个学籍管理的数据库系统,数据库中包含学生的基本信息,学校院系信息,班级信息以及课程设置的信息。
同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。
而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第四,本系统可以使敏感文档更加安全,等等。
我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
2需求分析
需求分析就是分析用户的要求。
在需求分析阶段,系统分析员将分析结果用数据流程图和数据字典表示。
需求分析的结果是否能够准确地反用户的时间要求,将直接影响到后面各个阶段的设计,并影响到系统的设计是否合理和使用。
本次设计的基于SQLServer数据库技术实现学生学籍的管理,适合一般用户的需要。
2.1信息需求分析
学生:
学号,姓名,所在系,班号,性别,民族,出生日期,家庭住址等
课程:
课程号,课程名,课程类型,课程老师等
班级信息:
班号,年级,班主任等
成绩信息:
学生姓名,学生学号,课程名,班号,成绩,考试编号等。
2.2功能需求分析
系统要实现的主要功能有:
(1)建立数据库
根据系统功能设计的要求以及功能模块的划分,设计相关数据库。
(2)学生信息管理模块
实现学生基本情况的录入、修改、删除等基本操作;对学生基本信息能提供灵活的查询方式。
(3)学生成绩管理模块
实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。
(4)完成一个班级的学期选课功能。
(5)统计功能;系统具有成绩统计、排名等功能。
2.3数据流图
数据流图:
简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
使用逐步求精的方法,从顶层流程图逐一分解,到最终流程图。
经过详细的调查,弄清了业务流程,在此基础上,构造出系统的逻辑模型,并通过数据流图表示。
如下图
2.4数据字典
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。
数据字典有一下几个要点:
数据项:
数据项是不可再分的数据单位,它直接反映事物的某一特征。
数据结构:
反映了数据之间的组合关系。
数据流:
数据流是数据结构在系统内传输的路径。
数据文件:
数据文件是数据项停留或保存的地方,也是数据流的来源和去向之一。
本系统所需有的数据字典卡片列表如下:
名字:
学生学籍信息
别名:
描述:
学籍管理中存储的所有学生信息(包括所有学生查询的所需信息)
定义:
学生信息=学生学号+学生姓名+学生性别+所在系+学生班号+出生日期+民族+家庭住址
位置:
存储输出供查询
名字:
课程信息
别名:
描述:
学校开设的课程的基本信息
定义:
课程信息=课程名称+课程编号+课程类型+课程老师
位置:
存储
输出供选择
名字:
成绩信息
别名:
描述:
学生课程的考试成绩
定义:
成绩信息=考试编号+选择班号+选择学号+学生姓名+课程号+得分
位置:
存储
输出供查询
名字:
查询信息
描述:
用户所提出的查询请求
定义:
查询信息=[学生信息查询信息|课程得分查询信息]
学生信息查询信息=[学生姓名|学生学号|学生班号]
课程得分查询信息=[学生姓名|学生学号|学生班号]
位置:
学生学籍管理系统
课程得分管理系统
名字:
查询结果
描述:
系统完成用户查询请求后所得结果
定义:
查询结果=[学生信息查询信息|课程得分查询信息|选课信息查询信息]
学生信息理查询结果=学生学号+学生姓名+学生性别+所在系+学生班号+出生日期+民族+家庭住址
课程得分理查询结果=考试编号+选择班号+选择学号+学生姓名+课程名称+得分
位置:
学生学籍管理系统
课程得分管理系统
数据项如下:
属性名
类型
长度
位置
字段值约束
含义说明
学号
字符型
10
学生表
NotNull
唯一标识每个学生
姓名
字符型
10
学生表
用来表示每个学生的姓名
性别
字符型
2
学生表
来表明学生的性别{男,女}
出生日期
字符型
12
学生表
来说明学生的出生日期
班号
字符型
10
学生表
确定每个学生所在班的班号
民族
字符型
10
学生表
表明学生所属民族
所在系
字符型
10
学生表
说明学生所属的系别
地址
字符型
6
学生表
确定学生地址
属性名
类型
长度
位置
字段值约束
含义说明
课程编号
字符型
10
课程表
NotNull
唯一标识一门课程
课程名称
字符型
20
课程表
标识课程的名称
课程类型
字符型
4
课程表
说明课程的类型{必修,选修}
课程老师
字符型
10
课程表
标识每门课程的任课老师
属性名
类型
长度
位置
字段值约束
对应中文属性名
班号
字符型
10
班级表
NotNull
说明学生说在班级的班级号
年级
字符型
4
班级表
NotNull
它可以和班号一起唯一标识一个班
班主任
字符型
20
班级表
NotNull
用来说明每个班级的负责人
对应中文属性名
类型
长度
字段值约束
位置
含义说明
考试编码
字符型
10
NotNull
成绩表
唯一标识考试的编码
学号
字符型
10
NotNull
成绩表
标识考试的学生的学号
学生姓名
字符型
10
成绩表
标识学生姓名
班号
字符型
10
NotNull
成绩表
标识学生所在班班号
课程号
字符型
10
NotNull
成绩表
标识学生选课课程号
成绩
字符型
10
成绩表
标识学生考试成绩
属性名
类型
长度
字段值约束
位置
含义说明
用户名称
字符型
10
NotNull
用户表
标识登录用户的名称
用户密码
字符型
10
NotNull
用户表
标识登录用户的密码
3系统设计
系统设计的任务是确定系统的数据模式、功能结构和系统结构,确定系统支持环境、实现方法和技术。
系统设计的基本内容为:
(1)选择数据库管理系统,建立数据模式。
(2)选择系统支持环境,包括支持系统运行的硬件和软件要求,确定系统实现
功能和方法。
(3)选择系统的基本架构和技术。
3.1数据库概念设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为逻辑结构设计打下基础。
这个阶段用到的工具是E—R图(实体--联系图)。
本系统中有四个实体集:
·学生实体集
·课程实体集
·成绩信息实体集
·班级实体集
E-R图如下
图3.1学生实体E-R图
课程
课程编号
课程老师
课程名称
图3.2课程实体E-R图
图3.3成绩实体E-R图
图3.4班级实体E-R图
学生
性别
学号
姓名
出生日期
民族
地址
班号
m
m
m
n
n
n
n
1
图3.5系统总体E-R图
3.2逻辑设计
逻辑结构设计的主要目标是将概念结构转换为一个特定的DBMS可处理的数据模型和数据库模式。
该模型必须满足数据库的存取、一致性及运行等各方面的用户需求。
该设计以概念结构设计中的E-R图为主要依据,设计出相关的整体逻辑结构。
根据总E-R图有五个实体但仓库实体在本系统中作用不大而且仅涉及到一个仓库,所以仓库不再单独设计一张表。
再加上一个多对多关系(本系统不考虑供应关系)总共五个关系模式:
学生信息(学号,性别,姓名,班号,入校日期,出生日期,联系电话,家庭住址,备注)
班级信息(班号,年级,班主任,教室)
课程信息(课程编号,课程名称,课程类型,课程描述)
成绩信息(考试编号,姓名,课程,成绩)
3.3物理设计
从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计数据库的内模式,即设计数据的存储结构和存取方法。
数据库物理结构设计是对于给定的逻辑数据模型,选择一个适合的物理结构,主要涉及存取方法与存储结构,它依赖于计算机系统。
1.关系模式
关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。
通过对关系模式的优化,得到六个基本表。
表3.1学生信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
student_sno
Char
10
PrimaryKey
NotNull
学号
student_sname
Char
10
姓名
student_ssex
Char
2
性别
borndate
Char
12
出生日期
Classno
Char
10
班号
Nation
Char
10
民族
Sdept
Char
10
所在系
address
Char
6
地址
表3.2课程信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
course_cno
Char
10
PrimaryKey
NotNull
课程编号
course_cname
Char
20
课程名称
course_ctype
Char
4
课程类型
course_teacher
Char
10
课程老师
表3.3班级信息
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
classno
Char
10
NotNull
班号
grade
char
4
NotNull
年级
director
Char
20
NotNull
班主任
表3.4成绩信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
examno
Char
10
PrimaryKey
NotNull
考试编码
sno
char
10
ForeignKey
NotNull
学号
sname
Char
10
学生姓名
classno
Char
10
ForeignKey
NotNull
班号
course_cno
Char
10
ForeignKey
NotNull
课程号
result
char
10
成绩
表3.5用户登录表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
user_uno
Char
10
PrimaryKey
NotNull
用户名称
user_PWD
Char
10
NotNull
用户密码
2.简单物理设计
在SQLServer2000中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
要建立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。
下面的表均使用上述方法制作。
具体在Sqlserver2000环境下,用查询分析器设计用户表,程序代码如下所示:
1,建立学生信息表:
createtablestudent/*学生表*/(
snochar(10)primarykey,
snamechar(10),
sdeptchar(10),
ssexchar
(2)check(ssexin('男','女')),
borndatechar(12),
addresschar(6),
classnochar(10),
nationchar(10)
);
在数据库中,右击student_Info表,返回所有值,然后输入原始数据。
snosnamesdeptssexborndateaddressclassnonation
01张三信息男1988-1-1北京11汉
02李四物理男1989-1-1新疆11回
2,建立课程信息表:
createtablecourse(
cnochar(10)primarykey,
cnamechar(20),
teacherchar(10),
ctypechar(4)check(ctypein('必修','选修'))
);
在数据库中,右击course_Info表,返回所有值,然后输入原始数据。
cnocnameteacherctype
1高数谢老师必修
2科技英语陈老师选修
3概率邢老师必修
4数学分析谢老师必修
3建立班级信息表:
createtableclass(
classnochar(10)primarykey,
directorchar(20),
gradechar(4)
);
在数据库中,右击class_Info表,返回所有值,然后输入原始数据。
classnodirectorgrade
11王老师08
12李老师09
4建立成绩信息表:
createtableexam(
examnochar(10),
snochar(10),
cnochar(10),
snamechar(10),
classnochar(10),
resultchar(4),
primarykey(examno,sno,cno,classno),
foreignkey(sno)referencesstudent(sno),
foreignkey(cno)referencescourse(cno),
foreignkey(classno)referencesclass(classno)
);
在数据库中,右击exam_Info表,返回所有值,然后输入原始数据。
examnosnocnosnameclassnoresult
a011张三1187
b022李四1188
5建立用户表:
createtableusers(
upwdchar(10)primarykey,
unochar(10)
);
在数据库中,右击users_Info表,返回所有值,然后输入原始数据。
upwduno
011101
021102
031103
4系统实现
通过上面系统需求分析,数据库的逻辑结构与物理结构的设计,本章节便可以实现系统。
4.1系统功能结构
具体功能模块图如下:
图4.1系统功能图
总结体会
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节。
是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,数据库系统越来越热门,它应用于各行各业.
回顾起此次数据库课程设计,至今我仍感慨颇多。
从选题到设计,从理论到实践,在短短的几天里来完成确实是一件很不容易的事情,尤其是我没怎么学过什么编辑语言,只有看着C++书一步一步来,可以说得是苦远远多于甜,为了能够按时完成我们的目标我也曾夜战通宵,最近的几天我休息的时间很少了,甚至三天就有两天彻夜未眠,有个很小的错误都要看好长时间才能看出来,一次一次的尝试一次一次的失败,心里想的就好似再来。
但是,我依然没有感到很疲倦。
因为看到自己设计的系统一步一步的能够比较好的的完成预定的目标,完成了各种功能。
无论是界面还是其他的方面我们都尽了最大的努力,为了能很好的调试系统,我一直坐在那里好几个小时,最后看到了自己设计的系统能很好的运行,确实是一件很高兴的事情,什么疲倦都抛到脑后了。
同时我也深深感受到了软件设计者的辛苦。
但是可以学到很多很多的新东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,书本上和课堂上的东西远远不能满足我们需要,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,毕竟我们是第一次课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固等等。
经过这次的课程设计我会在以后的时间里努力的学习一些课外的知识不能仅仅局限在课堂上。
我还懂得了,软件的设计部仅仅是写一条代码,它有需求的分析,数据的设计,用户界面的设计等等。
系统的设计依赖于用户的需求,也就是说你开发的系统要有实用的价值。
还有软件是有程序和文档组成的,我们在开发软件的同时要写有一份具体的使用说明。
我们做任何的事情都要有一定的规范。
我们写程序时这样,写设计说明也是这样,今后做任何的事情都要有这样的心态,要有责任感和做好肯吃苦的准备。