版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1图书馆管理系统的设计摘要:潍坊学院图书馆管理系统的是用ASP.NET与C#语言进行设计开发的电脑端应用软件。结合MicrosoftVisualStudio2008网站集成开发环境,利用SQLServer2005后台数据库实现系统的相关功能。该设计主要是阐述了如何使用c#语言实现系统中相关功能。本设计主要实现图书馆管理系统中的图书录入、查询、更改等功能,采用面向对象的分析方法对图书馆管理系统功能需求进行划分为管理员对功能的需求和读者对功能的需求两大部分。其中,管理员又可分为图书馆总管理员以及书库管理员。图书馆总管理员具有系统设置、读者管理、图书案管理等功能,书库管理员具有图书借还、系统查询以及自身密码修改等功能。同时,本设计针对读者方面,开发读者本身信息的查看及修改、图书信息、购书推荐、查看图书馆公告等功能。增强读者在浏览图书方面的权限。图书馆管理系统既可以减轻传统的手工流程的繁琐不足等情况,而且也对读者提供了快捷的图书信息检索功能,方便图书借阅和归还。关键词:图书馆管理系统图书借阅Servletc#ASP.NETTHEDESIGNOFLIBRARYMANAGEMENTSYSTEMAbstracts:WeifangUniversitylibrarymanagementsystemisdesignedanddevelopedwithASP.NETC#language.WiththeMicrosoftVisualStudiointegrateddevelopmentenvironment2008website,relatedtosystemfunctionrealizationusingSQLServer2005database.Thisdesignismainlyexpoundshowtousethec#languagetoachievetherelatedfunctionsinthesystem.Thedesignofmainbookentry,librarymanagementsysteminthequery,changeandotherfunctions,usingobject-orientedanalysismethodtodemandmanagementsystemfunctionlibraryisdividedintotheadministratorofthefunctionalrequirementsandfunctionalrequirementsofthetwomostreaders.Amongthem,theadministratorcanbedividedintolibraryadministratorsandstack.Libraryadministratorhasthesystemsettings,thereadermanagement,bookcasemanagementandotherfunctions,withbooksborrowed,querysystemanditspasswordstack.Atthesametime,thedesignforthereaders,readers'informationdevelopmentviewandmodify,bookinformation,bookrecommendation,viewtheannouncementfunctionlibrary.Intheaspectofenhancingreadersbrowsingpermissions.Thetediousshortageoflibrarymanagementsystemcannotonlyreducethetraditionalmanualprocess,butalsoprovidesabookinformationretrievalfunctionshortcutforreaders,easytoborrowandreturnbooks.Keywords:Librarymanagementsystem;Borrowbooks;Servlet;C#ASP.NET目录 TOC\o"1-2"\t"参考文献,1,标题4,1,致谢,1,附录,1"\h308201前言 140092系统分析 2171612.1需求分析 2126832.2可行性分析 2121763总体设计 4283083.1系统实现目标 413423.2系统功能结构设计 423804详细设计 670244.1图书馆管理系统ER图 6263114.2数据表结构设计 6106054.3数据表结构设计 7137375列车售票系统的实现 1035445.1数据库的连接 10251775.2系统模块功能 114768结束语 2627034参考文献 276572附录 2825896致谢 67PAGEPAGE481前言2015年我们将迎来第二十个世界图书日,阅读已经成为人们生活中的核心词汇。人们也越来越认识到阅读在生活中所占比例之中,更多的选择在在图书馆等场所增长知识,储备信息。但是,传统的图书馆完全依赖人工方式管理日常流程事物,借书、还书工序繁琐。当读者在借书时候要持相应的借阅证件和要借阅的图书,由图书馆管理员对相关书籍进行登记,并在借阅证上填写借阅信息。还书时,读者要将借阅的图书和借阅证一同交给工作人员,由工作人员填写还书日期。繁琐的流程加重了工作人员的任务量,同时也不利于书籍的整理和保存。图书馆管理系统是新时期有效的优化工作流程,方便读者进行借阅的一套方法。图书馆管理员有机的整合各类信息,实现信息的交互与统一。对新读者信息进行添加,便于对读者信息的查询、修改和删除,也可以对馆内图书信息进行录入,便于对图书信息的查询、修改和删除。读者可以通过该系统,通过对本身信息的注册和登陆,查阅图书的相关信息以及借阅记录,同时也可以获取不同种类的图书排名情况,方便借阅。本设计所实现的系统实则是仿照潍坊学院图书馆管理系统的基础上进行简化修改而实现的。本设计可能在相关页面设计上不如校图书馆管理系统美观完善。但主要的图书管理、读者借阅功能基本可以实现。2系统分析2.1需求分析互联网+与传统行业的系统的整合,使得人们的需求更加贴近于方便、快捷的获取整合有效信息。人们也越来越更加习惯于通过网络来完成日常事务,新型互联网行业深入影响到人们生活的方方面面。另外,传统的图书馆远远满足不了一部分现代人的需要,充分利用图书馆管理系统,建立现代化图书馆运行体系,有效的减少空间和时间上的限制,同时也能够更方便快捷的完成图书馆的日常运营功能。对图书馆管理员以及读者的需求进行分析,充分的满足了不同类型的常规和特殊要求,优化了相关流程,较为成熟的实现技术,因此深受当代人的喜爱。本系统主要实现图书信息的设置、录入、信息查询等功能,通过收集整合用户的需求对图书馆管理系统功能需求进行划分,可将需求划分为:图书馆管理员功能需求以及用户功能需求。2.1.1图书馆管理员的需求通过需求分析可以获悉,图书馆管理员对系统功能的需求可以分为图书馆一级管理员和图书馆初级管理员。图书馆管理员涉及对系统后台的规划、开发、信息资源整合等方面,结合系统前端,完成对界面结构的信息排列。所以系统针对图书馆一级管理员要设计的功能为信息的系统配置、读者信息管理、图书信息管理等功能。针对图书馆初级管理员要设计的功能为对系统需要完成的功能有:系统设置、读者信息管理、图书信息管理等。图书馆初级管理员的功能主要为:图书借阅归还、系统信息查询及个人密码的修改等功能。添加读者信息:首先要将未曾注册的新读者的信息录入到图书馆管理系统中,对于已经获取的读者信息,图书馆一级管理员要对读者的各类信息进行统一录入。本设计是针对于学校的图书馆管理系统,因为我们的主要读者为学生,所以在录入信息的时候,我们会主要录入与学生相关的各类信息。包括要录入的读者编号,读者姓名、读者性别、读者类型、出生日期、身份证信息、学生证信息、联系方式、电子邮件、注册日期、操作员、注意事项等。查询、修改和删除读者信息:图书馆工作人员要查询读者的相关信息(基本信息以及租借记录)时,可以通过系统的后台启动编辑器通过读者姓名或者编号信息查询到需要查询的信息,并且可以在编辑器上对查询到的信息进行删除和修改。录入图书信息:图书馆每年都会购进大批新书,人工收录不仅费时而且费力,因此要对这些读书信息进行统一规划整理,并且录入到图书馆管理系统当中。录入的信息包括:图书名称、图书类型、出版社、作者、译者、条形码、信息摘要、页码、价格、馆藏数、所属馆藏室、所属书架、入馆时间、操作员、备注等相关信息。查询、修改及删除图书信息:为了方便图书馆管理员了解获取图书在馆内的最新情况,我们通过设置方便图书馆管理员通过查询图书名称或者图书编号,获取图书在馆信息,清晰地显示图书的馆藏量和所处位置。同时,因为在图书借阅过程中,不可避免的出现图书破损或者遗失等情况。为了有效的更新系统中的信息,我们设立了修改、删除功能。这样及时的修改图书信息,使管理员和读者能够很方便快捷的在查询过程中获得准确的图书信息,减少了图书借阅过程中很多不必要的麻烦,使借阅过程更加高效。初级管理员管理设置:系统开放给超级管理员后台功能,通过后台编辑器,当图书馆需要增加或减少初级管理员时,方便的对初级管理员进行添加、删除、修改。具体编写方式可以仿照前面所提到的对读者操作方式的设计。对管理员的基本设置要包括:管理员名称、管理员密码、管理员拥有权限等功能。可以在该过程中,主要是对新到的书库管理员进行添加,修改和删除等操作。图书借阅管理:系统开放给初级图书管理员功能权限,当读者要进行图书的借阅时,初级图书馆管理员会读取读者借阅信息,查询读者是否具有借阅权限,包括是否达到借阅上上限,是否有不良记录等,确定读者是否可以借阅。另外,当读者选取自己要进行借阅的图书后,可以将相关信息提交给初级管理员,包括图书名称、图书代号等。初级管理员通过查询数据库中留存图书相应的信息,确定图书是否可借。如果图书可以借阅,图书馆管理员会在系统内填写图书借阅信息表,表中包括读者信息,读者姓名、性别、证件号码、证件类型、读者类型等,同时需要填写借阅图书信息,书名、图书代码、出版社、馆藏代号、书架代号、借书日期、还书日期等,这样,完成图书借阅操作。图书归还管理:读者还书操作,读者将要还的书交于图书馆管理员,图书馆管理员通过数据查询,进行还书处理。体现在数据库中就是对后台数据库借书表中信息的删除操作。当读者提供的读者编号和图书编号相匹配时,可以执行删除操作。同时,判断是否超过应还日期,对超过应还日期的图书信息进行下一轮操作,根据超出天数勘定处罚措施。这样便可以在读者还书时判断提示读者是否欠费,如若欠费,可以对读者在图书馆内行使相应等功能权限进行限制。如果没有超出限定日期,提示可以正常还书,即归还成功。管理员密码的修改:管理员可以通过后台模块修改自己的密码,和读者密码的修改在代码实现方式上有许多相似性。2.1.2读者的需求读者与数据库的链接体现在对自身信息的注册、更改、删除等功能,读者只有对系统主数据库的查询权限,包括查询自身的相关信息、图书的相关信息、图书推荐、图书排行、图书馆的相关公告等方面。查看及修改读者自身信息:读者可以再图书馆对自身信息进行查询,当读者猪呢比借阅或者归还土石的时候,查询自身信息,可以清楚地了解到自己的权限,包括借阅图书的相关信息,书名,借阅日期以及归还日期。另外还可以看到是否有未还图书,是否达到借书上线,是否有超期现象,是否可以继续借书。这样读者就会对自己的借阅情况有一个大概的了解,避免了盲目借书毫无头绪或者因为遗忘等原因忘记归还超期等现象的发生。同时,读者也可以更改自身的登陆密码,设定私人登陆。系统查询:系统查询过程中,主要方便读者对图书馆中所藏图书数据以及信息的查询,使读者查阅到图书的基本信息读者。另外,读者可以通过系统查询对图书借阅信息进行查询,查询要借图书的馆藏量,借阅信息,剩余库存,应还信息,所处位置等相关信息都可以通过系统查询来完成。排行榜:排行榜功能,是对图书馆中图书的借阅情况和读者的借阅情况进行统计排行。通过图书的借阅情况,可以清楚地或者馆中各类图书的借阅情况,也可以按照排行榜有选择性的借阅图书。通过读者借阅情况,可以获知自己及其他读者借阅情况。2.2可行性分析2.2.1技术可行性技术实现可行性可以根据前端以及后台数据库等的研发工具使用情况分析判断。ASP.NET使用伊始,其便利和灵活性远远超越了之前的低版本ASP或者其它类似开发软件,ASP.NET的使用同时也给Web开发人员带来了良好的编程体验,可以很大程度上减短了系统中Web应用程序的开发周期。系统中使用的数据库SQLServer,是目前为止使用较为频繁的数据库管理系统,在数据库创建、设计、开发、管理等功能方面占有优势。其中应用SQLServer2008版本可以将数据库与Internet连接起来,并且将数据的操作在网页浏览器上显示出来,具有客户机/服务器的结构。因此结合SQL的分布式处理原则,我们在图书馆管理系统中使用了在.NET环境基于Web页面的B/S服务模式。2.2.2经济可行性系统成功实现功能后,后期的运行维护尤为重要,而且相比系统研发时期,系统的运维将花费更多的时间和精力。在该系统中应用的基于WEB的B/S模型,可以远远的减少维护成本,有效的增加设计可行性。如果需要更改数据的操作,只需通过服务器端对数据修改便可。同时,减少了人力、物力的不便利性。可以再短时间内快速的集中并且将问题统一起来,逐一解决。减少维护成本。图书馆管理系统的实际是在减少管理员日常运营繁琐流程,保证读者需求能够用最简的方式得到解决。3总体设计3.1系统实现目标潍坊学院图书管理系统设计研发需要遵循的原则有::(1)界面设计简洁、友好。(2)信息输入便捷,存储安全。(3)有效的权限设置功能,方便统一系统运作。(4)方便的查询修改功能,及时获取所需信息。(5)初级大数据平台,实现对图书租借接口的信息化管理。(6)收集系统数据,为图书馆管理员和读者租借提供排行榜详情。(7)方便、安全的个人设置和系统设置。(8)具有用户最简原则,体现以人为本。3.2系统功能结构设计通过对潍坊学院图书馆管理系统的需求分析,可以将该图书管理系统划分为图书管理、读者管理、图书租借、系统查询、系统设置、排行榜等几个需求部分,各个部分的逻辑分析图谱3-1所示。图书管理系统图书管理系统系统设置管理员设置书架设置读者管理排行榜图书管理图书借还系统查询读者类型管理图书借阅排行榜读者借阅排行榜图书借阅查询图书档案查询图书归还图书借阅图书档案管理图书类型管理读者档案管理图3.1系统功能结构图(1)图书借阅-用户进行图书借阅详细流程图图3-2借阅系统详细流程图(2)图书租借系统-用户还书详细流程图图3-3还书系统详细流程图(3)图书信息管理-为用户提供相关图书详细流程图图3-4图书信息管理详细流程图(4)读者信息管理-记录读者的基本信息的详细流程图图3-5读者信息管理详细流程图3.3系统流程图图书管理系统的流程是用户进入登陆界面后,首先要输入自己的账号密码以及系统显示的验证码,然后选择登录,进行触发登录系统。系统数据库对所提交的账号密码进行数据判断,如果在选择登录时如果有一项不符合,验证码错误或者密码错误,则不能进入系统,当用户成功登陆系统后,系统则再次对登陆的账号信息与数据库中的数据进行比对判断。判断结果如果是图书馆管理员,则进入功能界面,对相关信息进行查询,录入更改图书信息、查询读者信息、设置系统权限和更新排行榜信息。判断结果如果是读者,则进入读者界面,可对自身信息查询以及查阅图书借阅和浏览排行榜。图书管理系统的系统流程图如图3-6所示。登陆系统登陆系统是否登陆判断身份管理员读者图书归还图书借阅信息查询排行榜信息图书信息读者信息否图3-6图书管理系统的流程图4详细设计4.1图书管理系统ER图本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。结构设计是在分析用户需求的基础上,设计出可以符合用户需求的各类实体,通过它们之间的关系,为后面的逻辑结构设计打下基础。4.1.1设计E-R模式定义系统的实体和属性:(1)实体:可以使用方框,为实体的名称。(2)实体属性:可以通过椭圆,椭圆中显示的内容表示为属性的名称。实体属性通过线段和相应的实体连接起来。(3)实体之间的联系:可以通过菱形,菱形内表示为联系的名称。图书(图书名称,图书类型,作者(译者),出版社,价格,页码,书库、书架,库存数量,入馆时间,管理员,)借阅者(读者编号,姓名,性别,证件类型,证件号码,读者类型,可借数量,借阅日期,应还日期)图书类别(图书类型编号,图书类型名称,可借天数)实体和实体之间的联系较多,比较常见的联系有l:1,l:N和M:N这三种。一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。系统权限作为图书馆管理系统中判断读者和管理员的重要部分,首要整体E-R图实体,用来储存用户的任务操作的详细信息。总体E-R图实体属性图如图4-1所示。密码用户ID书名图书ID……密码用户ID书名图书ID……用户图书事务处理图书用户图书事务处理图书mnmn操作n操作管理员m管理员管理管理总管理员管理管理总管理员mn管理员ID…密码管理员ID…密码图4.1总体E-R属性图图书作为图书馆管理系统中最重要的部分,首要创建图书信息实体,用来保存图书的详细信息。图书信息实体属性图如图4-2所示。图书信息图书信息图书类型价格条形码图书名称名作者出版社页码书架入馆时间图4.2图书属性图图书管理系统中较为重要的重要的部分是图书借阅与归还部分,开发图书管理系统目的旨在为了方便管理员以及读者查看借阅和归还信息,所以要建立一个图书借还实体,用来储存读者对图书的借阅和归还的详细信息。图书的借阅实体属性图如图4-3所示。借阅借阅编号书目编号读者编号借阅日期应还日期图4.3借阅信息属性图读者作为图书管理系统中必不可少的一个重要部分,可以由创建一个读者的实体,用来储存读者的相关信息。读者信息实体E-R图如图4.4所示。读者读者信息读者编号证件类型读者类型姓名性别6.图书馆管理系统的开发 176.图书馆管理系统的开发 17别证件号码图4.4用户信息属性图4.2数据表结构设计结合前端制作系统后台数据库的各个数据表。如表4.1—表4.10所示:表4.1管理员表(tb_admin)字段代号字段类型字段长度是否可以为空备注Id(关键字)Nvarchar20否管理员编号NameNvarchar20可以为空管理员名称PwdNvarchar10否管理员密码表4.2书架表(tb_bookcase)字段代号字段类型字段长度是否可以为空备注Id(关键字)Nvarchar20否书架idNameNvarchar20否书架名表4.3图书馆(tb_library)字段代号字段类型字段长度是否可以为空备注LibrarynameNvarchar100否图书馆名称CuratorNvarchar100否馆长TelInt20否电话AddressNvarchar100否地址EmailNvarchar100否电子邮件urlNvarchar20否网址createDatesmalldatetime20否建馆时间IntroduceText500否备注表4.4图书表(tb_bookinfo)字段代号字段类型字段长度是否可以为空备注Bookcode(关键字)Nvarchar100否条形码BooknameNvarchar200否图书名称TypeNvarchar100否图书类型AuthorNvarchar100否作者translatorDatetime10否译者PubnameInt10否出版社PriceNvarchar20否价格Pageint100否页码BcaseNvarchar10否书架StorageNvarchar20否库存数量inTimesmalldatetime20否入馆时间OperVarchar50否操作员borrownumint否借出数量表4.5读者表(tb_reader)字段代号字段类型字段长度是否可以为空备注Id(关键字)Nvarchr100否读者编号NameNvarchr100否读者名称Sexbit1否读者性别TypeNvarchr100否读者类型BirthdayNvarchr100否出生年月paperTypeNvarchr100否证件类型paperNumNvarchr100否证件号码TelNvarchr20否电话EmailNvarchr20否电子邮件createDataSmalldatatime20否注册日期OperNvarchr100否操作员RemarkText200否备注BorrownumInt20否NumInt20否表4.6读者类型借阅数量(tb_readertype)字段代号字段类型字段长度是否可以为空备注IdInt100否编号NameNvarchar200否读者类型NumInt20否可接数量表4.7图书借阅信息表(tb_borrowandback)字段代号字段类型字段长度是否可以为空备注Id(主键)Nvarchar20否编号ReaderidNvarchar100否读者编号Bookcodeint20否条形码borrowTimeSmalldatatime20否借阅时间ygbackTimeSmalldatatime20否应还时间SjbackTimeSmalldatatime20否还书时间BorrowoperNvarchar100否库存数量BackoperNvarchar100否IsbackBit20否借阅表4.8图书类型(tb_booktype)字段代号字段类型字段长度是否可以为空备注IdInt20否编号TypennameNvarchar100否图书类型名称DaysInt15否可借天数表4.9权限设置表(tb_purview)字段代号字段类型字段长度是否可以为空备注IdNvarchar100否管理员idSyssetBit50否系统设置ReadsetBit50否读者管理BooksetBit50否图书管理BorrowbackBit50否图书借阅sysqueryBit50否系统查询5图书馆管理系统的实现5.1数据库的连接图书馆管理系统可以通过JDBC连接MySQL数据库,其中包含四个参数:系统驱动参数driver、连接参数url、用户名参数username、密码参数password,四种参数相对应的参数值为:driver=com.mysql.jdbc.Driver;url=jdbc:mysql//localhost:3306/ticket;username=root;password=1234;可以在.properties文件保存这些参数,同时声明Properties类,对配置文件进行读取,获取到相应的数据信息。在系统使用的编程语言中行文规范中指出,所使用的驱动程序都必须在静态的代码块中注册。代码如图5.1所示:try{props.load(ConectionUtils.class.getClassLoader().getResourceAsStream("perties"));}catch(IOExceptione){ e.printStackTrace();}图5.1静态代码块1.驱动注册驱动注册的第一步就是将配对的驱动安装到JDBC驱动管理器中。在静态代码块中,利用反射机制来加载读取到的驱动程序从而向驱动管理器注册此驱动,代码如图5.2所示:Class.forName(driver);图5.2注册驱动2.建立连接连接Connection是利用DriverManager的静态方法getConnection()来获得,再传输到实际的Driver中的Connect()方法中来从中获取数据库的连接。代码如图5.3所示:publicstaticConnectionopenConnection()throwsSQLException{ returnDriverManager.getConection(url,username,password);}图5.3获取参数5.2系统模块功能5.2.1读者登录界面设计从用户需求的角度考虑,系统的需求分为两种,图书馆管理员对系统的需求以及读者对系统的需求。在进入系统进行相关操作前,我们会首先进入登陆界面,在登录界面上需要输入相对应的账号密码以及系统提供的验证码。由系统结合数据库判断权限,根据判别分别进入不同的编辑界面。图5.2.1登录界面5.2.2系统设计界面设计当读者登陆系统后,可以看到图书租借排行榜以及读者租借排行榜的情况。图5.2.2首页界面图书馆管理员权限,涉及输入图书馆相关信息。图5.2.3图书馆信息界面管理员设置界面:增加管理员以及设置管理员权限。图5.2.4管理员设置界面书架管理页面:显示、修改及删除书籍信息图5.2.5书架管理界面5.2.3读者管理界面设计读者类型管理页面:显示、修改、删除、添加读者类型图5.2.6读者类型管理界面读者档案管理界面:显示、删除及添加读者信息图5.2.7读者档案管理界面5.2.4图书管理界面设计图书类型管理界面:显示、修改、删除、添加图书类型图5.2.8图书类型管理界面图书馆档案管理界面:显示、删除、添加图书档案信息图5.2.9图书档案管理界面图书馆借阅界面:用户用户登录,触发所借图书的借阅按键,在所有图书中移除此图书信息,然后将图书信息写入到所借图书的文本文件中。图5.2.10图书借阅界面图书归还界面:用户登录后,触发所还图书的归还按钮,在所借图书文本文档中删除此图书的信息,并且写入到所有图书文本文件中。图5.2.11图书归还界面图书档案查询界面:根据不同类目条件,查询图书档案信息。图5.2.12图书档案查询界面图书借阅借阅查询界面:选择不同类目的查询条件,查看借阅的图书信息。图5.2.13图书借阅查询界面图书借阅排行榜界面:显示图书借阅情况排行。图5.2.14图书借阅排行榜界面读者借阅排行榜界面:显示读者借阅情况排行。图5.2.15读者借阅排行榜界面5.2.5更改口令界面设计更改口令界面设计:可对管理员密码进行修改。图5.2.16更改口令界面结束语为保证本次图书馆管理系统进行合理的设计规划以及运营实现,任务开始之前进行的大量的信息收集。对获取信息进行详细的市场调研以及需求分析,确定出设计中遵循的基本原则以及功能定义。结合系统需求构建思维脑图以及逻辑分析图谱。本图书馆管理系统是根据学校固有的图书馆管理系统的基础上,进行的简化设计编程,通过对校图书系统的用户体验,提炼出系统的需求点,对借书、还书、图书预览、管理员权限、排行榜等功能进行研究与设计,期间也结合了大量的计算机编程资料。为了形成系统闭环,对流程环节以及管理权限进行了优化。在设计实施阶段,对定义的功能进行详细规划,注重用户需求和用户体验。坚持以用户为中心,开发不同的管理员及读者功能。通过不断地设计改进,对各个功能的具体模块测试分析,系统的完成了整体设计。图书馆管理系统的设计主要是运用了c#与数据库的技术的结合来实现需求的所有功能。在设计过程中,应用到了GUI模块以及思维导图的设计,经过不断地调试改错设计文档,基本实现了系统中的所有初步功能,虽然相比学校的图书馆管理系统的功能实现还有一定的差距。但是,我会在今后的学习工作中不断地提升和完善自己,增强自身素质,运用所学设计出更加完备的系统。
参考文献[1]唐政,房大伟.C#项目开发全程实录[M].北京:清华大学出版社.2005.3[2]程秉辉.解决网页设计一定会遇到210个问题[M].北京:科学出版社.2008.5[3]马骏,党兰学.ASP.NET网页设计与网站开发[M].北京:人民邮电出版社.2007.1[4]赵致格.数据库系统与应用编著[M].北京:清华大学出版社.2007.9[5]CharlesABell.深入理解.MySQL[M].北京:人民邮电出版社.2010:178[6]萨师煊,王珊.数据库系统概论[M].北京:清华大学出版社.2006:17-18[7]卢翰.软件开发视频大讲堂:C#从入门到精通(第3版)[M].北京:电子工业出版社.2011:275-276[8]赵俊峰.Java.Web应用开发案例教程——基于MVC模式的JSP+Servlet+JDBC和AJAX[M].北京:清华大学出版社.2012:398-400[9]谢发徽.图书馆电子信息系统应用实践[M].北京:机械工程出版社.2014:176[10]陈曹维,图书馆科技查新服务与科技查新管理系统[M].北京:海洋出版社.2011:345-350[11]林上杰,林康司.JSP2.0技术手册[M].北京:电子工业出版社.2004:195-198[12]潘凯华,李慧,刘欣等MySQL快速入门[M].北京:清华大学出版社.2012:276-280[13]刘晓华,张健,周慧贞.JSP应用开发详解(第三版)[M].北京:电子工业出版社.2007:176[14]袁征宇.出版信息管理系统数据库接口技术案例[M].北京:清华大学出版社.2015:14-18[15]续蕾.基于B/S的在线小型图书馆信息管理系统的设计与实现[M].辽宁大连:辽宁对外经贸学院信息技术系,2011附录主要分析程序:packagecom.chinasoft.bms.dao;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importcom.chinasoft.bms.vo.Users;publicclassUsersDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privatefinalStringPATH="datas/users.txt"; //读取所有用户 publicList<Users>getAllUser(){ List<Users>list=newArrayList<Users>(); try{ //打开文件 fr=newFileReader(PATH); br=newBufferedReader(fr); //读取文件 Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#");//将数据分开 //将数据封装到Users类型的对象中,并添加到集合中 list.add(newUsers(arr[0],arr[1],arr[2],Integer.parseInt(arr[3]),arr[4])); } }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //单个修改写入用户的信息 publicbooleansaveUserInfo(Stringuser){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); bw.write(user); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //添加用户 publicbooleanaddUser(Stringuser){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); bw.write(user); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //添加用户(删除后的重新写入) publicbooleanaddUser(List<Users>list){ booleanflag=false; try{ fw=newFileWriter(PATH); bw=newBufferedWriter(fw); for(Usersuser:list){ bw.write(user.toSaveString()); bw.newLine(); bw.flush(); } flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //(修改信息)写入一个用户的信息 publicbooleansaveOneUser(List<Users>list){ booleanflag=false; try{ fw=newFileWriter(PATH,true); bw=newBufferedWriter(fw); for(Usersus:list){ bw.write(us.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; }importcom.chinasoft.bms.vo.Books;publicclassBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; privateStringaddress; publicBooksDao(){ path="datas/books.txt"; address="F:/download.txt"; } //读取所有图书信息 publicList<Books>getAllBooks(){ List<Books>list=newArrayList<Books>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newBooks(arr[0],arr[1],arr[2],arr[3],Double.parseDouble(arr[4]))); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //写入图书信息--单个追加 publicbooleansaveBooks(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //写入图书信息--整体添加 publicbooleansaveAllBooks(List<Books>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(Booksbook:list){ bw.write(book.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //下载一本图书的方法 publicbooleandownload(Stringbook){ booleanflag=false; try{ fw=newFileWriter(address); bw=newBufferedWriter(fw); bw.write(book); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //检查下载库里是否有要下载的书籍 publicbooleanhasDownloadBook(StringbookName){ booleanflag=false; Filefi=newFile("E:/DreamHeaven/BmsServer/bin/download"); File[]fl=fi.listFiles(); for(Filea:fl){ if((bookName+".txt").equals(a.getName())){ flag=true; break; } } returnflag; } privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}publicclassBorrowBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicBorrowBooksDao(){ path="datas/borrowBooks.txt"; } //读取借书信息 publicList<BorrowBooks>getBorrowBooks(){ List<BorrowBooks>list=newArrayList<BorrowBooks>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); BorrowBooksborrowBook=newBorrowBooks(arr[0],arr[1],arr[2],arr[3], Double.parseDouble(arr[4]),arr[5],arr[6],arr[7],arr[8]); list.add(borrowBook); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; //写入借书信息========新加改动 publicbooleansaveBorrowBooks(BooksoneBook,Usersuser){ booleanflag=false; Datetime=newDate(); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); StringborrowTime=sdf.format(time); Stringstr=newBorrowBooks(oneBook.getBookId(),oneBook.getBookName(),oneBook.getAuthor(),oneBook.getFrom(), oneBook.getPrice(),borrowTime,user.getUserId(),user.getUserName(),user.getPhone()).toString(); try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //整体添加借书信息 publicbooleansaveAllBorrowBooks(List<BorrowBooks>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(BorrowBooksborrowBook:list){ bw.write(borrowBook.toString()); bw.newLine(); } bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //关闭的方法 privatevoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }importcom.chinasoft.bms.vo.Notice;publicclassNoticeDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicNoticeDao(){ path="datas/notice.txt"; } //读取公告信息 publicList<Notice>getNotice(){ List<Notice>list=newArrayList<Notice>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newNotice(arr[0],arr[1],arr[2])); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //写入公告信息 publicbooleansaveNotice(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } //写入公告的信息(删除后覆盖原有的公告) publicbooleansaveNotice(List<Notice>list){ booleanflag=false; try{ fw=newFileWriter(path); bw=newBufferedWriter(fw); for(Noticeno:list){ bw.write(no.toSaveNotice()); bw.newLine(); bw.flush(); } flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } publicvoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }importcom.chinasoft.bms.vo.ReturnBooks;publicclassReturnBooksDao{ privateFileReaderfr; privateBufferedReaderbr; privateFileWriterfw; privateBufferedWriterbw; privateStringpath; publicReturnBooksDao(){ path="datas/returnBooks.txt"; } //读取借书信息 publicList<ReturnBooks>getReturnBooks(){ List<ReturnBooks>list=newArrayList<ReturnBooks>(); try{ fr=newFileReader(path); br=newBufferedReader(fr); Stringstr=null; while((str=br.readLine())!=null){ String[]arr=str.split("#"); list.add(newReturnBooks(arr[0],arr[1],arr[2],arr[3], Double.parseDouble(arr[4]),arr[5],arr[6],arr[7],arr[8],arr[9])); } }catch(FileNotFoundExceptione){ Filefi=newFile(path); try{ fi.createNewFile(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnlist; } //写入借书信息 publicbooleansaveReturnBooks(Stringstr){ booleanflag=false; try{ fw=newFileWriter(path,true); bw=newBufferedWriter(fw); bw.write(str); bw.newLine(); bw.flush(); flag=true; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ this.close(); } returnflag; } publicvoidclose(){ try{ if(br!=null)br.close(); if(fr!=null)fr.close(); if(bw!=null)bw.close(); if(fw!=null)fw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } }}publicclassBooks{ privateStringbookId;//书号 privateStringbookName;//书名 privateStringauthor;//作者 privateStringfrom;//出版社 privatedoubleprice;//价格//封装 publicStringgetBookId(){ returnbookId; } publicvoidsetBookId(StringbookId){ this.bookId=bookId; } publicStringgetBookName(){ returnbookName; } publicvoidsetBookName(StringbookName){ this.bookName=bookName; } publicStringgetAuthor(){ returnauthor; } publicvoidsetAuthor(Stringauthor){ this.author=author; } publicStringgetFrom(){ returnfrom; } publicvoidsetForm(Stringfrom){ this.from=from; } publicdoublegetPrice(){ returnprice; } publicvoidsetPrice(doubleprice){ this.price=price; } //构造方法 publicBooks(StringbookId,StringbookName,Stringauthor,Stringfrom,doubleprice){ super(); this.bookId=bookId; this.bookName=bookName; this.author=author; this.from=from; this.price=price; } publicBooks(){ super(); } //重写toString方法 publicStringtoString(){ returnthis.bookId+"#"+this.bookName+"#"+this.author+"#"+this.from+"#"+this.price; } //重写equals方法 publicbooleanequals(Objectobj){ //TODOAuto-generatedmethodstub returnthis.bookId.equalsIgnoreCase(obj.toString()); }}packagecom.chinasoft.bms.vo;publicclassBorrowBooksextendsBooks{ privateStringborrowTime; privateStringuserId; privateStringuserName; privateStringphone; publicStringgetBorrowTime(){ returnborrowTime; } publicvoidsetBorrowTime(StringborrowTime){ this.borrowTime=borrowTime; } publicStringgetUserId(){ returnuserId; } publicvoidsetUserId(StringuserId){ this.userId=userId; } publicStringgetUserName(){ returnuserName; } publicvoidsetUserName(StringuserName){ this.userName=userName; } publicStringgetPhone(){ returnphone; } publicvoidsetPhone(Stringphone){ this.phone=phone; } publicBorrowBooks(){ super(); } publicBorrowBooks(StringbookId,StringbookName,Stringauthor, Stringfrom,doubleprice,StringborrowTime, StringuserId,StringuserName,Stringphone){ super(bookId,bookName,author,from,price); this.borrowTime=borrowTime; this.userId=userId; this.userName=userName; this.phone=phone; } publicStringtoString(){ returnsuper.toString()+"#"+this.borrowTime+"#"+this.userId+"#"+this.userName+"#"+this.phone; }}packagecom.chinasoft.bms.vo;publiccl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国历史人物典故解读及文化内涵试题
- 2026年高考数学几何与代数习题解析
- 2026年数学复变函数试题
- 2026年智能网联工程机械项目投资计划书
- 2026年通信知识库系统故障应急处置预案
- 2026年非物质文化遗产保护知识竞赛考试题库及答案
- 2026年声纹识别模块项目投资计划书
- 2026年云原生工业软件SaaS服务项目投资计划书
- 2026年东北特色民宿集群项目营销方案
- 2026年侧窗通风器项目投资计划书
- 企业人力资源制度
- 2026 年质量检测员(产品质量检测)试题及答案
- 2026年小红书38好心情小会招商方案
- 初中英语(完整版)连词and-or-but的用法练习题及答案
- 新房建房申请书
- 结直肠外科的发展历程解析
- 输液错误不良事件课件
- 锅炉的定期排污(定排)和连续排污(连排)区别
- 施工班组劳务分包合同
- 气管套管脱管的应急处理
- 2024年新课标高考化学试卷(适用黑龙江、辽宁、吉林地区 真题+答案)
评论
0/150
提交评论