图书馆管理系统的研究与开发.doc_第1页
图书馆管理系统的研究与开发.doc_第2页
图书馆管理系统的研究与开发.doc_第3页
图书馆管理系统的研究与开发.doc_第4页
图书馆管理系统的研究与开发.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书馆管理系统的研究与开发 - 查询与借还书的实现摘要本文所提出的是图书馆管理系统的一个基于c/s结构的解决方案。通过综合分析图书馆管理的当前需求、潜在需求以及系统开发成本、性能要求、拓展性能,得出采用C/S结构是一个能够较好适应多变需求环境的比较现实的方案。它可以令我们以较低的投入,实现将易变的与稳定的要素分离,快速地增添和替换“瘦小”且互相独立的前台应用,保持数据的连续性和继承性。通过C/S结构下的多用户应用可以更好地平衡服务器与客户机之间的负荷,大幅度降低网络传输的负荷。图书馆管理系统具有方便、快捷、费用低的优点,能将人们从传统的图书管理方式中彻底的解脱出来。本文主要介绍图书馆的用户查询以及借书、还书、今日盘点和借阅排行等功能以及其实现的方法。其中内容有:1 国内图书馆管理研究的现状以及开发本系统的意义。2 本系统开发相关的主要技术以及所采用工具的介绍。3 对系统的需求进行分析,设定系统的工作规则,并且阐述了选择C/S结构的原因。4 系统总体结构和各子模块的介绍,因为图书馆的并发数据量以及所要求的稳定性不同,所以针对不同的需求提出不同的配置方案。5 相关数据库的设计以及所实现系统功能模块与其实现方法的介绍。6 系统的实施以及在实施中所遇到的关键问题。关键词:C/S结构、多用户应用、平衡负载、图书馆管理系统THE RESEARCH AND DESIGN OF LIBRARY MANAGEMENT SYSTEM - implementation of Query and Book ManagementABSTRACTThis paper presents a solution to design an Library Management System based on C/S structure. Integrate the analysis of librarys present demand, potential demand, cost, capability and expand ability, We can get a conclusion that using C/S structure is one of the most effective solutions which can adapt the unsure and changeful demand conditions. It can let us to use the fewer costing to separate the changeful elements and steady elements, add and change client application quickly cause they are tiny and independent. In that way, we can keep data continuously and inheritable. C/S structures multi-user style balance the pressure of Server and Client, and reduce most pressure of network transmission.Library Management System which have the advantage of convenience, fast and lower cost can free people form the tradition management of Library thoroughly. This paper mainly introduces functions of library which include the query for reader, borrow book, return book, todays inventory and list of borrow function ,it also introduced how to carry out those function. The main contents of the paper are as follows:1. The status of research of internal library management and the significance of this systems development.2. Introduce the main technical related to this system and tools we used.3. Analysis systems demand, establish rules of system, then explain why we chose C/S structure.4. Introduce overall structure and sub-model of system first, then, we propose different setup projects aim at the deferent demand of concurrency data quantity and stability.5. Introduce the detail design of the database, sub-modules interface and the method of achieving.6. Describe implementation of system and the problem we resolved.KEYWORDS:C/S Structure , Multi-user Application, Pressure Balance, Library Management System目 录第一章 前言811 系统开发意义812 系统简介813 系统软件及开发平台9第二章 开发工具及相关技术1021 C#和MS SQL10211 C#概述10212 C#开发工具Visual Studio.Net 20031122 C/S体系结构简介12221 C/S结构的数据库应用12第三章 系统分析1331需求分析13311 图书馆管理系统的用例13312 借还书功能的工作规则14313 图书馆系统角色1432图书馆管理系统的结构15321 图书馆管理系统采用C/S结构的原因15第四章 总体设计1741 系统设计思想原则1742 系统功能模块设计18421 功能模块图18422 子功能模设计18423 系统物理配置设计19第五章 详细设计2251 数据库设计2252 存储过程2353系统模块设计24531 读者使用界面以及管理员登录入口24532 读者借还书模块26533 今日盘点模块29534 逾期查询模块29534 借阅排行模块30第六章 系统实施3161程序设计3162解决的问题31致 谢33参考文献34附录(核心代码)355图书馆管理系统的研究与开发 - 查询与借还书的实现第一章 前言11 系统开发意义在图书馆事业的巨大进步下,图书馆在新世纪的发展具备了坚实的基础。全球信息化和高新技术的发展也为图书馆提供了更好的发展机遇,现代化服务手段的实施必将取代传统手工的服务手段。传统的服务方式是单个、重复、被动、琐碎的手工服务,图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作将会非常混乱和复杂。如果要进行查询,就得在众多的资料中翻阅、查找。这会使长期管理图书变的非常困难。而通过计算机系统对图书进行管理,将会大幅提高管理的效率,并且更具便捷性与安全性。本图书馆管理系统是以用户为中心,按照用户的需求提供服务。根据日常图书馆的业务设计图书馆管理系统,为普通用户与工作人员提供一个便捷高效的服务平台。12 系统简介图书馆管理系统是一套在学校、工业、商业、企业、事业等各种单位广泛使用的管理系统。其主要功能有:(1)读者、图书、用户信息的数据维护模块提供增加、删除、改变和查询、浏览等基本的数据维护功能。(2)综合查询模块可以通过用户选择的数据表和相应的查询条件来查询相关内容。(3)供普通用户用多种方式对图书进行查询的查询模块。(4)读者借还书功能可以实现读者借书、还书和查询读者借阅记录的功能,当读者所借阅的图书超期或者丢失后,对其进行相应的处罚。(5)今日盘点可供工作人员查看每日的进书、借书、还书或报损情况。(6)逾期查询可以通过选择日期来查看在某日下的图书到期或超期情况。(7)借阅排行用来查看在一段时间内的图书或者读者的借阅排行,可用于对借阅信息的挖掘,以便决策。(8)数据维护用于定期备份数据库信息。当系统因病毒、误操作、硬件损坏等情况造成数据丢失,管理员可以根据最近一次的数据备份进行恢复。13 系统软件及开发平台操作系统: Windows 2000 Advance Server 或 Windows XP后台数据库系统: SQL Server2000 开发工具: Visual Studio .Net 2003主要的技术: C#、ADO第二章 开发工具及相关技术21 C#和MS SQL211 C#概述C#语言是Microsoft公司为推广.NET 计划推出的核心编程语言。C#语言从C+/C语言演变而来,它保持了C+语言的强大功能,同时简化了C+语言在类、指针、命名空间、多重继承、方法重载以及异常处理等方面的操作,并具有Visual Basic的易学、易用的特点。C#进一步支持面向组件(component-oriented)的编程。这种组件的关键之处在于它们提供了带有属性、方法和事件的编程模型;它们还具有提供关于组件声明信息的特性;同时,它们编入了自己的文档。通过调用由C#大量提供的简便但是功能强大的组件,能够使开发者在较短的时间用简练的语句来实现强大的功能。目前传统的商业应用软件开发受到了的各种基于WEB应用的软件开发的挑战,开发者被组织起来开发具有更短开发周期的各种应用,并且需要能够提供更好的可修正性,而不是建立一个可以长久使用的软件系统。C#的设计正是充分考虑了这些因素。C#会帮助开发者通过更少的代码完成相同的功能,并且能够更好的避免错误发生。相比其他开发工具,现存的开发工具是在Internet出现前或是未得到充分应用前出现的,都不能很好的适应目前WEB技术的开发需要。无法更好的利用现有的各种WEB标准,如HTML,XML,SOAP。C#开发者可以方便的在MS网络平台上扩展自己的应用。C#可以将任何组件转变为WEB服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持。更重要的一点,C#充分考虑到开发人员的习惯,如WEB服务框架可以让任何WEB服务都看起来类似于C#的内置对象,所以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧。212 C#开发工具Visual Studio.Net 2003Visual Studio .NET 2003是 Microsoft 的第二代开发工具,用于构建和部署功能强大而安全的连接 Microsoft .NET 的软件。Visual Studio .NET 2003 的出现主要为了推出C#这一新的开发工具,但是考虑到大量的VB和VC的程序员,它也增强并进一步完善了其前代产品的功能,并与前代产品高度兼容。Visual Studio .NET 2003在企业级应用程序和在最小的设备上部署应用程序上,都能提供强大的支持。通过世界各地各种规模的公司的使用,Visual Studio .NET 和.NET Framework 提供了一个强大而完善的端到端工具,用以设计、开发、调试和部署用于 Microsoft Windows 和 Web 的安全的应用程序这些应用程序强健而且易于使用。Visual Studio .NET 2003 包含 Windows .NET Framework 的一个增强版本。通过对 .NET Compact Framework 的集成支持,Visual Studio .NET 2003 也能够对移动和嵌入式设备进行强大的支持。如今,开发人员能够使用同样的编程模型、开发工具及编程技能,来构建应用范围广泛的应用程序。开发人员可以使用 Visual Studio .NET 来:l 构建功能强大而且响应能力极好的基于 Windows 的应用程序。l 构建功能强大而且响应能力极好的 Pocket PC 应用程序。l 构建完善而安全的 Web 应用程序。l 构建对设备有智能感知能力的完善而安全的移动 Web 应用程序。l 在以上任何一种应用程序中使用 XML Web services。l 避免“DLL 灾难”。l 消除代价高昂的应用程序部署和维护问题。22 C/S体系结构简介221 C/S结构的数据库应用C/S体系结构的数据库应用由两部分组成,其分别是客户应用程序和数据库服务器程序。也可分别称为前台程序与后台程序。C/S的工作方式是,启动服务器程序后,服务器程序随时等待响应客户程序的请求。客户程序会将要对数据库中数据的操作发送给服务器程序,服务器程序根据预定的规则作出应答,然后送回结果。 C/S结构能够充分发挥客户端的处理能力,许多工作都能在客户端进行处理,然后再将请求发送个服务器端。这样不仅能够降低服务器端的压力,还能大幅度降低网络传输的负载。 在C/S结构下,客户端与服务器端的分工明确,各自负责自己的功能,较好的实现了处理程序与数据库的分离,方便系统的拓展与维护。在C/S体系的下,数据库真正变成了公共、专业化的仓库,受到独立的专门管理。第三章 系统分析图书馆在正常运营中面对大量书籍、读者信息,以及两者间相互联系产生的借书信息、还书信息。如果采用人工记录的方法,那其不仅效率低下,且错误率较高。这会大大影响图书馆的日常管理工作,也将提高管理的费用。因此需要电子化的手段来对书籍资源、读者资源、借书信息、还书信息进行管理,了解各个环节中信息的变更,有利于管理效率的提高。对于图书馆管理系统,需求分析是数据库信息管理系统开发的第一步也是最重要的一步。31需求分析需求分析就是描述系统的需求,通过定义系统中的关键类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制,因此,图书馆管理系统的需求分析也应该是开发人员和用户或者客户一起完成的。需求分析首先应定义用例,确定系统的功能需求。311 图书馆管理系统的用例(1)读者查询用例为普通用户提供的图书查询界面,具有多种查询方式。(2)读者信息维护用例实现图书信息的遍历、增加、修改、删除功能。(3)用户信息维护用例实现用户信息的遍历、增加、修改、删除功能。(4)读者借还书用例实现图书借阅记录查询、借阅图书、归还图书以及处罚功能。(5)综合查询用例提供对读者信息、用户信息、图书信息的查询功能。(6)今日盘点用例实现工作人员对每日进书、每日借书、每日还书或每日报损查询。(7)逾期查询用例 实现查看某日的图书到期或超期情况的功能。(8)借阅排行用例 实现对指定时间段内借阅排行的查看功能。(9)数据维护用例 实现数据的备份与还原。312 借还书功能的工作规则(1)读者信息维护在添加读者时,已借图书数这项自动赋为0;不能在修改读者信息模块中修改已借图书数;如果读者的已借书目不为0,不能删除该读者。(2)图书信息维护在添加图书时,图书总数必须等于图书在馆数;当图书总数不等于图书在馆数时,不能删除该图书。(3)读者借书检查读者是否可再借书 检查所借图书是否有库存 增加读者借阅记录增加相应读者借阅书数量减少相应图书库存数目。(4)读者还书判断读者所还书时候已经超期删除读者借阅记录增加相应图书库存数目。 (5)罚款 罚款分为超期罚款和遗失罚款,当为遗失罚款时候,在缴纳读者罚金的同时会对当前书库该图书的数量减1。 313 图书馆系统角色图书馆管理系统的角色可以划分为以下3类(1)普通管理员:拥有读者和图书的信息维护,以及读者借还书和综合查询的权限。(2)系统管理员:拥有读者、图书、用户的信息维护,以及读者借还书和综合查询的权限。但其主要用于用户信息维护(3)读者:可以通过各种方式对图书进行查询。32图书馆管理系统的结构 本系统采用C/S结构,由客户端捕捉动作和消息,将业务进行处理后,访问服务器端的数据库(进行数据的各种查询、填加、删除、检索等操作),最后将结果返回给客户端。321 图书馆管理系统采用C/S结构的原因(1)当前确定的需求 C/S架构可以实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理。C/S架构的缺点在于如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,这需要高昂的投资和复杂的技术支持,高的维护成本。 但是对于图书馆管理系统来说,主要应用在本地的局域网中,而普通用户只是进行图书查询功能 ,所以数据更新的频率是很低和集中于少数用户的。大量可能的并发性操作来自查询。对于图书馆管理系统的应用要求和环境, C/S结构下的多用户应用可以更好地平衡服务器与客户机之间的负荷,大幅度降低网络传输的负荷。(2) 潜在和不确定的需求要想提高顾客的满意度,就必须真正理解用户的需求,尤其是那些潜在的需求。比如,整个作业的节奏加快了,就可能提出更高的要求。此外,业务量的不断发展,反映时间的要求不断提高,都会导致对电脑系统需求的提高。在图书馆管理系统中,用户的需求是不断变更的,但数据库的基本对象却是相对稳定并且有序扩充的,也就是说数据库的结构相对稳定。采用C/S结构的数据库应用能将易变的部分(应用和应用规则)和相对稳定的部分(数据和基本属性、结构)分离,能较好适应不确定和变化的需求环境的比较现实的方案。它可以令我们以较低的投入,实现将易变与稳定的要素分离,快速地增添和替换“瘦小”而互相独立的前台应用,保持数据的连续性和继承性。(3) 性能、开发与品质保证的考虑对于B/S结构来说,当数据量、用户数扩大时,巨大的网络传输量,以及浏览器与服务器之间的负荷无法平衡会导致系统性能的严重下降。因此,大的数据容量和多用户环境,通常是采纳C/S结构的一个重要理由。对于开发者而言,C/S结构给予规划者更大的空间和更强的支持,易于实现不同应用间的合理分离,分别调试和投入应用。前台应用和后台数据库的开发,被“强制”地分开;数据库部分的逻辑与规则,一经调试完成,就可以在将来的应用中一直保证下去;在一个动态改进或逐步扩充的开发环境,或复杂的应用环境中,这些都是提高系统可靠性有利因素。第四章 总体设计41 系统设计思想原则一个新的系统应该按照客户的使用习惯来进行设计和开发,根据现代化管理的要求,建立一个实用、操作简单、易扩展并且与高效的工作平台。(1)实用根据图书馆的日常业务处理的需求而设计开发,能够满足图书馆办公人员和普通读者的需求。(2)操作简单根据各层用户的需求以及习惯,采取人性化的设计,能够使用最简单的操作方式,进行图书查询、数据库信息维护、借还书、高级查询等操作。(3)易扩展采用C/S结构,可以将易变的部分(应用和应用规则)和相对稳定的部分(数据和基本属性、结构)分离,能较好适应不确定和变化的需求环境的比较现实的方案。它可以令我们以较低的投入,快速地增添和替换“瘦小”而互相独立的前台应用,保持数据的连续性和继承性。(4)高效前台应用和后台数据库的开发,被“强制”地分开;数据库部分的逻辑与规则,一经调试完成,就可以在将来的应用中一直保证下去;在一个动态改进或逐步扩充的开发环境,或复杂的应用环境中,这些都是提高系统可靠性有利因素。42 系统功能模块设计421 功能模块图本论文所实现的功能模块如图4.1所示。读者查询界面模糊查询读者借还书借阅记录借阅图书归还图书罚款处理今日盘点书借阅排行逾期查询每日进书每日借书每日还书每日报损图4.1 功能模块图422 子功能模设计(1)读者查询界面模块功能简介主要为普通读者提供图书信息查询功能,可以按照不同的查询方式来快速查找所需图书。其中有按书名查询、按作者查询、按出版社查询和按摘要查询。 在该模块中,可以点击“模糊查询”按钮来执行范围更广且更为细致的查询。(2)读者借还书模块功能简介图书馆的日常业务之一,该模块包括读者借书记录的查询功能,读者借书功能,读者还书功能。在进行还书的操作时,将会对读者的规定还书日期进行检查然后判断其是否已经超期,如果超期,将会跳出罚款处理框。当获知读者遗失图书后,可以点击书籍遗失按钮来进行罚款。(3)今日盘点模块功能简介 今日盘点能够让工作人员能够很快的统计出今日所进图书以及数量和价格、今日借出图书、今日归还图书和今日罚款汇总。(4)逾期查询模块功能简介 通过遍历借书表,寻找在某指定日期下所有图书的到期或超期情况。工作人员可以根据查询结果来进行相应的处理,如通知借阅人尽早回图书馆办理相关手续。(5)借阅排行模块功能简介 通过选择查看的时间段以及借阅次数的限制,显示在该时间段中图书借阅的排行。423 系统物理配置设计由于图书馆的应用范围非常之广,系统的配置方案也不尽相同,配置方案要根据用户的实际情况设计,主要依据就是系统的吞吐量和系统对稳定性的要求。A软件配置软件配置主要包括数据库的选择和操作系统的选择。图书馆管理系统的软件配置要根据用户对系统的稳定性要求、系统的容量以及用户的维护水平来确定,具体配置如表4.1。表4.1 数据库选择用户数据量(记录数)稳定性要求维护水平备选数据库中小学图书馆1000 5000低差Access,FoxPro专业大学数据库5000 50000中一般SQL Server县市级图书馆5000 50000中一般SQL Server省级图书馆50000 200000较高较好SQL Server, Oracle当然,这种选择并不是绝对的。有时一个图书馆尽管藏书不多,但是用户量很大,要求数据库的吞吐量和稳定性较高,这就需要选择更好的数据库。也有些情况,由于建设经费的限制,可以选择较为便宜的数据库,这要根据用户的需要而定。数据库的选择还要考虑与操作系统的配合。这里选择微软公司的SQL Server 2000数据库。(2)操作系统选择可以根据用户量的大小选择不同的操作系统。一般情况下,图书管理员对微软的Windows操作系统比较熟悉,所以,我们在此选择Windows 2000或者Windows XP操作系统B硬件配置硬件配置主要包括客户端硬件的选择和服务器端硬件的选择。图书馆管理系统的硬件配置要根据用户对系统的稳定性要求、系统的容量,以及用户的维护水平来确定。(1)客户端硬件选择可以根据稳定性要求选择不同的客户端。一般情况下,对客户端的选择如表4.2。表4.2 客户端硬件选择用户稳定性要求备选客户端普通用户查询客户端低Pentium CPU/64MB/4GB前台借还书客户端高Pentium /256MB/20G管理员客户端中Pentium /256MB/20G(2)服务器端硬件选择可以根据数据量和吞吐量的大小选择不同的服务器硬件。服务器端的选择如表4.3。表4.3 服务器端硬件选择用户每秒数据库并发数据访问记录数稳定性要求维护水平备选服务器中小学数据库10 50低差Pentium /256MB/20G专业大学图书馆50 500中一般Xeon 双CPU/1GB/RAID5372GBC网络配置图书馆管理系统的网络配置一般有如下几种类型:(1) 单机模式:即服务器和客户端在一台计算机上,适合中小学图书馆。(2) 百兆模式:计算机网络的速度为百兆,适合专业大学图书馆到省级图书馆。(3) 千兆模式:计算机网络的速度为千兆,适合综合性大学图书馆和国家级图书馆。第五章 详细设计51 数据库设计本系统主要是用C#编写的终端对数据库的数据进行控制来达到实现图书信息、读者信息、用户信息的维护,以及读者借书、还书的功能。数据库表主要为图书表、读者表、用户表、借书记录表。1图书表如表5.1表5.1 图书表(Book)序列字段名数据类型说明1BookIDchar(10)图书编号2BookNameVarchar(30)图书名称3BookWriterVarchar(20)图书作者4BookPublishVarchar(50)出版社5BookPublishDatadatetime出版日期6BookPricefloat图书定价7BookSortvarchar(20)图书分类8BookAmountint图书库存数量9BookRemainint现在库存数量2读者表如表5.2表5.2 读者表(Reader)序列字段名数据类型说明1ReaderIDchar(6)读者编号2ReaderNamevarchar(20)读者姓名3ReaderPasswordvarchar(10)读者密码4ReaderPhoneNovarchar(15)电话号码5ReaderEmailvarchar(50)电子邮件6ReaderBorrowedbooksint借书数量3用户表如表5.3表5.3 用户表(User)序列字段名数据类型说明1UserIDchar(10)用户编号2UserPasswordchar(10)用户密码3UserSortvarchar(10)用户分类4借书表如表5.4表5.4 借书表(BorrowBook)序列字段名数据类型说明1ReaderIDchar(6)读者编号2BookIDchar(10) 图书编号3BorrowDatedatetime借阅日期4ReturnDatedatetime应归还日期5FactReturnDatedatetime实际归还日期5罚金表如表5.5表5.5 罚金表(BorrowBook)序列字段名数据类型说明1ReaderIDchar(6)读者编号2BookIDchar(10) 图书编号3PunishStylechar(6)处罚类型4Moneyint罚金数额5PunishDatedatetime处罚日期52 存储过程存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。总的来说,存储过程具有以下一些优点:l 存储过程允许标准组件式编程l 存储过程能够实现较快的执行速度l 存储过程能够减少网络流量l 存储过程可被作为一种安全机制来充分利用本系统所采用的存储过程有:(1)StoredProcedureBookNumber获取某图书的在馆图书数量。(2)StoredProcedureBorrowBook在进行借阅操作时,某图书的在馆图书数量减1。(3)StoredProcedureBorrowReader在进行借阅操作时,该读者的借书总数加1。(4)StoredProcedureReaderBorrowedNumber获取某读者的借书总数。(5)StoredProcedureReturnBook在进行还书操作时,该图书的在馆数量加1。(6)StoredProcedureReturnReader在进行还书操作时,该读者的借书总数减1。53系统模块设计531 读者使用界面以及管理员登录入口读者在该页面能够采用多种方式对图书进行查询,其中包括(1)按书名查找:这是最普遍的查询方式,只要图书名中出现所提交的关键字,该图书就会被搜索出来供读者参考。(2)按作者查询当想要查询某位作者的相关图书或者只记得作者名的时候,该项查询功能将会派上很大的用处。(3)按出版社查询按出版社查询也是比较常见的查询方式,用来搜索出提交出版社名的所有图书。(4)按摘要查询非常实用的查询功能,图书主要涉及的内容不一定会体现的书名中,但都会出现在它的摘要中。通过对摘要的查询,读者能够获取所有含有相关信息的图书。 其中主界面的查询主要是在判断查询什么数据项后,从文本框中获取关键字,然后调用查询方法来生成不同的SQL语句来访问数据库。 如按照书名查找,生成SQL语句如下SqlString=select BookID as 图书编号,BookName as 图书名称,BookPublish as 出版社,BookWriter as 作者,BookPublishDate as 出版日期,BookSort as 类别, BookAmount as 图书总数, BookRemain as 在馆数,BookDescription as 摘要 from Book where BookName like %+this.textReaderQuery.Text+%; 然后通过向sqlDataAdapter赋上该语句来访问数据库该模块界面如图5.1所示。图5.1 主界面当点击该界面的“模糊查询”按钮时,将跳出如下窗体,用以更加模糊的查询。该界面主要用于获取更为模糊的查询条件,用来进行更为宽广的查询范围。通过界面上下拉菜单来选择不同的查询数据项,然后根据文本框不同的组合来生成SQL语句。界面如图5.2所示。图5.2 模糊查询532 读者借还书模块图书馆的主要工作之一,本模块用于日常的借书、还书操作。在执行借书、还书的操作时,对数据库的图书表、用户表、借书表都进行了修改。借还书操作中非常重要的一点就是保证数据的统一,如在借出某一本书后,就得在借阅表中添加一条记录,然后在读者的借书数量中添加一本,同时在图书库存量中减少一本。这样才能保证图书的总数是正确的。在实现的代码中,首先通过访问数据库来判断该用户是否存在以及是否能够借阅某一本书。接着通过存储过程来对读者表以及图书表进行该书的数量加减,当该存储过程成功后,再向数据库添加一条借阅的记录;如果失败,回滚已经执行过的操作。务必保证数据的一致。其中调用存储过程的方法为private bool BorrowBook(string BookID) if(BorrowBookNumber(this.textBookID.Text)0)SqlCommand borrowbook=new SqlCommand();borrowbook.Connection=this.sqlConnection1;borrowbook.CommandType=CommandType.StoredProcedure;borrowbook.CommandText=dbo.StoredProcedureBorrowBook;SqlParameter parinput=borrowbook.Parameters.Add(BookID,SqlDbType.Char);parinput.Direction=ParameterDirection.Input;parinput.Value=BookID;trythis.sqlConnection1.Open();borrowbook.ExecuteNonQuery();this.sqlConnection1.Close();return true;catch(System.Exception e)this.ErrorHandle(e);this.sqlConnection1.Close();return false;elsereturn false;该模块的界面如图 5.3所示。图5.3 读者借还书界面当点击书籍遗失按钮时,会跳出罚金处理对话框,用以对读者进行相应的处罚。当读者在还书时,如果该图书已经会超期,也会自动跳出罚金处理对话框,通过超期日期来计算出相应的处罚金额。其中罚款类型为“遗失书籍”的时候,必须对该书的图书数量减一。界面如图5.4所示。图5.4 罚款处理界面533 今日盘点模块通过点击借还书模块的今日盘点按钮,将会跳出一个菜单以供选择来分别查看每日进书、每日借书、每日还书或每日报损。其中每日借书界面如图5.5所示。图5.5 每日借书534 逾期查询模块 通过点击借还书模块中的逾期查询按钮,就能进入逾期查询模块,通过该模块,工作人员能够及时了解图书逾期与否,从而可以通知借阅人来办理相关的手续。逾期查询界面如图5.6所示。图5.6 逾期查询534 借阅排行模块通过点击借还书模块中的借阅排行按钮,将会跳出借阅排行界面,通过选择统计的起始日期、结束日期以及借阅次数的限制数。该界面会显示出在该段时间内的借阅排行。借阅排行界面如图5.7所示。图5.7 借阅排行第六章 系统实施系统实施是根据以上的系统设计方案,完成计算机系统的程序设计与调试、系统初始数据录入等工作。61程序设计为了提高系统开发效率,本系统的开发工具选择了MicroSoft的Visual Studio .Net 2003,后台数据库选择了MicroSoft SQL 2000。经过系统分析、数据库设计以及工作流程的规定,接下来是该如何让其在界面上显示,以及如何获取操作、处理分析和返回结果了。通过获取界面上控件的TEXT值,由业务处理层产生不同的SQL语句来访问数据库。如果是查询,将查询结果返回用户界面,如果是借还书,通过调用存储过程来保证多个表之间的数据的联动。对于今日盘点、逾期查询、借阅排行模块,都是基于原有数据库的数据,进行不同层面的挖掘所产生的。这些模块基本上只要从控件中获取一个日期。然后分别产生SQL语句去访问数据库,最终将返回的信息显示到用户界面上。62解决的问题(1)向界面添加的控件是由系统自动生成代码的,当要修改它初始化的代码的时候,系统会报错,导致编译失败。查看代码的体系结构后,我把该控件自动的代码提取处来放到一个方法中,通过在初始化界面方法后面附加该方法来手动生成控件。这样的好处在于增加控件的灵活性,通过这种方法还可以实现批量生成相同的控件。(2)我是采用系统自带的数据库控件来实现数据库访问的,其灵活性比较小,后来随着系统的开发,需要对数据库的访问进行修改。通过修改控件的属性来实现新的功能比较吃力,而且并不是非常的满意。虽然学到不少东西,但用类来实现数据库的处理才是灵活且高效的方法。(3)数据的联动一直是我比较头痛的问题。在正常的情况下,是在对某个表进行操作后,再对其他表进行相应的操作。但是,如果中间的某个环节出错了,而后面表的操作继续运行了,那么最后的数据还是会出错。后来我采用存储过程,通过判断对表操作的存储过程运行成功后,再继续运行。那么如果运行存储过程失败的话,它的数据是会自动回滚的,回到最初的状态。致 谢感谢郁晓红老师对我的指导与监督,正是她悉心的指点,使我能够顺利完成毕业设计。感谢毕业设计课题的伙伴张杨波同学,在合作过程中,我们一起探讨图书馆管理系统的需求以及实现的方式,正是在他的帮助下,我们才能一步步去实现系统。这里还要感谢实习公司的徐世坚同志,他在技术上提供了我许多帮助。最后要感谢的是一直非常关心我的家人与朋友,在他们的关怀与支持下,使我能对前面的路途充满信心。【参考文献】1 Jason Price. C# 数据库编程从入门到精通M. 电子工业出版社. 2003.2 何鹏飞, 王征等. C#实用编程百例M. 清华大学出版社. 2004. 45-53.3 张奇,李律松,卫建伟. Visual C#数据库项目案例导航M.清华大学出版社.2005. 37-79.4 余彤鹰. 为什么采用C/S体系结构C. 2002. http:/www.ee- /whycs.html.5 李明华.信息交流与现代图书馆系统M.书目文献出版社.1996.6 周之英. 现代软件工程M. 科学出版社. 2000.7 郑莉,董渊. C+语言程序设计M. 北京希望电子出版社.2001.8 Christoph Wille. .NET编程先锋C#M. 科学出版社.2001.9 常金玲.信息系统的开发与质量管理M. 黄河水利出版社.2005.10 张勤生.管理信息系统与管理支持系统M.青岛海洋大学出版社.2001.11马健丽.数字图书馆的组织管理J.山东图书馆季刊,2002,45(5):102-111.12 Charles Petzold. Programming Microsoft Windows with C#M. 世界图书出版公司. 2002.13 Microsoft Corporation, “C# Language Specification.” White paperM, 2001:/msdn.14 Eric Gunnerson. A Programmers Introduction to C#M. 2000.15 Mark Michaelis, Philip Spokas. C# Developers HeadstartM. McGraw-Hill. 2002.16Jones M.Comparing Evaluations of Digital Collection EffortsJ. D-Lib Magazine,1999 ,11(5):68-87.17Hil L. Alexandria Digital Library:User Evaluation Studies and System DesignJ. Journal of the American Society for Information Science, 2000, 51(3):246 - 259.附录(核心代码)Login 模块(读者查询页面以及管理员登录入口)string UserCheck(string username,string userpassword) /用户登录判断string txtSql,usersort;usersort=nobody;txtSql = SELECT * FROM User;SqlCommand checkuser=new SqlCommand(txtSql,this.sqlConnection1);Try this.sqlConnection1.Open(); SqlDataReader sqlreader=checkuser.ExecuteReader(); while(sqlreader.R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论