版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGEIV图书馆管理信息系统摘要目前,社会上流行的图书管理系统已经有很多,包括各种各样学校的图书馆管理和国家图书馆管理等。图书馆员不能及时了解图书馆各类图书的借阅情况,读者需要借阅。所需图书在短时间内难以找到,不便于动态、及时地调整图书结构。为了更好地为教育服务,把握学生的需求,做好服务工作。随着信息时代的到来,信息浪潮和网络革命不仅给社会带来了冲击,也给图书馆事业带来了强烈的冲击。传统的图书馆管理和服务模式已不能满足读者日益增长的文献信息需求。随着馆藏量的不断增加,图书资料的录入和查询的难度相应增加,数据处理手工操作,工作量大,出错率高,出错后不易更改的手工方式,已经不能满足要求。本文介绍了在JAVA环境采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理系统的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文档详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、系统分析、业务流程分析、数据流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了新书添加、图书借阅、图书归还、图书检索、读者管理、图书管理等主要的程序框图,并附带了一些主要的窗口和程序。此论文设计的图书馆管理系统对书籍、读者资料、借还书等信息有高效的管理能力。使用该程序后,工作人员可以查询读者和图书的借阅情况,也可以对图书借阅的现状进行一些统计,从而全面掌握图书的流通情况。关键词:书管理系统;浏览器;动态网页技术;数据库
AbstractAtpresent,therearemanypopularlibrarymanagementsystemsinsociety,includingthelibrarymanagementofvariousschoolsandthemanagementofnationallibraries.Librarianscannottimelyunderstandthelibrary'svariousbooksborrowingsituation,readersneedtoborrow.Therequiredbooksaredifficulttofindinashorttime,whichisnotconvenientfordynamicandtimelyreadjustmentofthebookstructure.Inordertobetterserveeducation,grasptheneedsofstudentsanddoagoodjobinservice.Withtheadventoftheinformationage,theinformationwaveandthenetworkrevolutionhavenotonlybroughtashocktothesociety,butalsobroughtastrongimpacttothecauseoflibraries.Thetraditionalmodeoflibrarymanagementandservicecannotmeettheincreasingdemandofreadersforliteratureandinformation.WiththeincreasingofLibrarycollection,thedifficultyofinputtingandinquiringbooksandmaterialsincreasescorrespondingly.Themanualoperationofdataprocessinghasalargeworkloadandahigherrorrate.Themanualmethodwhichisnoteasytochangeaftermistakescannolongermeettherequirements.Thispaperintroducestheprocessofdevelopingamanagementsystemwiththestrategyof"top-downmasterplan,bottom-upapplicationdevelopment"inJAVAenvironment.Byanalyzingtheshortcomingsoftraditionalmanuallibrarymanagement,aneffectiveschemeofcomputerlibrarymanagementisestablished.Thedocumentintroducesthesystemanalysispartofthelibrarymanagementinformationsystemindetail,includingfeasibilityanalysis,systemanalysis,businessprocessanalysis,dataprocessanalysis,etc.Thesystemdesignpartmainlyintroducesthesystemfunctiondesignanddatabasedesign;thesystemimplementationpartlistsnewbookaddition,bookborrowing,bookreturn,etc.Themainprogramblockdiagramsofbookretrieval,readermanagementandbookmanagementareattachedwithsomemainwindowsandprocedures.Thelibrarymanagementsystemdesignedinthispaperhasanefficientmanagementabilityforbooks,reader'sinformation,borrowingandreturningbooksandotherinformation.Afterusingtheprogram,thestaffcaninquireabouttheborrowingsituationofareaderandabook,andcanalsomakesomestatisticsonthecurrentsituationofbookborrowing,soastofullygraspthecirculationofbooks.Keywords:bookmanagementsystem;browser;dynamicwebtechnology;database目录摘要 IAbstract II第1章绪论 11.1研究背景 11.2研究意义 11.3国内外研究现状 21.3.1国外研究现状 21.3.2国内研究现状 21.4开发技术 21.4.1JAVA简介 21.4.2B/S结构介绍 3第2章系统分析 52.1需求分析 52.2可行性分析 52.2.1技术可行性 52.2.2经济可行性 52.2.3操作可行性分析 62.3图书借阅管理系统需求模型 6第3章总体设计 83.1数据库设计 83.2数据流图 103.3逻辑结构设计 133.4系统总体结构设计 153.4.1图书管理系统总体结构图 163.4.2用户管理员模块功能 163.4.3图书管理员模块功能 173.4.4读者管理模块功能 173.4.5借阅者模块功能 17第4章系统程序设计与编码 184.1登录窗口与主窗体 184.1.1系统登录窗体的创建 184.1.2主窗体的运行界面 194.2主窗体调用各个模块部分 204.2.1读者管理 204.2.2图书管理 254.2.3流通管理 284.2.4查询分析 314.2.5账号管理 38第5章系统测试与运行 425.1测试的目的 425.2单元测试 425.2.1读者管理测试 425.2.2图书管理测试 435.2.3系统管理测试 445.3数据库测试 44结论 45参考文献 45致谢 47PAGE39第1章绪论1.1研究背景随着计算机技术的飞速发展,计算机所在生活中的应用的普及,利用计算机实现图书的管理势在必行。如何以一种新的管理方式提高图书流通信息的反馈速度,降低库存占用,加快资金周转,提高工作效率,已经成为图书企业提高竞争力的关键。信息技术的发展为图书企业管理带来了新的力量。通过图书馆管理系统对图书企业的经营进行全过程管理,不仅使企业摆脱了手工管理带来的一系列问题,而且提高了工作效率和企业的经济效益。对高校图书馆来说,提高工作效率尤为重要。传统的管理流程存在的不足。首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。为此,图书管理系统需要为图书馆解决上述问题,提供快速的图书信息检索功能、快捷的图书借阅、归还流程。1.2研究意义构建系统化的图书馆管理系统,可以作为数字图书馆未来发展的跳板。通过建立和完善图书馆系统的各项功能,图书馆将逐步向数字图书馆的方向靠拢。数字图书馆是时代的产物,是一个不断发展的新事物。目前,世界上许多发达国家都在加快数字图书馆的建设。数字图书馆已成为国际高科技竞争的新制高点,成为衡量一个国家信息基础设施水平的重要标志。对我国来说,数字图书馆的建设可以建立以中文信息为主的各类信息资源。解决互联网上中文信息的匮乏,形成中国文化在互联网上的整体优势。数字图书馆也是保存和继续发展民族文献遗产的最佳途径。所有珍贵的材料都可以数字化,储存在一个更合适的环境中。然而,数字化资料的复制并不影响一般的获取感。因此,加快我国数字图书馆建设势在必行。极大的方便图书馆的广大师生对图书借阅的需求,对构建图书馆现代化图书馆提供了软件支持。1.3国内外研究现状1.3.1国外研究现状在国外由于信息技术起步较早,信息技术的发展已经达到先进水平,在领域的运用也已经达到成熟水平。在图书管理领域国外的图书管理系统已经达到了世界先进水平,建立起了一整套的管理解决方案。比较出名的是美国SIRSI公司的Unicorn系统、美国InnovationInterface公司的INNOPAC系统、以色列的ExLibris公司开发的Aleph500。这些系统成功都具有一些共同的特征:界面友好、功能强大、扩展性强、集成度高。1.3.2国内研究现状在我国,图书馆运用信息化技术进行辅助管理技术起步于20世纪70年代。国内的图书管理系统大多集中在对图书馆书籍类目、存储位置及存存储量的管理上。目前各高校基本上都建立了图书管理系统,方便在校的广大教职工进行图书借阅。目前,国内图书馆管理系统仍处于逐步规范和快速发展的过程中。近年来,随着硬件技术的发展,传统的图书馆管理系统采用了软硬件相结合的方式来提高图书馆的管理运行。更成熟的技术是利用射频技术建立图书定位、自动借阅和归还的智能图书馆管理系统。图书电子化的过程在一些图书馆也得到了应用。目前,图书馆销售管理系统广泛应用于学校、工商、企事业单位等单位。几乎每一个开展信息化建设的单位都有一套图书销售管理系统。而在使用计算机系统对图书的管理,其实就是对信息的管理。使用信息系统对图书馆进行管理,将会大幅提高管理的效率、便捷与安全。1.4开发技术1.4.1JAVA简介JAVA(外文名:JAVA:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。JAVA独特的语法混合了C、Java、Perl以及JAVA自创的语法。它可以比CGI或者Perl更快速地执行动态网页。与其他编程语言相比,Java将程序嵌入到HTML(标准通用标记语言中的应用程序)文档中执行,这比完全生成HTML标记的CGI更有效。Java还可以编译后执行解码,可以实现加密和优化代码操作。使代码运行得更快。1.4.2B/S结构介绍b/s结构是一种新的基于web的网络结构模式。众所周知,客户端是web浏览器最重要的应用软件。这种模式使得系统的开发、维护和使用更加方便。B/S(Browser/Server)结构与C/S(Client/Server)架构有以下的不同:(1)B/S结构为三层架构,而C/S结构为两层结构。再由B/S开发的系统中,浏览器可以直接向网络上的服务器发送请求信息。这样使用浏览器作为客户端,使系统的配置变得简单,同时大大减小了安装、维护的费用。(2)B/S较C/S架构,系统开发更加灵活,更易改造,而C/S则更具有专用型,不易根据需求进行改造。(3)B/S架构开发的系统界面更加友好,对于用户来说更易操作,使用前,不用对用户进行培训;而C/S架构开发的系统,由于不同的客户端设计不同,使用方法不同,所以对于用户来说,不易上手,需要进行培训。(4)B/S架构的系统通用性更好,具有跨平台性;而C/S架构的系统则不具有此特性。(5)B/S架构的安全性比C/S架构要更好一些,因为对于C/S架构,B/S架构,客户端和服务期之间又多了一层web服务器,使得它们之间没有直接连接,进而安全性更好。(6)B/S架构在保持数据一致性上更有优势。由于C/S架构的系统,一般都采用区域级的服务器,需对服务器进行同步,信息才可以更新到总部;而B/S的系统中,数据集中存放,每条数据都直接存放到中央数据库,所以不存在数据不一致的问题,数据同步性能更好。B/S结构如图1.1所示:客户机客户机客户机客户机数据库服务器发送请求返回信息网络服务器ODBC图1.1B/S结构图
第2章系统分析2.1需求分析作为一个图书管理系统,应该给用户提供方便,简洁的界面应用,对图书借阅归还的流通中图书的详细记录进行归档,实现新进图书的数据录入,实现对所有购进图书的分类查询和分类统计,能够按书名、作者等分类查询现有图书的数量,记录借阅者的个人资料和所借图书的书名、书号数据等,借书时如果每次超过限量或累积超过限量,提示相应信息,并拒绝借阅等功能都是必不可少的。2.2可行性分析可行性分析是基于图书馆对图书馆管理系统的原始需求。本文运用软件工程的理论和技术,从经济可行性、技术可行性、操作可行性和法律法规等方面论证了图书馆图书馆管理体制的可行性。全面开展可行性分析,以尽可能低的成本满足图书馆图书管理需求,确保系统后期详细需求分析的正确性。2.2.1技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JAVA开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,随着科学技术的飞速发展,硬件更新越来越快,容量越来越大,可靠性越来越高,价格越来越便宜。因此,硬件平台也能满足系统的需求。2.2.2经济可行性图书馆图书管理系统的系统开销分析和数据采集费用约1000元。按照行业中层技术人员的工资计算,系统开发成本为每月5000元。系统弹出的总支出工资为2.5万元,加上服务器购置费2.6万元。购置费14000元,共计40000元。如果把这个系统外包给其他软件公司的成本在20万元左右,通过我的研发可以为图书馆节省16万元。因此,本系统的研发具有较强的经济可行性。2.2.3操作可行性分析在满足客户需求的同时,也要满足发展理念,考虑客户的经济能力,实现系统的最佳化。图书馆图书馆管理系统采用web结构进行结构,用户可以使用客户端浏览器进行访问,不需要独立安装应用程序,操作方便,升级快。且本系统的界面设计风格简洁明了,导向性很强,因此图书馆图书管理系统的操作可行性是很可强的。2.3图书借阅管理系统需求模型图书馆管理系统的主要任务是实现读者的快速检索和查询,方便借阅和归还图书。图书馆员有效地完成了系统的基本操作。用户管理员管理用户设置权限的操作。从图2.1可以看出,图书馆借阅管理系统需要完成一些功能:(1)登录功能:用户管理员、图书管理员、读者和借阅人必须登录系统才能实现各种权限。只有身份验证正确时,系统的相应权限才不同。(2)图书设置功能:图书管理员可以设置图书馆相关的参数信息。(3)用户管理功能:用户管理员对系统用户进行添加,修改,删除,权限设置等操作。(4)查询功能:对图书馆的馆藏图书等信息进行查询。图书借阅图书借阅借阅者图书归还图书续借管理图书信息图书信息管理用户信息用户信息获取用户信息根据读者信息获取借阅图书信息图书借阅信息图书续借图书借阅归还图书图书归还信息图2.1图书馆实现的功能
第3章总体设计3.1数据库设计数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进行专门阐述。数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。数据库设计是将现实世界的实体模型和需求转化为数据库模型的过程。这是建立数据库应用系统的核心问题。良好的数据库设计是数据库及其应用的基础。数据库的数据是所有操作的基础。如果数据库设计不好,那么所有其他用于提高数据库性能的方法都是有限的。数据库设计的关键是如何合理地存储用户的数据,方便用户的数据处理。数据库的设计必须遵循一定的规则。在关系数据库中,该规则是一种范式,是一组符合一定层次的关系模式。一般来说,人们按照第三种范式设计数据库。也就是说,数据库表不包含已包含在其他表中的非主关键字信息。使用范例减少了数据冗余,节省了存储空间,加快了添加、删除和更改的速度。针对图书管理系统,有4类核心对象:读者,借阅者,图书管理员,用户管理员。分别实现图书的流通,图书的管理,图书管理系统的管理。系统包含对象如图3.1。高校图书管理系统高校图书管理系统图书进馆图书外借图书归还图书管理员参数设置借阅者图书信息借阅者是否超期罚款进馆信息处理图书 息修改信息出馆信息用户管理借阅者超级管理员图书管理员权限用户登录用户名密码图3.1图书管理系统功能模块本文用e-r图描述了图书馆借阅管理系统的数据模型。图3.2图书馆借阅管理系统的e-r图描述了系统涉及的实体及其关系。混凝土结构如图3.2所示。图3.2系统开始实体属性图图3.3读者实体属性图图3.4系统E-R图3.2数据流图数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。图3.5为图书管理信息系统的顶层数据流程图。资料室管理员资料室管理员P0图书管理信息系统读者管理信息图书管理信息借阅管理信息读者读者信息图3.5系统顶层数据流程图(1)0层数据流图如图3.6所示。PP1图书管理系统管理员读者图书管理读者信息图书图书信息图3.60层数据流图(2)1层数据流图如图3.7所示。P1P1图书管理管理员P2读者管理P3借阅管理修改书籍信息图书信息图书信息查看数据图书信息表读者信息读者信息读者信息表借阅信息表查看信息修改信息查看信息D1D2D3修改书籍信息查看信息图3.71层数据流图(3)2层数据流图如图3.8所示。P1分解管理员管理员P1.2修改图书信息P1.3删除图书图书信息表D1增加图书入库数据修改信息修改数据删除图书删除数据图3.82层P1分解数据流图P2分解管理员管理员P2.1读者类别管理P2.3读者信息管理读者类别表D4读者类别信息读者类别信息读者信息读者信息读者信息借阅信息表D3读者信息D2读者信息表借阅信息信息图3.92层P2分解数据流图P3分解管理员管理员P3.1借书管理D1借阅信息表借阅信息信息借阅信息信息P3.2还书管理D4罚款信息表还书信息信息P3.3罚款管理P3.4续借管理借阅信息D2D3读者信息表图书信息表图书超期罚款信息读者信息信息图书信息信息图书信息信息D1借阅信息表借阅信息信息读者信息信息图3.102层P3分解数据流图图3.11数据流设计3.3逻辑结构设计图书馆信息表主要用于存储馆藏图书的相关信息。图书入库时,由操作人员补充完善相关信息。这张桌子主要供读者和图书管理员在图书馆里查询图书。系统的用户可以根据图书的某一属性来了解图书。他提供的相关信息,其中图书的书架属性便于读者借阅时查找图书,而图书价格是读者意外丢失图书时补偿丢失图书的依据。图书管理系统数据项描述如下:表3.1tb_book表属性名数据描述数据类型是否为空备注b_id图书在馆编号ISBNVarchar(20)否主键b_name书名Varchar(20)否b_byname别名Varchar(20)是b_version版本smallint是b_author作者Varchar(20)否b_press出版社Varchar(20)否b_type图书类别Char(10)否b_pdate出版日期Date()是b_indate进馆日期Date()否b_num在馆数量int否b_intro简介Varchar(200)是b_price价格Varchar(50)否借款人信息表的设计是由用户管理员对借款人进行管理,其中读卡器id和不同类型证书的个数都是唯一的。借书人借书时需要输入的信息来识别读者的身份。阅览室如阅览室的邮件和电话,以便联系阅览室,阅览员的类型信息。它确定了读者一次可以借阅的图书数量,登记时间可以用来查询和计算读者身份的有效期。操作员操作查询以方便信息。表的具体结构设计如下:表3.2tb_user表属性名数据描述数据类型是否为空备注u_id用户编号Char(10)否主键u_name真实姓名Varchar(10)否u_sex性别男或女否u_class班级Varchar(20)是u_dept学院Varchar(20)是u_tel电话号码Numeric(11)是u_job工作状况Char(10)是u_mailbox邮箱Varchar(50)否u_birthday生日Date()否u_login登录名Varchar(20)否u_date创建日期Date()否u_type用户类型Useradmin,reder,bookadmin,recordadmin否u_picurl用户照片Varchar(50)否u_password用户密码Varchar(20)否初始1此表旨在对不同身份的读者进行分类,以便于读者管理。其中,可借阅图书数量的属性设置是根据读者的不同需求进行的特权设置。它用于指定不同类型的读者一次可以借阅的图书数量。该表的具体结构如下:表3.3tb_record表属性名数据描述数据类型是否为空备注u_id用户编号Char(10)否外键主键b_id图书编号Varchar(20)否外键borrow_date借阅日期Date()否borrow_num借阅本数int否如还书本书>借书则错误,如<则修改此表的设计是为了系统管理员添加消息新闻,表的具体结构如下:表3.4tb_news表属性名数据描述数据类型备注n_name新闻名称Varchar(50)主键n_type新闻类型Varchar(10)n_content新闻类容Varchar(500)n_date建立日期date此表的设计设为了借阅者没有及时还书出现的罚款,表的具体结构设计如下:表3.5tb_pulishment表属性名数据描述数据类型是否为空备注P_name罚款名称Char(10)否主键P_money罚款基本数Float否3.4系统总体结构设计该系统在Win7采用JAVA具,MySQL数据库来设计,开发过程与成果应符合GB/T11457-1995软件工程术语,GB/T8567-1988计算机软件产品开发文件编制指南等。3.4.1图书管理系统总体结构图系统结构图将使读者和用户直观地了解系统的结构,了解系统的各个功能的结构,可以非常方便地使用和了解整个系统。本系统的结构图如3.12图。图3.12图书管理系统模块3.4.2用户管理员模块功能该模块主要包括用户信息设置,用户管理,用户添加,新闻添加。(1)用户信息设置该功能子模块主要由用户管理员对系统用户进行管理。通过该子模块的功能,可以对用户进行添加、修改、删除、权限设置等操作。该子模块可以将图书馆的不同工作细化到不同的相关人员,大大提高了图书馆的工作效率。该操作是对tb_users表进行操作,在对用户进行了相关的操作后把操作后的最新信息存放在该表中。(2)用户添加此系统用户必须通过用户管理员添加用户。该操作是对于user表进行,并把操作后的最新数据存放在该表中。(3)新闻添加该功能子模块主要是用户管理员发布新闻消息通知等的添加和删除操作,通过此子模块的功能实现可以发布新闻通知。该操作是对tb_news表进行操作,在对系统进行了相关的操作后把操作后的最新信息存放在该表中。3.4.3图书管理员模块功能该模块主要包括图书添加删除,图书借还信息查询。(1)图书添加删除该功能子模块主要是图书管理员对图书的管理,通过此模块可以实现对图书信息的添加、删除、修改等操作,使管理图书更加方便。该操作是对表tb_book表进行修改,并将操作结果保存在该表中。(2)图书借还信息查询本功能子模块是图书馆员对图书借阅情况的查询操作。本模块主要设置读者一次可以借阅的图书数量。操作在tb_记录表上执行,操作结果保存在表中。3.4.4读者管理模块功能该模块主要包含图书查询和图书阅览两个子模块:(1)图书查询该功能子模块是应用于图书的检索,该检索由书名检索、作者检索和关键字检索组成,方便读者和借阅者查询图书。(2)图书阅览该功能子模块主要为读者提供图书阅读。3.4.5借阅者模块功能该模块主要包含图书查询、图书借阅、图书归还和图书到期提醒模块。(1)图书查询该功能子模块是应用于图书的检索,该检索由书名检索、作者检索和关键字检索组成,方便读者和借阅者查询图书。(2)图书借阅、归还该功能子模块主要是方便借阅者借阅、归还图书,方便图书借阅者借书和还书。该操作是对于tb_record表进行。(3)图书到期提醒该功能子模块主要是提醒借阅者到期还书,超过期限将会罚款通知。该操作是对于tb_pulishment表进行,并将操作结果保存在该表中。
第4章系统程序设计与编码4.1登录窗口与主窗体根据功能需求编写了读者管理、图书管理、流通管理、查询分析、账号管理等模块的多个界面。4.1.1系统登录窗体的创建双击图标运行程序以后,就可看到程序的登录界面,如图4.1所示。选择用户权限并输入正确的用户编号和用户密码方可登录。图4.1系统登录界面启动系统程序后,首先进入系统登录界面。此时,系统将要求用户输入用户名和密码作为身份验证信息。为了防止非用户重复浏览登录信息,系统在登录时限制了三次添加次数。如果超过三次,它将自动退出。系统有一个用户表储存用户的信息,根据权限的不同分别管理员和读者。按取消按钮就会退出系统。 functionvalidateform() { if(document.userinfo.loginname.value=="") { window.alert("请输入用户的登录名!") returnfalse; } if(document.userinfo.password.value=="") { window.alert("密码不能为空!") returnfalse; }4.1.2主窗体的运行界面主窗口是一个多文档窗口,提供了对于各个模块和各种操作的接口。根据模块化原理,本系统可按照不同的功能分成五个独立的功能模块实现系统所需功能。系统主体平台的五个功能模块,分别是读者管理、图书管理、流通管理、查询分析、账号管理。此系统中每一个模块可以由下一级模块实现,下面将详细介绍各个功能模块所完成的功能。登录成功以后,显示主界面,如图4.2所示,系统会根据登录系统时选择的用户权限自动生成相关的权限。并在主界面上自动生成此时的系统日期和时间。图4.2主窗体界面程序代码如下: //TODO:Addextrainitializationhere //设置程序运行从登录界面开始 CLibraryDlgLoginDlg; b_Login=1; LoginDlg.b_Login=&b_Login; LoginDlg.DoModal(); if(b_Login) { CDialog::OnOK(); }voidCLibDBSDlg::OnButtonNewBook() //调应新书登记入库对话框{ //TODO:Addyourcontrolnotificationhandlercodehere CNewBooksDlgNewDlg; NewDlg.DoModal();}4.2主窗体调用各个模块部分4.2.1读者管理读者管理模块包括三个功能模块,分别是读者档案管理、借书证办理、读者类型设置。(1)读者档案管理读者档案管理主要是对读者档案管理基本信息如(编号、姓名、性别、类型、状态、已借书数量、联系方式)的添加、修改、删除及统计记录个数。不单击添加,无法在界面上输入任何数据,只有单击添加之后才可以进行输入。修改需要单击一条记录,然后再单击修改才可以进行数据的修改。删除需要先需要单击一条记录,然后再单击删除才可以进行数据的删除。添加、修改、删除这些操作必须保存后才能生效。取消可以取消当前的添加、修改、删除的操作。退出可以退出当前界面,返回主界面。界面如图4.3所示。图4.3读者档案管理界面 读者 </td> <tdalign="center"valign="middle"> <inputtype="radio"name="usertype"value="bookadmin"> 图书管理员 </td> <tdalign="center"valign="middle"> <inputtype="radio"name="usertype"value="useradmin"> 用户管理员 </td> <tdalign="center"valign="middle"> <inputtype="radio"name="usertype"value="recordadmin"> 借阅管理员 </td> </tr> <trheight="50"> <tdcolspan="6"align="center"> <inputname="reset"type="reset"value="重新填写"> <inputname="submit"type="submit"value="提交信息"> </td> </tr>(2)借书证办理可以报告并恢复丢失的借书证。当借书证丢失时,读者不能借书。借书证恢复后,可以再借书。库卡处理界面如图4.4所示。图4.4借书证办理界面voidCBorrowDlg::OnButtonOk(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_strProofID==""||m_strBookID=="") { MessageBox("输入的域不完整,请重新输入!","借书管理",MB_ICONERROR); m_strProofID.Empty(); m_strBookID.Empty(); UpdateData(FALSE); return; } if(!m_database.IsOpen()) { if(!m_database.Open(_T("Library"))) { MessageBox("无法连接到数据来源!","借书管理"); return; } } CStringstrSQL; //判断借书人是否有资格 strSQL.Format("select*fromProof_InfowhereProof_ID='%s'",m_strProofID); CProofSet*m_pProof=newCProofSet(&m_database); m_pProof->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pProof->GetRecordCount()==0) { MessageBox("数据库中没有这个人的信息","借书/还书",MB_ICONINFORMATION); m_pProof->Close(); m_database.Close(); return; } CDBVariantvarValue,var; m_pProof->GetFieldValue(7,varValue); if(varValue.m_iVal==4) { //如果不满足条件 MessageBox("你不能借书超过4本!","借书/还书",MB_OK|MB_ICONINFORMATION); m_pProof->Close(); m_database.Close(); return; }(3)读者类型设置读者类型设置主要完成对读者类型的设置,类型编号、类型名称、最大借书数量、最大借阅时间、续借次数。可以对其进行增加、修改、删除操作。读者输入信息完毕后,单击“确定”按钮就可以将所输入的资料写入后台数据库中,从而完成添加读者的操作。读者类型设置如图4.5所示。图4.5读者类型设置 functionvalidateform() { if(document.record.bookid.value=="") { window.alert("请输入图书编号!") returnfalse; } if(document.record.readerid.value=="") { window.alert("请输入读者编号!") returnfalse; } if(document.record.booknum.value=="") { window.alert("请输入图书数量!") returnfalse; }</script></head><body><!--***************************header***************************--><?javainclude"data/header.inc"?><!--***************************main**************************--><center><tableborder="1"width="800"height="30"cellspacing="0"cellpadding="0"bgcolor="#E4E4E4"bordercolorlight="#C2C2C2"bordercolordark="#FFFFFF"> <tr> <tdwidth="234"align="center"> <imgsrc="pics/position.png"alt="position"width="16"height="16"align="absmiddle"> 你的位置 </td>4.2.2图书管理(1)新书入库新书入库主要是对书籍的基本信息如(图书编号,书名,作者信息,出版社,价格,ISBN,图书类型,入库时间,馆藏总量,现存量,简介,借出次数,状态)进行添加操作,实现新书入库的功能,单击确定后,将书籍信息存入到数据库中。新书入库窗体如图4.6所示。图4.6新书入库窗体<?javainclude"data/header.inc"?> <tr> <tdwidth="34%"align="center">图书名称:</td> <tdwidth="66%"colspan="5"> <inputtype="text"name="mainname"size="30"> <fontcolor="#8080C0">*</font> </td> </tr> <tr> <tdwidth="34%"align="center">图书别名:</td> <tdwidth="66%"colspan="5"> <inputtype="text"name="byname"size="30"> </td> </tr> <tr> <tdwidth="34%"align="center">图书版次:</td> <tdwidth="66%"colspan="5"> <inputtype="text"name="bookversion"size="30"> <fontcolor="#8080C0">【格式:数字】</font></td> </tr> <tr> <tdwidth="34%"align="center">作者姓名:</td> <tdwidth="66%"colspan="5"> <inputtype="text"name="author"size="30"> </td> </tr> <tr>(2)图书注销图书注销主要是对图书的基本信息的注销和恢复。当输入书籍编号,并单击查询按钮后,可以看到书籍的相关信息如(书籍类型,名称,状态,作者,出版社),单击注销按钮,将会删除此图书的信息,针对破损的书籍或者需要更新的书籍。当单击恢复按钮后,可以将删除的书籍恢复,操作简单方便。关闭可以退出当前界面,返回主界面。图书注销窗体如图4.8所示。图4.8图书注销界面 intm_yeardiff,m_monthdiff,m_daydiff,m_timediff; oriTime=m_pBorrow->m_Borrow_Date; curTime=CTime::GetCurrentTime(); m_yeardiff=curTime.GetYear()-oriTime.GetYear(); m_monthdiff=curTime.GetMonth()-oriTime.GetMonth(); m_daydiff=curTime.GetDay()-oriTime.GetDay(); m_timediff=m_yeardiff*365+m_monthdiff*30+m_daydiff; //借有这本书,删除这条记录信息。 m_pBorrow->Delete(); m_pBorrow->Close(); //将借书人借书的总数减一 strSQL.Format("select*fromProof_InfowhereProof_ID='%s'",m_strProofID); CProofSet*m_pProof=newCProofSet(&m_database); m_pProof->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pProof->GetRecordCount()==0) { MessageBox("借阅证号输入有误!","借书/还书",MB_ICONINFORMATION); m_pProof->Close(); m_database.Close(); return; } CDBVariantvarValue;(3)图书类型管理图书类型管理是设置图书类型,主要功能也是对如(编号,类型名称)的添加、修改、删除及统计记录个数。不单击添加,无法在界面上输入任何数据,只有单击添加之后才可以进行输入。删除需要先需要单击一条记录,然后再单击删除才可以进行数据的删除。添加、修改、删除这些操作必须保存后才能生效。取消可以取消当前的添加、修改、删除的操作。退出可以退出当前界面,返回主界面。图书类型管理窗体如图4.9所示。图4.9图书类型管理4.2.3流通管理(1)图书借阅图书借阅模块实现图书的借阅功能,操作简单方便直观。输入读者编号后回车,可以显示读者姓名,读者类型,可借数量,在界面底端显示已借数量,如果已借数量达到借阅上限,则系统提示不能继续借阅功能,若符合借阅条件后,输入要借阅的图书编号,回车后,显示该读者借阅的信息(图书编号,图书名称,作者,出版社,借阅时间,应归还时间),并且更新显示已借数量和本次借书册数。图书借阅窗体如图4.10所示。图4.10图书借阅界面 intm_yeardiff,m_monthdiff,m_daydiff,m_timediff; oriTime=m_pBorrow->m_Borrow_Date; curTime=CTime::GetCurrentTime(); m_yeardiff=curTime.GetYear()-oriTime.GetYear(); m_monthdiff=curTime.GetMonth()-oriTime.GetMonth(); m_daydiff=curTime.GetDay()-oriTime.GetDay(); m_timediff=m_yeardiff*365+m_monthdiff*30+m_daydiff; //借有这本书,删除这条记录信息。 m_pBorrow->Delete(); m_pBorrow->Close(); //将借书人借书的总数减一 strSQL.Format("select*fromProof_InfowhereProof_ID='%s'",m_strProofID); CProofSet*m_pProof=newCProofSet(&m_database); m_pProof->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pProof->GetRecordCount()==0) { MessageBox("借阅证号输入有误!","借书/还书",MB_ICONINFORMATION); m_pProof->Close(); m_database.Close(); return; }(2)图书归还图书归还模块实现图书的归还功能,操作简单方便直观。输入读者编号后回车,可以显示读者姓名,读者类型,显示借阅书籍的相关信息如(借阅编号,图书编号,图书名称,作者,出版社,借阅时间,应归还时间,操作员),且在界面底端显示已借图书数量,根据需要还书情况输入书籍编号,回车后完成图书的归还操作。图书归还窗体如图4.11所示。图4.11图书归还界面//还书voidCBorrowDlg::OnButtonReturn(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_strProofID==""||m_strBookID=="") { MessageBox("请正确输入数据!","借书管理",MB_ICONERROR); m_strProofID.Empty(); m_strBookID.Empty(); UpdateData(FALSE); return; } if(!m_database.IsOpen()) { if(!m_database.Open(_T("Library"))) { MessageBox("无法连接到数据源!","借书管理"); return; } } CStringstrSQL; //借书信息表中是否有借书人的信息 strSQL.Format("select*fromBorrow_InfowhereProof_ID='%s'ANDBook_ID='%s'",m_strProofID,m_strBookID); CBorrowSet*m_pBorrow=newCBorrowSet(&m_database); m_pBorrow->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pBorrow->GetRecordCount()==0) { MessageBox("借阅证号或书号有误!","借书/还书",MB_OK|MB_ICONINFORMATION); m_pBorrow->Close(); m_database.Close(); return; } doublem_dblPunish=0.0; CTimecurTime,oriTime;4.2.4查询分析(1)图书查询图书查询模块实现了图书查询功能。根据需要,选择所需的搜索字段(书号、图书类型、图书名称、出版社、作者),输入相关搜索词,点击返回按钮,即可执行图书检索任务。检索后显示图书的相关详细信息。图书查询窗体如图4.14所示。图4.14图书查询界面voidCNewBooksDlg::OnButtonCheckBooks(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_strBookID=="") { MessageBox("请正确填写信息,(书号?)","新书登记"); return; } if(!m_database.IsOpen()) { if(!m_database.Open(_T("Library"))) { MessageBox("Cannotaccessthedatabase!","新书登记"); return; } } CBookSet*m_pset=newCBookSet(&m_database); CStringstrSQL; strSQL.Format("select*fromBook_InfowhereBook_ID='%s'",m_strBookID); m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pset->GetRecordCount()==0) { MessageBox("Nothisbookinthedatabase!","新书登记"); m_database.Close(); return; }(2)图书查询借阅信息查询模块实现读者借阅信息查询功能。根据需要,选择所需的搜索字段(读者号、读者姓名、管理员),输入相关搜索词,点击返回按钮,即可执行借阅信息检索任务。检索后显示图书的相关详细信息。借阅信息查询窗体如图4.15所示。图4.15借阅信息查询界面<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><linkrel="shortcuticon"href="favicon.ico"/><title>检索图书</title><linkhref="lms.css"rel="stylesheet"type="text/css"><script><!-- functionvalidateform() { if(document.booksearch.bookname.value==""&&document.booksearch.author.value==""&&document.booksearch.keyword.value=="") { window.alert("请输入你要搜索的信息!") returnfalse; } }<center><tableborder="1"width="800"cellspacing="0"cellpadding="0"bgcolor="#E4E4E4"bordercolorlight="#C2C2C2"bordercolordark="#FFFFFF"><tr> <td>(3)超期图书过期图书模块实现了过期图书的查询功能。进入本模块后,显示逾期未还的情况。管理员可根据过期图书的情况,通知读者尽快归还图书。读者也可以查看自己的过期图书情况。超期图书窗体如图4.16所示。图4.16超期图书界面 CBorrowSet*m_pBorrow=newCBorrowSet(&m_database); strSQL.Format("select*fromBorrow_InfowhereProof_ID='%s'ANDBook_ID='%s'",m_strProofID,m_strBookID); m_pBorrow->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pBorrow->GetRecordCount()==0) { MessageBox("没有关于这个人借这本书的信息!","图书挂失"); m_pBorrow->Close(); m_database.Close(); return; } intm_yeardiff,m_monthdiff,m_daydiff,m_timediff; oriTime=m_pBorrow->m_Borrow_Date; curTime=CTime::GetCurrentTime(); m_yeardiff=curTime.GetYear()-oriTime.GetYear(); m_monthdiff=curTime.GetMonth()-oriTime.GetMonth(); m_daydiff=curTime.GetDay()-oriTime.GetDay(); m_timediff=m_yeardiff*365+m_monthdiff*30+m_daydiff; //超期,予以罚款 if(m_timediff>30) { //60天为超时限制时间,一天缴纳罚款0.1元 m_dblPunish=m_dblPunish+(m_timediff-30)*0.1; } //无论是否超期,首先进行还书操作,然后处以丢书罚款 //Borrow_Info删除该条记录 m_pBorrow->Delete(); m_pBorrow->Close(); //Proof_Info减少借书数量 CProofSet*m_pProof=newCProofSet(&m_database); strSQL.Format("select*fromProof_InfowhereProof_ID='%s'",m_strProofID); m_pProof->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pProof->GetRecordCount()==0) { MessageBox("读取借书人信息出错,将进行回退,请与馆主联系!","图书挂失"); //回退,这里不进行 m_pProof->Close(); m_database.Close(); return; } m_pProof->Edit(); m_pProof->m_Now_Borrow_Amount--; m_pProof->Update(); m_pProof->Requery(); m_pProof->Close();(4)图书排行图书排行模块实现图书排行功能,进入此模块后显示图书排行的情况,读者可以参考此信息借阅热门书籍等。图书排行窗体如图4.17所示。图4.17图书排行界面 m_pset->MoveFirst(); charbuf; inti=0; CStringstrtemp; CDBVariantvarValue; while(!m_pset->IsEOF()) { inttemp=0; m_ctrList.InsertItem(i,buf); m_pset->GetFieldValue(temp,strtemp); m_ctrList.SetItemText(i,0,strtemp); m_pset->GetFieldValue(2,varValue); sprintf(buf,"%.0f",varValue.m_dblVal); m_ctrList.SetItemText(i,1,buf); i++; m_pset->MoveNext(); UpdateData(FALSE); } m_pset->Close(); m_database.Close(); m_name=""; UpdateData(FALSE); }4.2.5账号管理(1)管理员设置管理员设置模块实现管理员的设置功能。选择操作员ID,进行搜索,选择单条的管理员信息对其修改和删除,也可以新增管理员。管理员设置窗体如图4.18所示。图4.18管理员设置界面voidCAddUserDlg::OnOK(){ //TODO:Addextravalidationhere this->UpdateData(TRUE); if(m_strUser.Compare("")==0||m_strPassword.Compare("")==0) { MessageBox("请正确填写所需数据","增加用户"); return; } if(!m_database.IsOpen()) { if(!m_database.Open(_T("Library"))) { MessageBox("数据库打开出错!","图书信息!"); OnOK(); return; } } if(m_strPassword!=m_strPassword2) { MessageBox("两次密码输入不相同!","图书信息!"); m_strPassword.Empty(); m_strPassword2.Empty(); UpdateData(FALSE); return; } CStringstrSQL; longnum=1000; CUserSet*m_pset=newCUserSet(&m_database); strSQL.Format("select*fromAdmin_Info"); m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); m_pset->MoveFirst(); while(!m_pset->IsEOF()) { num++; CStringuser_name; m_pset->GetFieldValue((short)0,user_name); if(user_name==m_strUser) { MessageBox("该用户已经存,请重新输入!","学生缴费系统"); m_strUser.Empty(); m_strPassword.Empty(); m_strPassword2.Empty(); UpdateData(FALSE); return; } m_pset->MoveNext(); }(2)修改密码修改密码模块,实现密码修改功能。输入原始密码和新密码并确认新密码。如果原始密码输入错误,将提示原始密码输入错误。新密码集需要输入两次以确保输入的正确性。单击确认按钮后,密码修改成功。密码修改窗体如图4.19所示。图4.19密码修改//修改密码voidCChangePasswordDlg::OnButtonOk(){ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData(); if(m_strUserName.IsEmpty()) { MessageBox("请输入用户名!","登录系统",MB_OK|MB_ICONEXCLAMATION); m_strUserName.Empty(); UpdateData(FALSE); return; } if(!m_database.IsOpen()) { //连接数据源 if(!m_database.Open(_T("Library"))) { MessageBox("连接数据库失败!","图书管理系统",MB_OK|MB_ICONINFORMATION); return; } } if(m_strPassword_new1!=m_strPassword_new2) { MessageBox("两次密码不同!","确认密码",MB_OK|MB_ICONEXCLAMATION); m_strPassword_old.Empty(); m_strUserName.Empty(); m_strPassword_new1.Empty(); m_strPassword_new2.Empty(); UpdateData(FALSE); return; }
第5章系统测试与运行5.1测试的目的系统测试是管理系统开发周期中非常重要的一环。在系统开发周期的每个开发阶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年金属制品交易协议3篇
- 2024年甲乙双方关于机器设备采购的合同
- 2024年瓦工工程承包合同标准模板版
- 2025年度出租车行业新能源推广与应用合同3篇
- 2024年私人派对场地租用协议3篇
- 新部编版九年级道德与法治下册谋求互利共赢完美课件
- 2024幼儿园幼儿接送车辆维护与安全合同3篇
- 郑州旅游职业学院《医学与法学专题讲座》2023-2024学年第一学期期末试卷
- 江苏科技大学苏州理工学院《城市设计》2023-2024学年第一学期期末试卷
- 泉州工程职业技术学院《抽样技术》2023-2024学年第一学期期末试卷
- 肿瘤科工作制度
- GB/T 4795-2023船用舱底水处理装置
- 特种设备作业人员考核申请表(样表)
- 融合心理健康教育的教学设计(八年级数学下册苏科版教案)
- 企业实际控制人的协议书
- 七年级英语完形填空、阅读理解题库100题含参考答案
- 2022年贵州省贵阳市新区第一实验中学高一地理上学期期末试卷含解析
- 集团企业有效管控子公司的方法与手段
- 厚板的电渣焊接
- 小学语文《乡下人家》优秀作业设计
- GBZ(卫生) 264-2015车载式医用X射线诊断系统的放射防护要求
评论
0/150
提交评论