数据库课程设计指导书Word格式.docx
《数据库课程设计指导书Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计指导书Word格式.docx(75页珍藏版)》请在冰点文库上搜索。
备注:
数据库管理系统的样式可以由学生自行定义,可以有自己的创意。
题目一:
人事管理系统
1、系统功能的基本要求:
Ø
员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。
员工各种信息的修改;
对于转出、辞职、辞退、退休员工信息的删除;
按照一定的条件,查询、统计符合条件的员工信息;
至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;
对查询、统计的结果打印输出。
2、数据库要求:
在数据库中至少应该包含下列数据表:
员工基本信息表;
员工婚姻情况表,反映员工的配偶信息;
员工学历信息表,反映员工的学历、专业、毕业时间、学校、外语情况等;
企业工作岗位表;
企业部门信息表。
3、本课题设计的基本要求:
(1)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:
包括程序的运行环境、开发环境、程序的详细设计(包括模块之间的关系,模块的功能、主要功能实现的程序段)
(3)系统的源程序,包括数据库脚本程序。
题目二:
工资管理系统
员工每个工种基本工资的设定
加班津贴管理,根据加班时间和类型给予不同的加班津贴;
按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
企业工资报表。
能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印;
员工考勤情况表;
员工工种情况表,反映员工的工种、等级,基本工资等信息;
员工津贴信息表,反映员工的加班时间,加班类别、加班天数、津贴情况等;
员工基本信息表
员工月工资表。
(3)系统的源程序,包括数据库脚本程序。
题目三:
机票预定系统
每个航班信息的输入。
每个航班的坐位信息的输入;
当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;
旅客在飞机起飞前一天凭取票通知交款取票;
旅客能够退订机票;
能够查询每个航班的预定情况、计算航班的满座率。
航班信息表;
航班坐位情况表;
旅客订票信息表;
取票通知表;
帐单。
本课题设计的基本要求:
(1)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(2)程序设计的报告:
(3)系统的源程序,包括数据库脚本程序。
题目四:
仓库管理系统
产品入库管理,可以填写入库单,确认产品入库;
产品出库管理,可以填写出库单,确认出库;
借出管理,凭借条借出,然后能够还库;
初始库存设置,设置库存的初始值,库存的上下警戒限;
可以进行盘库,反映每月、年的库存情况;
可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询;
库存情况表;
出库单表;
入库单表;
出库台帐;
入库台帐;
借条信息表,反映,借出人,借出时间,借出产品,借出数量,还库时间等。
(4)必须提交系统分析报告,包括系统的功能分析、系统的功能模块设计、数据库的数据字典,数据库的概念结构(E-R图),数据库中的表、视图(如果使用)、存储过程(如果使用)的结构和定义(可以用SQL脚本提供);
(5)程序设计的报告:
(6)系统的源程序,包括数据库脚本程序。
(7)
题目五:
图书借阅管理
背景资料:
1)图书室有各种图书一万多册。
2)每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容简介。
3)借书证记录有借阅者的姓名、所在单位、职业等。
4)凭借书证借书,每次最多能借8本书。
借书期限最长为30天。
设计要求:
1)进行需求分析,编写数据字典。
2)设计E-R图。
3)实现新进图书的数据录入。
4)实现对所有购进图书的分类查询和分类统计。
5)能够按书名、作者等分类查询现有图书的数量。
6)记录借阅者的个人资料和所借图书的书名、书号数据等。
题目六:
员工薪资管理
5)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。
6)该单位下设4个科室,即经理室、财务科、技术科和销售科。
7)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。
8)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。
9)每月个人的最高工资不超过3000元。
工资按月发放,实际发放的工资金额为工资减去扣除。
3)实现按照科室录入个人的基本资料、工资和扣除金额的数据。
4)计算个人的实际发放工资。
5)按科室、职业分类统计人数和工资金额。
6)实现分类查询。
7)能够删除辞职人员的数据。
题目七:
库存物资管理
10)有一个存放商品的仓库,每天都有商品出库和入库。
11)每种商品都有名称、生产厂家、型号、规格等。
12)出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
3)设计出入库单据的录入。
4)实现按商品名称、出入库日期的查询。
5)实现分别按日、月和年对出入库商品数量的统计。
计算机科学与工程学院软件教研室2005-12-10
数据库系统设计实例
学生信息管理系统
系统设计
1系统功能分析
系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。
学生管理系统需要完成的功能主要有:
●有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课和成绩等。
●学生信息的查询,包括输入学生基本信息、所在班级、已学课程和成绩等。
●学生信息的修改。
●班级管理信息的输入,包括输入班级设置,年级信息等。
●班级管理信息的查询。
●班级管理信息的修改。
●学校基本课程信息的输入。
●基本课程信息的修改。
●学生课程的设置和修改。
●学生成绩信息的输入。
●学生成绩信息的修改。
●学生成绩信息的查询。
●学生成绩信息的统计。
2系统功能模块设计
对上述各功能进行集中、分块、按照结构化程序设计的要求,得到如图1-1所示的系统功能模块图。
图1-1系统功能模块图
数据库设计
1数据库需求分析
●学生基本信息:
包括的数据项有:
学生学号、学生姓名、性别、出生日期、班号、联系电话、入校日期、家庭地址、备注等。
●班级信息:
班号、所在年级、班主任姓名、所在教室等。
●课程基本信息:
课程号、课程名称、课程类别、课程描述等。
●课程设置信息:
年级信息、所学课程等。
●学生成绩信息:
考试编号、所在班号、学生学号、学生
姓名、所学课程、考试分数等。
图1-2学生管理系统数据流程图
2数据库概念结构设计
本系统的实体有:
学生实体、班级实体、年级实体、课程实体。
各个实体具体的描述E-R图如图1-3到图1-7所示。
图1-3学生实体E—R图
图1-4班级实体E—R图
图1-5课程实体E—R图
图1-6年级实体E—R图
图1-7实体之间关系E—R图
3数据库逻辑结构设计
现在需要将上面的数据库概念结构转化为SQLServer2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。
学生管理系统数据库中各个表格的设计结果如下面的几个表所示。
每个表表示在数据库中的一个数据表。
表1-1student-info学生基本信息表
表1-2class-info班级基本信息表
表1-3course-info课程基本信息表
表1-4gradecourse-info年级课程设置表格
表1-5result-info学生成绩基本信息表
表1-6user-info系统用户表
4数据库结构的实现
经过前面的需求分析和概念结构设计以后,得到数据库的逻辑结构。
现在就可以在SQLServr2000数据库系统中实现该逻辑结构。
这是利用SQLServer2000数据库系统中SQL查询分析器实现的。
下面给出创建这些表格的SQL语句。
(1)创建系统用户表格user_info
CREATETABLE[dbo].[user_Info](
[user_ID][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[user_PWD][char](10)COLLATEChinese_PRC_CI_ASNULL,
[user_Des][char](10)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
(2)创建学生基本信息表格student_info
CREATETABLE[dbo].[student_Info](
[student_ID][int]NOTNULL,
[student_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[student_Sex][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[born_Date][datetime]NULL,
[class_NO][int]NULL,
[tele_Number][char](10)COLLATEChinese_PRC_CI_ASNULL,
[ru_Date][datetime]NULL,
[address][varchar](50)COLLATEChinese_PRC_CI_ASNULL,
[comment][varchar](200)COLLATEChinese_PRC_CI_ASNULL
(3)创建班级信息表格class-info
CREATETABLE[dbo].[class_Info](
[class_No][int]NOTNULL,
[grade][char](10)COLLATEChinese_PRC_CI_ASNULL,
[director][char](10)COLLATEChinese_PRC_CI_ASNULL,
[classroom_No][char](10)COLLATEChinese_PRC_CI_ASNULL
(4)创建课程基本信息表格course-info
CREATETABLE[dbo].[course_Info](
[course_No][int]NOTNULL,
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Type][char](10)COLLATEChinese_PRC_CI_ASNULL,
[course_Des][char](50)COLLATEChinese_PRC_CI_ASNULL
(5)创建年级课程设置信息表gradecourse-info
CREATETABLE[dbo].[gradecourse_Info](
[course_Name][char](10)COLLATEChinese_PRC_CI_ASNULL
(6)创建学生成绩信息表result-info
CREATETABLE[dbo].[result_Info](
[exam_No][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[class_No][int]NULL,
[result][float]NULL
学生管理系统主窗体的创建
上面的SQL语句在SQLServer2000中查询分析器执行后,将自动产生需要的所有表。
有关数据库结构的所有后台工作已经完成。
现在将通过学生管理系统中各个功能模块的实现,来编写数据库系统的客户端程序。
1.创建工程项目——Student-MIS
为了用VisualBasic创建应用程序,应当使用工程。
一个工程是用来建造应用程序的文件的集合,它包括:
●跟踪所有部件的工程文件(.vbp)。
●每个窗体的文件(.frm)。
●每个窗体的二进制数据文件(.frx),它含有窗体上控件的属性数据。
对含有二进制属性的任何.frm文件都是不可编辑的,这些文件都是自动产生的。
●每个类模块的一个文件(.cls),该文件是可选项。
●每个标准模块的一个文件(.bas),该文件是可选项。
●一个或多个包含ActiveX控件的文件(.ocx),该文件是可选项。
●单个资源文件(.res),该文件是可选项。
启动VisualBasic后,单击File|NewProject菜单,如图所示的工程模块中选择StandardEXE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。
这里我们删除这个窗体,单击File|NewProject菜单,将这个工程项目命名为Student-MIS。
如图1-8:
创建Student-MIS项目
2.创建学生管理系统的主窗体
VisualBasic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。
在SDI的程序中,每个窗体之间是独立的。
而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,它的类型是MDIForm。
本系统采用多文档界面,这样可以使程序更加美观,整齐有序。
单击工具栏的“ADDMDIForm”按钮,生成一个如图1-9所示的窗体,属性设置见表1-7,主菜单的设置方法将在后面介绍。
图1-9程序主窗体
表1-7主窗体及控件属性设置
3.创建主窗体的菜单
在如图1-9所示的主窗体中,单击鼠标右键,选择弹出式菜单中的“MenuEditor”命令,创建如图1-10所示的菜单结构。
图1-10主窗体中菜单结构
4.创建公用模块
在VisualBasic中可以用共用模块来存放整个工程项目公用的函数、全局变量等。
整个工程项目中的任何地方都可以调用公用模块中的函数、变量,这样可以极大地提高代码的效率。
在项目资源管理器中为项目添加一个Module,保存为Module.bas。
下面就可以开始添加需要的代码。
由于系统中各个功能模块都将频繁使用数据库中的各种数据,因此需要一个公共的数据操作函数,用以执行各种SQL语句。
添加函数ExecuteSQL,代码如下:
PublicFunctionExecuteSQL(ByValSQL_
AsString,MsgStringAsString)_
AsADODB.Recordset
'
传递参数SQL查询语句,MsgString传递查询信息
自身以一个数据集对象的形式返回
DimcnnAsADODB.Connection
定义连接
DimrstAsADODB.Recordset
定义字符串
DimsTokens()AsString
异常处理
OnErrorGoToExecuteSQL_Error
用Split函数产生一个包含各个子串的数组
sTokens=Split(SQL)
创建连接
Setcnn=NewADODB.Connection
cnn.OpenConnectString
判断字符串中是否有指定内容
IfInStr("
INSERT,DELETE,UPDATE"
_
UCase$(sTokens(0)))Then
执行查询语句
cnn.ExecuteSQL
返回查询信息
MsgString=sTokens(0)&
_
"
querysuccessful"
Else
创建数据集对象
Setrst=NewADODB.Recordset
返回查询结果
rst.OpenTrim$(SQL),cnn,_
adOpenKeyset,_
adLockOptimistic
rst.MoveLast'
getRecordCount
SetExecuteSQL=rst
MsgString="
查询到"
&
rst.RecordCount&
EndIf
ExecuteSQL_Exit:
清空数据集对象
Setrst=Nothing
中断连接
Setcnn=Nothing
ExitFunction
错误类型判断
ExecuteSQL_Error:
查询错误:
"
Err.Description
ResumeExecuteSQL_Exit
EndFunction
ExecuteSQL函数有两了参数:
SQL和MsgString。
其中SQL用来存放需要执行的SQL语句,MsgString用来返回执行的提示信息。
函数执行时,首先判断SQL语句中包含的内容。
当执行查询操作时,ExecuteSQL函数将返回一个与函数同名的记录名对象(Recordset),所有满足条件的记录包含在对象中。
当执行如删除、更新、添加等操作时,不返回记录集对象。
在ExecuteSQL函数中使用ConnectString函数,这个函数用来连接数据库,代码如下:
PublicFunctionConnectString()_
AsString
返回一个数据库连接
ConnectString="
FileDSN=studentinfo.dsn;
UID=sa;
PWD="
由于在后面的程序中,需要频繁检查各种文本框的内容是否为空,这里定义了Testtxt函数,代码如下:
PublicFunctionTesttxt(txtAsString)AsBoolean
IfTrim(txt)="
Then
Testtxt=False
Testtxt=True
由于学生管理系统启动后,需要对用户进行判断。
如果登录者是授权用户,将进入系统,否则将停止程序的执行。
这个判断需要在系统运行的最初进行,因此将代码放在公用模块中,代码如下:
PublicfMainFormAsfrmMain
PublicUserNameAsString
SubMain()
DimfLoginAsNewfrmLogin
显示登陆窗体
fLogin.ShowvbModal
判断是否授权用户