图书馆管理系统课程设计报告Word格式.docx
《图书馆管理系统课程设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统课程设计报告Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
在对图书、读者的管理,其实是对图书、读者数据的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
2.1.1需求分析
数据需求
需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。
它决定了以后各步设计的速度和质量。
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
1.图书管理
在图书管理中,主要是对“图书库”中的书籍进行管理,如新增图书更新、修改图书信息、提供图书查询和删除图书
3.图书借阅管理
图书借阅管理就是对借书者的借书和还书进行管理,当借书者借书时,随即对“图书库”、“借书库”和“借书证库”进行相应的管理,并把相关信息提供给图书管理和借书证管理;
还书,则除了上述的几个功能外,还要对还书库进行更新和记录。
4.管理员管理
管理员管理则是根据需要对各个管理员进行管理,并记录和反馈管理员信息。
事务需求
经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如下所示。
(1)任何人都可对图书信息进行查阅。
(2)在用户信息管理部分,要求如下:
●可以浏览用户自身信息。
●可以修改自身登陆密码、和其他(除用户编号外)用户基本信息。
●可以查询自身借阅信息及图书信息等
(3)在管理员信息管理部分,要求如下:
●可以浏览所有用户信息。
●可以浏览管理员自身信息。
●可以对所有用户信息进行维护,包括查询、修改、添加及删除等操作。
●可以修改自身登陆密码、和其他(除管理员编号外)管理员基本信息。
●可以添加管理员。
●可以对所有用户的借阅信息进行维护,包括查询、修改、添加及删除等操作。
●可以对图书信息进行维护,包括查询、修改、添加及删除等操作等。
系统业务逻辑关系
2.1.2概念设计
概念结构设计是指对用户的需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,是整个数据库设计的关键。
概念设计生成E-R图。
图书馆管理
E-R图
2.1.3逻辑设计
(1)用户信息:
包括用户编号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)、用户简介等。
(2)书籍信息:
包括图书编号、书名、丛书类别、作者、出版社、出版时间、图书简介等。
(3)借阅信息:
包括用户编号、图书编号、借书日期、应归还日期、超出还书天数等。
(4)管理者信息:
包括管理者编号、姓名、密码、性别、出生日期、联系方式(联系电话、电子邮件、联系地址)、管理员简介等。
根据这些需要,本系统需要“用户信息”表,“图书信息”表,“借阅信息”表和“管理者信息”表。
2.1.4物理设计
数据库物理设计的任务是为上一阶段得到的数据库逻辑模式,即数据库的逻辑结构选择合适的应用环境的物理结构,既确定有效地实现逻辑结构模式的数据库存储模式,确定在物理设备上所采用的存储结构和存取方法,然后对该存储模式进行性能评价、修改设计,经过多次反复,最后得到一个性能较好的存储模式。
数据库物理设计内容包括记录存储结构的设计,存储路径的设计。
2.1.5数据库实现
数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(1).创建数据库
(1)打开SQL工具“查询分析器”
(2)在查询窗口中键入下列SQL语句
createdatabaseBookSystem
执行上述SQL语句即可新建一名为BookSystem的数据库
(2).创建数据表
一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。
数据表主要用来存放一定格式的记录,数据表中的行被称为记录,列被称为字段。
创建数据表的过程其实就是定义字段的过程。
在此图书管理系统中需要创建四个表,即用户信息表、管理员信息表、图书信息表和用户借书记录表。
创建数据库后,为BookSystem数据库添加数据表,步骤如下。
(1)新建查询窗口
createtableUsers(//创建用户信息表
Uidchar(20)primarykey,//用户编号
Unamevarchar(20)notnull,//姓名
Upwdvarchar(16),//登陆密码
Usexchar
(2)check(Usexin('
男'
'
女'
)),//性别
Uborndatetime,//出生日期
Utelchar(13),//联系电话
Uemailvarchar(30),//电子邮件
Uaddrvarchar(50),//联系地址
Uremarkvarchar(300)//用户简介
)
执行上述SQL语句即可创建户信息窗口相关表格,创建后的用户信息窗口设计如图所示:
createtableManagers(//创建管理员信息表
Midchar(20)primarykey,//管理员编号
Mnamevarchar(20)notnull,//姓名
Mpwdvarchar(16),//登陆密码
Msexchar
(2)check(Msexin('
)),//性别
Mborndatetime,//出生日期
Mtelchar(13),//联系电话
Memailvarchar(30),//电子邮件
Maddrvarchar(50),//联系地址
Mremarkvarchar(300)//管理员简介
)
执行上述SQL语句即可创建管理员信息表相关表格,创建后的管理员信息表窗口设计如图所示:
createtableBooks(//创建图书信息表
Bidchar(10)primarykey,//图书编号
Bnamevarchar(50)notnull,//书名
Bclassvarchar(30),//图书分类
Bwritervarchar(50),//作者
Bbookmanvarchar(26),//出版社
Bborndatetime,//出版日期
Binstrvarchar(500)//图书简介
)
执行上述SQL语句即可创建图书信息表相关表格,创建后的图书信息表窗口设计如图所示:
createtableUB(//创建用户借书记录
Uidchar(20),//用户编号
Bidchar(10),//图书编号
Borrow_timedatetime,//借书日期
Return_timedatetime,//应还书日期
Over_timesmallint,//超出还书天数
primarykey(Uid,Bid),//定义主键
foreignkey(Uid)referencesUsers(Uid),//外来键
foreignkey(Bid)referencesBooks(Bid)//外来键
执行上述SQL语句即可创建用户借书记录相关表格,创建后的用户借书记录设计如图所示:
(3).创建视图
创建视图可以屏蔽数据的复杂性,使用户不必了解数据库的结构,就可以方便地使用和管理数据,简化数据权限管理。
可以使用户只关心她感兴趣的某些特定数据和他们所负责的特定任务,而那些不需要的或者无用的数据则不在视图中显示,在某些情况下由于表结构的变化对应用程序产生不良的影响,因此视图提供了简单而有效地安全机制。
创建视图如下所示:
createview
as
select*
fromBooks
whereBid=@id
whereBname=@name
createview
fromManagers
whereMid=@id
whereMname=@name
selectUid,Bid,Borrow_time,Return_time
fromUB
whereUid=@name
whereBid=@id
(4).索引的创建
创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证每一行数据的唯一性。
第二,可以大大加快数据的检索速度,这也是所以的最主要原因。
第三,可以加速表与表之间的连接,特别是实现数据的参考完整性方面特有意义。
第四,在使用ORDERBY和GROUPBY子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询过程中,使用优化隐藏器,提高系统性能。
创建索引如下所示:
CREATEUNIQUECLUSTERED
INDEX[PK__Books__7C8480AE]ON[dbo].[Books]([Bid])
WITH
DROP_EXISTING
ON[PRIMARY]
INDEX[PK__Managers__79A81403]ON[dbo].[Managers]([Mid])
INDEX[PK_UB]ON[dbo].[UB]([Uid],[Bid])
INDEX[PK_Users]ON[dbo].[Users]([Uid])
2.2程序设计
2.2.1系统流程图
在本系统中准备通过如下窗体来实现数据维护的功能。
(1)主窗体:
管理着各个子窗体。
(2)“用户”子窗体:
管理用户信息、显示图书及借阅信息
(3)“管理员”子窗体:
管理用户、图书及借阅信息。
系统流程图如图所示:
系统流程图
2.2.2数据库连接过程
OptionExplicit
PublicconstrAsString'
数据库连接信息
PublicrstAsADODB.Recordset'
数据库内的记录
PublicconAsADODB.Connection
PublicSubconnect_db()
constr="
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=BookSystem;
DataSource="
'
数据库引擎+路径
Setcon=NewADODB.Connection'
新建一个数据库连接
con.CursorLocation=adUseClient'
用于客户端(ADOR)Recordset对象,游标库属性必须为adUseClient
con.ConnectionString=constr'
连接信息
con.Open
EndSub
PublicSubsel_table(table_nameAsString,where_strAsString)
DimsqlAsString
Setrst=NewADODB.Recordset
sql="
select*from"
&
table_name&
"
where_str&
"
rst.Opensql,con,adOpenDynamic,adLockOptimistic
rst.Requery
PublicSubupd_table(table_nameAsString,set_strAsString,where_strAsString)
update"
set"
set_str&
where"
con.BeginTrans
con.Executesql
con.CommitTrans
PublicSubdel_table(table_nameAsString,whereAsString)
deletefrom"
where&
PublicSubins_table(table_nameAsString,intoAsString,valuesAsString)
insertinto"
into&
values&
功能显示
运行程序后首先显示主窗体,如图所示。
主界面
单击“图书查询”,就会弹出登录框。
图书查询界面
在查询编辑框中填入要查询的关键字,在查询类型选择相应的查询方式,若要查询所有图书(包括借出图书)则将所有勾选,若只查询未借出图书则将所有前面的勾去掉,然后点击搜索即可。
点击退出即可回到主界面。
在主界面点击登陆则弹出登陆对话框
登陆界面
在登录对话框中输入用户编号和密码,选择“普通用户”,单击“登陆”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出用户窗体。
用户窗体(用户基本信息)
普通用户可以修改自己的用户信息,可以修改其登录密码等,还可以查看所借书目等。
借书记录可以显示个人借书的具体情况如借书的编号、书名、借书时间、应还书时间以及超过的天数等信息,点击注销即可返回主窗口。
在登录对话框中输入管理员编号和密码,选择“管理员”,单击“登陆”按钮,就会对管理员身份进行认证,如果认证通过,那么就会出现用户窗体。
管理员可以添加、修改和删除图书的权利。
图书信息中的图书编号必须填写,这是区分一本书的惟一标示。
其它还要填写书名、类型、作者、出版社等信息,填写完毕后点击保存按钮就可以把新添加的图书保存到数据库中了。
管理员窗体(图书信息)
可以添加用户,进入用户信息,可以对数据库中的所有读者进行管理,可以对读者的信息进行添加、修改、删除。
首先要选中来确定要删除或修改的用户,也可以使用“查找”来查找用户,找到后就可以对此用户的信息进行修改了,如果不想要这个用户可以单击“删除”按钮来删除这位用户。
管理员有权利来添加和删除用户的借书记录,首先要根据查找来确定用户所借的书,然后确定信息,确认无误后就可以删除此信息说明这本书已经还了,点击添加时,若某本图书已经借出时,则添加时出现此本书已借出的对话框来说明
第三章课程设计总结
在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,我在这次课程设计中最大的收获有以下几方面:
一、领略到了数据库设计在计算机领域的重要性。
数据库作为一个永久存储形式在应用中发挥着重要的作用。
在数据库设计中,我明白了数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择。
二、对编程环境、一些控件的使用和界面的梅花方面更加熟悉。
因为《图书管理系统》中设计到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户面前。
这样更有利于数据库和用户之间的交流。
三、利用软件工程学开发系统。
虽然这个《图书管理系统》是一个小的系统,但从这个小的项目中也让我明白了数据库作为任何一个系统的后台的重要性,在开发系统设计和实现中学到和总结很多经验和教训。
参考文献
[1]刘健等.SQLServer数据库案例教程.清华大学出版社,2008
[2]董建全等.数据库实用教程.清华大学出版社,2007
[3]王刚等.VB实用案例教程.清华大学出版社,2005