还剩76页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
青岛理工大学毕业设计(论文)题目图书馆管理系统学生姓名宋益静指导教师王成钢计算机工程学院软件工程专业软件111班2015年6月5日摘要当今时代是飞速发展的信息时代,各行各业都离不开信息处理,这正是计算机被广泛应用于社会各行各业的原因使用计算机进行信息管理是行业现代化的一个标志,此举不仅提高了工作效率,而且大大的提高了其安全性尤其对于复杂的信息管理,计算机能够充分发挥它的优越性快速操作、智能分析、海量存储和长期保存等等使用计算机进行信息管理与信息管理系统的开发密切相关,因为信息管理系统的开发是利用信息管理系统进行管理的前提本系统就是为了进行现代化图书馆信息管理而设计的本文介绍了基于.NET框架的图书馆管理系统的设计与实现图书馆管理系统是典型的信息管理系统MIS其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面对于前者要求建立起数据一致性和完整性强、数据安全性好的库而对于后者则要求应用程序功能具有完备易使用等特点图书馆在正常运营中总要面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息因此需要对读者资源,书籍资源,借书信息,还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率另外,本系统在读者登录系统部分进行了创新,引入了当当网的书评信息管理模式,并可自主查看自己的图书借阅情况,使读者可以更方便、快捷地选择图书,并大幅减少了图书管理员的工作量,提高了图书借阅流程的效率关键词图书馆管理,ASP.NETSQLSERVERABSTRACTTodayistherapiddevelopmentofinformationageinallwalksoflifecannotleavetheinformationprocessingthatswhatthecomputeriswidelyusedinthesocialfromallwalksoflife.Usecomputerinformationmanagementisasymbolofindustrymodernizationwhichnotonlyimprovesworkefficiencyandgreatlyimproveditssecurity.Especiallyforcomplexinformationmanagementcomputercangivefullplaytoitsadvantages:rapidoperationintelligenceanalysismassstorageandpreservationetc.Usecomputerinformationmanagementandinformationmanagementsystemdevelopmentiscloselyrelatedtobecausetheinformationmanagementsystemdevelopmentisthepremiseoftheuseofinformationmanagementsystemformanagement.ThissystemisdesignedforthemodernlibraryinformationmanagementNETFramework-basedlibrarymanagementsystemdesignandrealization.LibrarymanagementsystemisatypicalmanagementinformationsystemMISitsdevelopmentmainlyincludestwoaspectsoftheestablishmentandmaintenanceofthedatabaseandfront-endapplicationdevelopment.Theformerrequirementtoestablishdataconsistencyandintegritydatasecurityandagoodlibrary.Forthelatterrequirestheapplicationfunctionalitywithacompleteeasy-to-usefeatures.Librariesalwayshavetofaceinthenormaloperationofalargenumberofreadersbookinformationaswellastheinteractionbetweenlibraryinformationbooks.Needofthereadersresourcesbooksresourceslibraryinformationthebooksinformationmanagementtokeepabreastofchangesinallaspectsofinformationhelptoimprovemanagementefficiency.InadditionthesystemisthepartofthereaderslogontothesysteminnovationtheintroductionofinformationmanagementmodeDangdangbookreviewsandcanbeindependentbooklendingsothatreaderscanmoreeasilyandquicklyselectbooksandwillgreatlyreducethelibrarymanagementtheworkloadandimprovetheefficiencyoftheprocessofbooklending.KEYWORDS LibraryManagementASP.NETSQLSERVER目录TOC\o1-3\h\u第1章绪论
11.1课题的提出
11.2国外研究现状
11.3国内图书管理系统目前的侧重点及发展方向
21.4主要研究内容及部分要求
21.5论文的组织结构3第2章可行性分析
52.1系统调研
52.
1.1系统目标
52.
1.2系统的业务流程图
52.2可行性分析
62.
2.1技术可行性分析
72.
2.2经济可行性分析
72.
2.3操作可行性分析7第3章课题关键技术
83.
1.NET技术简介
83.2ASP.NET技术介绍
93.3MicrosoftVisualStudio2008简介
113.4SQLServer2005简介
113.5IIS服务器简介
123.6本章小结13第4章系统需求分析
134.1功能模块设计
144.2系统功能框架14第5章系统总体设计
165.1功能模块设计
165.
1.1用户登录模块设计
175.
1.2读者管理模块
185.
1.3借还书管理模块
195.
1.4图书管理模块
195.
1.5系统管理模块
205.
1.6个人资料管理模块
205.
1.7书架管理模块
205.
1.8借书管理模块
215.2系统的组件设计21权限管理组件:
215.3数据库设计
215.
3.1概念模型设计E-R图
225.
3.2数据库关系建立
235.
3.3核心数据库表25第6章系统的实现
276.1系统的开发环境
286.2界面的关系图
286.3界面设计
296.
3.1应当遵循的界面设计规范
296.
3.2界面设计
296.4主要代码附录
346.5本章小结58第7章系统测试与维护
597.1测试概述
597.
1.1软件测试的目的
597.
1.2软件测试的任务
597.2单元测试
597.
2.1黑盒测试
597.
2.2白盒测试
607.3本章小结61第8章总结与展望
628.1总结
628.2展望63致谢65参考文献66第1章绪论
1.1课题的提出随着计算机及网络技术的飞速发展,随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息系统的作用也越来越大图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息因此图书管理信息化是发展的必然趋势用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的“图书”这种可以使人以间接方式快速获取知识的工具已经日益受到重视,海量知识数据以及日益加速的知识更新速度所产生的大量图书信息使图书馆管理系统的广泛使用既是可能的也是必要的,通过对图书信息,读者信息以及借阅信息进行的系统化、标准化信息管理可以大大提高图书馆信息处理的速度与效率其功能的不断完善与丰富极大地方便了图书管理员的工作展开,是信息产业飞速发展的重要体现之一我们要实现这样的论坛,必然需要后台数据库的支持同时,验证用户信息,收集到的用户点击信息,主题层次信息的存储,分析得出的关联原则表等大量的数据都交由数据库管理系统管理本系统中数据库服务器端采用了SQLServer数据库作为数据源,使Web与数据库紧密联系起来
1.2国外研究现状图书馆是文献情报中心,是为教学和科研服务的学术性机构它履行搜集、加工、存贮和传播知识信息的职能,与各系资料室互为补充,共同承担为教学和科研提供文献情报资料保障的任务图书馆的自动化经历了三个时期:发展初期、发展时期和网络化时期19世纪末到20世纪40年代是图书馆自动化发展的早期阶段,这一时期的主要特点是利用部分机械装置替代人力从事部分图书馆工作,减轻人员的劳动强度自1946年首台电子计算机问世后,就有人开始研究计算机应用于图书馆管理的可能性1954年,美国海军兵器中心图书馆使用IBM701型计算机实现了单元词组配检索,成为最早使用计算机的图书馆但随着各大管理系统的相继应用,单独一台计算机处理复杂图书馆业务的弊病日渐明显,于是出现了图书馆的网络化美国俄亥俄州立大学图书馆在1967年建成了第一个书目联机检索系统,成为图书馆管理进入网络化时期的标志网络化使各协作网的成员降低了文献情报数据处理的费用,同时网络内的情报资源也得到了平衡
1.3国内图书管理系统目前的侧重点及发展方向我国图书馆自动化的发展起步较晚,从70年代中期开始,经历了如下几个阶段: 发展初期、单向业务系统阶段和集成系统阶段自70年代,我国开始研究图书馆的自动化到1980年,我国陆续引进了多种国外文献磁带数据库,利用这些磁带开展联机检索服务,是我国图书馆自动化的发展初期从80年代中期开始进入单项业务系统阶段由于经费充足和技术力量雄厚,高校图书馆的自动化工作进展最为迅速,但开发的系统多为单业务系统,并且有一大部分只能处理西文图书与期刊随着微机价格的下降和中文系统平台开发成功,图书馆管理也进入了集成系统的开发阶段进入90年代以来,计算机网络迅速发展,几乎所有的国家都建成了国家级的教育科研计算机网络,并互相连接成国际性网络而我国计算机网络也日渐成熟,数字数据网可满足多媒体通讯和组建高速计算机通信网的需要,各类专业广域网纷纷建成并投入使用,如教育科研网CERNET主干网已经连通并投入使用总体来看我国图书管理系统具有以下特点
1.准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低;
2.及时全面地提供不同要求的、不同细度的信息,以期分析解释现象最快,及时产生正确的控制
3.全面系统的保存大量的信息,并能很快的查询和综合,为组织的决策提出信息支持
4.利用数学方法和各种模型处理信息,以期预测未来和科学地进行决策
1.4主要研究内容及部分要求目前市面上的图书馆管理系统层出不穷且各有千秋,但都具有统一的高数据一致性,易操作等特点其中部分图书馆管理系统使用身份证号,姓名等作为管理借书者基本资料的依据但这样带来的弊端就是安全性差,在一方的身份证号码泄露的情况下有可能威胁到用户的利益,所以现今更多的图书馆管理系统多以读者的基本资料为依据为用户办理借书卡,并通过用户个人密码的设定保证了顾客的安全性在国内,目前比较知名的图书馆管理系统有北京创讯未来软件技术有限公司自主研发的北邮图书馆管理系统,英文缩写为MELINETS以及金蝶数码公司的金蝶图书馆管理系统其专门针对藏书量在10万册以下的中小学、中专及企事业单位小型图书馆的自动化管理需要附带在线帮助系统和多媒体功效,具有技术先进、功能完备、用户友好、可靠性强、安全性高、适用于多操作系统和经济实用等特点系统同时支持Client/Server和Internet两种环境,能够适应图书馆自动化、网络化管理的需求图书馆信息管理的一般流程借阅者前往柜台递交自己的身份信息给图书管理员,经由图书管理员为其办理图书借阅卡,借阅者凭借借阅卡参与后继的图书借阅活动,而系统也以该卡所包含的信息对图书借阅者的信息进行管理每类图书有对应的可借时间,每种类型的读者也有各自对应的可借图书上限个数,系统根据此类约束为借阅者办理图书的借阅业务,并将借阅信息进行记录最后,读者归还图书,系统再次记录该读者的借阅信息,若有读者逾期仍未归还图书,则会对其进行对应的罚款惩罚
1.5论文的组织结构本文一共分为七章,各章的主要内容如下第1章“绪论”部分主要是综述系统开发背景、国内外研究现状、论文的主要研究内容以及组织结构第二章“可行性分析”这一章节里面主要从技术可行性,经济可行性,操作可行性等不同方面去分析系统的可行性第三章“课题关键技术”部分对系统实现过程中所用到的相关技术进行了简单的介绍第四章“系统需求分析”部分对系统功能、系统使用用户特点、系统必备条件、系统可行性进行了分析第五章“系统设计”部分则是根据需求分析的结果对系统进行设计包括对系统的结构、系统的功能模块、数据库等进行设计第六章“功能实现”部分按照系统设计的内容进行实现,对基本功能、核心功能实现和扩展功能实现进行详细介绍第七章“系统测试”部分对系统所实现的主要的功能模块进行测试,验证其功能是否正常第八章“结论与展望”没有完美的系统,多多少少都存在着不足,当然随着时间的推移,我们可能会遇到多多少少的改变,有些功能可能在将来已经无法满足广大用户的需求,提出一些新的功能对现有系统做出应有的改变是必须的这这一章,我将对现在暂时无法实现但是可以在未来实现的功能做相应简介和讨论第2章可行性分析
2.1系统调研
2.
1.1系统目标随着知识经济的到来,“图书”这种可以使人以间接方式快速获取知识的工具已经日益受到重视,海量知识数据以及日益加速的知识更新速度所产生的大量图书信息使华软图书馆管理系统的广泛使用既是可能的也是必要的,通过对图书信息,读者信息以及借阅信息进行的系统化、标准化信息管理可以大大提高图书馆信息处理的速度与效率其功能的不断完善与丰富极大地方便了图书管理员的工作展开,是信息产业飞速发展的重要体现之一在图书馆管理系统中,确保可以实现图书借阅者与图书管理员之间图书借阅的主要方法流程1.借阅者到前台办理借书卡;2.借阅者持借书卡到前台申请借书;3.图书管理员查看其有无逾期书籍未归还且未付罚款情况,如有则通知其缴付罚款,合格后查询该书籍是否有货并确定该借阅者借图书数量不超过其可借图书的上限,通过后将图书发给借阅者;4.借阅者在规定时间内阅读书籍后将书籍归还前台;5.图书管理员接收书籍并更新书籍信息与借阅者借阅信息;6.图书管理员对书籍逾期未归还的借阅者发出通知,告知其借阅情况与应缴罚款;
2.
1.2系统的业务流程图业务流程图(transactionflowdiagram,简称TFD),就是用一些规定的符号及连接来表示某个具体的业务处理过程,它是用尽可能少、尽可能简单的方法来描述业务处理过程的方法,由于它的符号简单明了,所以非常易于阅读和理解业务流程所以说,绘制业务流程图是分析业务流程的重要步骤
[1]表2-1业务流程图使用的符号符号名称说明输入/输出表示输入或输出的报表存储表示存储信息表实体单位或个人数据流用于连接其他符号,指明数据流动方向图2-1图书馆管理系统流程图表2-2BBS图书馆管理系统角色表角色名称职责描述管理员本系统管理人员,负责该图书馆图书借阅的管理工作借阅者可以查看借阅评价书籍修改个人资料
2.2可行性分析首先说明一个问题,我们实际在做一个项目的时候不是上来就考虑可行性,我们最首要的考虑这个项目的价值,即是否可以给使用者带来帮助,这个帮助是否那么重要,如果讨论结果我们做的是一个有意义的项目,那么我们就应该克服一些暂时无法解决的问题,因为我们做的事真的具有意义,我们就应该努力想办法去找到解决方案,这也是一种搞科研的不怕困难用于开拓的精神做可行性研究的意义就在于分析我们所做的项目是否比较靠谱,是否符合法律法规下面简介一下可行性分析可行性分析也称为可行性研究可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决
[3]它是在初步调查的基础上,运用技术经济理论与方法,经过各方面的权衡,分析系统开发的必要性与可行性,以得出是否继续开发的明确结论;是对项目的要素进行认真的、全面的调查和详细的测算分析;具体论述设立在经济上的必要性、合理性、现实性;技术和设备的先进性、适用性、可靠性;财务上的盈利性、合法性;环境上的可行性;建设上的可行性,提供可靠的依据它是今后工作的决定性环节要达到这个目的,我们必须在较高层次上以较抽象的方式进行系统的分析和设计下面从这四个方面分析本系统的可行性
2.
2.1技术可行性分析本系统基于ASP.NET,采用微软最新的MicrosoftVisualStudio2008Professional作为开发平台,运用.NETFramework
2.0技术、IISweb服务器和SQLServer2005数据库,足以满足系统的所有开发和调试需求,在技术上确保了系统的开发能够顺利并高效的实施
2.
2.2经济可行性分析估算系统的成本效益,包括估计项目开发的成本,开发费用和今后的运行、维护费用,估计新系统将获得的效益,也就是分析这个系统的经济效益能否超过它的开发成本图书馆长采用本系统作为图书馆管理系统后,只需分配相应的前台图书管理人员进行相关的前台与后台操作即可,此外不需要任何额外开支
2.
2.3操作可行性分析本软件采用人性化设计,界面友好,符合用户使用习惯,只要有点计算机基础的用户即可以使用管理操作简便,易于使用者操作与理解目前随着网络技术的高速发展,全国范围内越来越多的高校都覆盖了网络,从教室到宿舍区都有网络接入,这个良好的网络设施为使用图书馆管理系统提供了良好的基础第3章课题关键技术本系统的开发环境采用WindowsXp,使用SybasePowerDesigner
9.5MicrosoftofficeVisio2007作为系统建模工具开发平台使用MicrosoftVisualStudio2008版本和.NET
2.0框架数据库使用MicrosoftSQLServer2005,开发语言为C#,Web服务器选用IIS
7.
53.
1.NET技术简介.NET是MicrosoftXMLWebservices平台XMLWebservices允许应用程序通过Internet进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言Microsoft.NET平台提供创建XMLWebservices并将这些服务集成在一起之所需对个人用户的好处是无缝的、吸引人的体验WebServices是.NET的核心技术那什么是WebServices呢?正如Web是新一代的用户与应用交互的途径,XML是新一代的程序之间通讯的途径一样,WebServices是新一代的计算机与计算机之间一种通用的数据传输格式,可让不同运算系统更容易进行数据交换WebServices有以下几点特性Webservices允许应用之间共享数据;Webservices分散了代码单元;基于XML这种internet数据交换的通用语言,实现了跨平台、跨操作系统、跨语言那微软的ASP和Webservices究竟有什么不同呢,ASP仍然是一个集中式计算模型的产物,只不过是披着一层互联网的外衣但WebServices却是一个迥然不同的精灵,它秉承“软件就是服务”的真言,同时顺应分布式计算模式的潮流而它的存在形式又与以往软件不同这种组件模式,小巧、单一,对于开发人员来讲,开发成本较低微软公司推出的.NET系统技术正是为了满足这种需求,使开发人员能够创建出与设备无关的应用程序,容易地实现Internet连接.NET系统包括一个相当广泛的产品家族,它们构建于XML语言和Internet产业标准之上,为用户提供Web服务的开发、管理和应用环境.NET系统由以下5个部分组成.NET开发平台:.NET开发平台由一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件构成,包括.NET框架Framework、.NET开发者工具和ASP.NET.NET服务器:NET服务器是能够提供广泛聚合和集成Web服务的服务器,是搭建.NET平台的后端基础.NET基础服务:.NET基础服务提供了诸如密码认证、日历、文件存储、用户信息等必不可少的功能.NET终端设备:提供Internet连接并实现Web服务的终端设备是.NET的前端基础个人计算机、个人数据助理设备PDA,以及各种嵌入式设备将在这个领域发挥作用.NET用户服务:能够满足人们各种需求的用户服务是.NET的最终目标,也是.NET的价值实现在这5个组成部分中,.NET开发平台中的.NET框架,是.NET软件构造中最具挑战性的部分,其他4个部分紧紧围绕.NET框架来进行组织整合.net即DotNet
3.2ASP.NET技术介绍ASP.NET是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序在原来的ASP技术中,服务器端代码和客户端HTML混合在一起,常常导致页面的代码冗长而复杂,程序的逻辑难以理解ASP.NET是一种独立于浏览器的编程模型,可以在最新版本的IE、NetscapeNavigator以及诸如Opera等被广泛使用的浏览器上运行ASP.NET的前身ASP技术,是在IIS
2.0上首次推出WindowsNT
3.51,当时与ADO
1.0一起推出,在IIS
3.0WindowsNT
4.0发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了VisualInterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展WindowsNT
4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上(笔者到现在为止只知道它只能用在Windows2000/2003Server/VISTA/7上)通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中ASP.net同时也是language-independent(语言独立化)的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,JscriptC++、F++将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.netASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#即可另外,ASP.NET的原始设计构想,就是要让开发人员能够像VB开发工具那样,可以使用事件驱动式程序开发模式Event-DrivenProgrammingModel的方法来开发网页与应用程序,若要以ASP技术来做到这件事的话,用必须要使用大量的辅助信息,像是查询字符串或是窗体字段数据来识别与判断对象的来源、事件流向以及调用的函数等等,需要撰写的代码量相当的多,但ASP.NET很巧妙利用窗体字段和JavaScript脚本把事件的传递模型隐藏起来了
3.3MicrosoftVisualStudio2008简介MicrosoftVisualStudio2008是面向WindowsVista、Office
2007、Web
2.0的下一代开发工具,代号“Orcas”,是对VisualStudio2005一次及时、全面的升级VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式语言更加简洁使用VisualStudio2008可以高效开发Windows应用设计器中可以实时反映变更XAML中智能感知功能可以提高开发效率同时VisualStudio2008支持项目模板、调试器和部署程序VisualStudio2008可以高效开发Web应用,集成了AJAX
1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用
3.4SQLServer2005简介SQLServer2005是微软公司SQLServer生产线上的最受期待的产品在成千上万的电子邮件、成百上千的规格说明以及大量的编译的基础上,SQLServer2005确保了自己是Windows平台上数据库应用程序中最具戏剧性的新型数据库平台本书介绍全部SQLServer2005产品新功能的精华它覆盖了联机事务处理(OnlineTransactionProcessing,OLTP)技术和联机分析处理(OnlineAnalyticalProcessing,OLAP)技术,以及在它们之间的大部分内容,涉及了微软公司的全部旗舰数据库产品五年多的开发,SQLServer2005与其先前版本的技术完全不同本书囊括了整个产品的主要功能本章仅仅介绍SQLServer2005最新的部分我将提取出最好、最有趣的功能,同时深入介绍这些功能和技术的使用方式内容包括一些关于SQLServer引擎的发展历史、SQLServer2005的不同版本、可伸缩性、有效性、大型数据库的维护和商业智能(BusinessIntelligence,BI)SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本Sybase则较专注于SQLServer在UNIX操作系统上的应SQLServer安装界面用SQLServer2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位SQLServer2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上
3.5IIS服务器简介InternetInformationServices(IIS,互联网信息服务),是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务最初是WindowsNT版本的可选包,随后内置在Windows
2000、WindowsXPProfessional和WindowsServer2003一起发行,但在普遍使用的WindowsXPHome版本上并没有IISIIS是InternetInformationService的缩写,它是微软公司主推的服务,最新的版本是Windows7里面包含的IIS
7.0,IIS与WindowNTServer完全集成在一起,因而用户能够利用WindowsNTServer和NTFS(NTFileSystem,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点IIS支持HTTP(HypertextTransferProtocol,超文本传输协议),FTP(FileTransferProtocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器
3.6本章小结本章主要对系统开发过程中需要用到的相关技术进行介绍,主要包括.NETASP.NETMicrosoftVisualStudio2008SQLServer2005IIS服务器等相关技术的介绍第4章系统需求分析图书馆管理系统意在为图书管理员提供快捷、便利和高效的图书管理流程与功能满足图书馆书籍管理、借阅者管理、图书借还管理以及系统管理等各项完备的图书馆管理功能需求
4.1功能模块设计图
4.1图书馆管理任务流程图
4.2系统功能框架图书馆管理系统包含管理员和借阅者两大部分,其中,管理员部分包括图书管理、类别管理、罚款管理、读者管理、借还书管理、记录查询、个人资料管理、图书系统;借阅者部分包括借阅图书、个人资料管理、图书浏览、图书评论图
4.2系统功能模块图第5章系统总体设计
5.1功能模块设计本系统的主要功能模块包括借阅证办理、借还书管理、信息浏览、读者信息管理、图书资料管理与系统管理除了以图书管理员的身份面向读者,书籍信息进行管理外,还可以读者身份登陆对各类图书内容进行评价或阅览其他读者的评价以进一步了解该图书的内容且可查询自己的借书情况,以及修改个人信息借阅证办理:由图书管理员身份登陆操作为读者办理借阅证(借阅证的id号是读者与系统交互的唯一标识)借还书管理:由图书管理员身份登陆操作通过读者借阅证为读者办理借还书与逾期罚款的相关事项信息浏览:由读者身份登陆操作读者可凭借阅证的ID与密码直接与系统进行交互,如查询馆内图书信息浏览书评或为读过的书籍写书评;查看个人信息如已借图书的到期期限等以及修改个人信息(如自己新的手机号码)图书资料管理由图书管理员身份登陆操作包括图书类型管理(不同书籍可借阅时间不同,如新增加军事书可借5天,修改科研书可借时间为12天等);以及图书管理,即管理书籍信息读者管理由图书管理员身份登陆操作包括读者类型管理(不同人员可借阅时间不同,如新增加博士生身份可借5天,修改本科生可借时间为12天等);以及读者管理,即管理所有读者的信息系统管理包括密码管理以及员工基本信息管理本系统的功能层次图如图
5.1所示图
5.1系统功能层次图
5.
1.1用户登录模块设计管理员和借阅者可以通过此模块对系统进行登录登录后便可以使用所有的用户功能比如借还书管理读者管理系统管理个人资料管理等等1输入用户名账号;密码相应账号的密码;2输出正确操作成功进入系统首页,并可进行相应权限的操作错误用户信息要求重新输入信息图
5.2用户登录流程
5.
1.2读者管理模块管理员可以通过此模块对借阅者进行管理1输入读者列表选中读者进行操作编辑编辑查看读者信息删除删除读者信息2输出正确操作对读者信息操作成功提示
5.
1.3借还书管理模块管理员通过该模块查询读者借书信息1输入学号选择下拉框中的学号检索查询学号借还书信息验证验证学号信息是否真实全显显示该学生全部借还书信息2输出正确操作显示该学生借还书全部信息或无借还书错误信息提示该学号信息不存在
5.
1.4图书管理模块管理员在该模块对图书进行管理,其中包括:图书类别管理书籍管理书评管理超额罚金设置以及可借数量的设置1输入类别名称输入图书类别名称最大可借天数输入图书最大可借天数添加添加图书信息删除删除图书信息可借图书数量输入各类读者可借图书数量超期罚金设置输入超期罚金金额查看查看书评和当前图书状态2输出正确操作填写信息完成后,显示该信息错误信息操作失败,提示错误原因
5.
1.5系统管理模块管理员在该模块对所有帐号进行管理1输入帐号选中对应帐号,进行接下来的操作编辑编辑帐号信息,如姓名性别联系方式等删除删除该帐号2输出正确操作操作后提示操作成功错误信息提示操作失败
5.
1.6个人资料管理模块管理员和借阅者在该模块对自己帐号的资料进行更新1输入密码该帐号新的登录密码性别选择下拉框中的性别手机号输入个人手机号码2输出正确操作提示更新成功错误信息密码不能为空,不选择分类信息,手机号格式进行提示
5.
1.7书架管理模块借阅者在该模块对所有图书信息进行浏览,选择自己想借阅的图书1输入无输入内容2输出直接显示全部图书信息
5.
1.8借书管理模块借阅者在该模块对自己所借图书信息进行查询1输入借书管理点击借书管理按钮2输出正确操作显示当前读者所借所有图书信息
5.2系统的组件设计权限管理组件:在图书管理系统中的的用户一定会遇到关于权限的问题比如学生用户只可以查看借阅书籍而管理员用户可以对图书信息以及对图书的各种管理拥有权限. 解决此类问题本系统是通过判断特定的session来判断用户的权限当用户登录成功后组件会发送相应的用户session之后每次用户对论坛进行操作都要先通过session来判断用户的权限.
5.3数据库设计数据库设计是指对于一个给定的应用环境构造最优的数据库模式建立数据库及其应用系统使之能够有效地存储数据满足各种用户的应用需求信息要求和处理要求. 数据库和设计概述 1数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息 2数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在
(3)数据库设计是信息系统开发和建设的重要组成部分
5.
3.1概念模型设计E-R图数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架描述了数据结构、数据操作及数据约束 E-R模型的基本概念 E-R图概念化地构建实体间关系的模型,这使得它们区别于数据库模型图ER图的理念是项目所有参与者能理解ER图ER图由不同实体类型、关系、特性和类型构成实体是诸如用户的实际对象,有时更抽象,但必须有业务意义特性用于描述实体,关系用于实体之间
(1)实体现实世界中的事物;
(2)属性事物的特性;
(3)联系现实世界中事物间的关系实体集的关系有一对
一、一对多、多对多的联系 本系统的E-R图111111N11111图
5.3E-R图
5.
3.2数据库关系建立该图书馆管理系统数据库关系如下图所示图
5.4数据库关系图
5.
3.3核心数据库表该图书馆管理系统根据实际需要共设计了8张数据表,根据系统需要给那个设计了管理员信息表、借阅者信息表、图书信息表、图书类别表、罚款信息表、评论信息表、借阅记录信息表、借阅限制信息表具体表中各个字段设计如下表
5.1X_Book图书信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Book_IDint40是是否2X_Book_Namevarchar500是3X_Book_Codevarchar500是4X_Book_Sort_IDint40是05X_Book_Pressvarchar500是6X_Book_Authorvarchar500是7X_Book_Pricemoney84是08X_Book_ISBNvarchar500是9X_Book_Stateint40是010X_Book_Outint40是0表
5.2X_Book_Borrow借阅信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Book_Borrow_IDint40是是否2X_Read_Card_IDint40是03X_Book_IDint40是04X_Book_Sort_IDint40是05X_Book_Borrow_Date_Sdatetime83是getdate6X_Book_Borrow_Date_Edatetime83是getdate7X_Book_Pricemoney84是08X_Book_Borrow_Statevarchar500是未还表
5.3X_Book_Borrow_Total借阅限制信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Book_Borrow_Total_IDint40是是否2X_Book_Borrow_Total_Benkeint40是03X_Book_Borrow_Total_Dazint40是04X_Book_Borrow_Total_SSint40是05X_Book_Borrow_Total_YJint40是06X_Book_Borrow_Total_BSint40是0表
5.4X_Book_Message评论信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Book_Message_IDint40是是否2X_Book_Message_Contentvarchar80000是3X_Book_Message_Datedatetime83是getdate4X_Read_Card_IDint40是05X_Book_IDint40是0表
5.5X_Book_Sort类别信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Book_Sort_IDint40是是否2X_Book_Sort_Namevarchar500是3X_Book_Sort_Daysint40是0表
5.6X_Fine罚款信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Fine_IDint40是是否2X_Fine_Pricemoney84是0表
5.7X_Manager管理员信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Manager_IDint40是是否2X_Manager_Uservarchar500是3X_Manager_Pwdvarchar500是4X_Manager_Namevarchar500是5X_Manager_Sexvarchar500是6X_Manager_Phovarchar500是表
5.8X_Read_Card借阅者信息表序号列名数据类型长度小数位标识主键外键允许空默认值说明1X_Read_Card_IDint40是是否2X_Read_Card_Pwdvarchar500是3X_Read_Card_Namevarchar500是4X_Read_Card_Sexvarchar500是5X_Read_Card_Phovarchar500是6X_Read_Card_Typevarchar500是7X_Read_Card_Other_Namevarchar500是8X_Read_Card_Departmentvarchar500是第6章系统的实现程序设计又称编码,是系统生命周期中继详细设计之后的阶段,这个阶段的任务是使用选定的程序设计语言,把经过概要设计和详细设计所得到的以程序设计说明书体现的信息处理过程描述后,转换成能在计算机系统上运行的程序源代码
6.1系统的开发环境操作系统windows7界面设计dreamweare数据库MicrosoftAccess2010开发语言JSP表6-1系统运行环境配置推荐表需求名称详细要求WEB服务器存放在公网具有独立的IP数据库与Web服务器在同一子网内用户分布在互联网的各个位置操作系统Windows2003Server或者更高版本浏览器只支持IE浏览器处理器推荐英特尔XeonE5-2600系列内存推荐4GB以上硬盘10G剩余空间
6.2界面的关系图
(1)给所有界面视图分配唯一的标识符界面名称界面标识功能说明1登录user.jspAction=reg输入帐号和密码登录借阅者登录后1主界面index.jsp登录过后的主界面2书架bookcase.jsp显示所有图书信息3借阅的图书Borrowbooks.jsp显示已经借阅的图书4个人资料user.jsp修改个人资料管理员登录后1主界面admin.jsp登录过后的主界面2读者管理user_add.jsp查看删除读者信息3借还书管理book_update.jsp查看学生借阅图书信息4图书馆里bookmanagenment.jsp对图书的各种信息进行设置5系统管理Profession_update.jsp查看所有成员的帐号信息6个人资料user.jsp修改个人资料7书评管理Bookreview.jsp管理书评8超额罚金设置Extrafine.jsp设置预期归还书籍的罚金9可借数量设置borrow.jsp设置不同借阅者可借图书数量
6.3界面设计
6.
3.1应当遵循的界面设计规范遵守人机界面设计规范,追求软件界面的人性化、简单明了、易操作、友好的界面面风格设计,让用户可以轻松地使用软件的各项功能
1.从美学的角度进行页面设计,充分考虑到不同用户的视觉问题外观和风格必须统一
2.页面设计清除一致,做到在页面中相同的功能的按钮、链接等采用一致的命名方式进行命名
3.保证页面文字限制清晰
4.提供操作路径跟踪,为用户提供进入一个页面或者退出一个页面的连接功能,从操作上为用户提供简单,方便,快捷的操作途径
6.
3.2界面设计在用户登录界面的设计中首先完成的是VBScript的编写之后在通过具体的需要编写相应的数据库访问文件conndb.asa当用户在登录成功后会跳转到论坛的主界面这个模块的实现文件包含./user.jsp、./inc/function.jsp,conndb.asa图
6.1登录界面示意图管理员进入后台之后首先出现的是读者信息列表页面,管理员可以在该界面浏览所有读者的信息,并根据需要点击编辑按钮进入到读者信息编辑界面对读者信息进行编辑或者根据需要删除相关读者信息,此外管理员还可以点击该页下方的添加按钮进入到读者信息添加界面读者信息列表界面设计效果如下图
6.2读者管理界面示意图管理员点击借还书管理进入到图书借阅管理界面,借阅者出示借阅证号,管理员通过借阅证号的验证存在该借阅证号则对借阅者进行图书借还操作界面设计效果如下图
6.3图书借还管理界面示意图管理员点击图书管理进入图书管理界面,通过该界面管理员主要负责图书信息的管理、图书类别的管理、图书书评的管理、罚款管理、可接数量管理界面设计效果如下图
6.4图书管理界面示意图管理员通过登录界面输入正确的帐号和密码之后,进入后台管理界面其中系统管理功能主要是添加新的管理员,管理相关图书管理员的信息,并对某些管理员信息进行删除点击系统管理出现的是所有图书管理员的相关信息列表,在该界面所有的图书管理员信息以列表的形式显示界面设计效果如下图
6.5系统管理界面示意图该功能主要是实现管理员个人信息的修改功能界面设计效果如下图
6.6个人资料管理界面示意图借阅者进入到相关权限界面后,首先出现的是相关书架信息,即图书馆里的所有图书信息列表借阅者可以通过该图书列表浏览相关图书信息并选出想要借阅的图书界面设计效果如下图
6.7书架界面示意图借阅者可以通过该界面查阅自己的借书记录,并把已经归还的图书记录进行删除,还可以点击评论按钮进入到书籍评论界面对借阅的图书进行相关评论界面设计效果如下图
6.8我借的图书界面示意图
6.4主要代码附录系统关键代码
1.登录代码protectedvoidImageButton1_ClickobjectsenderImageClickEventArgse{ifRadioButton
1.Checked{stringuser=Common.UrnHtmltxt_user.Text.Trim;stringpwd=FormsAuthentication.HashPasswordForStoringInConfigFiletxt_pwd.TextSHA1;stringsql=select*fromX_ManagerwhereX_Manager_User=+user+andX_Manager_Pwd=+pwd+;SqlConnectioncn=DB.OpenConnection;SqlCommandcmd=newSqlCommandsqlcn;SqlDataReaderdr=cmd.ExecuteReader;ifdr.Read{HttpCookiecookies;cookies=newHttpCookiexzf_book_m;cookies.Values.AddManagerHttpUtility.UrlEncodethis.txt_user.Text.Trim;cookies.Expires=DateTime.Now.AddHours24;//1天有效24小时Response.Cookies.Setcookies;//存储!~dr.Close;dr.Dispose;Response.Redirectx_welcome.aspx;}else{dr.Close;dr.Dispose;Common.ShowMessagePage对不起您的帐号或密码不正确,请核对后再登陆!;}}else{stringuser=Common.UrnHtmltxt_user.Text.Trim;stringpwd=FormsAuthentication.HashPasswordForStoringInConfigFiletxt_pwd.TextSHA1;stringsql=select*fromX_Read_CardwhereX_Read_Card_Other_Name=+user+andX_Read_Card_Pwd=+pwd+;SqlConnectioncn=DB.OpenConnection;SqlCommandcmd=newSqlCommandsqlcn;SqlDataReaderdr=cmd.ExecuteReader;ifdr.Read{HttpCookiecookies;cookies=newHttpCookiexzf_book_u;cookies.Values.AddManagerHttpUtility.UrlEncodethis.txt_user.Text.Trim;cookies.Expires=DateTime.Now.AddHours24;//1天有效24小时Response.Cookies.Setcookies;//存储!~dr.Close;dr.Dispose;Response.Redirectr_welcome.aspx;}else{dr.Close;dr.Dispose;Common.ShowMessagePage对不起您的帐号或密码不正确,请核对后再登陆!;}}
2.列表页代码publicstaticstringsqltxt=select*from[X_Manager]orderbyX_Manager_IDdesc;publicstaticstringcmdtxt2=selectcount*from[X_Manager];protectedvoidPage_LoadobjectsenderEventArgse{if!IsPostBack{Get_Pager_Data;}}voidGet_Pager_Data{SqlConnectioncn=DB.OpenConnection;SqlCommandcmd0=newSqlCommandcmdtxt2cn;AspNetPager
1.AlwaysShow=true;AspNetPager
1.PageSize=15;AspNetPager
1.RecordCount=intcmd
0.ExecuteScalar;cn.Close;Get_Data;}protectedvoidAspNetPager1_PageChangingobjectsrcWuqi.Webdiyer.PageChangingEventArgse{AspNetPager
1.CurrentPageIndex=e.NewPageIndex;Get_Data;}voidGet_Data//绑定数据{SqlConnectioncn=DB.OpenConnection;SqlCommandcmd=newSqlCommandsqltxtcn;SqlDataAdapterda=newSqlDataAdaptercmd;DataSetds=newDataSet;da.FilldsAspNetPager
1.PageSize*AspNetPager
1.CurrentPageIndex-1AspNetPager
1.PageSizeX_Manager;DataViewdv=ds.Tables[X_Manager].DefaultView;this.Repeater
1.DataSource=dv;this.Repeater
1.DataBind;}protectedvoidCheckBox1_CheckedChangedobjectsenderEventArgse{ifCheckBox
1.Checked{forinti=0;iRepeater
1.Items.Count;i++{CheckBoxchk=CheckBoxRepeater
1.Items[i].FindControlCheckBox2;ifchk!=null{chk.Checked=true;}}}else{forinti=0;iRepeater
1.Items.Count;i++{CheckBoxchk=CheckBoxRepeater
1.Items[i].FindControlCheckBox2;ifchk!=null{chk.Checked=false;}}}}protectedvoidRepeater1_ItemCommandobjectsourceRepeaterCommandEventArgse{ife.CommandName==del{ifDB.ExecuteSqldeletefrom[X_Manager]whereX_Manager_ID=+e.CommandArgument.ToString=0{Get_Pager_Data;Common.ShowMessagePage删除成功!;}else{Common.ShowMessagePage删除失败!;}}}#region批量删除protectedvoidButton2_ClickobjectsenderEventArgse{forinti=0;iRepeater
1.Items.Count;i++{CheckBoxchk=CheckBoxRepeater
1.Items[i].FindControlCheckBox2;Labellb5=LabelRepeater
1.Items[i].FindControlLabel1;ifchk!=null{ifchk.Checked{DB.ExecuteSqldeletefrom[X_Manager]whereX_Manager_ID=+lb
5.Text.Trim;}}}Get_Pager_Data;}#endregionprotectedvoidButton1_ClickobjectsenderEventArgse{Response.RedirectX_User_Add.aspx;}
3.编辑页代码protectedvoidPage_LoadobjectsenderEventArgse{if!IsPostBack{Get_Data;}}protectedvoidButton1_ClickobjectsenderEventArgse{stringsql=updateX_Read_CardsetX_Read_Card_Pwd=7C4A8D09CA3762AF61E59520943DC26494F8941BwhereX_Read_Card_ID=+Convert.ToInt32Request.QueryString[NId];ifDB.ExecuteSqlsql=0{Common.ShowMessagePage恭喜您,密码重置成功kkk;}else{Common.ShowMessagePage服务器繁忙,请您稍后再试……kkk;}}voidGet_Data{stringuserName=;ifRequest.Cookies[xzf_book_m]==null{Response.RedirectDefault.aspx;}else{ifRequest.Cookies[xzf_book_m][Manager]!=null{SqlConnectioncn=DB.OpenConnection;stringsql=select*from[X_Manager]whereX_Manager_ID=+Request.QueryString[NId];SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{txt_name.Text=dr[X_Manager_Name].ToString;ifDropDownList_Sex.Items.FindByValuedr[X_Manager_Sex].ToString!=null{DropDownList_Sex.SelectedValue=dr[X_Manager_Sex].ToString;}txt_pho.Text=dr[X_Manager_Pho].ToString;lb_id.Text=dr[X_Manager_User].ToString;dr.Close;dr.Dispose;DB.DisposeConnectioncn;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;this.Button
1.Enabled=false;this.Button
2.Enabled=false;}}}}protectedvoidButton1_Click1objectsenderEventArgse{stringsql=updateX_ManagersetX_Manager_Name=+Common.UrnHtmltxt_name.Text+X_Manager_Sex=+DropDownList_Sex.SelectedValue+X_Manager_Pho=+Common.UrnHtmltxt_pho.Text+whereX_Manager_ID=+Convert.ToInt32Request.QueryString[NId];ifDB.ExecuteSqlsql=0{Common.ShowMessagePage恭喜您,更新成功kkk;}else{Common.ShowMessagePage服务器繁忙,请您稍后再试……kkk;}}
4.查询类代码publicstringsqltxt=select*selectX_Book_Sort_NamefromX_Book_SortwhereX_Book_Sort_ID=X_Book.X_Book_Sort_IDas[sort]from[X_Book]orderbyX_Book_IDdesc;publicstringcmdtxt2=selectcount*from[X_Book];protectedvoidPage_LoadobjectsenderEventArgse{if!IsPostBack{DB.Bind_Dropdownlistselect*fromX_Read_CardorderbyX_Read_Card_IDascDropDownList_Read_CardX_Read_Card_IDX_Read_Card_Other_Name;DB.Bind_Dropdownlistselect*fromX_Book_SortorderbyX_Book_Sort_IDascDropDownList_SortX_Book_Sort_IDX_Book_Sort_Name;Get_Pager_Data;}}voidGet_Pager_Data{SqlConnectioncn=DB.OpenConnection;SqlCommandcmd0=newSqlCommandcmdtxt2cn;AspNetPager
1.AlwaysShow=true;AspNetPager
1.PageSize=15;AspNetPager
1.RecordCount=intcmd
0.ExecuteScalar;cn.Close;Get_Data;}protectedvoidAspNetPager1_PageChangingobjectsrcWuqi.Webdiyer.PageChangingEventArgse{AspNetPager
1.CurrentPageIndex=e.NewPageIndex;Get_Data;}voidGet_Data//绑定数据{SqlConnectioncn=DB.OpenConnection;SqlCommandcmd=newSqlCommandsqltxtcn;SqlDataAdapterda=newSqlDataAdaptercmd;DataSetds=newDataSet;da.FilldsAspNetPager
1.PageSize*AspNetPager
1.CurrentPageIndex-1AspNetPager
1.PageSizeX_Book;DataViewdv=ds.Tables[X_Book].DefaultView;this.Repeater
1.DataSource=dv;this.Repeater
1.DataBind;}protectedvoidRepeater1_ItemCommandobjectsourceRepeaterCommandEventArgse{ife.CommandName==out{ifButton
4.Text==验证成功{SqlConnectioncn=DB.OpenConnection;intX_Read_Card_ID=Convert.ToInt32DropDownList_Read_Card.SelectedValue;intX_Book_ID=Convert.ToInt32e.CommandArgument.ToString;intX_Book_Sort_ID=Convert.ToInt32Labele.Item.FindControllb_book_sort_h.Text.Trim;decimalX_Book_Price=Convert.ToDecimalLabele.Item.FindControllb_price.Text.Trim;intBorrowDs=Borrow_Total_DaysX_Book_Sort_ID;DateTimedt=DateTime.Now.AddDaysBorrowDs;stringsql=insertintoX_Book_BorrowX_Read_Card_IDX_Book_IDX_Book_Sort_IDX_Book_Borrow_Date_EX_Book_Price;sql+=values+X_Read_Card_ID++X_Book_ID++X_Book_Sort_ID++dt++X_Book_Price+;ifDB.ExecuteSqlsql=0{DB.ExecuteSqlupdateX_BooksetX_Book_Out=X_Book_Out+1whereX_Book_ID=+e.CommandArgument.ToString;Get_Pager_Data;DB.Bind_Repeaterselect*selectX_Book_NamefromX_BookwhereX_Book_ID=X_Book_Borrow.X_Book_IDasbookNamefromX_Book_BorrowwhereX_Book_Borrow_State=未还andX_Read_Card_ID=+DropDownList_Read_Card.SelectedValueRepeater2cn;DB.DisposeConnectioncn;Common.ShowMessagePage操作成功!;}else{DB.DisposeConnectioncn;Common.ShowMessagePage操作失败!;}}else{Common.ShowMessagePage请先进行密码验证!;}}ife.CommandName==in{SqlConnectioncn=DB.OpenConnection;intX_Book_Borrow_ID=Convert.ToInt32Labele.Item.FindControlLabel
1.Text.Trim;stringsql=updateX_Book_BorrowsetX_Book_Borrow_State=已还whereX_Book_Borrow_ID=+X_Book_Borrow_ID;stringsql2=updateX_BooksetX_Book_Out=X_Book_Out-1whereX_Book_ID=+e.CommandArgument.ToString;DB.ExecuteSqlsql;DB.ExecuteSqlsql2;DB.Bind_Repeaterselect*selectX_Book_NamefromX_BookwhereX_Book_ID=X_Book_Borrow.X_Book_IDasbookNamefromX_Book_BorrowwhereX_Book_Borrow_State=未还andX_Read_Card_ID=+DropDownList_Read_Card.SelectedValueRepeater2cn;DB.DisposeConnectioncn;Get_Pager_Data;}}protectedvoidRepeater2_ItemDataBoundobjectsenderRepeaterItemEventArgse{ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem{Labellb_state=Labele.Item.FindControlLabel2;Labellb_out=Labele.Item.FindControlLabel6;Labellb_in=Labele.Item.FindControlLabel7;LinkButtonlk_o=LinkButtone.Item.FindControlLinkButton2;ints=0;s=Convert.ToInt32lb_state.Text.Trim-Convert.ToInt32lb_out.Text.Trim;lb_in.Text=s.ToString;ifs0{lk_o.Enabled=true;}else{lk_o.Enabled=false;}inti=Borrow_TotalConvert.ToInt32DropDownList_Read_Card.SelectedValue-BorrowedConvert.ToInt32DropDownList_Read_Card.SelectedValue;ifi=0{lk_o.Enabled=false;}}}protectedvoidRepeater22_ItemDataBoundobjectsenderRepeaterItemEventArgse{ife.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem{LinkButtonlk_o=LinkButtone.Item.FindControlLinkButton2;Labellb_end_date=Labele.Item.FindControllb_date_e;Labellb_end_date_s=Labele.Item.FindControlLabel3;Labellb_fj=Labele.Item.FindControlLabel4;Labellb_yh=Labele.Item.FindControlLabel5;intdb=Convert.ToInt32newSystem.TimeSpanDateTime.Now.Ticks-DateTime.Parselb_end_date.Text.Ticks.TotalDays;LinkButtonlink=LinkButtone.Item.FindControlLinkButton2;ifdb=0{lb_fj.Text=0;}else{decimalj=db*Fine;lb_fj.Text=j.ToString
0.00;}lb_end_date_s.Text=db.ToString;iflb_yh.Text.Trim==已还{link.Enabled=false;}else{link.Enabled=true;}}}#region检索持卡人信息protectedvoidButton1_ClickobjectsenderEventArgse{SqlConnectioncn=DB.OpenConnection;txt_pwd.Visible=true;Button
4.Text=验证;Button
4.Enabled=true;inti=Borrow_TotalConvert.ToInt32DropDownList_Read_Card.SelectedValue-BorrowedConvert.ToInt32DropDownList_Read_Card.SelectedValue;lb_reader.Text=BorrowerConvert.ToInt32DropDownList_Read_Card.SelectedValue++可借最大数量fontcolor=Red+Borrow_TotalConvert.ToInt32DropDownList_Read_Card.SelectedValue.ToString+/font已借fontcolor=Red+BorrowedConvert.ToInt32DropDownList_Read_Card.SelectedValue.ToString+/font当前可借fontcolor=Red+i.ToString+/font;DB.Bind_Repeaterselect*selectX_Book_NamefromX_BookwhereX_Book_ID=X_Book_Borrow.X_Book_IDasbookNamefromX_Book_BorrowwhereX_Book_Borrow_State=未还andX_Read_Card_ID=+DropDownList_Read_Card.SelectedValueRepeater2cn;DB.DisposeConnectioncn;}#region最多可借数量intBorrow_Totalintid{SqlConnectioncn=DB.OpenConnection;inti=0;stringsql=select*fromX_Read_CardwhereX_Read_Card_ID=+id;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{i=Borrow_Numdr[X_Read_Card_Type].ToString;dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}}intBorrow_Numstringtype{SqlConnectioncn=DB.OpenConnection;stringsql=select*fromX_Book_Borrow_TotalwhereX_Book_Borrow_Total_ID=1;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{inti=0;switchtype{case大专生:i=Convert.ToInt32dr[X_Book_Borrow_Total_Daz].ToString;break;case本科生:i=Convert.ToInt32dr[X_Book_Borrow_Total_Benke].ToString;break;case硕士生:i=Convert.ToInt32dr[X_Book_Borrow_Total_SS].ToString;break;case研究生:i=Convert.ToInt32dr[X_Book_Borrow_Total_YJ].ToString;break;case博士生:i=Convert.ToInt32dr[X_Book_Borrow_Total_BS].ToString;break;default:break;}dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;return0;}}#endregion#region已借数量intBorrowedintid{SqlConnectioncn=DB.OpenConnection;inti=0;stringsql=selectcountX_Read_Card_IDasborrowCountfromX_Book_BorrowwhereX_Read_Card_ID=+id+andX_Book_Borrow_State=未还;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{i=Convert.ToInt32dr[borrowCount].ToString;dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}}#endregion#region持卡人姓名性别stringBorrowerintid{SqlConnectioncn=DB.OpenConnection;stringname=;stringsql=select*fromX_Read_CardwhereX_Read_Card_ID=+id;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{name=姓名fontcolor=Red+dr[X_Read_Card_Name].ToString+/font性别fontcolor=Red+dr[X_Read_Card_Sex].ToString+/font+dr[X_Read_Card_Type].ToString+;dr.Close;dr.Dispose;DB.DisposeConnectioncn;returnname;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;returnname;}}#endregion#endregion#region返回可借天数intBorrow_Total_Daysintid{SqlConnectioncn=DB.OpenConnection;inti=0;stringsql=select*fromX_Book_SortwhereX_Book_Sort_ID=+id;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{i=Convert.ToInt32dr[X_Book_Sort_Days].ToString;dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}}#endregiondecimalFine{SqlConnectioncn=DB.OpenConnection;decimali=0;stringsql=select*fromX_FinewhereX_Fine_ID=1;SqlDataReaderdr=DB.getDataReadersqlcn;ifdr.Read{i=decimal.Parsedr[X_Fine_Price].ToString;dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}else{dr.Close;dr.Dispose;DB.DisposeConnectioncn;returni;}}protectedvoidButton2_ClickobjectsenderEventArgse{sqltxt=select*selectX_Book_Sort_NamefromX_Book_SortwhereX_Book_Sort_ID=X_Book.X_Book_Sort_IDas[sort]from[X_Book]whereX_Book_Sort_ID=+DropDownList_Sort.SelectedValue+andX_Book_Namelike%+txt_name.Text+%andX_Book_Codelike%+txt_code.Text+%andX_Book_Authorlike%+txt_author.Text+%andX_Book_ISBNlike%+txt_isbn.Text+%orderbyX_Book_IDdesc;cmdtxt2=selectcount*from[X_Book]whereX_Book_Sort_ID=+DropDownList_Sort.SelectedValue+andX_Book_Namelike%+txt_name.Text+%andX_Book_Codelike%+txt_code.Text+%andX_Book_Authorlike%+txt_author.Text+%andX_Book_ISBNlike%+txt_isbn.Text+%;Get_Pager_Data;}protectedvoidButton3_ClickobjectsenderEventArgse{sqltxt=select*selectX_Book_Sort_NamefromX_Book_SortwhereX_Book_Sort_ID=X_Book.X_Book_Sort_IDas[sort]from[X_Book]orderbyX_Book_IDdesc;cmdtxt2=selectcount*from[X_Book];Get_Pager_Data;}protectedvoidButton4_ClickobjectsenderEventArgse{ifDB.isExistsselect*fromX_Read_CardwhereX_Read_Card_ID=+DropDownList_Read_Card.SelectedValue+andX_Read_Card_Pwd=+Common.SHA1txt_pwd.Text.Trim+{txt_pwd.Visible=false;Button
4.Text=验证成功;Button
4.Enabled=false;}else{Common.ShowMessagePage密码错误,请重新输入!;}}
6.5本章小结该章节是对主要功能的实现过程进行详细的介绍,其中包括用户模块、帖子模块和后台管理模块基本完成了需求分析中设计的功能,重点对核心功能的实现过程进行讲解第7章系统测试与维护
7.1测试概述
7.
1.1软件测试的目的软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件 第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息 第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的因此软件测试的第三个目的是保证整个软件开发过程是高质量的
7.
1.2软件测试的任务
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求 总的目标是确保软件的质量
7.2单元测试
7.
2.1黑盒测试黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,它是一种从用户观点出发的测试测试人员把被测试程序当做一个黑盒子,它是已知产品所应具有的功能通过测试来检测每个功能是否都能够正常使用,在测试时,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定来正常使用;程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试
7.
2.2白盒测试其测试的前提是可以把程序看成装在一个透明的白盒子中,也就是完全了解程序的结构和处理过程这种方法按照程序内部的逻辑测试程序,检验程序中的每一条通路是否能按预定的要求正确工作黑盒法其测试前提是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程也就是说黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当的接收输入的数据产生正确的输出信息,并保持外部信息的完整性我对系统测试是结合了白盒测试法和黑盒测试法,在系统的创建过程中,程序出现了很多错误,甚至根本无法运行下去,采用程序中的设置断点,进行断点测试,逐步缩小范围并最终找到问题的解在测试过程中,我尽量站在用户的角度考虑问题,假如我是用户如何才能更方便,假如我在某一时刻进行某种操作会产生什么结果,大量进行假设,力求创建一个功能完善的,操作方便的系统当创建好一个完整的模块后,就按照黑盒法,填入数据,测试程序的功能是否完成前面所设计的系统的功能当全部系统模块完成后,再填入数据进行完整系统的测试由于本人能力不足和时间的限制,本软件也有很多的不足之处如数据库还没有加密,商品信息还不够丰富,界面还可以更美观当然,也还存在一些别的不足之处,我没有发现,敬请老师和同学们指出
7.3本章小结该章节通过对用户模块帖子模块和后台管理模块的主要功能进行测试,证明实现的系统运行正常,满足系统需求的要求第8章总结与展望
8.1总结本次设计完成的工作在完成毕业设计过程中,已经基本完成了任务商品的要求而且通过这段的实践与学习,我学到了很多新技术和新理念利用这些新知识使我更方便地完成任务总结此次设计中所做的工作如下
(1)通过研究目前较为出名的电子商务网站,了解其基本构建,总结系统的需求和要求,得到各个数据表的关系和各个功能模块,对各个功能模块的技能和技术有了深入的了解
(2)华软图书馆管理系统是希望为用户提供一个易操作易管理的管理系统该系统的安全可以体现在网站构建的方方面面,如用户注册验证,管理员登录验证码控制,用户退出系统时,清除用户密码等
(3)管理功能的实现管理员是对网站工作的维护和必要的调动,更方便用户的访问网站和修改信息
(4)数据库的设计满足系统要求的对于有内在关联的表用外键来关联,符合数据库设计的规范设计
(5)对系统操作界面的设计,达到了人性化、简洁、明了,另外错误提示也对使用者提供了很大的帮助;另在界面的设计中运用了许多安全机制
(6)对数据的设计中尽量地避免了冗余,优化了程序的代码,提高了系统的运行速度毕业设计的论文即将完成,不知不觉大学生活也要结束了这些天来,无论白天黑夜,只要遇到问题,我都会努力钻研直到问题解决毕业设计不仅是四年大学学习成果的展示,更是对一个人毅力的考验和对解决问题能力的锻炼因为在设计的过程中会遇到很多不曾见过的技术和问题,这就要靠自己去弄懂,这也是对自己能力的一种提高只有这样才能看出自己的不足,发现要学的东西实践出真知此外,通过做设计也学会了沟通在与导师、同组同学的讨论中,提高了自己表述问题的能力和团队合作能力,加深了同学间的感情通过毕业设计才能使人了解到人生的路上学习是一个漫长的过程,在以后的工作和学习过程中都要不断地学习,来进化自己,提高自身的素质当做完毕业设计以后,终会有一种成就感,回想当初什么都不会的时候,心情十分沮丧,但没有放弃,就算一切从零开始也终有成功的一天知识要用才能活,学会不代表会用,所以在以后的工作中我要勤劳,现实知道的价值做到真正地学会了那些知识一个学期的设计,做好的程序和写好的论文中有着我的辛酸和汗水最重要的是我成功完成了大学学业走向工作毕业设计的经历一生只有一次,只要曾经拥有,精神上获得知识可以让我很满足地走出大学校门这些经历都将成为今后我美好的回忆
8.2展望在几乎所有的软本开发过程中,都会生成大量的源码文本,需要把它们编译和连接来产生一个或多个可执行文本,这个过程往往会反复多次,这时就会产生很多版本的源码、目标码和可执行文本对于较大的项目来说,用手工的方法来管理如此众多版本的文本就会成为一个重要问题所以软本版本的制作和控制就会成为以后软本开发过程中一重要环节,尤其是对源文本的备份和版本的功能描述这两个关键问题会有很高的要求在未来的软本开发过程中,对软本开发的速度要求无疑将会有很高的要求,所以软本版本管理系统在对并发式文本访问、可视化文本比较、网络文本管理等几方面都要有新的支持,这是现有软本版本管理软本所需改进的地方使版本制作管理系统真正做到更容易、更迅速、更灵活此外,在线拍卖系统还有一些需要完善的地方由于无法得到网上银行的接口,支付模块无法实现理论上电子商务网站应该给出产品最终销售的直观的统计视图,这一部分功能还不是很完备致谢经过几个月的忙碌和学习,本次毕业论文设计已经接近尾声作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的的督促指导,想要完成这个设计是难以想象的现在我发现,自身的成长离不开大家的支持和帮助,我很庆幸自己生活在这样的空间我要向那些帮助过我、鼓励过我的人们致以我最诚挚的谢意首先感谢老师,这次毕业设计中,作为我的指导老师,虽然平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料,还有论文提纲的确定以及中期论文的修改、后期论文格式调整等各个环节中都给予了我悉心的指导她严谨的工作作风,渊博的知识,还有平易近人的人格魅力将会对我影响深远除此之外还让我明白了许多做人的道理编写毕业论文是一个学习的过程,论文的完成,奠定了我的能力,它会帮助我在今后的工作与学习当中更加有自信最后,感谢这两年中陪我一起走过的各位老师和同学们,你们的信任和慰勉是我前进的动力!也要感谢我的朋友们,感谢你们在我失意时给我鼓励,在失落时给我支持,感谢你们和我一路走来,在此过程中我倍感温暖!为了那些支持和爱护我的人,我会更加努力,好好工作!好好生活!在此我向我的指导老师,和小组的同学们致以真挚的谢意,谢谢你们的大力支持和帮助2015年6月参考文献
[1]刘西杰,柳林.HTML、CSS、JavaScript网页制作从入门到精通.人民邮电出版社,2012
[2]尚俊杰 .网络程序设计——ASP(第3版).清华大学出版社,2012
[3]李睦芳,肖新容.DreamweaverCS5+ASP动态网站开发与典型实例.清华大学出版社,2012
[4]刘乃琦 袁暋 .ASP应用开发与实践.人民邮电出版社,2012
[5]陈建伟,卫权岗,朱艳丽.ASP动态网站开发基础教程第4版.清华大学出版社,2012
[6]陈伟.《SQLServer2005数据库应用与开发教程》.北京清华大学出版社,2008
[7]尹平.《软件测试与软件质量评价》.北京国防工业出版社,2010
[8]潘中强,刘亮亮.精通ASP.NET
2.0数据绑定技术附光盘.人民邮电出版社,2008
[9]王珊萨师煊.数据库系统概论第四版.北京高等教育出版,2005
[10]沈士根、许小东.Web程序设计:ASP.NET.实用网站开发.清华大学出版社,2009
[11]吕悦宁.《界面艺术设计》.高等教育出版社,2010
[12]张友生.《软件体系结构(第二版)》.北京清华大学出版社,2008
[13]ManiSubramanian.NetworkManagementPrincilesandPractive.HigherEducationPress,2009
[14]JiaweiHanMichelineKamber.DataMiningconceptsandTechniques.北京:机械工业出版社,2006.
[15]徐锡山.《用户界面的设计、实现和评价》.国防科技大学,2003
[16]王家华.软件工程.东北大学出版社,2008
[17]王宜贵.软件工程.北京机械工业出版社,2009
[18]美项目管理协会.王勇、张斌译.《项目管理知识体系指南》.北京:电子工业出版社2009
[19]张海藩.《软件工程第二版》.北京:人民邮电出版社2006
[20]尚俊杰、秦卫中.《ASP.NET程序设计案例教程》.北京清华大学出版社,2009管理员借阅者登录系统登录系统个人资料个人资料借的书管理书架管理个人资料管理图书管理系统管理借还书管理读者管理借阅记录图书信息个人资料图书信息用户信息图书现状借阅者信息开始实地调研建立模型设计数据库设计系统框架编写代码调试修正缺陷完成管理员登录读者管理借还书管理图书管理系统管理个人资料安全退出借阅证办理借阅证管理书籍类别管理书籍管理书评管理罚金设置可借数设置借阅者登录查阅图书我的图书评论书籍借书管理个人资料安全退出图书馆管理系统用户登录模块借阅者模块管理员模块系统管理模块图书管理模块读者管理模块个人资料模块借还管理模块书架模块借的图书模块用户对系统操作判断权限是否通过返回窗口服务器查看借阅者用户图书信息修改借阅个人资料修改修改查看管理员用户借阅记录管理员帐号密码姓名性别联系电话图书类别类别名称可借天数图书属于书名书号类别出版社作者定价ISBN数量借出数量读者借阅姓名性别借阅证号手机学历院系书评属于内容提交日期。