图书管理系统系统 2.docx
《图书管理系统系统 2.docx》由会员分享,可在线阅读,更多相关《图书管理系统系统 2.docx(24页珍藏版)》请在冰豆网上搜索。
图书管理系统系统2
学号09030026
天津理工大学中环信息学院
数据库原理与应用
设计说明书
图书管理系统
起止日期:
2010年12月20日至2010年12月31日
学生姓名
路新丽
班级
09信息科学1班
成绩
指导教师
李玮
电子信息工程系
2010年12月28日
一、创建数据库和表数据库密码(119921)
1)创建表
创建表需要先创建表的结构。
需要创建3张表:
“图书”、“借阅者”和“借阅记录”,各表的内容和结构分别如下表1-1~1-6所示。
1-1“图书”表信息
1-2“借阅者”表信息
1-3“借阅记录”表信息
表11-1“图书”表结构
字段名称
数据类型
字段大小
主键
其它
图书编号
文本
10
主键
分类名
文本
20
书名
文本
50
作者
文本
20
出版社
文本
20
定价
货币
默认
小数位数为1
库存量
数字
整型
表11-2“借阅者”表结构
字段名称
数据类型
字段大小
主键
其它
借书证号
文本
10
主键
姓名
文本
10
性别
文本
2
设置为查阅列表
默认为男
出生日期
日期/时间
默认
短日期
系
文本
10
班级
文本
10
表11-3“借阅记录”表结构
字段名称
数据类型
字段大小
主键
其它
借书证号
文本
10
主键
设置为查阅列表
图书编号
文本
10
主键
设置为查阅列表
借书日期
日期/时间
主键
短日期
还书日期
日期/时间
短日期
已还
是/否
默认
默认为否
3.创建表之间的关系
表与表之间是通过相关字段进行连接来建立关系的,系统中“借阅者”表与“借阅记录”表之间通过“借书证号”字段建立了一对多的关系,“图书”表与“借阅记录”表通过“图书编号”字段建立了一对多的关系,如图1-7所示。
创建表之间的关系时均要实施参照完整性、设置级联更新和级联删除。
图1-7表之间的关系
2)创建相关窗体
根据功能模块的需求创建各个窗体,窗体中涉及到的查询、报表和宏也同时设计出来。
本系统的数据维护窗体主要有:
图书信息维护窗体、借阅者信息维护窗体。
1.创建图书窗体
(1)使用“自动创建窗体:
纵栏式”的方法创建“图书”窗体。
窗体的记录源为“图书”表,将窗体保存为“图书信息维护”。
(2)打开窗体的设计视图,调整标签和文本框的大小和位置,将它们的字体均设置为“宋体、加粗”、字号设置为“11”。
(3)使用命令按钮添加“添加记录”、“保存记录”、“删除记录”、“打印记录”、“关闭窗体”按钮,自动生成相应的记录和关闭窗体的操作。
(3)使用命令按钮添加4个图形样式的按钮
作为导航按钮,自动生成浏览记录的操作。
(4)将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。
(5)选择“格式”|“自动套用格式”命令,将窗体的格式设置为“宣纸”,将窗体保存为“图书的信息维护”,窗体视图如图1-8所示。
图1-8“图书”数据维护窗体
各个按钮功能的实现结果如下:
(1)添加记录
(2)保存记录
2.借书和还书窗体
1.借书
根据输入的借书证号和图书编号,单击“借书”按钮时需将“图书”表中相应记录的“库存量”减1同时在“借阅记录”表中添加一条新记录。
因此在创建借书窗体的同时还需要分别创建借书修改图书库存量的查询、借书追加借阅记录的查询和借书宏。
(1)创建借书窗体
使用窗体设计视图创建借书窗体,在窗体中添加3个未绑定的文本框,窗体各控件的主要属性设置如表1-9所示。
将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,窗体的设计视图如图1-9所示,将窗体保存为“借书”。
表11-4“借书”窗体的属性表
对象
属性
说明
标签1
名称:
label1标题:
借书证号
标签2
名称:
label3标题:
图书编号
标签3
名称:
label5标题:
借书日期
文本框1
名称:
Text0
控件提示文本:
请输入借书证号
在其中输入借书证号
文本框2
名称:
Text2
控件提示文本:
请输入图书编号
在其中输入图书编号
文本框3
名称:
Text4
单击时默认为当前日期
(2)创建借书修改图书数量查询
单击“借书”按钮时,需根据“借书”窗体文本框(名称为Text2)中输入的图书编号将“图书”表中相应记录的“库存量”字段的值减1,因此需要设计一个更新查询,查询设计视图如图1-10所示。
将查询保存为“借书修改图书数量”。
图11.1“借书修改图书数量”设计视图
(3)创建借书追加借阅记录查询
单击“借书”按钮,将文本框中输入的借书证号、图书编号、借书日期增加到“借阅记录”表的新记录中。
因此需要设计一个追加查询用于追加借阅记录,具体方法为在“SQL”视图中输入如下的SQL语句:
InsertInto借阅记录(借书证号,图书编号,借书日期)
Values(Forms!
借书窗体!
Text0,Forms!
借书窗体!
Text2,Forms!
借书窗体!
Text4);
将查询保存为“借书追加记录”。
(4)创建借书宏
功能:
打开“借书修改图书数量”和“借书追加查询”。
表1-11所示为“借书”宏的设置。
表1-11“借书”宏的设置表
宏名
操作
设置
借书
OpenQuery
查询名称:
借书追加查询
OpenQuery
查询名称:
借书修改图书数量
(5)创建借书返回宏
功能:
打开“主控窗体”,关闭当前窗体。
表1-12所示为“借书返回”宏的设置。
表1-12“借书返回”宏的设置表
宏名
操作
设置
借书返回
OpenForm
窗体名称:
主控窗体
Close
对象名称:
借书窗体
(6)修改借书窗体
使用窗体设计视图修改“借书”窗体,在窗体上添加2个命令按钮:
“返回”和“借书”,如图1-13所示。
将2个命令按钮分别与“借书返回”宏和“借书”宏相连接,命令按钮的设置如表1-14所示。
表1-14“借书”窗体命令按钮属性表
对象
属性
说明
按钮1
名称:
command1标题:
返回
单击事件:
“借书返回”宏
按钮2
名称:
command2标题:
借书
单击事件:
“借书”宏
单击“借书日期”文本框Text4时,自动生成当前系统日期,通过在模块中编写如下代码实现:
PrivateSubText4_Click()
Text4.Text=Date
EndSub
借书操作结果如下:
1-15借书窗体
1-16按借书按钮后“借书记录中数据
2.还书
根据还书窗体文本框中输入的借书证号和图书编号,单击“还书”按钮时更新3项内容:
(1)将“图书”表中相应记录的“库存量”增1。
(2)将“借阅记录”表中的“已还”字段设置为“True”。
(3)将“借阅记录”表中的“还书日期”更新为还书窗体中的还书日期(名称为Text4)。
因此在创建还书窗体的同时还需要创建还书修改图书库存量、还书日期、已换状态的查询和还书返回宏。
(1)创建还书窗体
使用窗体设计视图创建还书窗体,在窗体中添加3个未绑定的文本框,窗体各控件的主要属性设置如表2-1所示。
将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,窗体的设计视图如图2-2所示,将窗体保存为“还书窗体”。
表2-1“还书”窗体的属性表
对象
属性
说明
标签1
名称:
label1标题:
借书证号
标签2
名称:
label3标题:
图书编号
标签3
名称:
label5标题:
还书日期
文本框1
名称:
Text0
控件提示文本:
请输入借书证号
在其中输入借书证号
文本框2
名称:
Text2
控件提示文本:
请输入图书编号
在其中输入图书编号
文本框3
名称:
Text4
单击时默认为当前日期
图2-2“还书”窗体设计视图
(2)创建还书窗体的查询
创建一个更新查询用于修改图书的库存量、已还状态和还书日期,查询设计视图如图2-3所示,将查询保存为“还书更改数量状态日期”。
2-3“还书修改图书数量”查询设计视图
(3)创建还书返回宏
功能:
打开“主控窗体”,关闭当前窗体。
表2-4所示为“还书返回”宏的设置。
表2-4“还书返回”宏的设置表
宏名
操作
设置
还书返回
OpenForm
窗体名称:
主控窗体
Close
对象名称:
还书窗体
(4)修改还书窗体
使用设计视图修改“还书”窗体,在窗体上添加2个命令按钮:
“返回”和“还书”,如图2-4所示。
将2个命令按钮分别与“还书返回”宏和“还书”宏相连接,命令按钮的设置如表2-5所示。
图2-4“还书窗体”窗体视图
表2-5“还书”窗体的属性表
对象
属性
说明
按钮1
名称:
command1标题:
返回
单击事件:
“还书返回”宏
按钮2
名称:
command2标题:
还书
使用命令按钮向导创建
“还书”按钮使用命令按钮向导创建:
在对话框中依次选择“杂项”-“运行查询”-“还书更改数量状态日期”。
并选择“格式-自动套用格式-远征”。
●在借书窗体中的借书证号、图书编号分别输入:
09030026B013还书运行结果如下:
2-6还书窗体2-7运行后表中记录结果
3.创建查询
在查询模块中包含“查询出版社信息”、“查询借阅者借书信息”、“按书名模糊查询”、“按分类名模糊查询”、“查询未还书信息”等子模块,因此创建查询窗体前应先创建查询模块中的各个窗体。
1.创建查询出版社信息窗体
(1)创建图书子窗体
以“图书”表为记录源,使用“自动创建窗体:
纵栏式”创建窗体,将窗体的“记录选择器”和“分隔线”属性设置为“否”,将窗体保存为“图书子窗体”。
(2)创建查询
在查询的“SQL”视图中输入如下的SQL语句:
SelectDistinct图书.出版社
From图书;
并保存为“查询出版社”。
运行结果如下:
2-8查询结果
(3)创建按出版社查询窗体
使用设计视图创建“按出版社查询窗体”,设置窗体的记录源为“查询出版社”。
在窗体中使用组合框向导添加一个组合框,组合框的记录源为查询中的“出版社”字段,将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。
在窗体中添加子窗体“图书子窗体”,当在主窗体组合框中的下拉列表框中选择一个出版社时,子窗体中显示出相应出版社的图书信息,窗体视图如图3-1所示。
图3-1“按出版社查询窗体”窗体视图图3-2“组合框向导”对话框
使用组合框向导添加组合框时,一定要选择“组合框向导”对话框中“在基于组合框中选定的值而创建的窗体上查找记录”如3-2
2.创建按书名模糊查询窗体
(1)创建按书名模糊查询:
需要创建带通配符的参数查询,查询设计视图如图3-3所示,将查询保存为“按书名模糊查询”。
图3-3“按书名模糊查询”设计视图
同理,“按分类名模糊查询”窗体如3-4
3-4按分类名模糊查询视图
4.创建未还书信息窗体
(1)创建未还书查询
查询的记录源需要三张表:
“借阅者”、“借阅记录”和“图书”,分别选择每张表中的相关字段,查询设计视图如图4-1所示,将查询保存为“未还书查询”。
图4-1“未还书查询”设计视图
①因为查询未还书信息,需要将“借阅记录”表的“已还”字段的条件行设置为“False”。
②为了使查询结果更加满意,在不更改表结构的情况下,需要添加一个计算字段“应还日期”。
设借书期限设定为30天,则“应还日期”通过计算表达式“[借书日期]+30”得出。
(2)创建未还书窗体
使用“自动创建窗体:
表格式”的“按书名模糊查询”窗体,窗体的记录源为“未还书查询”,单击“格式”|“自动套用格式”命令,将窗体格式设置为“宣纸”。
将窗体保存为“未还书窗体”,窗体视图如图4-2所示。
图4-2“未还书查询窗体”窗体视图
4.查询借阅者借书信息窗体
(1)创建某一借阅者借书记录窗体
使用设计视图创建“某一借阅者借书记录”窗体,在窗体上利用按钮向导创建“查询”和“关闭窗体”按钮,并在按钮向导中选择“窗体操作—打开窗体”分别打开“某一借阅者借书记录子窗体”和关闭当前窗体。
窗体视图如图4-3所示,窗体中文本框的名称为Text0。
图4-3“某一借阅者借书记录”窗体视图
(2)创建某一借阅者借书记录查询
需要使用参数查询,查询设计视图如图4-4所示,将查询保存为“查询某一借阅者借书记录”。
去掉“借书证号“行其显示行的“√”
图4-4“查询某一借阅者借书记录”设计视图
(3)创建某一借阅者借书记录子窗体
以查询“查询某一借阅者借书记录”为记录源,使用“自动创建窗体:
表格式”窗体,并在“窗体页脚”处利用按钮向导创建“返回”按钮,功能是返回到“某一借阅者借书记录”窗体,将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。
窗体的设计视图如图4-5所示,将窗体保存为“某一借阅者借书记录子窗体”。
图4-5“某一借阅者借书记录”窗体设计视图
5)创建查询窗体
使用设计视图的方法创建查询窗体,窗体中的按钮通过命令按钮向导创建,功能是打开对应的查询子窗体,窗体视图如图11.24所示。
5-1“查询窗体”5-2“统计”窗体
统计
使用窗体设计视图创建统计窗体,将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,将窗体保存为“统计”。
在窗体中使用命令按钮向导创建如图11.25所示的“按出版社统计图书”、“按分类名统计图书”、“未还书统计”3个按钮,分别打开相应的报表。
“返回主控窗体”按钮通过将其“单击”事件设置为“返回”宏实现,“返回”宏的设置如表5-3所示。
宏名
操作
设置
返回主控窗体
OpenForm
窗体名称:
主控窗体
Close
对象类型:
窗体
对象名称:
统计
表5-3“返回”宏的设置表
6)使用生成表查询设计“超过借书期限”查询(自己创建)
可查询超出借书期限的借书记录。
包含了借书证号、图书编号、借阅者姓名、借书日期和还书日期。
运用生成表查询创建名为“超过借书期限”创建相应窗体.
SELECT借阅记录.借书证号,借阅记录.图书编号,借阅记录.借书日期,借阅记录.还书日期,借阅记录.已还INTO超过借书期限
FROM借阅记录;
运行结果如下:
7)创建删除已还记录查询(自己创建)
为了方便清晰的查看未还记录者信息,创建删除已还记录查询,将表中已还书者的信息删除。
在设计视图中创建并选择“删除查询”,输入如下数据,见图:
运行结果如下:
二、报表创建
使用报表可以方便地浏览各种信息,因此根据需要设计如下报表:
1.创建“浏览借阅者信息”报表和“浏览图书信息”报表
可以使用自动创建报表的方法创建这两张报表,报表的记录源分别为“借阅者”表和“图书”表。
图6-1所示为“浏览借阅者信息”报表的预览效果。
图6-1“浏览借阅者信息”报表的预览效果
2.按出版社统计图书
使用报表向导生成“按出版社统计图书”报表,并且按图11.27所示修改报表的设计视图,报表的预览效果如图11.28所示。
图6-1“按出版社统计图书”报表的部分预览效果
(1)在报表向导中按“出版社”进行分组,并对“库存量”字段进行汇总设计。
(2)“按分类名统计图书”报表也可以用上面的方法进行设计,报表的预览效果如图11.29所示。
图11.2“按分类名统计图书”报表的部分预览效果
3.未还书报表
以前面创建的“未还书”查询(图11.19)为记录源设计“未还书报表”,报表的设计视图如图11.30所示,图11.31所示为报表的预览效果。
图11.3“未还书报表”的预览效果
三、登录系统设计
将已经创建完成的数据库窗体和报表组织在一起,便于操作。
主要包括创建登录窗体、创建主控窗体、创建数据库密码等。
1.创建登录窗体
当输入正确的用户名“路新丽”和密码“119921”时,单击“确定”按钮打开“主控窗体”。
创建宏如7-1本系统设计的登录窗体如图7-2所示,“登录”宏组的设置如表11-12所示。
图7-2“登录窗体”视图
表7-1“登录”宏组设置表
宏名
条件
操作
设置
确定
[Text0]="admin"And[Text2]="abc"
OpenForm
对象名称:
主控窗体
Close
对象名称:
登录窗体
[Text0]<>"admin"Or[Text0]IsNull
MsgBox
消息:
您输入的用户名有误,请重新输入!
类型:
警告?
标题:
警告!
SetValue
项目:
Text0
表达式:
""
GoToControl
控件名称:
Text0
[Text2]<>"abc"Or[Text2]IsNull
MsgBox
消息:
您输入的密码有误,请重新输入!
类型:
警告?
标题:
警告!
SetValue
项目:
Text2
表达式:
""
GoToControl
控件名称:
Text2
退出
Close
对象名称:
登录窗体
将登录窗体设置为启动窗体。
2.创建主控窗体
根据图11.1所示的功能模块,使用窗体设计视图创建主控窗体,在窗体上添加一个标签,输入“图书借阅系统”,窗体布局如图7-3所示。
主控窗体中的每一个按钮都能打开相应的子模块,表7-4所示为“主控窗体”的属性表
图7-3主控窗体
表7-4“主控窗体”的属性表
对象
属性
说明
标签
名称:
label1
标题:
图书借阅系统
字体:
隶书字号:
36
前景色:
255(红色)
主体
背景色:
15527384
选项组1附属标签
标题:
数据维护
包含“图书”和“借阅者”按钮
选项组2附属标签
标题:
基本功能
包含按钮3~按钮8
按钮1
标题:
图书
打开图书信息维护窗体
按钮2
标题:
借阅者
打开借阅者信息维护窗体
按钮3
标题:
浏览图书
打开浏览图书信息报表
按钮4
标题:
浏览借阅者
打开浏览借阅者信息报表
按钮5
标题:
还书
打开借书窗体
按钮6
标题:
借书
打开查询窗体
按钮7
标题:
查询
打开查询窗体
按钮8
标题:
统计
打开统计窗体
3.创建数据库密码
在数据库“文件—打开”选择自己创建的Acess文件,并在“打开”选项中选择“以独占方式打开”,在“工具—安全—设置数据库密码”设置密码,并在“工具—启动”作如下设置,完成。
课程设计心得体会
两周的课程设计已经完成,但从自己的亲自操作过程中我学到了很多知识,不只是有课程内的知识,还有可以让我受用终身的东西。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过这次的课程设计,可以巩固我们对数据库基本原理和基础理论的理解,掌握数据库应用系统设计开发的基本方法,进一步提高我们综合运用所学知识的能力,让我们可以通过实践操作来验证理论与实践的结合,使我们对所学的理论知识得到更好的理解,初学这门课程认为它只是我们应付考试的学科,对计算机的另一个方面的接触,但通过对其理论知识的学习和课程设计后我改变了这样的看法,其实他在我们的实际应用中用处很大,比如:
在工厂中,可以通过数据库来对职工的个人信息、考勤、个人工作情况等进行系统的统计,可以方便的更改或添加数据减少了人为的操作,提高了生产的效率。
它在生活中的作用不仅仅是我们想象的那样,更明白了这门学科对我们学习的重要性只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重。
但通过老师的帮助我们解决了问题。
我明白了遇到困难永不放弃的重要性,要坚定自己的观点,只要自己动手就会有所收获,要有迎难而上的精神,不在难题前退缩,我领悟了只有坚持不懈才会取得胜利。
知识的获得是无止境的,只要你想学,只要你行动,没有什么会难倒我们的。
回首这两个星期的课程设计,我很欣慰。
因为我有了动力,有了勇气。