图书管理系统设计与实现原文Word文档下载推荐.docx
《图书管理系统设计与实现原文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计与实现原文Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
![图书管理系统设计与实现原文Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/12/c7e992e8-a417-4bc9-b397-3ca049739e97/c7e992e8-a417-4bc9-b397-3ca049739e971.gif)
利用SQLselect实现数据的连接
实现最终系统代码的设计
3。
图书管理系统解决方案
1方案内容
我们可以用两层体系结构作为图书馆管理信息系统软件解决方案的核心,它的基本思想是将读者操作的界面同工作人员的操作界面分离,把信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放置在相同或不同的硬件平台上。
之后从需求出发构造数据库表,然后再由数据库表结合需求划分系统功
能模块。
这样,就把一个大的系统分解成了几个小系统。
系统划分了子系统后,下一步的工作是继续划分子系统的小模块。
先考虑在进入子系统时应该做什么,进入系统之后又应该做什么,提供哪些服务等。
例如,对于图书信息服务子系统,在工作人员进入时首先得调用相关数据库表,找出该工作人员的基本信息;
进入系统后,子系统得提供图书查询,图书借阅和还书的功能。
3.2方案论证
3.2.1方案选择
两层客户机/服务器技术在结构、开发环境、应用平台的开发方式上已经非常成熟。
请求另一计算机为之服务的计算机称为客户机(Client).而处理数据库的计算机称为服务器(Server)。
客户机/服务器是将处理工作分散到工作站和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作,这
样在数据发送给工作站之前即取得查询结果集,从而在大部分情况下可大大减少网络传输的开销,因此,也减轻了工作处理负担,用户只需关心界面的处理工作即可。
客户机/服务器系统的成功与否在很大程度上依赖于服务器。
用户越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导致影响时间比本地型数据库还要差的结果。
客户机运行数据请求程序,并将这些请求传送到服务器.由客户机执行的计算称为前端处理。
前端处理具有所有与提供、操作和显示数据相关的功能。
C/S[1]数据库应用程序中客户端的主要功能:
●从用户接收数据
●处理应用逻辑
●生成数据库请求
●向服务器发送数据库请求
●从服务器接收结果并显示结果
在服务器上执行的计算称为后端处理。
后端处理设备是一台管理数据资源并执行数据库引擎功能(如存储、操作和保护数据)的计算机。
C/S数据库应用程序中服务器端的主要功能:
●从客户机接收数据库请求
●处理数据库请求
●传送结果给客户机
●执行完整性检查
●提供并行访问控制
●事务处理失败后,执行事务恢复
●优化查询和更新处理
2.2方案技术实现
在设计图书馆管理信息系统时,我们采用了传统的基于两层的C/S结构来构建系统。
根据需求的分析结果,在此C/S结构中,客户端有两种的操作用户:
工作人员和读者.
Delphi客户机/服务器结构原理:
这里前端应用程序发送命令给基于服务器数据库引擎,再由后者负责从物理磁盘上读取数据并加以处理,最后返回给前端应用程序.服务器负责数据库处理工作,而工作站负责用户界面处理工作:
读者查询信息及工作人员对系统的操作和维护。
Delphi客户机/服务器的前端应用程序实际上不直接与数据库引擎打交道.每个客户服务器提供一个数据库通信接口,该数据库通信接口运行于前端。
这些接口也称为数据库通信API等。
数据库通信接口的工作流程如下:
图1工作流程图
Delphi中的BDE提供了丰富和强壮的特性支持客户机/服务器应用的开发。
它提供了支持多种数据库如:
Oracle,SQLServer以及任何ODBC数据源的统一和一致的应用程序编程接口。
开发者可以不用修改数据库应用程序就能直接访问不同的数据库站点和数据格式。
4.系统总体设计
4.1系统总体设计
对于图书馆主要负责提供的功能是指从图书的购入开始直到该图书过期下架的整个流通过程,这其中包括图书入库、借出、归还以及对参与此流通过程的读者的信息管理。
(1)新图书信息入库:
建立图书信息库,以便读者进行查询和借阅。
(2)修改图书信息:
在建立信息库时可能因操作错误或其它情况而造成数据库里图书信息的错误,需要修改这些错误。
(3)整理图书库:
图书因使用过久或信息过时需做下架处理,或者在读者借阅书籍时发生遗失的情况下需做遗失处理,这些都需要修改数据库关于书籍的信息.
(4)读者信息管理:
读者一般都是在校的学生和教师。
教师的信息一般在建立档案后一般不需要修改(或修改量较小),而对于学生则会有新生入学和老生毕业等情况出现,这些都需要修改数据库关于读者的信息.
(5)借书:
图书馆主要的功能就是提供书籍供读者借阅,在借阅图书时应按图书馆的规则进行借阅,例如不超过5本,如果已有超时借阅的图书,则在归还前不允许再借阅等等。
(6)还书:
对于图书遗失或超期归还的情况应根据图书馆的规则进行处罚。
(7)规则管理:
对于读者借阅书籍的权限(可借阅书籍数目,每人每本书可持有天数等)应该能按其类型加以分类,若有图书遗失或超期未还的情况发生,图书馆都应该规定处罚的条例。
另外对于操作此系统的前端工作人员的权限也应该有一定限制。
这些都应该只能由系统管理员来进行操作和修改。
(8)信息查询:
一般读者在借阅书籍前都需查询图书馆关于所借书籍的大概信息:
该图书是否在馆—是否已借出-在馆中的书架号;
除查询书籍外读者还可查询关于自身的信息:
是否有超期未还的图书,还可借阅书籍数目等。
4.2系统功能结构图
图书管理系统主要包括图书信息服务子系统、图书管理和维护子系统、信息查询子系统等三个模块,其功能结构体如图2所示。
图2系统功能结构图
4.3数据库设计
4。
3.1数据库的选择
图书馆管理信息系统是一个小型的数据库系统。
在这里我们选择SQLServer数据库进行开发.MicrosoftSQLServer是一种关系型数据库管理系统。
关系模型是当前最受欢迎的数据存储和数据检索模型。
所有的数据处理都涉及存储和检索数据的操作,MicrosoftSQLServer是作为一个组织内部的全部数据的中心存储器来设计的。
组织中数据的关键特征强调了这一方法的重要性。
在客户机/服务器框架内,服务器数据库也要求与服务器的通信组件集成,
以便和客户系统连接。
MicrosoftSQLServer的客户机/服务器使用WindowsNT的内置网络组件。
MicrosoftSQLServer还在其网络组件的顶部添加了服务特有的中介组件:
开放式数据库连接(OpenDatabaseConnectivity,ODBC)能使不同客户机进行相互连接,而不要求变更服务器及其他现存客户应用程序。
4.3.2数据库设计
(1)书籍表结构设计(Book)
书籍表主要用于存储关于书籍的信息,主键BookID,外键TypeID引用表BookType,其表结构如表1所示。
表1书籍表结构
编号
字段名称
字段类型
字段说明
1
BookID
文本(15)
图书编号
2
BookName
文本(50)
书名
3
BookWriter
作者
4
BookPublic
出版社
5
BookBorrowed
是/否
是否借出
6
BookPosition
文本(30)
读书位置
7
TypeID
文本(6)
图书类别
8
Publicdate
日期/时间
出版日期
9
BookPrice
货币
价格
10
BookIntime
入库日期
11
Note
备注
(2)读者表结构(Reader)
读者表主要存储关于读者的信息,主键ReaderID,外键:
DepartmentID引用表Department,JobID引用表Job,ClassID引用表Class,其表结构如表2所示。
表2读者表结构
ReaderID
读者编号
ReaderName
文本(20)
姓名
ReaderSex
文本
(2)
性别
DepartmentID
文本(5)
部门编号
JobID
职位编号
ClassID
文本(10)
班级编号
(3)读者类别表结构(Class)
读者类别表主要存储关于读者等级的信息,主键ClassID,其表结构如表3所示。
表3读者类别表结构
读者类别编号
ClassName
类别名称
BorrowSum
数字(整型)
可借书量
Deadline
可借天书
(4)读者借阅表结构(BorrowRecorder)
读者借阅表主要存储关于书籍借阅的信息,主键BookID—ReaderID,外键:
BookID引用表Book,ReaderID引用表Reader,其表结构如表4所示。
表4读者借阅表结构
BookDate
截至时间
BookReturn
是否归还
PastTime
超期
Penalty
罚款
3.3数据库关系图
图书管理系统各表之间的关系如图3所示。
图3数据库关系图
5.图书管理系统的实现
5.1系统结构
我们用两层体系结构作为图书馆管理信息系统软件解决方案的核心,把信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放置在相同或不同的硬件平台上,并将系统的操作人员划分为三类:
读者,工作人员,系统管理员。
图书管理系统的操作流程如图4所示。
图4操作界面示意图
5。
2登录系统界面的设计
(1)从列表框里选择用户,此列表框内的用户直接与数据库里工作人员的表相关联。
(2)输入密码.判断该密码与工作人员表中定义的密码是否相符.
(3)如果不正确,提示输入正确的信息。
(4)如果正确,用户登录,并根据工作人员表中的用户权限设定其可操作界面.
(5)对于用户的权限规定:
权限为‘1’的用户(系统管理员)拥有全部的权限。
权限为‘2’的用户:
除不能修改图书馆的规则管理以外,拥有其他的全部管理权限,相当于底层的工作人员:
系统初始化、新书的入库、图书整理、修改图书信息、规则维护、用户信息管理、查询图书借阅、图书借出、图书归还。
权限为‘3'
的用户为前台的工作人员;
他只能负责前台的工作:
图书借出、图书归还。
系统登录界面如图5所示.
图5系统的登录窗体
3信息服务子系统的设计
1图书借阅子模块设计
对于读者借书是应考虑的情况有:
(1)该图书是否在馆;
(2)该读者是否有借阅此图书的权限;
(3)该读者所借图书数目是否已满其可借图书数目或该读者是否有超期未还的图书.
图书借阅子模块的界面如图6所示。
图6图书借阅子模块界面
5.3。
2还书子模块设计
对于读者归还图书时应考虑的情况主要是该图书是否超期,若有则应根据规则予以处罚.还书子模块的界面如图7所示.
图7还书子模块界面
6.开发过程遇到的问题及解决方法
(1)关于字段为datetime型时产生的问题
在修改图书信息时:
其中关于书籍的入库时间在数据库里定义为datetime型。
当对书籍的信息进行修改后,若图书的入库时间为空时,则在插入数据时将产生错误。
解决方法:
当此字段为空时,将该书的入库时间默认为当前时间。
(2)对于有外键约束的表,在界面端用SQL语句向表中插入记录时,该外键属性值必不能为空,且必须将插入记录的所有属性都在语句中列出。
如在图书遗失情况下,首先应向LostBook表中添加该图书的记录,但此处因有外键约束:
BookID,ReaderID,则不能用语句:
insertintoLostBookvalues(:
sno,:
sreaderid,:
sname,
:
swriter,:
spublic,:
sprice,:
slostdate,:
srepay)。
(3)图书遗失的表单中:
首先需根据其读者编号查询该读者和书籍的信息。
因此表单中的Query的SQL查询语句是预先已经定义好的,只是在运行时对其参数进行一次赋值(读者编号)操作.但在几次的操作之后发现:
当打开该表单后只能查询一次读者的信息,即使对其参数赋不同的值,但显示的结果都是第一次所赋读者编号的所有信息.
在表单里对Query的SQL语句先清空,然后重新写SQL语句。
(4)关于图书整理表单的统计页的问题
在此我定义了统计所有未按时归还的图书总数,其代码是:
qrydel.SQL.Add(’selectcount(BookID)fromBorrowRecorderwherePastTime=:
stime'
);
qrydel。
ParamByName('
).AsString:
='
是’;
但此处的PastTime:
=‘是’存在某些疑惑,因为在此系统里对于图书借阅表中是否超期的字段都是在还书时根据借书时间和可借期限进行统计然后再赋值的,所以若某些图书虽未归还但根据其借书期限已经超期了,但因该图书尚未归还则在图书借阅表中该超期字段并不是‘是’。
这种情况下的统计出来的结果则会发生错误!
在数据库段建立过程,只要图书已经超期则修改图书借阅表中是否超期字段
7.心得体会
在Delphi中出现的错误大体有以下几种:
(1)编译错误:
这种错误出现一般都是代码的语法问题。
因为编译而导致Delphi停运行;
(2)运行错误:
这个错误是发生在你准备运行Delphi时的,例如:
如果你试图给一个变量赋值,但是却超出了该变量允许的范围;
(3)逻辑错误:
逻辑错误是最难发现的,这种错误经常是一种结构错误。
这就需要我们彻头彻尾地检查我们的代码;
(4)如何处理错误:
发生错误后,我一般都是设置断点,对语句进行一条一条的调试。
8。
致谢
经过一段时间的开发设计和调试,我基本实现了在系统设计时所设计的所有功能,设计出了一个功能比较完善的图书馆管理信息系统。
在开发的过程中,我查阅了大量的资料,与同学特别是本小组的成员进行交流,向老师请教,学到了不少课本上学不到的知识。
通过这次开发,我充分感受到了开发的艰辛,很多看起来简单的问题实际动手起来却不是那么回事,往往有这样或那样的错误,需要我一步一步地去解决,虽然在出现问题是感觉很头痛,特别是查找不出问题的原因时,然而更多的是实现功能后所享受到的喜悦.最后,向在此次设计过程中给与我帮助的同学表示感谢,同时更加感谢指导老师给予的这次机会,谢谢!
参考文献
[1]梅绍租.电子商务基础[M].第2版.北京:
清华大学出版社,2005:
120-125.
[2]林红,陈宇岳,任煜,等.经等离子体处理的蚕丝纤维结构与性能[J]。
纺织学报,2004,25(3):
9—11.
[3]周仪。
电子商务法律及案例[M]。
中国国际广播出版社.
[4]杨恩科.棉织物酶精练工艺探讨[EB/OL].
http:
//www。
ctei.gov。
cn/htmlib/zhuanjia/xws04070803。
htm,2003—10—04.
[5]宋玲.电子商务-—21世纪的机遇与挑战[M].电子工业出版社。
StudyonApplicationFieldsofGeotextileTube
Abstract:
Geotextiletubehasmuchrecordationinforeignapplication.Byintroductiononworkingprincipleofgeotextiletubetechnology,thepaperdealswithapplicationofthetechnologyinenvironmentprotection,agriculture,dikeengineer。
Thepaperthinksthetechnologyhasverygoodeconomicvalueanddevelopmentvalue。
Keywords:
geotextiletube,applicationfields,environmentprotection,agriculture,dikeengineer
附录
(1)**源代码
(2)**源代码