毕业设计(论文)基于c++技术图书馆管理系统的实现与设计_第1页
毕业设计(论文)基于c++技术图书馆管理系统的实现与设计_第2页
毕业设计(论文)基于c++技术图书馆管理系统的实现与设计_第3页
毕业设计(论文)基于c++技术图书馆管理系统的实现与设计_第4页
毕业设计(论文)基于c++技术图书馆管理系统的实现与设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

目录中文摘要 11.前言 32.开发工具介绍 32.1SQLSERVER2000 32.2ASP.NET 43.图书馆管理系统的需求分析 53.1图书馆管理员的需求 53.2读者的需求 73.3性能需求 74.图书馆管理系统的可行性分析 84.1结构的选择 84.2技术可行性 84.3经济可行性 94.4操作环境及运行环境 95.图书馆管理系统的设计 95.1E-R图分析与设计 95.1.1设计局部ER模式 95.1.2设计全局ER模式 105.2数据表的创建 135.3系统设计模块 176.图书馆管理系统的开发 176.1读者登录界面设计 176.2预约图书界面设计 236.3催还图书界面设计 256.4图书馆总管理员 256.5书库管理员 277.总结 28参考文献 29致谢 30中文摘要随着科技的发展和社会的进步,计算机已成为人们生活和工作中的得力助手。特别是现代Internet的Web技术的发展大大地推动了社会各个方面的发展。设计一个现代的图书馆管理系统势在必行。图书馆管理系统是常用的信息管理系统之一,它的实现主要由两部分组成:数据库建立与维护和前台应用程序的开发。数据库要求非常强的一致性与完整性以及安全性,而前台应用程序则要求功能实现完善,简单易用。SQLserver2005具有比较完善的功能。而VisualC#.NET是专门针对Microsoft的.NET战略而推出的语言,它对.NETFramework和ASP.NET具有最为全面的支持。综合各个方面选择C#作为程序设计语言和SQLserver2005数据库。通过对中小型图书馆的需求分析,实现了对图书馆管理系统的功能模块划分,数据库模式分析,并进一步设计了数据库结构和应用程序。由此得到了一个基本满足读者,图书馆管理员和高级管理者需求的图书馆系统。关键词:图书馆管理系统,C#.NET,SQLserver2005数据库前言当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的中小型图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。随着计算机技术的不断发展,计算机应用于各大领域,并给人们的生活带来了极大的便利,图书馆管理信息系统亦是如此。以往图书馆管理信息系统由于缺乏适当的软件而给其工作带来了很多不便。本论文所介绍的图书馆管理信息系统就是为了使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。2.开发工具介绍2.1SQLSERVER2005SQLServer2005是微软公司大型数据库服务器,它使用了最先进的数据库构架,与WindowsNT/2000平台紧密集成,具有完全的Web功能,人们用它可方便地管理数据库和开发应用程序。它通过对高端硬件平台、网络和存储技术的支持,为最大的Web站和企业的应用提供了可扩展性和高可靠性,能在Internet商业领域快速建立应用。此外,还增强了安全性,保护防火墙内外的数据,支持基于角色的安全并拥有安全审计工具。SQLServer2005数据库服务器的自动调整和自动管理技术在数据库领域中处于领先地位。因此,我选择了SQLServer2005作为开发本系统使用的数据库。2.2ASP.NET在.NET环境下使用了ADO.NET构建数据库应用系统中的数据访问层的步骤和方法。由于ADO.NET技术对ADO数据访问技术有了较大的改进,使得开发人员能够以较为灵活的方式查询和操作数据以及更新数据源,是所有数据驱动的.NET应用程序或者Web服务的核心部件。通过对这些技术的了解,使我们对.NET环境下如何开发数据库应用系统有了一个系统的、感性的认识。在后台代码的功能实现上,ASP.NETWeb应用程序可以使用多种语言来开发,但是VisualC#.NET作为专门针对Microsoft的.NET战略而推出的语言,它对.NETFramework和ASP.NET具有最为全面的支持。可以说,VisualC#.NET是开发ASP.NETWeb应用程序较好的语言。结合使用VisualC#.NET和ASP.NET,用户可以方便的开发出功能强大的Web应用程序。ASP.NET的另一个强大的功能是它的网页处理时的三层构架,即浏览页面的前台HTML实现、浏览页面的后台C#代码的编写及后台代码与数据库的连接,正是其有这样的三层结构,所以它的安全性得到了很好的保障,这即为我们在上面所说的ADO.NET的一个具体的形式,也是对ADO.NET的实现方式有一个大概的了解,我们可以通过下面的数据访问流程图2.1所示:图2.1ASP.NET的三层结构从图片中可以很明显的看出,在显示层中,ASP.NET有自己的显示页面(.aspx),在这个显示页面中存在着本身的后台代码(CodeBehind),之后在页面运行时,后台代码开始对逻辑层中的BusinessLayer的调用,触发系统后台的另外的.dll文件的运行,然后就是BusinessLayer通过关键字对DataLayer层文件的连接,最后对数据库的直接的访问是DataLayer中的层文件,通过数据库的访问后取得的数据按每层相连的方式再返回到ASP.NET的显示页面显示出来,用户即可以浏览取到的数据。通过前台的首次请求到最后数据的显示通过几个层次,所以要想通过非法的手段去修改数据库那将是非常困难的。也正是由于ASP.NET的这种功能,所以所做的图书馆管理系统也就选择了这种开发平台。3.图书馆管理系统的需求分析本系统主要实现图书的录入,查询等功能,采用面向对象的分析方法对图书馆管理系统功能需求进行划分,可将需求划分为:管理员对功能的需求和读者对功能的需求两大部分。具体列举如下3.1图书馆管理员的需求通过详细分析可知,管理员对功能的需求又可以分为图书馆总管和书库管理员对各自的功能需求。由于系统开发的总体任务是实现各种信息的系统化、规范化和自动化。所以图书馆总管对系统需要完成的功能有:读者信息的管理、图书信息的管理、书库管理员的管理等。书库管理员的功能主要为:出借图书、归还图书操作及自己密码的修改等功能。对读者信息的添加:当有新的读者需要加入到图书馆管理系统中时,图书馆总管就要对读者的各种信息进行集体录入。此外由于我们所做图书馆管理系统的读者主要针对的是学校的学生,故我们录入的主要是学生的各种信息,包括读者条形码、编号、读者姓名、读者性别、读者类型、出生日期、有效证件等。其中读者的编号可以是学生入学时的学号,唯一性的。权限的级别在下面的数据表中我们可以看到。读者信息的查询、修改和删除:当图书馆总管需要查询某个读者的基本信息和借阅信息时,他们在服务端可以通过学号或者姓名可以找到这些信息,在找到后可以对这些基本的信息进行修改和保存。另外对于删除的功能则为,当某些学生快要毕业了,图书馆的管理人员就要对这些读者在图书馆中的一些基本信息进行删除掉,在这个删除的过程中,图书馆的管理人员主要是进行模糊查找,找到学生编号前面的年份即可,然后可以很方便、快捷地进行数据删除功能。对图书信息的录入:由于图书馆在每年都要购买许多的新书,所以对这些新买的新书进行编号添加到图书馆管理系统中将是一个非常巨大的工程,因此在图书的录入过程中包含了图书的一些基本的信息,有:条形码、图书编号、图书名称、图书类型、图书作者、图书出版社、ISBN编号、出版日期、图书价格、图书所属书库、图书到馆日期等信息。图书信息的查询、修改及删除:在这个过程中,我们是为了及时的了解图书在馆的最新的情况,图书馆管理员首先可以通过查询找到某一类编号的图书,然后查看它们的在馆信息,另外在查找到该图书后可以修改及保存图书修改后的信息,再一个重要的功能就为当某些图书在借阅过程中破损或遗失什么的,我们暂时就要对该图书进行删除或者是修改该图书,只有这样及时的修改图书信息,读者在借阅过程中就可以很方便的找到所需要的图书,省去了许多不必要的麻烦,实现了快捷的目标。对书库管理员的管理:在该过程中,主要是对新到的书库管理员进行添加,修改和删除等操作。这些操作我们可以仿照在对读者的操作中实现,只是我们在做数据库表时是不一样的。书库管理员的信息主要为:管理员编号、管理员名称、管理员密码、图书管理、读者管理、图书借还问题等。图书借阅管理:在这个功能模块中,主要是书库管理员对图书馆中的图书进行借出的操作,在这一步的实现过程中,当读者找到了自己所要的图书后交给书库管理员,书库管理员通过读取读者的借阅信息,看该读者是不是已经达到了借书的上限了,如果达到了,则该读者不能读图书的借阅,若没有达到上限,就可以对图书的借阅,书库管理员在系统中填写图书出借信息,然后显示借书成功提示信息。因此书库管理员填写的借书单包括的信息有:读者编号、图书编号、图书名称,另外在该表中还存在借书日期、应还日期、超期天数、罚款钱数的一些信息都是由系统自己去统计和完成。图书归还管理:这个模块的操作是比较简单的,当读者把把所要归还的图书给书库管理员时,书库管理员执行的是一个与借阅管理相反的操作,在借阅管理中是图书后台数据库借书表的插入操作,而归还图书则为对后台数据库借书表的删除操作,它删除的记录是同时满足了读者编号和图书编号都相符合的记录。同时,如果该读者在当前的还书日期超过了图书应还的日期,那么后台数据库对借书表中的超期天数、罚款钱数都有相应的计算,并在读者还书时显示出来该读者是否欠费,若是的话,就限制该读者的在图书馆的借阅功能和其它的一些功能;如果当前日期没有超过应还日期,则会提示图书归还成功。管理员密码的修改:书库管理员在这个功能模块上可以修改自己的密码,而且这些操作是属于与自己本人编号相对应的改动,对系统上并没有多大的影响。和读者密码的修改在代码实现方式上有许多相似性。3.2读者的需求由于读者对主数据库表的修改权限不大,所以读者主要是浏览方面的功能。包括了读者本身信息的查看及修改、图书信息的查询、购书推荐、预约图书、查看新书通报、查看图书馆公告、图书馆留言等功能。读者本身信息查看及修改:当一个读者到图书馆借阅图书或者归还图书时,他要对自己的一些基本的信息和借阅信息都要有相应的查看,通过查看这些已经存在的信息,读者可以了解到他是否还可以再借阅图书,现在已经借阅了几本图书,是哪几本书,并且这些书本的归还时间是什么时候,是否超期等,这样读者对自己的借阅信息就有了一个大概了解,就可以避免不盲目的跑去借阅图书了。对于修改操作主要的还是读者自己的密码的修改,因为这只关系到他自己的事情,所以对数据库中其它的数据没有太大的影响。图书信息查询:在这个模块中,读者可以对图书的信息进行查询,查询的方法有两种,一种是模糊查询,另一种是精确查询。对于模糊查询只是对图书的某一个字段查找,而且是任意匹配的形式。而对于精确查询则为对图书的各个字段进行查找,当添加了某个查询条件后,查询结果的记录集都在变化,这样读者可以方便的找到自己所要的图书。另外在查看记录集的过程中读者可以了解到该书本是否在馆可借,如果可借就可以在图书所在书库中找到,若没有的话,在图书所在书库中则不可以找到。这就是读者对图书的查询功能。预约图书:在该模块中,当读者去图书馆借阅图书时,图书馆中的该书或许已经出借了且现在的库存数目为0,那样的话,读者暂时就不可以借阅该图书了,所以读者可以在网络上对该书进行预约操作,这样当图书馆中该书有了库存后,他就有对该图书的优先借阅的权利,所以这可以帮助读者在借阅这方面提供很大的便利,由此也就产生了一个图书预约表,包含信息有:读者编号、图书编号、图书名称、图书作者、ISBN编号、所属书库等信息。查看图书馆留言及公告:在这个功能模块上,我们主要是对图书馆最近的公告和信息进行查看,了解图书馆最近的一些图书管理方面的信息和最新图书的信息,另外在留言板上读者可以提出自己对图书馆在管理方面自己的意见或建议什么的,这对加强图书馆的管理次序是有很大的帮助,另外读者自己在规范次序上也会有很大的改变。3.3性能需求图书馆在正常运行中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息,因此需要对读者资源、书籍资源、借书信息,还书信息进行及时处理,及时了解各个环节中信息的变更,力求提高管理效率。检验图书馆服务水平的重要标准。1.环境:图书室、阅览室环境清洁、安静、整齐、舒适;2.人员:图书馆管理工作人员热情、认真、主动,有专业能力;3.设备:图书馆设施先进、齐全,能满足功能需要;4.文献:图书馆的文献资源符合工作性质与目标,数量多,质量好,有特色。一般的性能需求是指相互消息传递顺利,协议解析正确,界面友好,运行时间满足使用需要,安全性得到安全保证,不会出现基本的错误等。4.图书馆管理系统的可行性分析4.1结构的选择随着技术的进步,更多的层次被划分出来。目前,在Internet应用体系结构中,商务逻辑处理被单独划分为一层,作为Internet服务器。它对用户通过浏览器提交的表单进行分析,并得出对数据库服务器进行的查询,交给数据库服务器去执行并得到查询的结果,最后由Internet服务器用标准的HTML语言反馈回浏览器,称为B/S(Brother/Server)结构。计算机技术发展日新月异,传统的C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。而B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件,没能提供用户真正期望的开放环境;B/S结构则不同,它的前端是以TCP/IP协议为基础的,企业内的WWW服务器可以接受安装有Web浏览程序的Internet终端的访问,作为最终用户,只要通过Web浏览器,各种处理任务都可以调用系统资源来完成,这样大大简化了客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体拥有成本。4.2技术可行性技术可行性是从前台和后台的开发工具选择上进行分析的。微软公司开发的ASP.NET远远超越了ASP及其它开发软件,同时也给Web开发人员提供了更好的灵活性,有效缩短了Web应用程序的开发周期。而SQLServer是Microsoft公司开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计和管理功能。其版本SQLServer2005将数据库与Internet紧密连接,可以通过Web浏览器显示数据的操作,具有客户机/服务器的结构。SQLServer2005提供了对分布式事务处理的支持,并对开发工具具有良好的支持,为大型数据库项目提供了企业级解决方案,因此我们在图书馆管理系统中使用了在.NET环境基于Web页面的B/S服务模式。4.3经济可行性在系统运行后的维护是非常重要的,并且其维护的费用还是很大的,如果是一个WindowsForm的管理系统,要对数据的维护将要付出很大的代价,而且它的维护人员也比较的多和分散,因此对数据库的操作在各个时间段都是很频繁的,人也很容易出现疲劳,问题也就会比较容易发生。但是我们现在用基于Web的B/S模型,我们修改数据的操作只在服务器端就可以了,而且它的人员也比较集中,对数据的修改只是在某段时间内比较的频繁,过了这个时间后就较轻松,所以人的精力也比较集中,那么数据库的操作也就不怎么会出现问题,因此在这方面的维护费用也大大的减少。4.4操作环境及运行环境软件环境:操作系统:WindowsXP,数据库:SQLSverver2005,前台环境:Dreamweaver,VisualStudio.NET硬件环境:Cpu:Pentium166MHz以上,内存至少128MB,硬盘空间80M,显示器800*600或更高分辨率。5.图书馆管理系统的设计5.1E-R图分析与设计利用ER方法进行数据库的概念设计,可分成三步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。5.1.1设计局部E-R模式实体和属性的定义:图书(图书编号,图书名称,作者,出版社,出版日期,价格)借阅者(借书证号,姓名,性别,年级,密码)图书类别(图书类别编号,类别描述)ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。联系定义如图所示。解释如下:一个借阅者(用户)只能具有一种身份,而一种身份可被多个借阅者所具有;一本图书只能属于一种图书类别(类别),而一种图书类别可以包含多本图书;一个用户可以借阅多本不同的书,而一本书也可以被多个不同的用户所借阅。5.1.2设计全局E-R模式所有局部E-R模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。一.确定公共实体类型为了给多个局部E-R模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键来认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。二.局部E-R模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。设计全局E-R模式的目的不在于把若干局部E-R模式形式上合并为一个E-R模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。首先在该过程中发生的实体是图书信息和用户信息,他们之间产生的关系是借阅关系,在这个借阅关系中,产生的对应关系为:图书信息:用户=1:1,用户:图书=1:N,从这个关系中我们可以看到:每一本图书只能被一个读者借阅,而一个读者又可以借阅多本图书的这层关系。另外在上图中我们可以看到图书信息和用户信息又有自己的一些关系属性,通过这些关系属性可以唯一的区别这些实体。这在下面的图5.1—图5.6中可以看出密码用户ID书名图书ID……密码用户ID书名图书ID……用户图书事务处理图书用户图书事务处理图书mnmn操作操作书库管理员m书库管理员管理管理总管理员管理管理总管理员mn管理员ID…密码管理员ID…密码图5.1总体E-R属性图图书信息图书信息图书编号条形码ISBN号书名作者出版社出版日期译者类型图5.2图书属性图借阅借阅编号图书编号读者编号借阅日期应还日期图5.3借阅信息属性图用户信息用户信息用户编号所属年级用户类别姓名性别密码图5.4用户信息属性图预约信息预约信息读者编号社图书作者ISBN号书目名称图5.5预约信息属性图推荐信息推荐信息称书目编号读者编号作者ISBN号码书库图5.6推荐信息属性图由于概念设计的结果是E-R图,DBMS一般采用关系型(该系统所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行,导出系统主要的初始关系模式如图所示:图5.7关系模型5.2数据表的创建我们可以设计出了后台数据库的各个数据表。如表5.1—表5.10所示:表5.1管理员表字段代号字段类型字段长度是否可以为空备注Admin_no(关键字)Nvarchar16否管理员编号Admin_pwdNvarchar16可以为空管理员密码Admin_nameNvarchar4否管理员名称Admin_uppowerNvarchar20否管理员权限表5.2借书表字段代号字段类型字段长度是否可以为空备注Duzhe_noNvarchar50否读者编号Book_noNvarchar50否图书编号Book_nameNvarchar50否图书名称Borrow_dateDatetime8可以为空借书日期Back_dateDatetime8可以为空归还日期Pass_dateInt4可以为空超期天数moneyMoney8可以为空欠款数目表5.3图书表字段代号字段类型字段长度是否可以为空备注Book_no(关键字)Nvarchar20否图书编号Book_nameNvarchar100否图书名称Book_zuozheNvarchar50否图书作者Book_chubansheNvarchar50否图书出版社Book_outdayDatetime8否图书出版日期Book_priceInt4否图书价格ISBNNvarchar10否图书ISBN号Lib_departmentNvarchar50否图书所属书库Book_arrivedayDatetime8否图书到馆日期Book_stateNvarchar10可以为空图书在馆状态表5.4读者表字段代号字段类型字段长度是否可以为空备注Duzhe_no(关键字)Nvarchr50否读者编号Duzhe_nameNvarchr50否读者名称Sexbit1否读者性别Duzhe_departmentNvarchr50否读者所属学院uppowerNvarchr50否读者权限Duzhe_pwdNvarchr50可以为空读者密码表5.5公告表字段代号字段类型字段长度是否可以为空备注IdNvarchar50否编号ZhutiNvarchar100否主题TimeDatetime8否时间NeirongNvarchar200否内容表5.6权限表字段代号字段类型字段长度是否可以为空备注Jibie_noInt4否级别编号Jibie_nameNvarchar50否级别名称Borrow_numberint4否借书数目表5.7权限记录表Jibie_noJibie_nameBorrow_number1图书馆总管152书库管理员103教师84学生55其他3表5.8留言表字段代号字段类型字段长度是否可以为空备注Duzhe_noNvarchar50否读者编号ZhutiNvarchar200否留言主题LeirongNvarchar4000否留言内容timeDatetime8否留言时间表5.9推荐表字段代号字段类型字段长度是否可以为空字段名称Duzhe_noNvarchar16否读者编号Book_nameNvarchar50否图书名称Book_chubansheNvarchar50可以为空图书出版社Book_zuozheNvarchar50可以为空图书作者ISBNnvarchar50可以为空ISBN号码表5.10预约表字段代号字段类型字段长度是否可以为空备注Duzhe_noNvarchar50否读者编号Book_noNvarchar50否图书编号Book_nameNvarchar50否图书名称Book_zuozheNvarchar50可以为空图书作者ISBNNvarchar50可以为空ISBN号码Lib_departmentNvarchar50可以为空所属书库5.3系统设计模块图书借阅图书归还图书借阅图书归还图书续借图书预约管理员登录读者登录图书罚款借阅查询归还查询超期查询档案查询读者类型设置读者档案管理过期续借管理图书类型出版社管理图书注销图书征订读者管理图书管理登录图书流通管理统计分析图书馆管理系统模块6.图书馆管理系统的开发6.1读者登录界面设计在主界面中,我们首先要体现的是对整个系统功能有一个具体的显示,因此我们在设计时要对各个子系统的登录链接要存在控件。当我们从登录窗体输入读者的编号和密码时,则进入读者信息查看界面.图6.1登录界面在设计中用到的控件如表6.1所示:上面的页面为读者的登录界面,在这个的登录的过程中,对“登录”按钮的数据库连接代码实现为:stringstrconn=ConfigurationSettings.AppSettings["dsn"];//从文件Web.config中取连接字符串SqlConnectioncn=newSqlConnection(strconn);//连接本地计算机的2数据库cn.Open();//打开数据库连接stringmysql="selectduzhe_no,duzhe_pwdfromduzhewhereduzhe_no='"+tbx_no.Text+"'andduzhe_pwd='"+tbx_pwd.Text+"'";//创建SQL语句,检查duzhe表中的编号和密码是否正确SqlCommandcm=newSqlCommand(mysql,cn);//创建Command对象SqlDataReaderdr=cm.ExecuteReader();//执行ExecuteReader方法if(dr.Read()){//若成功登录Session["duzhe_no"]=dr["duzhe_no"].ToString()//用Session进行传值操作Session["duzhe_pwd"]=dr["duzhe_pwd"].ToString();Response.Redirect("view_duzhe.aspx"); }else{lbl_message.Text="系统没有这个用户名或者密码有误!!!";//若登录失败tbx_no.Text="";tbx_pwd.Text="";}当读者输入读者的学号和密码后,经过“登录”按钮对数据库系统数据的核对,判断系统中是否存在该读者的学号。查看读者的基本信息和图书借阅信息,还可以对密码的修改.此界面所用到的数据库duzhe表。图6.2读者信息界面在这个页面设计用到的控件,如表6.2所示:表6.2读者信息界面控件控件名称控件ID说明Label1Label1编号Label2Label2姓名Label3Label3性别Label4Label4所属年级Button1Button1借阅信息控件名称控件ID说明labblelbl_name姓名显示labblelbl_sex性别显示labblelbl_dep年级显示DataGridDataGrid1数据库连接窗口显示Button2Button2修改密码labblelbl_no编号显示通过上面的“按钮”代码运行后,当我们成功登录后,便跳转到了下面的读者基本信息查看界面,在这个界面中,我们可以看到其中的读者编号、姓名、性别、所属年级等信息都是只读的,这个功能的实现主要是在程序中我们通过了Session的传值功能实现的。另外在设计该界面时,为了体现设计的紧凑及信息显示的连贯性,在界面中,我们添加了一些其它信息调用按钮,点击其中的“借阅”按钮,在下面的DataGrid中便可以显示出该读者当前的借阅信息。再一个就是读者可以对自己的密码进行修改,这通过“修改密码”按钮来实现的,点击后进入密码修改界面。要对读者的密码进行修改,我们普通的设计就是首先要验证输入的原密码,然后输入新密码,如果“新密码”框的输入符合规则且和“确认新密码”框的密码值是同样的,那么“确定”后便对密码进行了修改。图6.3读者密码修改页面读者密码修改的源代码:stringstrconn=ConfigurationSettings.AppSettings["dsn"]SqlConnectioncn=newSqlConnection(strconn);//连接本地计算机的LMS数据库cn.Open();//构造SQL语句,该语句在Users表中检查用户名和密码是否正确stringmysql="selectduzhe_no,duzhe_pwdfromduzhewhereduzhe_no='"+lbl_no.Text+"'andduzhe_pwd='"+tbx_pwd.Text+"'";SqlCommandcm=newSqlCommand(mysql,cn);//创建Command对象SqlDataReaderdr=cm.ExecuteReader();//执行ExecuteReader()方法if(dr.Read()){SqlConnectioncn1=newSqlConnection(strconn);//修改密码cn1.Open();stringchsql="updateduzhesetduzhe_pwd='"+tbx_newpwd.Text+"'whereduzhe_no=@no";SqlCommandcm1=newSqlCommand(chsql,cn1);cm1.Parameters.Add("@no",SqlDbType.NVarChar);cm1.Parameters["@no"].Value=lbl_no.Text.ToString();cm1.ExecuteNonQuery();cn1.Close();lbl_message.Text="密码修改成功,请返回后验证新";}else{lbl_message.Text="对不起,您输入的原密码不正确,请重新输入";读者如果要查询书目,可以在此窗口中查询,有两种匹配模式,完全匹配和模糊匹配,单击确定进入需要界面,在上面的图书检索界面中,我们看到的只是一个简单的查询功能,读者首先要在查询类型的下拉框中选择是按哪种查询方式进行查询,然后输入这种方式的查询内容,最后选择到底是按“完全匹配”模式还是“模糊匹配”模式对数据进行查询。当选择“模糊匹配”时,在查找到的数据中只要包含了内容输入框中的字符便可以查找出来,这样找到图书数可能很多,读者自己在其中选择自己所要的图书。但当是“完全匹配”模式时,查找到的结果必须和内容输入框的字符要完全匹配才可以找到,不然的话,是找不到图书查询结果的。图6.4简单图书查询界面在此过程的界面中,用到数据库中的book表,在设计中用到的控件如表5.3所示:表6.3图书查询界面控件控件名称控件ID说明LinkButtonLinkButton1链接按钮.ButtonButton1确定按钮HtmlTableTable1信息提示HtmlTableTABLE2信息提示HtmlTableTable3信息提示DropDownListddl_pp查询类型下拉菜单DropDownListddl_lx查询模式下拉菜单TextBoxtbx查询内容文本框DataGridDataGrid1数据库连接在此过程的界面中,用到数据库中的book表,对图书查询按钮后台代码的实现过程为:stringstrconn=ConfigurationSettings.AppSettings["dsn"];//从文件Web.config中读取连字符串SqlConnectioncn=newSqlConnection(strconn);//连接本地计算机的2数据库cn.Open();stringmysql="selectbook_no,book_name,ISBN,book_zuozhe,book_chubanshe,lib_departmentfrombookwhere1=1";//构造具有各个文本框选择功能的查询语句if(tbx_no.Text.ToString()!="";//当图书编号文本框不为空时{mysql=mysql+"andbook_no='"+tbx_no.Text.ToString()+"'";}if(tbx_name.Text.ToString()!="")//当图书名称文本框不为空时{mysql=mysql+"andbook_namelike'%"+tbx_name.Text.ToString()+"%'";}if(tbx_isbn.Text.ToString()!="")//当ISBN文本框不为空时{mysql=mysql+"andISBN='"+tbx_isbn.Text.ToString()+"'";}if(tbx_zuozhe.Text.ToString()!="")//当作者文本框不为空时{mysql=mysql+"andbook_zuozhelike'%"+tbx_zuozhe.Text.ToString()+"%'";}if(tbx_chubanshe.Text.ToString()!="")//当出版社文本框不为空时{mysql=mysql+"andbook_chubanshelike'%"+tbx_chubanshe.Text.ToString()+"%'";}if(tbx_dep.Text.ToString()!="")//当图书所属书库不为空时{mysql=mysql+"andlib_departmentlike'%"+tbx_dep.Text.ToString()+"%'";}SqlDataAdapterda=newSqlDataAdapter(mysql,cn);//执行SQL语句DataSetds=newDataSet();//创建DataSet对象da.Fill(ds);//填充DataSet对象DataGrid1.DataSource=ds;//DataGrid1的数据源DataGrid1.DataBind();//对DataGrid1进行绑定cn.Close();//关闭数据库连接另外一种对图书的查询功能就是高级查询,在高级查询中,我们可以根据条件的不同动态的更改查询的结果,这样的查询功能是非常的好。其界面的显示为下图:图6.5高级查询界面6.2预约图书界面设计图书馆的预约界面,在这个界面中,我们同样是要对读者的信息进行验证,只有通过了的读者才可以对图书的预约,如果读者输入的信息不正确,那么系统会提示读者重新检查所输入的信息,要是读者输入的信息通过了检查,那么系统就会在查询图书框的下面显示出一个“查询”按钮,通过这个按钮,我们就可以进行其它的一些操作了,包括图书的查询,对图书的预约等。当读者想要借的图书被别人借走后,读者可以通过此界面,输入图书的相关信息,单击确定,进行预约.通过对图书的查询,显示所有的图书,我们便可以预约图书。图6.6预约界面在此过程中,用到数据库中的yuyue表,其中DataGrid中的“预约图书”按钮相关源代码publicvoidDataGrid_Delete(objectsender,DataGridCommandEventArgsE)//对预约列{stringstrconn=ConfigurationSettings.AppSettings["dsn"];//数据库的连接SqlConnectioncn=newSqlConnection(strconn);cn.Open();stringdelsql="insertintoyuyue(duzhe_no,book_no,book_name,book_zuozhe,ISBN,lib_department,yysj)values(@duzhe_no,@book_no,@name,@zuozhe,@ISBN,@dep,@yysj)";//SQL的预约语句SqlCommandcm=newSqlCommand(delsql,cn);cm.Parameters.Add("@duzhe_no",SqlDbType.NVarChar);//对读者编号进行参数化cm.Parameters["@duzhe_no"].Value=tbx_duzhe_no.Text.ToString();//对读者编号进行赋值cm.Parameters.Add("@book_no",SqlDbType.NVarChar);//对图书编号进行参数化cm.Parameters["@book_no"].Value=E.Item.Cells[0].Text.ToString();cm.Parameters.Add("@name",SqlDbType.NVarChar);//对图书名称进行参数化cm.Parameters["@name"].Value=E.Item.Cells[1].Text.ToString();cm.Parameters.Add("@zuozhe",SqlDbType.NVarChar);//对图书作者进行参数化cm.Parameters["@zuozhe"].Value=E.Item.Cells[2].Text.ToString();cm.Parameters.Add("@ISBN",SqlDbType.NVarChar);//对ISBN号码进行参数化cm.Parameters["@ISBN"].Value=E.Item.Cells[3].Text.ToString();cm.Parameters.Add("@dep",SqlDbType.NVarChar);//对所属书库进行参数化cm.Parameters["@dep"].Value=E.Item.Cells[4].Text.ToString();cm.Parameters.Add("@yysj",SqlDbType.NVarChar);//对借书时间进行参数化cm.Parameters["@yysj"].Value=System.DateTime.Today;//读取系统当前的时间cm.ExecuteNonQuery();lbl_note.Text="图书预约成功!!!";}6.3催还图书界面设计该界面主要是如果有些读者借的书已经超过了图书借阅日期,那么该读者的编号及所借的图书将会显示在此界面上。图6.7图书催还6.4图书馆总管理员管理员分为图书馆总管理员,权限为1,和图书管理员,权限为2,以不同权限登录,实现的功能和操作不同,这个过程用到数据表中的admin表图6.8管理员登录界面当我们在登录界面中输入的是图书馆总管的用户名

温馨提示

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

评论

0/150

提交评论