《图书管理系统从需求分析到设计完成》由会员分享,可在线阅读,更多相关《图书管理系统从需求分析到设计完成(58页珍藏版)》请在金锄头文库上搜索。
1、第5章 图书管理系统 本章对数据库的连接主要采用Windows自带的ODBC来完成,在应用程序中使用了TDatabase控件。5.1 摘要与关键字5.1.1 摘要 图书资料管理系统主要是针对高校的图书馆作为使用对象而开发的,作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用Borland公司的Delphi作为前端开发工具,利用其提供的集成开发环境及各种控件,尤其是对数据库的支
2、持完成对数据库的各种操作,达到对图书资料管理的目的。首先建立系统应用原型,然后对原型系统进行需求迭代,不断修正和改进,直到形成用户满意的实际可行系统。5.1.2 关键词 图书、管理、设计、实现、SQL Server。5.2 引言 图书资料的管理是高校图书馆都必须切实面对的工作,但一直以来人们使用传统的人工方式管理图书资料,这种管理方式存在着许多缺点,如:效率低、保密性差且较为烦琐,另外随着图书资料数量的增加,其工作量也将大大增加,这必然增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来了很多困难。 经过我们详细的调查,目前我国各类高等院校中有相当一部分单位图书资料
3、管理还停留在人工管理的基础上,尤其是中、小学的图书资料的管理更是如此,这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。 图书资料管理作为计算机应用的一个分支,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书资料管理的效率。因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书资料管理系统,将是非常必要的,也是十分及时的。因此可以把图书资料管理作为毕业设计的题目,正好可以充分利用几年在校所学的各种专业知
4、识开发一个图书管理系统来帮助相关部门进行有效的管理。5.3 需求分析5.3.1 功能需求 高等院校的图书管理涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。从管理的角度出发可将图书管理分为3类:图书信息管理、系统用户管理和读者数据管理。图书信息管理包括图书征订、编目、典藏、借还和查询操作,系统用户管理包括系统用户类别和用户数据管理,读者数据管理包括读者类别管理和读者个人数据的录入、修改、删除。 典型的高校图书管理系统主要应具有以下功能:l 图书征订:包括图书征订数据的录入、修改、删除等功能。l 图书编目:包括图书编目信息的录入、修改等功能。l 图书典藏:包括新书分配、库室调配
5、等功能。l 图书流通:包括图书借阅、续借,图书返还,图书书目查询等功能。l 系统用户管理:包括系统用户数据的录入、修改、删除等功能。l 读者数据管理:包括读者类别管理,读者个人数据的录入、修改、删除等功能。 再进行详细调查,绘制出数据流图,如图5-1所示。图5-1 系统数据流图5.3.2 开发与运行环境 本例的高校图书管理系统开发与运行环境如下: 开发环境:Windows XP 开发工具:Delphi 8 数据库管理系统:SQL Server 2000 运行环境:Windows 98/ME/2000/XP5.4 系统设计5.4.1 系统模块设计 根据系统功能分析和高校图书管理的特点,经过模块化
6、的分析得到如图5-2所示的系统功能模块结构图。图5-2 系统功能模块图5.4.2 数据库设计1. 数据字典 根据系统功能模块结构图和高校图书管理流程,以及典型高校图书管理系统的需求,总结出如下的数据字典:l 系统用户数据:图书馆内部人员使用图书管理系统的身份数据,包含的数据项有用户编号、登录口令、权限代码。l 读者类别数据:借阅图书读者的类别数据,包含的数据项有读者类别编号、类别名称、借书数量、借书期限、有效期限。l 读者个人数据:读者个人与图书借阅有关的身份数据,包含的数据项有借阅证编号、读者类别编号、姓名、部门名称、办证时间。l 图书书目数据:用于图书编目使用的书目数据,包含的数据项有索书
7、号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词。l 新书书目数据:图书编目产生的书目数据,包含的数据项与图书书目数据相同。l 馆藏书目数据:新书书目经典藏之后形成馆藏图书书目数据,包含的数据项有索书号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词、入馆日期、复本数、可借数、库室名。l 图书征订数据:征订图书的相关数据,包含的数据项有书名、作者、出版社、出版日期、数量、征订日期。l 图书借阅数据:包含的数据项有图书条码、借阅证编号、借阅日期、还书日期、图书所在库室编号。l 操作日志数据:包含的数据项有用户名、操作时间、操作动作。2. 数据库结构设
8、计 根据系统需求,分析出实体关系图,如图5-3所示。图5-3 实体关系图 根据实体关系图和数据字典,设计出高校图书管理系统数据库中的各个数据表。根据用户使用要求得到系统用户数据表,根据读者实体得到读者个人数据表,根据数据字典对读者的要求得到读者类别数据表,根据图书实体得到图书书目数据表,根据新书实体得到新书书目数据表,根据馆藏图书实体得到馆藏书目数据表,根据征订关系得到图书征订数据表,根据借阅关系得到图书借阅数据表,根据系统要求记录操作日志得到操作日志数据表。数据表名称与结构如下: 系统用户数据表:表名“t_user”,结构见表5-1。表5-1 t_user表结构字段名类型大小索引说明BhCh
9、ar5是编号PasswdChar6密码LimitTinyint权限 读者个人数据表:表名“t_dzb”,结构见表5-2。表5-2 t_dzb表结构字段名类型大小索引说明ZhChar5是证号LxdmTinyint类型代码XmChar20姓名BmChar20部门RqDatetime日期 读者类别数据表:表名“t_lxdm”,结构见表5-3。表5-3 t_lxdm表结构字段名类型大小索引说明LxdmTinyint是类型代码LxmcChar10类型名称JslTinyint借书量JsqTinyint借书期YxqTinyint有效期 图书书目数据表:表名“t_tsb”,结构见表5-4。表5-4 t_tsb
10、表结构字段名类型大小索引说明IdBigint是自动增长TmChar7条码SyhVarchar30索引号SmVarchar60书名ZzVarchar30作者CbsVarchar60出版社CbrqDatetime出版日期ZsInt字数YsInt页数NrjjVarchar200内容简介GjzVarchar100关键字 新书书目数据表:表名“t_xsb”,结构同上。 馆藏书目数据表:表名“t_csb”,结构见表5-5。表5-5 t_csb表结构字段名类型大小索引说明TmChar7条码SyhVarchar30索引号SmVarchar60书名ZzVarchar30作者CbsVarchar60出版社Cbrq
11、Datetime出版日期ZsInt字数YsInt页数NrjjVarchar200内容简介GjzVarchar100关键字RgrqDatetime入馆日期JbsSmallint基本数KjsSmallint可借数KsmChar20库室名 图书征订数据表:表名“t_dgb”,结构见表5-6。表5-6 t_dgb表结构字段名类型大小索引说明SmVarchar60书名ZzVarchar30作者CbsVarchar60出版社CbrqDatetime出版日期SlInt数量DgrqDatetime定购日期 图书借阅数据表:表名“t_jyb”,结构见表5-7。表5-7 t_jyb表结构字段名类型大小索引说明Tm
12、Char7是条码ZhChar6证号JsrqDatetime借书日期HsrqDatetime还书日期YhTinyint已还KhTinyint库号 操作日志数据表:表名“t_log”,结构见表5-8。表5-8 t_log表结构字段名类型大小索引说明NameChar10是用户名CzsjDatetime操作时间CzlogVarchar200操作动作5.5 系统实现5.5.1 建立数据库 本例数据库使用SQL Server 2000,数据库名为TSGL。在SQL Server 2000数据库服务器上建立数据库以及各数据表的过程,在这里不作介绍,有关内容参阅SQL Server相关书籍。5.5.2 建立连
13、接 本例使用ODBC数据源连接数据库,数据源名为mybase。建立过程可参阅第四章内容。5.5.3 程序设计1. 主窗体 主窗体保存为main.pas。主窗体界面如图5-4所示,包含一个Database组件、一个MainMenu组件和一个StatusBar组件。图5-4 主窗体 窗体主要组件属性设置见表5-9。表5-9 主窗体组件属性设置组件属性值Form1Name=MainForm FormStyle=fsMDIForm Caption=高校图书管理系统MainMenu1Database1DatabaseName=mybase LoginPrompt=FalseStatusBar1 其中Database1的Params属性添加两项USER NAME和PASSWORD分别设置为SQL Server的登录用户名和密码。 主窗体中定义全局变量dlname,用于保存登录的用户名。编写一个过程addlog完成日志记录,和一个函数getnettime用来取得服务器时间,保证系统时间的一致性。过程和函数的代码如下:/ 取得服