您好,欢迎来到测品娱乐。
搜索
您的当前位置:首页图书借阅系统(数据库)

图书借阅系统(数据库)

来源:测品娱乐
数据库设计

1.需求分析

图书馆作为一种信息资源的交换场所,图书和用户借阅资料繁多,包含很多数据信息的管理,因此实现图书管理的计算机化,可以简化繁琐的工作模式,有效解决图书借阅过程中的诸多问题,给图书管理员和借阅者带来极大的便利。图书借阅系统是为了满足图书馆借阅图书的工作而设计的,它的功能主要分为数据维护和基本功能两大模块。其中数据维护模块包括图书的数据维护和借阅者的数据维护;基本功能模块包括对图书和借阅者的信息浏览、借书、还书、查询、统计等功能。具体的功能模块如图1所示。

图书借阅系统 数据维护 基本功能 图书管理员信图书 借阅者 查询 借书 还书 统计 浏览借阅者信息 浏览图书信息 查询出版社信息 查询借阅者借书信息 按书名模糊查询 按分类名模糊查询 查询未还书信息 按出版社统计图书 按分类名统计图书 未还书统计 2.概念结构设计 概念结构设计主要是根据需求分析的结果将用户的各种需求用E-R图来描述。一个简单的图书借阅系统的实体包括“图书”和“借阅者”。图.2所示为图书借阅系统的E-R图。

按班级统计借阅者 图书管理员

图.1图书借阅系统的E-R图

3.逻辑结构设计

逻辑结构设计的主要任务是将概念结构设计的基本E-R图转换成具体的关系模型并进行优化,也就是将E-R图转换为关系(表)。本系统的实体为“图书”和“借阅者”,它们之间通过“借阅记录”联系起来。具体的关系模式为:

图书(图书编号,分类名,书名,作者,出版社,定价,库存量) 借阅者(借书证号,姓名,性别,出生日期,系,班级)

借阅记录(借书证号,图书编号,借书日期,还书日期,已还) 具体设计如下:

1. 创建空数据库

(1)在Access窗口中单击“文件”|“新建”命令,打开“新建文件”任务窗格,选择“空数据库”。

(2)在“文件新建数据库”窗口的“文件名”文本框中输入数据库的名称“图书借阅系统”,选择数据库文件的保存位置,单击“创建”按钮。

2. 创建表

需要创建五张表:“图书”,“借阅者”,“借阅记录”“管理员信息”和“出版社”各表的结构如表1~5所示。

表1“图书”表结构

字段名称 图书编号 分类名 书名 作者 出版社 定价 库存量 数据类型 文本 文本 文本 文本 文本 货币 数字 10 20 50 20 20 默认 整型 字段大小 主键 主键 小数位数为1 其它 表2“借阅者”表结构

字段名称 借书证号 姓名 性别 数据类型 文本 文本 文本 10 10 2 字段大小 主键 主键 设置为查阅列表 默认为男 出生日期 系 班级 日期/时间 文本 文本 默认 10 10 短日期 其它 表3“借阅记录”表结构

字段名称 借书证号 图书编号 借书日期 还书日期 已还 数据类型 文本 文本 日期/时间 日期/时间 是/否 10 10 默认 字段大小 主键 主键 主键 主键 其它 设置为查阅列表 设置为查阅列表 短日期 短日期 默认为否 表4“出版社”表结构

字段名称 出版社 数据类型 文本

字段大小 10 主键 主键 其它

表5“管理员信

字段名称 管理员编号 职位 姓名 性别 年龄 数据类型 文本 文本 文本 文本 文本 20 10 10 2 50 字段大小 主键 主键 其它 3. 创建表之间的关系

表与表之间是通过相关字段进行连接来建立关系的,将“借阅者”表与“借阅记录”表之间通过“借书证号”字段建立一对多的关系,“图书”表与“借阅记录”表通过创建表之间的关系时均要实施参照完整性、设置级联更新和级联删除。

创建表之间的关系

4. 录入数据

“图书”表的记录

“借阅记录”表的记录

“出版社”表的记录

“图书管理员”表的记录

数据维护

根据功能模块的需求创建各个窗体,窗体中涉及到的查询、报表和宏也同时设计出来。本系统的数据维护窗体主要有:图书信息维护窗体、借阅者信息维护窗体。

1. 创建图书窗体

创建图书窗体用于图书的数据维护。

(1)使用“自动创建窗体”的方法创建“图书”窗体。窗体的记录源为“图书”表,将窗体保存为“图书”。

(2)打开窗体的设计视图,调整标签和文本框的大小和位置。

(3)使用按钮向导添加“添加记录”、“保存记录”、“删除记录”、 “打印记录”、“关闭窗体”按钮,自动生成相应的记录和关闭窗体的操作。

(3)使用按钮向导添加4个图形样式的按钮

作为导航按钮,

自动生成浏览记录的操作。

(4)将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。

(5)选择“格式”|“自动套用格式”命令,将窗体的格式设置为“远征”,将窗体保存为“图书的信息维护”,窗体视图如图7所示。

7“图书”数据维护窗体 可以用同样的方法创建“借阅者信息维护窗体”。 借书和还书

1. 借书

根据借书窗体中输入的借书证号和图书编号,单击“借书”按钮时需将“图书”表中相应记录的“库存量”减1同时在“借阅记录”表中添加一条新记录。因此在创建借书窗体的同时还需要分别创建借书修改图书库存量的查询、借书追加借阅记录的查询和借书宏。

(1)创建借书窗体

使用窗体设计视图创建借书窗体,在窗体中添加3个未绑定的文本框,窗体各控件的主要属性设置如表4所示。将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,窗体的设计视图如图8所示,将窗体保存为“借书”。

表11-4“借书”窗体的属性表

对象 标签1 标签2 标签3 文本框1 属性 名称:Label2 标题:借书证号 名称:Label4 标题:图书编号 名称:Label6 标题:借书日期 名称:Text0 控件提示文本:请输入借书证号 文本框2 名称:Text2 控件提示文本:请输入图书编号 文本框3 名称:Text4 单击时默认为当前日期 在其中输入图书编号 在其中输入借书证号 说明

2“借书窗体”设计视图

(2)创建借书修改图书数量查询

单击“借书”按钮时,需根据“借书”窗体文本框(名称为Text2)中输入的图书编号将“图书”表中相应记录的“库存量”字段的值减1,因此需要设计一个更新查询,查询设计视图如图9所示。将查询保存为“借书修改图书数量”。Text2不是“图书表”中的字段而是其它对象中的控件,因此使用时需要在其前面加前缀,指明它属于哪个对象。

3“借书修改图书数量”设计视图

(3)创建借书追加借阅记录查询

单击“借书”按钮,将文本框中输入的借书证号、图书编号、借书日期增加到“借阅记录”表的新记录中。

具体方法为在“SQL”视图中输入如下的SQL语句: Insert Into 借阅记录 ( 借书证号, 图书编号, 借书日期 )

Values (Forms!借书窗体!Text0, Forms!借书窗体!Text2, Forms!借书窗体!Text4); 将查询保存为“借书追加记录”。

(4)创建借书宏

功能:打开“借书修改图书数量”和“借书追加查询”。表11-5所示为“借书”宏的设置。

表11-5“借书”宏的设置表

宏名 借书 操作 OpenQuery OpenQuery 设置 查询名称:借书追加查询 查询名称:借书修改图书数量 (5)创建借书返回宏 功能:打开“主控窗体”,关闭当前窗体。表11-6所示为“借书返回”宏的设置。

表11-6“借书返回”宏的设置表

宏名 借书返回 操作 OpenForm Close 设置 窗体名称:主控窗体 对象名称:借书窗体 使用窗体设计视图修改“借书”窗体,在窗体上添加2个命令按钮:“返回”和“借书”,如图10所示。将2个命令按钮分别与“借书返回”宏和“借书”宏相连接,命令按钮的设置如表11-7所示。

4“借书”窗体视图

表11-7“借书”窗体命令按钮属性表

对象 按钮1 按钮2 属性 名称:Command7标题:返回 名称:Command8标题:借书 说明 单击事件:“借书返回”宏 单击事件:“借书”宏 【提示】单击“借书日期”文本框Text4时,自动生成当前系统日期,通过在模块中编写如下代码实现:

Private Sub Text4_Click() Text4.Text = Date End Sub 2. 还书

(1)创建还书窗体

使用窗体设计视图创建还书窗体,在窗体中添加3个未绑定的文本框,窗体各控件的主要属性设置如表11-8所示。将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,窗体的设计视图如图11所示,将窗体保存为“还书”。

表11-8“还书”窗体的属性表

对象 标签1 标签2 标签3 文本框1 属性 名称:Label2 标题:借书证号 名称:Label4 标题:图书编号 名称:Label6标题:还书日期 名称:Text0 控件提示文本:请输入借书证号 文本框2 名称:Text2 控件提示文本:请输入图书编号 文本框3 名称:Text4 单击时默认为当前日期 在其中输入图书编号 在其中输入借书证号 说明

图.5“还书”窗体设计视图

(2)创建还书窗体的查询

创建一个更新查询用于修改图书的库存量、已还状态和还书日期,查询设计视图如图12所示,将查询保存为“还书更改数量状态日期”。

图.6“还书修改图书数量”查询设计视图

(3)创建还书返回宏

功能:打开“主控窗体”,关闭当前窗体。表11-9所示为“还书返回”宏的设置。

表11-9“还书返回”宏的设置表

宏名 还书返回 操作 OpenForm Close 设置 窗体名称:主控窗体 对象名称:还书窗体

(4)修改还书窗体 使用设计视图修改“还书”窗体,在窗体上添加2个命令按钮:“返回”和“还书”,如图13所示。将2个命令按钮分别与“还书返回”宏和“还书”宏相连接,命令按钮的设置如表11-10所示。

图.7“还书窗体”窗体视图 对象 按钮1 属性 名称:command11标题:返回 说明 单击事件:“还书返回”宏 按钮2 名称:Command10标题:还书 使用命令按钮向导创建 【提示】 (1)单击还书日期文本框Text4时,自动生成当前系统日期,设置方法与借书窗体的借书日期相同。 (2)“还书”按钮使用命令按钮向导创建:在对话框中依次选择“杂项”-“运行查询”-“还书更改数量状态日期”。

查询

在查询模块中包含“查询出版社信息”、“查询借阅者借书信息”、“按书名模糊查询”、“按分类名模糊查询”、“查询未还书信息”“查询图书管理员信息”等子模块,因此创建查询窗体前应先创建查询模块中的各个窗体。

1. 创建查询出版社信息窗体

选择窗体组合框的下拉列表框中的某个出版社时,在子窗体中显示出相应出版社的图书信息,因此需要建立带子窗体的窗体。

(1)创建图书子窗体

以“图书”表为记录源,使用自动创建窗体的方法创建一个纵栏式窗体,将窗体的“记录选择器”和“分隔线”属性设置为“否”,将窗体保存为“图书子窗体”。

(2)创建查询

在查询的“SQL”视图中输入如下的SQL语句: Select Distinct 图书.出版社 From 图书;

将查询保存为“查询出版社”。 (3)创建按出版社查询窗体

使用设计视图创建“按出版社查询窗体”,设置窗体的记录源为“查询出版社”。在窗体中使用组合框向导添加一个组合框,组合框的记录源为查询中的“出版社”字段,将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。

在窗体中添加子窗体“图书子窗体”,当在主窗体组合框中的下拉列表框中选择一个出版社时,子窗体中显示出相应出版社的图书信息,窗体视图如图14所示。

图.8“按出版社查询窗体” 窗体视图 图9“组合框向导”对话框

【提示】使用组合框向导添加组合框时,一定要选择“组合框向导”对话框中“在基于组合

框中选定的值而创建的窗体上查找记录”单选钮(只有为窗体选择记录源后,才会出现这个单选钮),如图15所示

2. 创建按书名模糊查询窗体 (1)创建按书名模糊查询:

需要创建带通配符的参数查询,查询设计视图如图16所示,将查询保存为“按书名模糊查询”。

图10“按书名模糊查询”设计视图

我采用同样的方法,创建“按分类名模糊查询”的查询设计视

(2)创建按书名模糊查询窗体

使用自动创建窗体的方法创建“按书名模糊查询”窗体,窗体的记录源为查询—“按书名模糊查询”,使用命令按钮向导创建“关闭窗体”按钮,功能为关闭当前窗体。将窗体的“滚动条”设置为“两者均无”,窗体的“记录选择器”和“分隔线”属性均设置为“否”。运行时,如果在“输入参数值”对话框中输入“哲学”(图17),则窗体视图如图18所示。

图.11“输入参数值”对话框 图.12“按书名模糊查询”窗体视图

又用可以采用同样的方法,创建了“按分类名模糊查询”窗体

3创建未还书信息窗体

创建未还书信息窗体用于查询未还书的信息。 (1)创建未还书查询

查询的记录源需要三张表:“借阅者”、“借阅记录”和“图书”,在“设计网格”区的字段行中分别选择每张表中的相关字段,查询设计视图如图19所示,将查询保存为“未还书查询”。

图13“未还书查询”设计视图

① 因为查询未还书信息,需要将“借阅记录”表的“已还”字段的条件行设置为“False”。 ② 为了使查询结果更加满意,在不更改表结构的情况下,需要添加一个计算字段“应还日期”。设借书期限设定为30天,则“应还日期”通过计算表达式“[借书日期]+30”得出。

(2)创建未还书窗体

使用自动创建窗体的方法创建表格式的“按书名模糊查询”窗体,窗体的记录源为查询—“未还书查询”,单击“格式”|“自动套用格式”命令,将窗体格式设置为“石头”。将窗体保存为“未还书窗体”,窗体视图如图20所示。

图14“未还书窗体”窗体视图

4. 查询图书管理员信息窗体(新增)

根据“某一借阅者借录”窗体文本框(Text0)输入的管理员编号查询其信息。查询时需要创建2个窗体“图书管理员查询子窗体”和“图书管理员查询”

(1)创建图书管理员查询窗体

使用设计视图创建“图书管理员查询”窗体,在窗体上利用按钮向导创建“查询”和“关闭窗体”按钮,功能分别是打开“图书管理员查询子窗体”和关闭当前窗体。窗体视图如图21所示,窗体中文本框的名称为Text0。

图21 “图书管理员查询窗体”窗体视图

2)创建图书管理员查询

需要使用参数查询,查询设计视图如图22所示,将查询保存为“图书管理员查询”。

图.15“图书管理员查询”设计视图

【提示】此查询根据“图书管理员查询”窗体的文本框(名称为Text0)中输入的“管理员编号”进行查询,因此需要在查询中将“管理员编号”字段的条件行设置为“[Forms]![ 图书管理员查询]![Text0]”(可用表达式生成器生成)并去掉其显示行的“√”。

(3)创建图书管理员子窗体

以查询“图书管理员查询”为记录源,使用自动创建窗体的方法创建一个表格式窗体,并在“窗体页脚”处利用按钮向导创建“返回”按钮,功能是返回到“图书管理员”窗体,将窗体的“滚动条”设置为“两者均无”,将“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”。窗体的设计视图如图23所示,将窗体保存为“图书管理员查询子窗体”。

图16“图书管理员查询子窗体”窗体设计视图

同样的方法我又创建了“某一借阅者借录”窗体。

4)创建查询窗体

使用设计视图的方法创建查询窗体,窗体中的按钮通过命令按钮向导创建,打开对应的查询子窗体,窗体视图如图24所示。

图17“查询窗体” 图25 “统计”窗体

5) 删除已经还录(新增) 建立删除查询:

在主控窗体用命令按钮创建“删除还书”按钮。

统计

在窗体中使用命令按钮向导创建如图25所示的“按班级查询借阅者统计”(新增)“图书管理员信息”(新增)“按出版社统计图书”、“按分类名统计图书”、“未还书统计”几个个按钮,分别打开相应的报表。

使用窗体设计视图创建统计窗体,将窗体的“滚动条”设置为“两者均无”,“记录选择器”、“导航按钮”和“分隔线”属性设置为“否”,将窗体保存为“统计”。 “返回主控窗体”按钮通过将其“单击”事件设置为“返回”宏实现,“返回”宏的设置如表11所示

表11“返回”宏的设置表

宏名 操作 OpenForm 返回主控窗体 Close 设置 窗体名称:主控窗体 对象类型:窗体 对象名称:统计 浏览

1.创建“浏览图书管理员”报表和“浏览图书信息”报表 可以使用自动创建报表的方法创建这两张报表,报表的记录源分别为“图书管理员”表和“图书”表。图26所示为“浏览借阅者信息”报表的预览效果。

图18“图书管理员信息”报表的预览效果

2. 按出版社统计图书

使用报表向导生成“按出版社统计图书”报表,并且按图27所示修改报表的设计视图,报表的预览效果如图28所示。

图.19“按出版社统计图书”的报表设计视图

图.20“按出版社统计图书”报表的部分预览效果

(1) 在报表向导中按“出版社”进行分组,并对“库存量”“定价”字段进行汇总设计。 (2)“按分类名统计图书”报表也可以用上面的方法进行设计报表的预览效果如图29所示。

图21“按分类名统计图书”报表的部分预览效果

3. 未还书报表

以前面创建的“未还书”查询为记录源设计“未还书报表”,报表的设计视图如图30所示,图31所示为报表的预览效果。

图22“未还书报表”的设计视图 图23“未还书报表”的预览效果

系统集成

1) 创建数据库密码(新增)

以独占方式打开数据库,在“工具”中的“安全”中设置。 (本数据库密码为:09030045) 2)创建登录窗体

当输入正确的用户名“09030045”和密码“wubo”时,单击“确定”按钮打开“主控窗体”。创建登录窗体和相应宏,本系统设计的登录窗体如图32所示,“登录”宏组的设置如表12所示。

图24“登录窗体”视图

将登录窗体设置为启动窗体方法如下:在“工具”中的“启动”设置如下图

表10“登录”宏组设置表

宏名 确定 条件 [Text0]=\"09030045\"And[Text2]=\"wub操作 OpenForm 设置 对象名称:主控窗体 o\" Close MsgBox 对象名称:登录窗体 消息:您输入的用户名有误,请重新输入! 类型:警告? 标题:警告! [Text0]<>\" 09030045\" Or [Text0] Is Null SetValue GoToControl MsgBox 项目:Text0 表达式:\"\" 控件名称:Text0 消息:您输入的密码有误,请重新输入! 类型:警告? 标题:警告! [Text2]<>\" wubo\" Or [Text2] Is Null SetValue GoToControl 项目:Text2 表达式:\"\" 控件名称:Text2 对象名称:登录窗体 退出 Close 3. 创建主控窗体

使用窗体设计视图创建主控窗体,在窗体上添加一个标签,输入“图书借阅系统”,窗体布局如图33所示。主控窗体中的每一个按钮都能打开相应的子模块,表13所示为“主控窗体”的属性表。

图.25主控窗体

表11“主控窗体”的属性表

对象 标签 属性 名称:标签0 标题:图书借阅系统 前景色:255(红色) 主体 选项组1附属标签 背景色:16776960 标题:数据维护 包含“图书” “借阅者”“管理员信息”按钮 选项组2附属标签 按钮1 按钮2 按钮3 按钮4 按钮5 按钮6 按钮7 按钮8 按钮9 按钮10 标题:基本功能 标题:图书 标题:借阅者 标题:浏览图书 标题:浏览借阅者 标题:还书 标题:借书 标题:查询 标题:统计 标题:管理员信 标题:删除已还 包含按钮3~按钮8 打开图书信息维护窗体 打开借阅者信息维护窗体 打开浏览图书信息报表 打开浏览借阅者信息报表 打开借书窗体 打开查询窗体 打开查询窗体 打开统计窗体 打开管理员信息查询窗体 运行还书删除查询 说明 (注意!)本数据库密码为:09030045 本数据库用户名为:09030045

本数据库登录密码为:wubo

心得体会:

当接触数据库时,我了解到数据库是一个储存数据的“仓库”,仓库中不但有数据而且数据会被分门别类,有条不紊的保存。用它可以把查找文件工作,变得十分简单。接着我便充满激情的开始学习数据库了,但在深入学习的过程中我才发现这并没有那么简单, 在本次课设中充分的展示了这半年的学习成果。

在“图书借阅系统”中我用到了数据库中学到的“表”“查询”“窗体”“报表\"“宏”等操作,在这次课程设计中让我影响最深的一个错误便是无法借书,我首先想到了是“借修改查询”或“借书追加查询”有错误但经过更正后还是不行,在经过一番更改后我终于找到原因:原来同一个人一天只能借同一本书一次。在课程设中有许多问题其实都是数据库中的基础知识点,所以在课程设计时也充分的考察了同学们对这些基础知识的掌握。

通过这次的程序设计,更让我明白了无论什么事都要去做才会发现问题,解决问题。对知识的学习,不能纸上谈兵,要深入去学习,去了解,这样才会有所收获。有许多东西,不是想像中的那么容易,不去实践,永远也不会有提高,尤其是学习计算机方面的知识。 经过半年的学习,数据库对我来说以不再神秘,本次课程设计让我更充分的体会到数据库强大的功能,也深刻的感受到数据库是一门很值得学习的课程,他在我们的日常生活中应用相当的广泛,我在数据库的学习中也是受益匪浅。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- cepb.cn 版权所有 湘ICP备2022005869号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务