数据库原理及应用课程设计.docx
《数据库原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用课程设计.docx(28页珍藏版)》请在冰豆网上搜索。
数据库原理及应用课程设计
数据库原理及应用课程设计
设计说明书
学生学籍管理系统设计与实现
学生姓名
学号
班级
成绩
指导教师
计算机科学与技术系
2009年12月24日
数据库原理及应用课程设计评阅书
题目
学生学籍管理系统设计与实现
学生姓名
学号
指导教师评语及成绩
指导教师签名:
年月日
答辩评语及成绩
答辩教师签名:
年月日
教研室意见
总成绩:
室主任签名:
年月日
课程设计任务书
2009—2010学年第一学期
专业:
信息管理与信息系统学号:
姓名:
课程设计名称:
数据库原理及应用课程设计
设计题目:
学生学籍管理系统设计与实现
完成期限:
自2009年12月14日至2009年12月25日共2周
设计依据、要求及主要内容(可另加附页):
通过对学校学籍管理业务进行分析、调查,设计学生学籍管理系统。
主要内容及要求如下:
(1)建立数据库
根据系统功能设计的要求以及功能模块的划分,设计相关数据库。
(2)学生信息管理模块
实现学生基本情况的录入、修改、删除等基本操作;对学生基本信息能提供灵活的查询方式。
(3)学生成绩管理模块
实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。
(4)完成一个班级的学期选课功能。
(5)统计功能;系统具有成绩统计、排名等功能。
指导教师(签字):
教研室主任(签字):
批准日期:
年月日
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。
管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
本系统实现的功能有学生信息的录入、修改、删除和查询的功能,学生成绩的管理功能,班级选课功能和统计功能四大功能模块。
本文介绍了在VisualBasic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析访客管理的不足,创建了一套行之有效的计算机管理学生的方案。
文章介绍了访客管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统面友好,操作简单,比较实用。
关键词:
SQL2000server;VB程序设计;学生学籍管理系统;
目 录
1课题描述
随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。
在各大中小学校,用计算机管理学校的信息已经越来越普遍了。
用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性,提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。
该课程设计要求设计一个学籍管理的数据库系统,数据库中包含学生的基本信息,学校院系信息,班级信息以及课程设置的信息。
同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。
而本系统的开发,为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高学校的工作效率;第四,本系统可以使敏感文档更加安全,等等。
我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
2需求分析
需求分析就是分析用户的要求。
在需求分析阶段,系统分析员将分析结果用数据流程图和数据字典表示。
需求分析的结果是否能够准确地反用户的时间要求,将直接影响到后面各个阶段的设计,并影响到系统的设计是否合理和使用。
本次设计的基于SQLServer数据库技术实现学生学籍的管理,适合一般用户的需要。
2.1信息需求分析
学生:
学号,姓名,入学时间,班号,性别,联系电话,出生日期,家庭住址等
课程:
课程号,课程名,课程类型,课程概述等
班级信息:
班号,年级,班主任,教师等
成绩信息:
学生姓名,课程名,课程号,分数,考试编号等。
2.2功能需求分析
系统要实现的主要功能有:
(1)建立数据库
根据系统功能设计的要求以及功能模块的划分,设计相关数据库。
(2)学生信息管理模块
实现学生基本情况的录入、修改、删除等基本操作;对学生基本信息能提供灵活的查询方式。
(3)学生成绩管理模块
实现学生成绩的录入、修改、删除等基本操作;能方便的对学生的各个学期成绩进行查询。
(4)完成一个班级的学期选课功能。
(5)统计功能;系统具有成绩统计、排名等功能。
2.3数据流图
数据流图:
简称DFD,就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。
使用逐步求精的方法,从顶层流程图逐一分解,到最终流程图。
经过详细的调查,弄清了业务流程,在此基础上,构造出系统的逻辑模型,并通过数据流图表示。
如下图
2.4数据字典
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。
数据字典有一下几个要点:
数据项:
数据项是不可再分的数据单位,它直接反映事物的某一特征。
数据结构:
反映了数据之间的组合关系。
数据流:
数据流是数据结构在系统内传输的路径。
数据文件:
数据文件是数据项停留或保存的地方,也是数据流的来源和去向之一。
本系统所需有的数据字典卡片列表如下:
名字:
学生学籍信息
别名:
描述:
学籍管理中存储的所有学生信息(包括所有学生查询的所需信息)
定义:
学生信息=学生学号+学生姓名+学生性别+入校日期+学生班号+出生日期+联系电话+家庭住址+备注
位置:
存储
输出供查询
名字:
课程信息
别名:
描述:
学校开设的课程的基本信息
定义:
课程信息=课程名称+课程编号+课程类型+课程概括
位置:
存储
输出供选择
名字:
成绩信息
别名:
描述:
学生课程的考试成绩
定义:
成绩信息=考试编号+选择班号+选择学号+学生姓名+课程名称+得分
位置:
存储
输出供查询
名字:
查询信息
描述:
用户所提出的查询请求
定义:
查询信息=[学生信息查询信息|课程得分查询信息]
学生信息查询信息=[学生姓名|学生学号|学生班号]
课程得分查询信息=[学生姓名|学生学号|学生班号]
位置:
学生学籍管理系统
课程得分管理系统
名字:
查询结果
描述:
系统完成用户查询请求后所得结果
定义:
查询结果=[学生信息查询信息|课程得分查询信息|选课信息查询信息]
学生信息理查询结果=学生学号+学生姓名+学生性别+入校日期+学生班号+出生日期+联系电话+家庭住址+备注
课程得分理查询结果=考试编号+选择班号+选择学号+学生姓名+课程名称+得分
位置:
学生学籍管理系统
课程得分管理系统
简略数据项如下:
名字:
学生学号
别名:
描述:
唯一地标识学生学籍名单中一个学生定义:
药品编码=6{字符}6
位置:
学生信息表
名字:
备注
别名:
描述:
对学生的描述
位置:
学生信息表
名字:
课程类型
别名:
描述:
描述课程的类型
定义:
课程类型={必修|选修}
位置:
销售信息
名字:
入校日期
别名:
描述:
记录学生入校的时间
定义:
销售日期=8{时间}8
位置:
学生信息表
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图
图3.5系统总体E-R图
3.2逻辑设计
逻辑结构设计的主要目标是将概念结构转换为一个特定的DBMS可处理的数据模型和数据库模式。
该模型必须满足数据库的存取、一致性及运行等各方面的用户需求。
该设计以概念结构设计中的E-R图为主要依据,设计出相关的整体逻辑结构。
根据总E-R图有五个实体但仓库实体在本系统中作用不大而且仅涉及到一个仓库,所以仓库不再单独设计一张表。
再加上一个多对多关系(本系统不考虑供应关系)总共五个关系模式:
学生信息(学号,性别,姓名,班号,入校日期,出生日期,联系电话,家庭住址,备注)
班级信息(班号,年级,班主任,教室)
课程信息(课程编号,课程名称,课程类型,课程描述)
成绩信息(考试编号,姓名,课程,成绩)
3.3物理设计
从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计数据库的内模式,即设计数据的存储结构和存取方法。
数据库物理结构设计是对于给定的逻辑数据模型,选择一个适合的物理结构,主要涉及存取方法与存储结构,它依赖于计算机系统。
1.关系模式
关系数据库系统采用关系模型作为数据的组织方式,现在流行的数据库系统大都是关系数据库系统。
通过对关系模式的优化,得到六个基本表。
表3.1学生信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
student_ID
int
4
PrimaryKey
NotNull
学号
student_Name
char
10
姓名
student_Sex
Char
2
性别
born_Date
Datetime
8
出生日期
class_NO
char
12
班号
tele_Number
Char
11
电话号码
ru_Date
datetime
8
入学日期
comment
varchar
200
备注
address
varchar
50
地址
表3.2课程信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
course_No
Int
4
PrimaryKey
NotNull
课程编号
course_Name
char
10
课程名称
course_Type
Char
10
课程类型
course_Des
char
50
课程描述
表3.3班级信息
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
class_No
Char
12
PrimaryKey
NotNull
班号
grade
char
10
年级
director
Char
10
班主任
classroom_No
Char
10
教室
表3.4年级选课表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
grade
Char
10
PrimaryKey
NotNull
年级
course_Name
Char
10
PrimaryKey
NotNull
课程名
表3.5成绩信息表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
exam_No
Char
10
PrimaryKey
NotNull
考试编码
student_ID
int
4
PrimaryKeyForeignkey
NotNull
学号
student_Name
Char
10
学生姓名
class_No
Char
12
班号
course_Name
Char
10
PrimaryKey
NotNull
课程名称
result
float
8
成绩
表3.6用户登录表
字段名
字段类型
长度
主键或外键
字段值约束
对应中文属性名
user_ID
Char
10
PrimaryKey
NotNull
用户名称
user_PWD
Char
10
PrimaryKey
NotNull
用户密码
user_Des
Char
10
用户描述
2.简单物理设计
在SQLServer2000中,文件夹是按数据库对象的类型建立的,文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的student数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
要建立各个表,选择student数据库中的表,单击鼠标右键,在弹出的菜单中选择“新建表”。
下面的表均使用上述方法制作。
具体在Sqlserver2000环境下,设计用户表,如下图所示:
图3.6数据库表
学生信息表的物理设计如下:
图3.7设计student_Info表
在数据库中,右击student_Info表,返回所有值,然后输入原始数据。
图3.8student_Info表
班级信息表的物理设计如下:
图3.9设计class_Info表
在数据库中,右击class_Info表,返回所有值,然后输入原始数据。
图3.10class_Info表
课程信息表的物理设计如下:
图3.11设计course_Info表
在数据库中,右击course_Info表,返回所有值,然后输入原始数据。
图3.12course_Info表
年级课程信息表的物理设计如下:
图3.13设计gradecourse_Info表
在数据库中,右击gradecourse_Info表,返回所有值,然后输入原始数据。
图3.15gradecourse_Info表
成绩录入表的物理设计如下:
图3.16设计result_Info表
在数据库中,右击result_Info表,返回所有值,然后输入原始数据。
图3.17result_Info表
用户登录表的物理设计如下:
图3.18设计user_Info表
在数据库中,右击user_Info表,返回所有值,然后输入原始数据。
图3.19user_Info表
4系统实现
通过上面系统需求分析,数据库的逻辑结构与物理结构的设计,本章节便可以实现系统。
4.1系统功能结构
具体功能模块图如下:
图4.1系统功能图
4.2模块功能的实现
通过上面章节的系统分析,需求分析,功能模块的设计之后,在此节可以对每个模块功能的实现。
使用VB界面控件可以设计如下主界面。
图4.2系统主界面
4.2.1学籍管理模块
该模块主要描述了系统的登录,添加班级,添加课程,添加成绩,添加学籍等功能,具体的功能如图所示:
1.登录界面:
图4.2.1登录界面
系统通过如下主要代码实现登录界面功能:
txtSQL="select*fromuser_Infowhereuser_ID='"&txtUserName.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
2.添加班级:
图4.2.2添加班级界面
系统通过如下主要代码实现添加班级功能:
txtSQL="select*fromclass_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.MoveFirst
3.添加课程:
图4.2.3添加课程界面
系统通过如下主要代码实现添加课程功能:
txtSQL="select*fromcourse_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
4.添加成绩:
图4.2.4添加成绩界面
系统通过如下主要代码实现添加成绩功能:
comboSID.Clear
comboCourse.Clear
txtSQL="select*fromstudent_Infowhereclass_NO='"&comboClassno.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
While(mrc.EOF=False)
comboSID.AddItemmrc!
student_ID
mrc.MoveNext
txtSQL="select*fromclass_Infowhereclass_No='"&comboClassno.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
Grade=mrc!
Grade
mrc.Close
txtSQL="select*fromgradecourse_Infowheregrade='"&Grade&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
While(mrc.EOF=False)
comboCourse.AddItemmrc!
course_Name
mrc.MoveNext
5.添加学籍:
图4.2.5添加学籍界面
系统通过如下主要代码实现添加学籍功能:
txtSQL="select*fromstudent_Infowherestudent_ID='"&Trim(txtSID.Text)&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
6.添加用户:
图4.2.6添加用户界面
系统通过如下主要代码实现添加用户功能:
txtSQL="select*fromuser_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
7.查询成绩:
图4.2.7查询成绩界面
系统通过如下主要代码实现查询成绩功能:
txtSQL="select*fromresult_Infowhere"
dd
(1)=True
Ifdd(0)Then
txtSQL=txtSQL&"andstudent_Name='"&txtName.Text&"'"
Else
txtSQL=txtSQL&"student_Name='"&txtName.Text&"'
8.查询学籍:
图4.2.8查询学籍界面
系统通过如下主要代码实现查询学籍功能:
txtSQL="select*fromstudent_Infowhere"
dd(0)=True
txtSQL=txtSQL&"student_ID='"&Trim(txtSID.Text)&"'"
9.修改班级:
图4.2.9修改班级界面
系统通过如下主要代码实现修改班级功能:
txtSQL="select*fromcourse_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.MoveFirst
10.修改课程:
图4.2.10修改课程界面
系统通过如下主要代码实现修改课程功能:
txtSQL="select*fromcourse_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.MoveFirst
11.修改成绩:
图4.2.11修改成绩界面
系统通过如下主要代码实现修改成绩功能:
txtSQL="select*fromstudent_Infowherestudent_ID='"&comboSID.Text&"'"
Setmrcc=ExecuteSQL(txtSQL,MsgText)
txtName.Text=mrcc!
student_Name
mrcc.Close
12.修改学籍信息:
图4.2.12修改学籍信息界面
系统通过如下主要代码实现修改学籍信息功能:
txtSQL="select*fromstudent_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.Delete
txtSQL="select*fromstudent_Infowherestudent_ID='"&Trim(txtSID.Text)&"'"
Setmrcc=ExecuteSQL(txtSQL,MsgText)
13.修改密码:
图4.2.13修改密码界面
系统通过如下主要代码实现修改密码功能:
txtSQL="select*fromuser_Infowhereuser_ID='"&UserName&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
mrc.Fields
(1)=Text1
(1).Text
14.设置年级课程:
图4.2.14设置年级课程界面
系统通过如下主要代码实现设置年级课程功能:
txtSQL="select*fromgradecourse_Infowheregrade='"&Trim(comboGrade.Text)&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)o"txtSQL="select*fromcourse_Info"
Setmrc=ExecuteSQL(txtSQL,MsgText)txtSQL="select*fromgradecourse_Infowheregrade='"&comboGrade.Text&"'"
Setmrc=ExecuteSQL(txtSQL,MsgText)
总 结
课程设计是培养学生综合运用所学知识、发现、提出、分