毕业论文-河北省中小学省级标准化学校建设图书管理系统软件_第1页
毕业论文-河北省中小学省级标准化学校建设图书管理系统软件_第2页
毕业论文-河北省中小学省级标准化学校建设图书管理系统软件_第3页
毕业论文-河北省中小学省级标准化学校建设图书管理系统软件_第4页
毕业论文-河北省中小学省级标准化学校建设图书管理系统软件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

河北农业大学本科毕业论文(设计)题目: 河北省中小学省级标准化学校建设 图书管理系统软件学院: 信息科学与技术学院专业班级: 软件1001班学号: 学生姓名: 指导老师姓名:指导教师职称:教授二O一四年六月五日河北省中小学省级标准化学校建设图书管理系统软件摘要随着日前科技发展日益迅猛的需要,信息产品的要求也越来越高,人们日益发现书籍作为知识力量传播的载体已经无法满足人们的需求,于是出现了电子书籍等高科技产品。现今的图书管理系统却少有能跟进时代需求的较为完善的系统。除此之外,当前我国仍存在着一个严峻的现象:一般的中小学校虽然设有图书馆,却没有一套完整的管理系统,不能对书籍、信息等拥有一套合理的、健全的操作管理。这不仅使得图书的管理混乱、来源去向无法追踪,同时也影响了学生们对图书的借阅,更是影响了学生们的全面发展、影响了我国人才的培养。为了解决以上问题,特地为河北省中小学的图书馆设计了本系统。本系统主要分为五大功能:图书管理、读者管理、借阅管理、条形码打印、统计报表。五大功能各自坚守自己的岗位,通过ConnDB类与数据库相连,并相互建立依赖关系。于此同时,为了避免书籍杂乱无章存放的现象,本系统要求首先需要为图书馆的书架信息进行分类存储,才能添加书籍并要求书籍信息内存储与其相关的存放位置及书架信息。除此之外,为了融入现代高速发展的信息科技时代,本系统在现有的基础上,还添加了电子图书的录入、存储与阅读等的功能,保证了图书不会单一枯燥。针对河北省中小学人数不多、图书馆里馆藏书籍数量不多的特点,本系统为图书管理等的操作均采用了简单式的能满足基本功能的方法。为了适应高校拥有多个分校、多个图书馆分区的特点,本系统采用了C/S模式并提供书架管理以协助学校的图书分区储存。为了保护图书信息的安全,本系统采用sqlserver2012设计了相关数据库,并能新添了一名可登陆用户,并允许且只能允许服务器使用此身份访问数据库。本文介绍了在.NET平台下利用C#语言、采用C/S模式实现河北省中小学省级标准化学校建设图书管理系统软件基本功能的全过程。首先从图书信息管理的实际情况出发,为系统的开发背景、需求分析、设计原则进行了相关阐述,然后为系统的详细设计和功能实现与测试进行了相关叙述,最后为对本系统的总结与展望。关键词:图书管理系统;SQLServer2012;C#;.NET;visualstudio2012TheconstructionoftheschoollibrarymanagementsystemsoftwareprovincialstandardsinprimaryandsecondaryschoolsinHebeiProvinceAbstractWiththeincreasinglyrapiddevelopmentofascienceandtechnology,informationproductsareincreasinglyhighrequirements,peopleincreasinglyfindbooksasthecarrierofknowledgepowertransmissionhasbeenunabletomeettheneedsofpeople,sotheemergenceofelectronicbooksandotherhigh-techproducts.Thebooksmanagementsystemmanagementsystemnowhasmoreperfectsystemtofollowtherequirementsofthetimes.Inaddition,thecurrentourcountrystillhasaseriousphenomenon:thegeneralschoolalthoughalibrary,butnotacompletesetofmanagementsystem,notonthebooks,informationhasasetofreasonable,perfectoperationmanagement.Thisnotonlymakesthebookmanagementconfusion,comestoimpossibletotrace,butalsoaffectedthestudentstoborrowbooks,butalsoaffecttheoveralldevelopmentofstudents,trainingofthetalentsinChina.Inordertosolvetheaboveproblem,speciallydesignedthesystemfortheprimaryandmiddleschoolsinHebeiprovincelibrary.Thissystemismainlydividedintofivefunctions:booksmanagement,readermanagement,librarymanagement,barcodeprinting,statisticalreport.Fivemajorfunctionsofeachsticktotheirposts,ConnDBanddatabaseconnectedby,andestablishdependencies.Atthesametime,inordertoavoidbooksbestoredphenomenon,thissystemrequiresfirstneedtobeclassifiedstorageforthelibraryshelvestoaddinformation,booksandbooksinformationstoragerequirementsassociatedwithlocationinformationandbookshelf.Inaddition,inordertofitinwiththerapiddevelopmentofmoderninformationtechnologyera,thesystemontheexistingbasis,addtheelectronicbookentry,storageandreadingandotherfunctions,toensurethebookscannotsingleandboring.CollectionofbooksnotmuchnumberaccordingtothecharacteristicsofprimaryandsecondaryschoolsinHebeiprovincearefewinnumber,thelibrary,thesystemforlibrarymanagementoperationusingthemethodofsimpletypecanmeetthebasicfunction.Inordertomeetthemulticampuslibrary,apluralityofpartition,thesystemusestheC/Smodeandprovidetheshelfmanagementtoassistschoolbookspartitionstorage.Inordertoprotecttheinformationsecurity,thesystemdesignrelateddatabaseusingSQLserver2012,andcanaddaloginuser,andallowsonlyallowstheservertoaccessthedatabaseusingthisidentity.ThispaperdescribestheuseofC#language,usingC/SmodetorealizethewholeprocessofconstructionofschoolbasicfunctionsoflibrarymanagementsystemsoftwareprovincialstandardsinprimaryandsecondaryschoolsinHebeiProvinceunder.NETplatform.First,fromtheactualsituationoflibraryinformationmanagement,systemdevelopmentbackground,needsanalysis,designprinciplesaredescribed,andthenthedescriptionandimplementationoftestfordetaileddesignandfunctionofthesystem,finallythesummaryandProspectofthissystem.Keywords:librarymanagementsystem;SQLServer2012;C#;.NET;visualstudio2012目录TOC\o"1-3"\h\u139461绪论 1152341.1背景 1280151.2目的 119991.3意义 137532设计理论与技术基础 312412.1设计原则 371672.2管理理论 3234512.2.1MIS理论 3304842.2.2图书管理 365132.2.3读者管理 322892.2.4借阅管理 3224922.3人机交互理论 3284852.3.1人机交互的特点与要求 4182342.4C#语言的支持 494072.5数据库的支持 4236093需求分析 613103.1确认目标 677133.1.1功能需求 6212343.1.2性能需求 9174423.1.3环境需求 9215313.1.4可靠性需求 95783.1.5安全保密要求 99063.1.7资源使用需求 10109213.2面向对象的分析 1025193.2.1系统分析 10118653.2.2相关用例图 12316484系统设计 1483404.1数据库设计 1450744.1.1数据库分析 14149704.1.2数据库概念设计 1444264.1.3数据库逻辑结构设计 1622244.2服务器与客户端的设计 23231534.2.1服务器与客户端之间的联系设计 23314914.2.2服务器数据建模 23242554.2.3客户端数据建模 2536885设计实现与测试 26115905.1登陆功能 26194065.2主界面 26124755.3系统设置 27272855.4图书管理 27175545.5读者管理 2870835.6借阅管理 28133495.7书架管理 29272885.8条形码打印 30317525.9统计报表 30194695.9.1对书籍的统计 3099685.9.2对读者的统计 31280715.10功能测试 32109646总结与展望 3414595参考文献 354159致谢 36PAGE371绪论1.1背景(1)开发背景传统的方式首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签想对应的图书分类卡票,最后图书分类卡片按类别分别放置在文件柜里。对于有图书证的学生或教师来说,还要对他们的资料做一定的记录。并且在人们来借书的时候,首先持证者要去存放图书分类卡片的文件柜里查找想借的书是否在架,如果卡片存在,再按照图书分类卡片在相应的书架上找到需要的图书,然后登记持证者的借还书时间和在书签条上写下借还书记录,等等。无论是对于图书的管理还是对借阅的管理,都十分复杂不方便。而在图书管理系统中采用计算机管理图书是一种计算机应用技术的创新,它解决了传统复杂的纯手工方式,避免了图书管理与借阅等流程中的繁琐细节,并且带来了方便了对图书与读者的统计。(2)图书管理系统产生的背景图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立数据库一致性和完整性较强、数据安全性较好的库,后者则要求应用程序功能完备,易使用等特点。经过分析发现,采用visualstudio开发工具可以有效便捷地对数据库进行操作,采用sqlserver可以创建一个较为稳定、安全的数据库,且二者可以相互操作,还可以采用visualstudio开发工具方便快捷地随意生成、替换所需控件,方便了窗体的设计。于是,在此基础上,首先建立了一套数据库、服务器、客户端相互连接的基本体系。再经过对初始原型系统的不断修正和改进,不断努力实现能够满足用户需求的可行的系统软件。1.2目的为了实现书籍与其他文献的集中存储、分布管理,为了便于资料的便捷查询和安全控制,为了追踪书籍的来源、去向、统计所有馆藏书籍信息,为了提高效率、减少人力资源,为了跟进时代的需求、社会的需要,为了广大莘莘学子的全面发展与综合素质的提高,编写了本系统。1.3意义(1)提高了图书管理效率友好、健全的图书管理系统不仅具有一种人性化的设计,还可以在不同情况下跟进用户需求进行不断的改进。在这种强大的支持下不仅可以不断减少管理员操作管理所耗费的精力,还可以避免管理人员操作的错误率,提高服务质量。(2)带动了学生看书的积极性存在着不少中小学生认为自己一看书就犯困,然而上网时却来劲儿。而本系统嵌入了电子书籍的查看与阅读,紧密跟进时代的需求,不仅有效地避免了学生们的这一弊端,还可以促进学生们的积极性。(3)提供了多元化、综合化的服务跟进时代步伐的一套图书管理系统不仅实现管理服务的多元化、综合化,还有效地提升了网络信息资源的利用效率。具备登陆权限的人员,可以在任意地点下载客户端登陆进行查询、添加电子书籍、查看电子书籍等操作,打破了传统的单一服务形式。(4)提高了图书管理人员的综合素质图书管理系统的应用为图书管理人员的工作职能带来了重大的变革,这要求图书管理人员应当具备较高的综合素质,在网络信息时代不断完善自己的知识体系。促使图书管理人员自觉地提高综合技能、熟练运用计算机技术,能够自主建立各种文献数据库、解答读者的问题,并指导读者如何获取其所需的资料信息。2设计理论与技术基础2.1设计原则本系统秉承方便管理员操作的原则、即时保存与管理信息的原则、人机交互友好的原则、数据通讯流畅的原则、为人民服务的原则,全力为河北省中小学打造一个与时俱进的图书管理系统软件。力争完善系统的每一个重要环节,避免“蝴蝶效应”给系统带来的重大损失。2.2管理理论为了避免图书馆内读者对书籍频繁的借阅与归还带来的凌乱问题、为了解决书籍随意存放造成的杂乱无章问题等等,一个有组织、有效率的管理显得尤为重要。2.2.1MIS理论MIS(ManagementInformationSystem)即管理信息系统,是一个以人为主导的,利用计算机硬件、软件、网络设备,进行信息的收集、传递、存储、加工、整理的系统,以提高组织的经营效率。管理信息系统是有别于一般的信息系统,因为它们都是用来分析其他信息系统在组织的业务活动中的应用。学术上,管理信息系统通常是用来指那些和决策自动化或支持决策者做决策有关的信息管理方法(例如决策支持系统、专家系统和主管支持系统)的统称。2.2.2图书管理图书管理为专门为图书而打造一套管理方案。它统计了图书的订购时间、订购价格、入库时间、出库时间、从属分类、存放位置等的信息。无论是入库还是出库,它都有一套体系记录其相关信息,并且需要判断是否可以进行该操作。2.2.3读者管理只有拥有相应权限的读者才能进行相关操作。与此同时,管理员需要统计所有读者的信息,并且记录该读者是否可以借书、续借等。一套拥有读者信息的管理系统,才能更好的追踪书籍的去向。2.2.4借阅管理Id号为**的书籍在不在?被谁借出去了?什么时候借出去的?什么时候归还?归还的时候有没有超时?若不能归还,需要赔偿多少金额?等等问题的提出,无疑需要借阅管理来处理。同时,借阅管理需要统计出所有书籍或读者的借阅次数或数量。2.3人机交互理论纵然图书管理系统中引入了计算机等自动化元素,然而仍然需要一定量的人工管理与操作系统,以维护数据的准确性并能及时发现问题、解决问题。而系统的客户端则是本系统与用户的直接交互。为了从人性化的角度思考、更满足用户的需求,人机交互的思想起到了重大作用。2.3.1人机交互的特点与要求(1)友好性无论是管理员还是读者在操作时,界面应当以简洁明了、便捷的方式呈现在用户面前,操作越简单越能快捷地获取想要的数据便越好。如果能提供给用户相应的快捷方式,或者提供给用户相关维护人员的联系方式便更好了。(2)灵活性系统应当在能够满足用户的需求的情况下,能够以不同的方式去完成用户的需求。尽量避免死板、不可改变的情况。(3)功能性系统应当能完成每一个用户所发出的指令并能满足用户的需求。(4)明确性系统应当清楚、明确的知道用户发出了什么指令,并且能够正确地给出相应的输出。(5)一致性系统的工作方式和处理问题的步骤尽可能和人的思维方式一致,系统在不同工作显示界面上应当具有相似的交互显示格式和相似的人际操作方式。(6)可靠性系统应当能够正常无故障地工作,应当在运行过程中不会出现死机、崩溃等问题;系统运算提供的数据应当可靠无误;系统对数据的安全保护应当具备一套相对健全的体系。(7)图形化的使用虽然本系统是个应用软件,但是对于的使用还是很有必要的。图形化的使用能使系统表现更直观形象、更易用户所接受。2.4C#语言的支持C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C++派生而来,继承了其强大的性能,同时又以.NET框架作为基础,拥有类似visualBasic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言。C#虽然没有模板的支持,但是在C#2.0中引入了泛型,并且支持一些C++模板不支持的特性,本系统在接收通讯数据时就使用了这项技术。C#中的委托技术也相当重要。在.NET环境中不允许线程直接访问控件,而在客户端从线程返回回来数据之后,会经常性的使用这些数据改变窗体中相应的显示的数据。而有了委托的这项技术,方便安全地解决了这一大难题。2.5数据库的支持MicrosoftSQLServer是由美国微软公司所推出的关系数据库解决方案。数据库的内置语言原本是采用美国标准局(ANSI)和国际标准组织(ISO)所定义的SQL语言,但是微软公司对它进行了部分扩充而成为Transact-SQL。采用数据库的思想,不仅能够快捷、清晰明确地存储所有相关数据,而且能够方便数据的查找与统计,更重要的是,数据库的引入为网络安全、信息系统的保护更是增添了一层厚厚保护膜。本系统对数据库的使用不多,主要是新增了一名可登陆数据库的用户、创建数据库、查询/修改与保存数据表信息。由于在C#中采用DataAdapter缓存技术实现对数据库的操作,所以本系统在数据库中的修改也省去了不少繁琐事件,同样不需要编写复杂的存储过程。在安全上,加强了程序的防护措施;在事件处理上,它们分工更明确,避免了逻辑混乱的不良现象。3需求分析3.1确认目标3.1.1功能需求需求说明本系统为三大种人群而设计:Administrator、普通管理员、读者。Administrator为高级管理员,只由一人负责,能够操作后台的一些高级配置、如更改数据库、数据备份与恢复、对普通管理员的权限的修改等;普通管理员能够操作图书管理系统的一些基础功能操作,如录入图书、查询图书资料、修改图书资料、管理读者等;而读者又分为三内:校内的教师与学生、校外授权的超级用户,但他们都只能做对图书的查询与查看电子书籍等操作。只有在登录被验证、获得权限之后才能登入系统,不同身份的人登录之后所能看到的界面是不一样的。每位读者拥有自己的一份借书证,其中记录着读者的ID号、姓名、院系(单位)、与借书还书的相关信息。读者可以根据其所持图书证进行借阅书籍、归还书籍、进入图书馆等操作,还可通过图书证登陆相关系统后查询、阅读电子书籍。借阅图书时,由管理员录入借书卡号,系统首先验证该卡号的有效性,若无效,则提示无效的原因;若有效,则显示卡号、姓名、借书限额、已借阅数量、可再借数量等信息,本次实际借书的数量不能超出可再借数量的值。完成借书操作的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅信息中添加相应的记录。归还图书时,由管理员录入借书卡号和待归还的图书编号,显示借书卡号、读者姓名、图书编号、图书名称、借书日期、应归还日期等信息,并自动计算是否超期以及超期的罚款金额,若进行续借则取消超期和罚款等信息;若图书有损坏,由管理员根据实际情况从系统中选择相应的损坏程度,系统自动计算损坏赔偿金额。完成归还操作的同时,修改相应图书信息的状态、修改读者信息中的已借数量、在借书信息中对相应的借书记录做标记、在还书信息中添加相应的记录。图书管理员不定期地对图书信息进行添加、修改和删除等操作,在图书尚未归还的情况下对图书信息进行删除。也可以对读者信息进行添加、修改、删除等操作,在读者还有未归还的图书的情况下不能进行删除读者信息。信息查询。所有录入数据库的数据,包括读者的信息、书籍的信息,图书管理员不仅拥有可以添加、修改、删除信息的权限,还拥有查看的权限已经将所有读者、图书的id号打印出条形码的权限。尤其是对于读者的登陆密码,假若读者忘记了密码,可以寻求管理员的帮助。管理员通过一定途径确定该读者及所持图书证的正确关系,成功辨认后方能为其找回密码。密码的现实也不能直接显示在界面。只有管理员确定当前信息查看安全的情况下才能点击“现实密码”,才能查看所有读者的登陆密码。于此同时,管理员还拥有统计报表的权限。通过当前已有的数据,管理员可以判断出当前图书借阅的趋势并预计未来图书的借阅情况并能根据此趋势判断将来图书馆的发展趋势。另外,图书管理员还可以根据统计来判断是否需要新进一些什么类别的书籍以满足读者的需要,进而更好的管理与完善图书管理系统等等。如图3-1所示:图书管理图书管理读者管理借阅管理条形码打印统计报表添加图书删除图书查找图书添加读者修改读者信息读书删除读者借书还书读者条形码的打印图书条形码的打印图书总数量统计按图书类别统计图书借阅排行读者借阅排行系统图书管理图3-1功能分析图开始登录是否合法是是否普通管理员?否是否高级管理员?否结束否否显示读者界面显示普通管理员界面显示普通用户界面是是是等待用户相关操作开始登录是否合法是是否普通管理员?否是否高级管理员?否结束否否显示读者界面显示普通管理员界面显示普通用户界面是是是等待用户相关操作是否读者?图3-2基本流程图3.1.2性能需求数据库的容量河北省中小学的图书馆藏量相对来说比较小,可以万计数,数据库中所需记录的数据所占空间并不大,因此对数据库的容量只需较大,无严格限制。服务器性能与容量服务器要求必须在有多台客户端登陆时仍然能够较好地流畅地运行,并且能够返回给客户端正确的数据。于此同时,因为电子书籍的存储只能以文本的形式存储以节省数据库的资源,所以相对来说,数据库的容量是需要较大的。假若每本书籍所需容量为1M,那么10000本书所需容量为10000M,即9.77G,而随着电子书籍的普遍,所需容量必然会增加。从长远的角度思考,服务器所需的性能与容量相对来说都是较大的。网络环境本系统所需网络要求不严,只需要能够保证数据的发送与接收即可。而每次数据的发送与接收量并不大,所以只需要一套简简单单的能够连上网的环境即可。3.1.3环境需求硬件环境处理器:Intel(R)Pentium(R)CPUP6200@2.13GHz安装内存(RAM):4.00GB(3.86GB可用)系统类型:64位操作系统笔与触摸:没有可用于此显示器的笔或触控输入软件环境Visualstudio2012、sqlserver20123.1.4可靠性需求本系统要求每位用户在每次登陆的时候能够为其进行正确的判断,登陆之后能够安全、可靠地执行操作,不出现崩溃、闪退等严重现象。数据发送与接收也需要正确,不出现数据遗失、通讯协议重复、端口号占用等错误现象。3.1.5安全保密要求对密码的保护本系统严格要求不论是在用户操作时还是在数据传送时都需要对用户密码具有很好的保护措施。在登陆输入密码的时候,需要将其进行隐藏;在数据传送时,需要有一定的协议规则将其封装,使其不易被破解;且数据库不会被客户端所操作,等等。由此加深了对密码的保护措施。对书籍信息的保护只有管理员才拥有权限对书籍的录入、修改、删除操作,而这些操作在数据传送时因其特有的一套编码与解码规则,使其数据的传送在一定程度上具备相应的安全性。3.1.6用户界面的需求用户界面需达到直观、美观、便捷、图形化、易于用户接受、不花哨、不单调、界面风格相对统一的要求。3.1.7资源使用需求数据库与服务器由校方所提供,应当尽可能地节省数据库与服务器所需资源,应当在完成之后为其进行优化。而客户端为更多人不定时不定地点所操作的一部分,需求其下载时间短、资源占用量少的特点,因此不应超过15兆。3.2面向对象的分析根据本系统在开发过程中需求变化少、项目风险低、用户使用环境比较稳定、用户除提出需求外很少参与开发工作及开发人员对学校图书管理系统较为熟悉等特点,本系统决定采用瀑布模型开发项目。3.2.1系统分析系统软件定义本系统为一款易于所有教师、同学、管理者所接受的图书管理系统软件,并将适用人群扩大化至河北省所有的中小学,并将其标准化。采用C/S模式,使用C#语言,主要目的是实现为河北省各大中小学提供管理各类文献的标准化系统,基本要求为实现易操作、美观、强大、满足大部分教师/学生的对图书文献需求、能跟进时代需要等的管理系统。可行性分析本系统主要面向人群分为五类人群:教师、学生、管理者、超级用户、高级管理员,他们的权限不一样,而高级管理者拥有最高的权限。无论社会如何发展、科技如何发展,文字书籍对人群都仍然是十分必要的,这款软件的设计面向的人群数量仍是极多的,软件的功能也在与时俱进,因此该项目对于面向人群的设计是合理的。本系统的环境要求不高,只需要一台装有visualstudio和sqlserver软件的笔记本或者台式机即可。所需配置不高,配置可行性通过。本系统的测试环境完全可以采用开发环境进行配置测试,因此测试环境可行性通过。本系统所需资源、所需成本较低。开发者完全拥有开发本系统所需要的基本硬件资源与软件资源。因此资源分析可行性通过。最后,鉴于开发者与学校关系密切,了解学校图书情况,同时也可以实地考察当前河北省的各大学校的图书馆实际情况,可以获取大量所需数据资料,并且能够在此基础上为图书管理系统融入当前时代的新内容,为当前社会带来良好的社会效益。因此,总的来说,本系统完全具备开发的各项基本条件,可以进行开发。系统组成本系统主要由以下三个子系统构成:读者子系统、管理员管理子系统、高级管理员管理子系统。具体可参阅3-2基本流程图介绍。系统功能描述本文档主要介绍借阅书籍与归还书籍的功能。读者首先向图书管理员进行借阅请求,请求通过后图书管理员会为其首先进行可借阅数量判断,判断成功后会为其进行借阅处理,然后相关数据会被记录进入数据库。具体可参阅3-1需求说明。系统参与者图3-3系统参与者UML图其中,用户是对所有可执行本系统人员的归纳。有且只有一名或者一组高级用户可对系统做高级操作,包括对普通图书管理员、读者、书籍等的添加、修改、删除等,还赋予其备份数据库、还原数据库的权限。普通管理员则有多名分别负责不同馆区,可以对书籍、读者信息进行添加、修改、删除等操作,可以统计当前所有信息,可以将当前所有图书id、读者图书证进行打印操作,可以辅助读者进行借书、还书等操作及其管理。读者除了可以在图书馆借阅、归还书籍外,只允许对书籍进行查看与阅读电子书籍的操作。3.2.2相关用例图(1)读者用例图图3-4读者用例图读者拥有登录系统、查看书籍、借阅书籍、归还书籍的权限。在查看书籍之后,可以通过电子书籍的id号进行阅读书籍的操作。当读者需要借阅书籍的时候,系统首先会判断该读者是否可以借阅,包括判断该读者是否有权限借阅、是否借阅的书籍已经超量等信息。而归还书籍的时候,还会要求图书管理员查看该书籍的的状态,如果该书籍已经受到损坏,那么可能会要求该读者进行一定的赔偿。具体情况依据学校的规定而定。图书管理员用例图图3-5图书管理员用例图图书管理员所拥有的权限比较多,也是其职责所在。首先,图书管理员拥有对读者的管理、对图书的管理、对借阅的管理、条形码的打印、统计报表等主要权限。当学校读者相关信息发生变化时,需要管理员通过系统的“读者管理”来进行数据库与实际情况的统一与备份。其中包括添加、删除、修改、清空、查看读者信息等操作。同理,当学校书籍相关信息发生变化时,也需要管理员通过系统的“图书管理”来进行数据库与实际图书信息的统一与备份。同样的,也包括对图书的添加、删除、修改、情况、查看等操作。而借阅管理则包括借出与归还两类操作。当读者来借书时,不仅仅管理员赋予其借书的权限,管理员更是有义务将其相关借阅信息存储;同理,当读者归还图书时,管理员不仅仅需要将图书放回书架相应位置,还需要将该读者归还了什么书籍等信息记录入库。条形码打印则包括打印图书条形码和打印读者条形码。为了进一步方便管理员对读者信息的相关管理,本系统直接将打印读者条形码更换成了打印读者图书证。统计报表则是最后图书管理系统总会需要到的一项功能。它包括统计图书信息与统计读者信息,还可以更细地划分,这将在本文档后边会介绍到。4系统设计4.1数据库设计4.1.1数据库概念设计本系统主要有5个实体,分别是图书证实体、书籍实体、书籍信息实体、书架实体和借阅实体。图书证实体是关联学生、教师、超级用户、管理员和高级管理员的实体,其referenceId关联着外部数据库实体的所对应的id号。而学生、教师等在理应在入校的时候就已经统计记录下来了,所以本系统没有故意设置该实体(只在演示的时候创造了测试实体)。图书证实体E-R图如图4-1所示:LibraryCardNorLibraryCardNorReferenceIddReferenceTypeCanBorrowNumCanKeepTimeTimeowNumPassIdAccountIdIdTimeowNum图4-1图书证实体E-R图对于图书馆来说,最重要的就是其内存储的书籍,所以需要建立一个书籍实体以存储相关信息,包括其固有属性“图书类别”。如图4-2所示:CostCostAuthorTimeowNumIdPublishBTypePrintTimemeNameTimeowNumBookClassify图4-2书籍实体E-R图书籍除了其自身的属性之外,还包括了其他的属性,如是否被借阅、什么时候归还等,于是还需要一个实体为其进行存储。两实体相互关联并以“是否其自身必有的属性”区分。如图4-3所示:BookStateBookStateStorgeTimeFetchoutTimeIdShelfIdTimeowNumOutTimeLoseTimeBookStateTimeowNum图4-3书籍信息实体E-R图然而,对于书籍,还有一个很重要的为题:以什么方式存放在哪里?对于书籍的分类管理存储很重要,否则难以得知图书的位置,于是本系统提出了对书架的管理。如图4-4所示:bookshelfbookshelfIdStorgeTypePlace图4-4书籍实体E-R图最后,本系统的重点就是对于借阅书籍与还书的管理了。一个友好便捷的图书管理才能更好地处理并及时获取图书的信息,也才能更好地保护图书资源。本系统的借阅实体由图书Id和借书证Id组成的联合主键共同识别唯一信息,并且及时记录了是否被借阅或归还。如图4-5所示:BorrowInfoBorrowInfoBorrowTimeGivebackBookIdTimeowNumBorrowSignignCardIdTimeowNum图4-5借阅实体E-R图4.1.2数据库分析Book(Id,Name,Author,BType,Pulibsh,PrintTime,Cost,Cliasify)BookState(Id,BookState,ShelfId,StorgeTime,FetchoutTime,LoseTime,OutTime)BookShelf(Id,Place,StoreType)LibraryCardNor(Id,ReferenceId,ReferenceType)BorrowInfo(Id,CardId,BookId,BorowTime,Giveback,BorrowSign)SuperUser(Id,Name,IDNUMBER,Department,UserIdentity)Manager(Id,Name,IDNUNBER,Department,BornDate,Sex,Job,IsBlack)Administrator(Id,Name,PassId,IDNUMBER,APassword)强制参照完整性:BookState中的Id的值必须和Book中的Id的值相对应;BorrowInfo中的CardId的值必须和LibraryCardNor中的Id的值相对应;BorrowInfo中的BookId的值必须和BookState中的Id的值相对应;LibraryCardNor的ReferenceId必须与学生或者教师或者超级用户的Id值相对应;各表之间的联系图如图4-6: 图4-6各表之间的联系图4.1.3数据库逻辑结构设计根据以上设计,本系统数据库共做了5个逻辑表。分别是LibraryCardNor借书证表、BookShelf书架表、Book图书表、BookState图书状态表、BorrowInfo借书信息表。考虑到学校在录取学生或者教师的时候会为其录入数据并创建相关数据库,为了节省学校可用资源,本系统希望能够从该数据库引入学生和教师信息,于是此处不再为其进行数据分析,而是做了部分有关学生和教师的测试表。另外,本系统还需要一个超级用户表、一个图书管理员表和一个高级用户表。于此,各表如下所示:表4-1SuperUser超级用户表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL超级用户编号NameVarchar(20)否NOTNULL超级用户姓名IDNUMBERChar(18)否NOTNULL超级用户身份证DepartmentVarchar(40)否NULL单位UserIdentityVarchar(20)否NULL对超级用户的备注信息表4-2Administrator高级管理员表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL高级管理员编号NameVarchar(20)否NOTNULL姓名PassIdVarchar(20)否NOTNULL登陆账号IDNUMBERChar(18)否NOTNULL身份证号APasswordVarchar(20)否NOTNULL登陆密码表4-3Manager普通管理员表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL普通管理员编号NameVarchar(20)否NOTNULL普通管理员姓名IDNUMBERChar(18)否NOTNULL身份证号DepartmentVarchar(20)否NULL单位BornDatedatetime否NULL出生日期SexVarchar(2)否NULL性别(只能为“男”或“女”)JobVarchar(20)否NULL职务的描述IsBlackint否NULL是否在黑名单之内(只能为0或1,默认为0),在黑名单之内的人,不能再登陆系统,也不能再被创建。此操作只允许高级管理员通过数据库设置表4-4LIbraryCardNor借书证表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL借书证编号(对应条形码),也是登陆账号ReferenceIdVarchar(20)否NOTNULL借书人编号ReferenceTypeChar(2)否NOTNULL借书人类型(只能为1-3,其中1为学生,2为教师,3为超级用户)AccountIdVarchar(20)否NOTNULL昵称PassIdVarchar(20)否NOTNULL登陆密码CanBorrowNumint否NULL可借阅数量默认为5CanKeepTimeint否NULL可借阅时间,单位为天,默认为30表4-5Book图书表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL图书编号(对应图书条形码)NameVarchar(20)否NOTNULL图书名称AuthorVarchar(20)否NOTNULL作者BTypeVarchar(10)否NULL材料类型(只能为“纸质”或者“电子”,默认为“纸质”)PublishVarchar(40)否NULL出版社PrintTimedatetime否NULL出版时间Costdouble否NULL花费ClassifyVarchar(40)否NULL图书类型表4-6BookState图书状态表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL图书编号BookStateVarchar(4)否NULL图书状态(只能为“库存”或“借出”或“遗失”或“出库”,默认为“库存”)SheldIdVarchar(20)否NULL对应图书的编号StoreTimedatetime否NULL存储时间FetchoutTimedatetime否NULL借出时间loseTimedatetime否NULL遗失时间OutTimedatetime否NULL出库时间表4-7BorrowInfo借书信息表字段名数据类型是否主键是否为空描述CardIdVarchar(20)是NOTNULL对应图书证编号BookIdVarchar(20)是NOTNULL对应图书编号BorrowTimedatetime否NULL借书时间GiveBackdatetime否NULL还书时间BorrowSignint否NULL是否已经归还(默认为0,0表示没有归还,非0表示已经归还)表4-8BookShelf书架表字段名数据类型是否主键是否为空描述IdVarchar(20)是NOTNULL书架编号PlaceVarchar(40)否NOTNULL书架具体存放位置StoreTypeVarchar(20)否NOTNULL书架存放类型4.2服务器与客户端的设计4.2.1服务器与客户端之间的联系设计服务器与客户端之间的对外连接均采用C#提供的Socket进行连接。其中服务器默认使用端口号8000并使用多线程不断监听外部是否有客户端接入。如果,则再为其建立一个专用线程,与该客户端进行数据通讯。而客户端默认使用一个线程连接服务器的8000端口号,并提供一个可以修改连接目的的ip地址和端口号以防止服务器更换ip地址或者端口号时的不统一而导致的无法连接现象。无论是服务器还是客户端,均使用C#提供的泛型dictionary及委托相互联系而产生的回调并及时进行客户端的数据更新。服务器与客户端相互商量,协议统一无差错,保证了通讯之间的功能唯一性与数据准确性。另外,为了安全,只有服务器可以访问数据库,而客户端不允许之间操作数据库。4.2.2服务器数据建模服务器主要分成三部分:与数据库建立联系、与客户端建立联系、服务器内部的管理、计算与数据保存等。数据库内有多个表,服务器可能对其进行多个表的操作,并且对每个表的需求与操作方式可能各有差别,因此,需要建立一个与数据库联系的基类,然后分别建立几个继承该基类的子类对数据库进行相互的操作。基类里存放着基础的操作,而子类中存放着具备各自特征的操作。本系统为小型的只为中小学设计的系统,因此服务器与客户端之间的通讯并不需要大量的支持,所以本系统只为服务器与客户端的连接设计了一个类进行简单的接收数据、处理数据、发送数据的操作。而服务器内部的管理、计算与数据保存可能会关系到各类管理类,具体实现如下图4-7所示:图4-7服务器数据建模图4.2.3客户端数据建模客户端的设计思路与服务器类似,不同的是,客户端不需要那么多的管理类,却需要大量的窗体类用以为用户呈现相关数据。具体如下图4-8所示:图4-8客户端数据建模图5设计实现与测试5.1登陆功能用户登陆时,首先需要输入账号和密码,所以,该功能首先需要一个带2个文本框跟一提交信息按钮的窗体,当用户输入密码后,密码会被自动转换为字符“*”以达到保密的作用却不妨碍对密码数据的读取。当用户点击确定后,首先从文本框中读取出账号和密码,然后判断是否符合规则(不能为空),然后添加长度数据与其对应的连接字符,再添加对应的登陆协议号及其连接字符,最后一并发送给服务器。服务器接收到数据之后,通过协议号发现此数据为登陆数据,然后进行解析判断是否符合规则,如果符合规则,则继续,否则扔弃此数据。然后服务器会去数据库查找是否符合该账号密码的用户,如果存在并且密码正确,则会发送给客户端一“登陆成功”的消息,否则会告诉用户出什么错了。假如用户输入出错,在显示出错信息之后,系统会自动退出以保证数据的安全性。登陆功能模块,主要采用了协议关系表、Dictionary与delegate联合形成的回调函数以及控件的invoke函数。在登陆界面初始化成功之后,系统会在后台自动初始化ManageForm主界面,以避免用户登陆之后因为界面没有初始化完成而产生的短时间的卡顿。5.2主界面主界面除了背景图片外,主要分成两部分:菜单栏部分和快捷键部分。如图5-1所示:图5-1主界面菜单栏图当用户点击菜单栏的按钮时,每个菜单按钮都会弹出自己所有的子菜单,相应的,当点击子菜单时,它也会显示它所有的子菜单,当然,如果该菜单键没有子菜单则不显示,如果该菜单对应某些功能,则会显示辅助功能实现的界面,并可在后台为用户获取其所希望得到的数据。于此同时,本系统还为常用的几个按钮键做了快捷方式,如图5-2:图5-2主界面快捷键图以上三个快捷图片是为方便图书管理员操作而特意添加的图片按钮,它们大概是图书管理中点击率最高的按钮。如此可方便用户的操作并能达到节省时间的效果。“看书”按钮,会首先为用户弹出一个可输入图书id号的文本框,当用户输入相应存在的id号时,服务器则会为读者传送该id号所对应的电子图书内容。而假若不存在,同样的也会返回数据提示读者该图书并不存在。无论用户点击主菜单的哪个按钮或者点击快捷键图片,系统都会为其生成一个与之对应的界面。5.3系统设置在系统设置中,为了防止系统服务器端与其他应用发送占用端口号的冲突事件,本系统特意为管理员添加了“重置IP和端口”按钮和“重新连接”按钮。每次系统启动之后,系统都会从当前进程所在路径下查找“info.txt”文件,如果不存在则创建并写下默认ip地址和端口号,否则从中读取ip地址和端口号信息,然后根据默认的或文本中存储的ip地址和端口号访问服务器。因此,在重置ip地址和端口号之后,本系统会首先修改“info.txt”中的信息,然后再根据该信息与服务器进行重连操作。考虑到用户可能保留着其他应用程序使用时的一些习惯,本系统为了与其他应用相统一,增加了“退出”按钮。如此,本系统希望用户能够更易接受本系统并能很好的运用。5.4图书管理图书管理主要分为四大模块:录入/修改图书信息、删除图书信息、清空图书信息和查看图书信息。无论是哪种功能的需求实现,本系统都会为其找到其所对应的协议号,并且从界面中获取所需的相关信息,然后通过ProtocalMgr打包,再通过ConnectServer发送给服务器。因此ConnectServer类在本系统刚启动的时候必定就已经启动起来了,而ProtocalMgr在ConnectServer中创建并关联。于是,只要将这些按钮所需执行的功能与其相对应的协议号相对应,则可从服务器获取所希望的数据。而服务器直接跟数据库相连,因此客户端便可获取到所有存储在数据库中的数据。然而,其中有一个很重要的问题:当服务器给客户端发送消息的时候,有时候会因为数据过大过长而丢失数据,但是如果把它们分散发送给客户端,又可能会产生端口号占用或者数据堵塞的情况而导致客户端无法接受正确的数据或者根本无法接收到数据。于是,本系统采用了一个暂时认为很好的方法:当服务器发现所发数据可能过大时,便会将它们分成很多个部分分批次发送,而究竟分几批则由数据本身所占的大小及ElecPerNum所决定,即:总数据大小/ElecPerNum+总数据大小%ElecPerNum>0?1:0)=发送次数。另外,每将一批数据发送之后,都会有0.2秒或者0.5的延迟,以保证客户端已经成功接收上一批数据并且等待接收下一批数据。有了此思想之后,客户端接收数据则变得相对稳定了。同样的,有时候客户端发送消息给服务器时也遇到过这样的问题,同样也是通过此方法解决的。5.5读者管理读者管理的思路与图书管理的思路具有异曲同工之处,同样拥有添加/修改读者信息、删除读者信息、查看读者信息、清空读者信息的操作。并且在界面显示上也与图书管理的界面相似,有着同样的风格。5.6借阅管理借阅管理除了跟图书管理、读者管理一样拥有查看借阅信息、清空借阅信息之外,还具有借书、还书的功能。在借书时,当管理员输入读者的id号,即图书借阅卡上的条形码之后,系统会在后台自动发送消息给服务器告诉它“我想要id号为**的一些信息”,然后服务器便会将该读者的部分信息发送过来。当客户端接收到此消息后,首先判断数据是否正确,如果正确则结合C#提供的委托功能调用控件的invoke函数将所有信息输出到界面;而如果数据出错了,客户端也会根据服务器提供的数据告诉用户出现了什么样的错误。当成功接收该读者的信息并成功显示之后,管理员将读者所需借阅的书籍id号(书籍对应的条形码)输入系统,如果该读者身份正确并且其所借阅的图书数量并未超出规定值,则发送给服务器获取图书信息并且根据同样的方式将图书信息输出到界面。如果该读者可以继续借阅,则还可以第二次输入图书信息。最后在提交时一并将数据发送给服务器,并将该读者与图书直接的借阅关系数据保存在数据库。而当读者还书时,只需要输入读者的id号即可获取到读者的信息以及与其相对应的图书借阅信息。然后管理员便可以批量告诉服务器该读者归还了什么书籍了。由此,一套基本的借阅管理便结束了。可参考一下借阅界面图片了解本系统(见图5-3和5-4):图5-3借阅图书界面图图5-4还书界面图5.7书架管理书架管理跟图书管理、读者管理类似,拥有添加/修改书架信息、清空书架信息、删除书架信息、查看书架信息的功能。但值得说明的一点是,考虑到如果书架没有首先管理好,图书入库后将无法很好地分类,容易导致图书堆放杂乱无章、难以查找书籍的弊端,因此本系统要求首先添加书架信息,并且根据书架信息将图书进行分类并保存图书存储的位置。5.8条形码打印条形码打印共有两项功能:打印图书条形码和打印带读者条形码的图书证。为防止与市面上的条形码标准不匹配的特点,本系统并未主动编写生成条形码、解析条形码的代码,而是从网上下载了由google提供的ZXing资源,调用其接口并通过一定的逻辑将其条形码打印,然后配合visualstudio的控件对其进行打印,具体见图5-5和图5-6图5-5图书条形码图图5-6读者图书证打印5.9统计报表5.9.1对书籍的统计当点击“图书管理-统计”之后,首先客户端会在后台发送协议告诉服务器用户需要统计信息。然后服务器会在后台首先计算出当前图书馆馆藏的图书共有多少本,其中有纸质书籍多少本、电子书籍多少本。如以下代码所示:publicstringGetBookSum(){System.Data.DataTabletable=mBaseConn.getTableList();if(table==null){returnRules.Rules.ErrorStr;}intsum=table.Rows.Count;intpaper=0;intelec=0;foreach(System.Data.DataRowrowintable.Rows){stringtype=row["BType"].ToString();if(type==Rules.Rules.StrElec){elec++;}elseif(type==Rules.Rules.StrPaper){paper++;}}stringdata=sum+Rules.Rules.StrLink_Att_Att+paper+ Rules.Rules.StrLink_Att_Att+elec+Rules.Rules.StrLink_Att_Att;returndata;}然后管理员可以根据两种方式再对图书进行统计:按图书类别统计或者按图书借阅排行榜统计。当管理员希望使用图书类别统计方法对图书进行统计时,客户端会将此消息发送给服务器,然后服务器会首先将图书进行分类并将每种类别的数量存储在泛型Dictionary中,然后再对其进行从高到低的排序。之后会将排好序的数据打包发送给客户端显示。同样的,当管理员希望使用图书借阅排行榜进行统计时,服务器首先会将所有图书id和被借阅次数统计出来存储再排序再打包发送给客户端。由此可直观性地获取图书的相关信息。5.9.2对读者的统计对读者的统计较为简单。首先客户端会告诉服务器需要统计了,然后服务器会将当前所有读者的信息分类后返回给客户端,然后客户端会告诉服务器“我需要对读者通过借书数量进行统计”,然后服务器会将所有读者及其借书数量统计出来返回给客户端。通过对读者的统计,可以统计出那些院的哪些学生或者哪个单位的哪个教师借书次数较多,还可以评出“最爱读书的人”。5.10功能测试表5-1测试用例表用例编号测试模块输入输出预期结果与预期结果1登陆模块输入用户名:4711111222224输入密码:aaaaaa登陆系统登陆系统相同2添加图书信息输入图书编号:1000000000009,图书名称:book01,作者:author01,类型:纸质,图书类型:故事类;存放位置:东校区图书馆3楼A书架,单价:10添加图书信息成功添加信息成功相同3添加读者信息输入读者编号:3000000000007,关联ID:1,读者类型:教师;用户名:Jandgen,用户密码:qqqqqq,

温馨提示

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

评论

0/150

提交评论