您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第18章图书管理系统的实现.
第18章图书管理系统的实现•随着读书的普及,读者群体日渐扩大,图书种类也越来越繁多。图书馆那种由简单数据记录,电子表格统筹数据的方法已经不再适应。为了更为理想地完成对图书的管理同时能对读者信息进行统筹统计,一个专门的管理系统已经成为了图书馆管理者的迫切需求。18.1概述•图书管理系统在实际中应用广泛,例如所有大型图书馆或者高校的图书馆都必须配备一套完整的图书管理系统,甚至部分小学也需要一个图书管理系统。它主要对一个学校的图书馆或者其他类型的图书相关业务部门的所有图书信息进行管理。例如图书销售企业、图书配送等,本章结合小型学校的图书管理系统的整个框架介绍整个数据库系统的实现。下面对一个学习类的图书管理系统的基本信息进行描述。1.基本功能•高校图书管理系统基本功能应该包括借书管理、还书管理,书籍信息管理、用户管理、挂失管理、信息查询和违章处罚几个方面。2.用户分类•由于是一个管理系统,首先就需要管理人员对数据库进行管理,其次应该对老师和学生的使用权限进行管理,同时可以添加各种用户。3.书籍信息•应该对图书的书名、作者以及出版社等信息进行保存。4.信息查询•读者应该可以登录到系统内查看所借书籍的信息、可以修改密码等,还可以对书籍信息进行查询、检索等。•上面介绍了一般图书管理系统所需要的基本功能,下面的章节中需要严格按照软件工程的操作规范进行软件的开发。•由于篇幅有限,本章实现的仅仅是单机版程序,感兴趣的读者可以结合前面介绍的网络编程的基本程序设计一套网络版的图书管理系统。18.2需求分析与系统设计•上面分析了图书管理系统的基本功能,下面进行具体的需求分析和系统设计分析。为了描述的严谨性,下面介绍将按照软件工程的基本步骤进行叙述。本节主要进行系统的需求分析和系统的整体设计。18.2.1需求分析与可行性研究•前面已经介绍了基本的数据库功能,下面结合上面的基本功能详细描述本章所要求的功能。本章所实现的是基本的图书管理系统,所以上述的基本功能必须全部实现,为了进一步描述需求,定义的基本功能包括下面几个方面。1.用户登录模块•图书管理系统首先要实现的就是用户登录。一个没有登录的用户只可以进行简单的查询,其他功能是不能进行的。同时由于用户需要区分其权限,定义为如下几个级别。•管理员:负责整个数据库的管理工作,包括添加用户、管理用户等。•普通用户:在用户根据其用户名和密码登录以后,系统要根据其登录情况设置用户。2.数据录入模块•对于管理员来说,它可以进行整个系统的管理工作,这其中包括数据录入工作,其内容主要包括下面两个方面。•图书数据录入:管理员可以进行新进书籍的录入工作,它应该包括书籍的基本信息。•读者数据录入:管理员可以添加用户,同时设置其权限。3.数据管理功能模块•管理员可以对读者的信息进行修改,包括其用户密码、用户权限等,还可以对图书的信息进行修改,同时可以删除记录等。4.图书借阅和归还模块•系统应该可以实现读者借阅和归还的功能,同时修改图书的状态。5.信息查询模块•所有用户可以进行书籍的检索工作,它不需要用户登录。•上面介绍了整个系统的功能模块,欲实现该系统就应该按照上面功能模块的定义进行实施。在系统实施之前,首先应该研究该系统的可行性。•可行性是系统的关键,一个从理论上不可行的系统是不能得到实施的。本系统所采用的开发环境为VisualC++6.0,运行环境为Windows98/NT/XP/VISTA平台,运行的软硬件要求如下所述。•硬件部分:处理器P4,2.5GHz,内存512M(或更高),VGA视频显示器,标准的鼠标,键盘。•软件部分:数据库系统为SQLServer2008企业版,开发工具使用VisualC++6.0。•说明:上面的硬件部分主要为SQLServer的安装要求。整个系统使用VisualC++6.0开发,因此它可以运行在任何版本的Windows系统中。18.2.2系统设计分析•上面介绍了整个系统的需求分析,下面对系统设计进行分析,其具体设计将在下面进行介绍。整个系统采用的是VisualC++6.0,数据库采用的是SQLServer2008企业版,整个系统的软硬件要求较低,大部分PC机都可以运行本软件。18.3数据库设计•数据库设计是整个数据库系统中最为关键的部分,一个好的数据库系统必须有一个设计合理的数据库的支持,本节就图书管理系统进行数据库的设计。数据库系统的设计需要经过需求分析、概念设计、逻辑设计和物理设计几个阶段。18.3.1需求分析•前面已经介绍了图书管理系统的基本要求,整个图书的数据框架图如图18.1所示。图18.1数据框架图18.3.2概念设计•前面介绍了整个系统的主要数据及其之间的关系,下面介绍数据库的概念设计。1.用户表•前面已经介绍了用户的基本信息,其中包括用户名和密码,同时包括权限和对应的可借书籍的数目。同时设计一个用户的ID号作为唯一标识读者的号码。2.书籍表•记录书籍的基本信息,其内容包括书籍号码、书籍名、数据作者、书籍的出版社和书籍简介。同时增加书籍的状态,是借出在馆内。3.借阅表•记录借阅书籍的用户ID和书籍的名称,同时记录借阅时间和到期时间。18.3.3数据库构建•上面介绍了数据中所需要的基本表,下面具体讲解利用SQLServer2008建立此数据库的操作步骤,如下所述。•(1)利用SQLServer2008的企业管理器新建一个数据库Library,如图18.2所示。图18.2新建数据库Library•(2)新建一张读者表READER。设计结果如图18.3所示。新建一张书籍表BOOK。设计结果如图18.4所示。数据库名图18.3READER表图图18.4BOOK表图•(3)新建一张借阅表READBOOK。利用属性设置其ID和BID为外键,如图18.5所示。设计结果如图18.6所示。图18.5设置外键外键设置图18.6READBOOK表•(4)编辑表,此时可以设置其初始信息,以便在程序中使用。•注意:当设置有外键以后,必须先编辑主键表的信息,然后才可以对外键表进行编辑,而且外键值必须在主键所在表中存在。18.4各模块设计•前面介绍了建立图书管理系统数据库的基本步骤,本节详细介绍利用VisualC++6.0开发这个系统的操作步骤。18.4.1系统窗体模块组成•前面讲解了数据库设计的基本步骤,同时分析了整个系统的基本功能,下面对整个系统进行描述。系统应该分为下面几个界面。•用户登录界面:无论是管理员、教师还是普通读者,在进行基本操作时都必须进行登录,同时根据登录结果进行相应的权限分配。同时管理员可以负责借书、还书等主要功能的操作。•数据录入与管理界面:管理员可以进行读者和书籍信息的录入工作,同时可以对数据进行修改。由于包括书籍和读者两种类型的信息,故数据管理包括书籍信息管理和读者信息管理。•图书借阅界面:读者可以进行读书借阅。•图书归还界面:实现图书归还的功能,和图书借阅的区别是只要提供书籍的号码即可。•读者服务界面:读者可以对自己所借书籍的情况进行浏览。•查询界面:可以对数据进行检索。•在实际中,采用的是基于单文档的应用程序框架,同时提供了实现各个操作的菜单,用户只要利用菜单进行操作就可以完成基本的操作。首先介绍程序中的菜单,整个系统的主菜单如图18.7所示。图18.7程序主菜单•每个主菜单下的菜单项名称及其ID如表18.1所示。表18.1主菜单下的菜单项•下面对每一个模块的实现进行介绍。主菜单子菜单项标题ID系统[&S]登录[&L]ID_LOGIN_IN退出[&O]ID_LOGIN_OUT日常工作[&D]借书[&J]ID_LEND_OUT还书[&R]ID_RETURN_BACK基本资料维护[&B]用户资料维护[&U]ID_USER_MAINTAIN图书资料维护[&B]ID_BOOK_MAINTAIN其他服务[&Q]查询[&Q]ID_ReaderQry读者服务[&Q]ID_Reader18.4.2用户登录模块的实现•对于整个系统来说,用户必须登录才可以进行各种各样的操作,因此必须实现登录界面。登录界面采用对话框的形式,因此需要利用资源编辑工具添加一个对话框资源,并且在上面添加控件,具体操作步骤如下所述。•(1)创建一个新的对话框资源,其ID为IDD_LOGIN,标题为“登录对话框”。删除上面的OK按钮,同时增加一个新的按钮,ID为IDC_LOGIN,标题为“登录”。再添加两个编辑框控件,其ID分别为IDC_LOGIN_NAME和IDC_LOGIN_PASSWORD,即用来输入用户名和密码,同时设置IDC_LOGIN_PASSWORD为密码形式。然后再添加一些Static控件用来显示文字等,如图18.8所示。图18.8用户登录界面及关键控件id•(2)利用类向导为该对话框资源添加类CLoginDlg,同时为两个编辑框控件添加两个变量,如下所示。•CStringm_name;•CStringm_password;•同时为该类添加变量如下:•BOOLm_bLogin;//记录登录状态•CStringm_which;//记录登录者的权限•(3)为了使用ADO进行数据库程序设计,首先在stdafx.h中添加如下语句:•#importC:\ProgramFiles\CommonFiles\System\ado\msado15.dllno_namespacerename(EOF,end)•即导入动态链接库。•(4)利用类向导添加单击“登录”按钮的消息映射,编写函数代码如下:•【提示】假定读者建立了名为“student”的数据源,SQLServer2008的登录id为“Administrator”,没有设置密码,初始选择的库为“Library”。用户需要预先在Library库的READER表中添加表项,以便登录时用。•(5)为了在实际应用中,在选择“系统”|“登录”命令而弹出该对话框,并且保存登录状态,在CMainFrame中添加成员如下:•BOOLm_log;//登录状态•CStringm_name;//登录名•CStringm_passwoord;//登录密码•CStringm_which;//登录者权限,读者还是管理员•利用类向导在CMainFrame中添加单击此菜单命令的消息映射,编写函数代码如下:•注意:此时需要在MainFrm.cpp中添加语句#includeLoginDlg.h,否则会出现错误。•利用上面的函数就可以实现登录功能。如果登录成功,则退出对话框,否则给出提示信息,同时回到“登录对话框”。18.4.3用户主界面的实现•用户界面主要是各个菜单的显示,可用状态的问题,例如只要登录后才可以显示某些功能。下面分两种情况进行介绍。•管理员:所有功能的操作。•普通读者:只可以进行“其他服务”菜单下的两个功能操作。利用类向导添加大部分菜单的ON_UPDATE_COMMAND_UI函数,其需要添加该事件响应函数的菜单包括大部分,可以看到如下代码:•分析:其中只要根据上面得到m_log的值进行设置,同时如果不是管理员,那么除了“读者服务”之外的其他ON_UPDATE_COMMAND_UI响应函数都不可用。•根据要求,所有的函数代码如下:•分析:上面代码实现了基本的用户界面,但是当选择“系统”|“退出”命令后,系统应恢复到初始情况。利用类向导添加选择“系统”|“退出”命令的消息映射,编写函数如下:•实际中随意将which设置为“管理员”或者“读者”此时,系统就可以完全根据状态进行菜单状态的显示。18.4.4书籍管理模块的实现•书籍管理包括书籍数据的添加和修改等功能,同时可以根据书籍的ID号进行查询功能。书籍的管理是通过一个对话框实现的,此对话框的设计界面如下图18.9所示,具体的步骤如下所述。图18.9书籍维护对话框界面•(1)再次利用资源编辑器添加一个对话框资源IDD_BOOK,在上面添加5个编辑框,用来输入书籍信息。其ID分别为IDC_ID、IDC_NAME、IDC_WRITER、IDC_PRESS、IDC_INFO,分别用来输入书号、书名、作者、出版社、基本信息。再添加一个Co
本文标题:第18章图书管理系统的实现.
链接地址:https://www.777doc.com/doc-2153808 .html