图书管理系统课程设计报告.doc_第1页
图书管理系统课程设计报告.doc_第2页
图书管理系统课程设计报告.doc_第3页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要摘要图书借阅管理系统是信息管理系统的一个重要方面。如何有效地管理种类繁多的图书为广大的读者服务是图书管理人员努力追求的目标,同时读者也需要及时了解最新的图书信息,方便查询和借阅图书。本系统可以完成图书信息的录入、修改、维护以及图书预约、查询等功能,另外可以对用户进行分组并赋予权限,以满足安全性方面的要求。本文阐述了为实现上述图书管理系统的功能而进行的设计过程,包括需求分析、数据库设计、功能设计、模块设计、程序调试及试运行的过程。关键词:图书管理;需求分析;数据库设计ABSTRACTLending Library Management System information management system is an important aspect. How effective management of a wide variety of books for the general reader service library management staff is pursuing the objective of readers at the same time the need for timely information of the latest books to facilitate inquiries and borrow books. The system can be completed books information input, modification, maintenance and appointment books, query function, users may also be a division of authority and empowerment to meet the requirements in terms of safety. In this paper for the realization of the above-mentioned library management system and the functions of the design process, including needs analysis, database design, functional design, module design, debug and test procedures for the operation of the process. KeyWords: library management needs of database designI目录目 录摘要IABSTRACTIII第一章 绪论11.1 选题背景及意义11.2 项目特点11.3 项目成本分析21.4 论文的主要工作3第二章 技术基础42.1系统架构42.1.1客户机/服务器(C/S)42.1.2客户机42.1.3服务器52.2开发环境及工具52.2.1开发环境52.2.2开发工具52.3开发工具选择52.3.1 Visual Basic与其它开发工具的比较52.3.2 Visual Basic考虑的问题52.3.3系统开发所使用的关键技术9第三章 需求分析及方案论证103.1外部接口103.1.1用户界面103.2内部接口113.3系统流程图113.4读者查询流程图113.5书目查询流程图123.6信息发布流程图123.7图书管理流程图133.8系统维护流程图133.9系统E-R图143.10数据库设计15第四章 项目的总体设计184.1用户身份验证模块184.2建立主界面194.3用户个人信息管理模块214.3.1修改密码子模块214.3.2查看个人信息子模块214.3.3查看当前借阅信息子模块214.3.4查看历史借阅信息子模块234.3.5查看图书预约信息子模块234.4图书查询模块234.4.1简单查询子模块244.4.3一般查询子模块254.4.3高级查询子模块254.5信息发布模块264.5.1查看当前借阅信息子模块264.5.2到期书列表264.5.3新书列表264.6图书管理模块264.6.1添加新书子模块274.6.2图书编辑子模块284.6.3借书子模块284.6.3还书子模块294.7系统维护模块304.7.1查看个人信息子模块304.7.2查看个人信息子模块304.7.3查看个人信息子模块314.7.4查看个人信息子模块314.7.5查看个人信息子模块31第五章 代码优化测试及性能分析3251单元测试325.1.1借书模块调试325.1.2还书模块调试355.1.3调试与试运行情况小结38论文总结39致谢40参考文献4141第一章 绪论第一章 绪论1.1 选题背景及意义图书借阅管理系统是信息管理系统的一个重要方面。如何有效地管理种类繁多的图书为广大的读者服务是图书管理人员努力追求的目标,同时读者也需要及时了解最新的图书信息,方便查询和借阅图书。本系统可以完成图书信息的录入、修改、维护以及图书预约、查询等功能,另外可以对用户进行分组并赋予权限,以满足安全性方面的要求。本文阐述了为实现上述图书管理系统的功能而进行的设计过程,包括需求分析、数据库设计、功能设计、模块设计、程序调试及试运行的过程根据单位的实际需要,特开发了本系统,本系统将按照商用化通用化的标准进行开发。1.2 项目特点项目特点: 能够为用户提供充足的信息和快捷的查询手段。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书管理的科学化、数字化、正规化管理,与世界接轨的重要条件。用计算机制作的图书管理系统还可以通过功能强大的Internet网及时的向读者发布图书的最新动态,因此,开发这样一套管理软件成为一件必要的事情。主要是指对图书馆的业务管理,建立对图书馆的各个业务流程进行系统和网络化管理,建立以个体文献目录联机查询的为主的的资源共享体系,充分利用计算机网络和信息技术,实现实体文献的信息化管理和多方位的联机查询。图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变为由计算机管理,即将图书馆的图书和期刊的常规业务管理工作,利用计算机技术进行高效、准确的信息化管理,达到资源共享的目的。本图书借阅管理系统主要利用VB程序设计语言和Access数据库实现图书管理系统,实现图书的借阅和管理功能。利用本系统,可以完成图书的录入、修改、维护以及图书预约 、查询等功能。同时可以对用户进行分组并赋予权限,以满足安全性方面的要求极强的整合能力,经过少量的修改可以将其他遥测系统的数据整合到本系统中来。引入用户分组功能,针对不同的用户,提供不同的数据服务,更好的适应了市场的需要。1.3 项目成本分析图书管理系统的成本包括网费、信息费、电费、等所有费用。这些费用的总和只有在低于传统方式情况下,用户才会乐于采用。而且,系统的外观、稳定性能、等一系列操作,必须能够满足用户的心理。 总的来说,图书管理系统必须要让所有的用户体会到“快捷、方便、价廉”的基本特点,必须满足用户需求,减轻日常生活图书管理的一些烦琐,这也是图书管理系统定价的终极目的。 图书管理系统的成本指客户应用其中的软硬件配置、学习和使用、信息获得、信息安全、售后服务以及商品在生产和流通过程中所需的费用总和。 (一)技术成本 1软、硬件成本; 2学习成本; 3维护成本等。 (二)安全成本 1软、硬件的安装使用; 2安全协议规章的学习; 3培训; 4技术学习等。 (三)配送成本 1存储费用; 2运输费用; 3配送人员的开支等。 (四)客户成本 1电费; 2咨询费; ; 4操作学习费用等。 1.4 论文的主要工作1、结构本系统功能是对图书馆信息的管理,主要功能为管理有关读者,书籍,借阅和管理者的信息等。本系统结构分为读者信息管理模块,书籍信息管理模块,借阅信息管理模块,2、主要内功能管理者信息管理模块。读者信息管理部分有几个方面的功能: 书籍信息管理可以浏览书籍的信息,对书籍信息进行维护。借阅信息管理可以显示当前数据库中书籍借阅情况,对借阅信息进行维护。管理者信息管理可以显示数据库中管理者的情况,对管理者信息进行维护。3、进度开始时间:2009年7月20日阶段报告提交时间:2009年7月23日阶段一:(7.208.20)图书管理系的资料的搜集,拟定系统分析和开发项目。阶段二:(8.209.10)看相关书籍,加强学习VB和SQL数据库知识阶段三:(9.1010.10)软件的程序的编写,调试,运行。阶段四:(10.1011.20)毕业论文的编写及审核。阶段五:(11.2011.25)上交毕业论文的第二章 技术基础第二章 技术基础2.1系统架构在讨论图书借阅管理系统的架构之前,首先回顾一下计算机网络发展的过程。计算机网络主要经历了以下几个发展阶段:主机/终端(Mainframe/Terminal)模式;文件服务器/工作站(FileServer/Workstation)模式;客户机/服务器(Client/Server)模式;浏览器/服务器(Browser/Server)模式。从应用软件的角度来看,客户机/服务器网络模式下的软件结构简称为C/S结构,浏览器/服务器网络模式下的软件结构简称为B/S结构。现在C/S结构和B/S结构得到了广泛的应用,主机/终端(Mainframe/Terminal)模式和文件服务器/工作站(FileServer/Workstation)模式在新构建的系统中已很少使用。Client/Server(C/S)是当前数据库应用程序中极为流行的一种方式,尤其是网络技术的充分发展后,当前很多系统都采用这种方式进行构造,其最大优点是将计算机工作任务分别由客户端和服务器端来共同完成,这样有利于充分合理利用系统资源。而我们经常提到的Browser/Server(B/S)结构,它也是采用C/S结构的基本思想,使用浏览器作为系统前端,实现了我们理想中的瘦客户。但是系统的工作量并没有真正减少,而是将部分客户端的工作量交付给服务器端来完成。考虑到技术风险的问题,本系统采用的是C/S结构。2.1.1客户机/服务器(C/S)体系结构基本概念典型的客户机/服务器包括一个客户机(或称前端),一个服务器(或称后端),客户机的作用是访问和处理远程服务器上的数据,服务器的作用是接收和处理客户机的数据请求。2.1.2客户机客户机(Client)是指请求服务的计算机,既可以是微型机、小型机,也可以是大型机,它具有向服务器发送服务器发送服务请求和显示相关数据的所有功能。客户机上的软件至少包括两类:能访问服务器数据的应用程序和网络接口软件。应用程序用于向服务器发送服务请求和显示相关数据;网络接口软件可提供各种数据传输协议。没有或很少实现公司逻辑的客户机被称为瘦客户(ThinClient)。当然,客户并非完全没有处理公司逻辑的能力,相反,也可以把部分或全部公司逻辑设计在客户机中,使其可以承担一定的数据处理能力,这样的客户就叫胖客户(flactclient)。2.1.3服务器服务器(Server)是指提供服务的计算机,它能够等待客户的请求然后处理这些请求。一个服务器必须能鸲根据逻辑处理来自多个客户的多个请求。服务器上的软件至少包括两类:能处理客户机请求的应用程序和网络接口软件。在传统的两层结构的C/S系统中,公司逻辑由数据库平台的存储过程、触发器、视图以及完整性约束完成。2.2开发环境及工具2.2.1开发环境软件:操作系统Windows2000 server简体中文版Microsoft SQL Server 2000Visual Basic 6.0简体中文版硬件:CPU 533MHZ主频内存 128MB硬盘 20GB2.3开发工具选择2.3.1 Visual Basic与其它开发工具的比较现在流行的RAD(Rapid Application Develop)工具有MicroSoft公司的Visual FoxPro(简称VFP),Visual C+(简称VC), Visual Basic(简称VB),Borland公司的Delphi,Sybase公司的PowerBuilder(简称PB),虽然这些开发工具各有特点。但从易用性,开发速度,应用程序的运行速度和兼容性等方面考虑VB无疑是当中的佼佼者。比较如下:VB与VC相比,VB具备的优势就是快速、简单和功能完备。VB与VFP相比,VB在界面设计及其他必要信息的获取与输出占有更多的优势。VB与Delphi和PB相比,VB从易用性上比较,要稍稍强些,比较适合可视化编程的初学者。如果后台使用Access或SQL Server数据库,那么VB的优势就更明显了,因为它们毕竟都是Microsoft公司的产品。兼容性和支持性会更强。2.3.2 Visual Basic还需要考虑的问题包括:1)开发工具本身的性能;2)稳定性和可靠性;3)可视化开发;4)面向对象技术;5)开放性;6)团队开发能力;7)数据库访问能力;8)支持ODBC及其他数据库访问接口;9)支持ADO及OLE DB;10)支持数据库产品的扩展能力;11)数据库访问速度;12)对不同解决方案的支持能力;13)支持Windows DNA;14)支持CORBA;15)支持分布式结构;16)技术支持和市场环境等。作为数据库系统的前台开发工具,Visual Basic是一个非常理想选择。本系统选用的系统开发语言Visual Basic 6.0,因为该开发工具具有很多长处:VB是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows的专业开发工具SDK相比美,而且程序开发人员不必具有C/C+编程基础。在VB环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能大、图形界面丰富的应用软件系统。总的来说,VB具有以下特点:可视化编程:用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。VB提供了可视化设计工具,把Windows界面设计的复杂性 “封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种 “部件”,即图形对象,并设置这些图形对象的属性。VB自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。面向对象的程序设计VB支持面向对象的程序设计,但它一般的面向对象的程序设计语言(C+)不完全相同。在一般的面向对象程序设计而言中,对象由程序代码和数据组成,是抽象的概念;而VB则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,VB自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。结构化程序设计语言VB是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然和人类的逻辑思维方式。VB语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能且使用灵活的调试器和编译器。VB是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计VB程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成执行文件(.EXE),脱离VB环境,直接Windows环境下运行。事件驱动编程机制VB通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个 “单击”(Click)事件,而在产生该事件是将执行一段程序,用来实现指定的操作。在用VB设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用过程来执行指定的操作,这样可以方便编程人员,提高效率。访问数据库VB具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据库存储和检索功能。同时,VB还能直接编辑和访问其他外部数据库,如Dbase,Foxpro,Paradox等,这些数据库格式都可以用VB编辑和处理。VB提供开放式数据库连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(Client/Server)方案。动态数据交换(DDE)利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。VB提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。对象的链接与嵌入(OLE)对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsooft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。动态链接库(DLL)VB是一种高级程序设计语言,不具备低语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C+或汇编语言编写的程序加入到VB应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以用调用Windows应用程序接口(API)函数,实现SDK所具有的功能。2.3数据库平台的选择数据库平台选用的是MicroSoft公司的SQL Server 2000, SQL Server 2000是SQL Server的最新版本,比以前版本提高了性能,可靠性、质量和易用性。SQL Server 2000增加了几种新的功能,由此成为大规模联机事务处理(OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。SQL Server 2000拥有大型数据库系统基本特征,但保持了Windows环境下界面友好,操作简单的优点,成为Windows环境下开发中、小型C/S系统较流行的数据库系统。与传统的桌面数据库系统相比SQL Server 2000有以下区别:(1)面向集合与面向记录。面向集合与面向记录应该是C/S系统与桌面数据库系统的最本质的区别。在桌面数据库系统中,它得到的是整个数据表,面向的是整个数据表的所有记录,因此,在桌面数据库系统中,第一条、上一条、下一条、最后一条等概念是非常普遍的,而在C/S系统中没有这些概念,因为客户程序在向服务器发送服务请求时,得到的数据可以由一个或多个数据表的多个字段构成,是服务器上所有数据的一个子集,它的请求是通过SQL语句来实现的,因些在C/S系统中,它面向的是整个数据库的一个子集合。在C/S系统中使用ADOTable组件,与桌面数据库系统不同的是,通过它发出的数据库操作命令必须通过ADO转换成SQL代码,才能被数据库识别地执行。这不仅限制了对数据库的访问,而且大大降低了系统运行效率。下面举个简单事例加以说明:假设我们使用ADOTable组件访问一个SQL数据库,并且只从数据表中获得一条或几条记录时或者一个或几个字段时,需要首先执行 “ADOTable.Open;”命令,经ADO转换成SQL语句将数据表打开,当数据很大时(数据字段很多或数据记录很多),服务器会返回一个庞大的数据集,因此,系统消耗包括网络消耗是可想而知的。(2)数据安全管理。SQL数据库在数据安全性管理方面比桌面数据库系统要强得多,它不仅对数据库的访问进行口令验证,而且它还能够对特定的数据库对象进行限制,包括视图、数据表的存储过程,更重要的是它可以设置用户权限,通过Grant和Revoke命令向一个用户或一组户授权或收权。(3)数据完整性管理。对于SQL数据库而言,它允许在服务器端定义一些业务规则用于验证数据的完整性,强制所有的客户端程序都必须接受相同的业务规则约束,这样有利于集中维护这些规则。虽然桌面数据库系统也能进行数据完整性管理,但是它只能在应用程序中定义这些验证规则,所有需要验证的地方都必须写入相同或相似的代码,这样不利于维护这样规则。另外,SQL数据库在完整性约束上,一般在创建数据表时就定义好的,它既可以定义为数据表的一部分,也可以通过存储过程或触发器等形式从数据表中独立出来。(4)数据库的并发访问管理。SQL数据库采用优化锁定策略,允许多个用户可以同时访问服务器而不互相干扰。这种技术并不限制客户访问当前正在被其它用户访问的数据表,可以照常对它进行编辑(增、删、改),并请求服务器保存修改的数据。桌面数据库系统则明确地或完全地锁定策略,也就是说那些当前正在被其它有户使用的数据无法访问,更无法编辑,如果试图访问或修改这些数据,系统产生错误的提示信息。(5)事务控制。用于在系统发生错误时保持数据库的一致性和完整性。每个更新SQL Server数据库内数据的应用程序都用事务完成这个任务。事务是由一个系列语名(选择、插入、更新或删除)构成的逻辑工作单元。如果在事务执行过程中没有遇到错误,则事务中的所有修改成为数据库的永久的部分。如果遇到错误,则不对数据库做任何修改。桌面数据库系统一般不提供事务控制功能。2.3.3系统开发所使用的关键技术实现数据输入输出的一致性,操作的可靠性和系统的安全性,。第四章 项目的总体设计第三章 需求分析及方案论证3.1 外部接口按Windows应用软件用户界面的规范来设计,使用以VB窗体为主的用户界面,体现了用户界面美观友好、操作方便的特点。主界面:由五个主模块组成:读者查询、书目查询、信息发布、图书管理、糸统维护。2) 身份验证:验证用户名和密码,拒绝非系统用户进入系统,保证系统安全。3) 读者查询模块;修改密码:用于修改登录用户的登录密码;查看个人信息:用于显示登录用户的个人信息;查看当前借阅信息:用于显示登录用户的当前图书信息;查看历史借阅信息:用于显示登录用户的借书信息;查看预约信息: 用于显示登录用户的预约图书信息。4)书目查询模块:简单查询模块:为用户提供按书名、作者、主题和出版社进行模糊查询的功能;5)普通查询模块:为用户提供按中文图书、西文图书、中文期刊、西文期刊进行任意匹配或精确匹配查询图书信息的功能;6)高级查询模块:为用户提供按题名、著者、丛书名、主题词、语种类型、出版社、ISBN/ISSN号进行高级查询的功能。7)信息发布模块:预约到书列表:用于查询登录用户预约图书;到时图书列表:用于查询登录用户借出的过期图书;新书列表:用于查询馆藏新书信息。8)图书管理模块: 添加新书:用于添加新上架的图书;图书编辑:用于编辑指定图书的信息;借书:用于为用户办理借书手续;还书:用于为用户办理还书手续;预约图书列表:显示当前被预约的全部图书;借出图书列表:显示当前被借出的全部图书;9)糸统维护模块:添加用户:用于添加一个用户记录;编辑用户:用于对指定用户的信息进行编辑;用户列表:用于显示全部用户信息;添加用户类别:用于添加不同的用户类别,并赋以不同的借书数量、借书天数、是否预约、是否续借权限;权限维护:用于编辑指定用户类别的借书数量、借书天数、是否预约、是否续借权限。3. 2 内部接口接口表示一种约定,实现接口的类必须严格按其定义来实现接口的每个方面。有了接口,就可以将功能定义为一些紧密相关成员的小组。可以在不危害现有代码的情况下,开发接口的增强型实现,从而使兼容性问题最小化。也可以在任何时候通过开发附加接口和实现来添加新的功能。本设计采用VB菜单调运各模块和子模块,界面友好,操作简便。33 系统流程图整个系统流程包括启动系统、身份验证、读者查询、书目查询、信息发布、图书管理、系统维护等模块,如图3-1所示。 启动系统读者查询书目查询信息发布图书管理糸统维护图2-1 系统主页流程图图3-1 系统流程图身份验证34 读者查询流程图读者查询模块包括修改用户密码、查看用户个人信息、查看用户借阅信息、查看用户历史借阅信息和查看用户图书预约图书信息等子模块,如图3-2所示。修改密码查看个人信息查看借阅信息历史借阅信息预约信息读者查询图3-2 读者查询流程图 35 书目查询流程图 书目查询模块包括简单查询、普通查询、高级查询三个子模块。如图3-3所示。 简单查询高级查询普通查询书目查询图3-3 书目查询流程图 36 信息发布流程图 信息发布模块包括预约到书列表、到期书列表和新书列表三个子模块。如图3-4所示。预约到书列表到期书列表新书列表信息发布图3-4 信息发布流程图 37 图书管理流程图 图书管理模块包括添加新书、图书编辑、借书、还书、预约图书列表和借出图书列表五个子模块,如图3-5所示。添加新书图书编辑借书还书图书管理图3-5 图书管理流程图预约图书列表借出图书列表38 系统维护流程图 系统维护模块包括添加用户、编辑用户、用户列表、添加用户类别、权限维护五个子模块。如图2-6所示。糸统维护添加用户编辑用户用户列表权限维护图3-6 系统维护流程图添加用户类别39 系统E-R图在图书管理系统中,存在用户、图书和角色之间的实体属性及相互关系(数据库E-R)图,如图3-7所示。用户状态电话单位Emali性别姓名用户ID图书名图书著者出版社名称出版社名称出版时间上架时间价格主题名丛书名语种类型图书状态索取号ISBN/ISSN号借阅借阅日期是否归还归还日期预约角色类别名称是否允许续借借是否允许预约是否为图书管理员是否为用户管理员借书数量拥有图2-7 实体E-R图310 数据库设计首先创建一个数据库,命名为“图书”。根据上面的分析,本系统需要5个表:角色信息表、用户信息表、图书信息表、借阅信息表和预约信息表。 1)角色信息表角色信息表用于指定不同的用户角色及其借书权限,字段名有包括用户ID和允许借书数量、借书天数、是否预约、是否续借等权限,如表3-1所示。 表3-1 用户角色表字段名称数据类型说 明用户类别字符型自动编码,键码允许书数整型用于指定不同用户的允许借书数量允许天数整型用于指定不同用户的允许借书天数允许续借字符型用于指定不同用户是否允许续借允许预约字符型用于指定不同用户是否允许预约 2)图书信息表图书信息表用来说明图书信息摘要,包括图书ID、书名、出版社、编者、图书类别、语种类别、上架时间、主题词、ISBN号、索取号、出版时间、当前状态、价格、条码等字段,如表3-2所示。 表3-2 图书信息表字段名称数据类型说 明图书ID整型自动编码,键码书名字符型用于指定图书名称出版社字符型用于指定图书的出版社编者字符型用于指定图书的作者图书类别字符型用于指定图书类别,如中文或西文图书、中文或西文期刊语种类别字符型用于指定图书的语言种类上架时间日期型用于指定图书的入库及上架时间丛书名字符型用于指定图书的丛书名主题词字符型用于指定图书的主题词ISBN号字符型用于指定图书的ISBN号索取号字符型用于指定图书的索取号出版日期日期型用于指定图书的出版日期当前状态字符型用于指定图书的当前状态,入流通、借出、丢失等价格货币型用于指定图书的单价条码字符型用于指定图书的条码3)用户信息表用户信息表用来说明用户信息摘要,包括用户ID、姓名、性别、密码、角色、电话、电邮、单位和状态等字段,如表3-3所示。表3-3 用户信息表字段名称数据类型说 明用户ID整型自动编码,键码姓名字符型用于指定用户的姓名名称性别字符型用于指定用户的性别密码字符型用于指定用户的密码角色字符型用于指定用户的角色,外键码电话字符型用于指定用户的电话电邮字符型用于指定用户的电子邮件地址单位字符型用于指定用户的所在单位状态字符型用于指定用户的状态,如激活或冻结4)借阅信息表借阅信息表用来记录图书借阅情况,包括借书ID、图书ID、用户ID、借阅日期、归还日期、是否归还等字段。如表3-4所示。 表3-4 借阅信息表字段名称数据类型说 明借书ID整型自动编码,键码图书ID整型用于指定所借图书的图书ID,外键码用户ID整型用于指定借书者的用户ID,外键码借阅日期日期型用于指定用户的借书日期归还日期日期型用于指定用户的还书日期是否归还字符型用于指定用户借书是否归还5)预约信息表预约信息表有来记录明图书的预约信息,包括预约ID、图书ID、用户ID和状态等字段,如表3-5所示。 表3-5 预约信息表字段名称数据类型说 明预约ID整型自动编码,键码图书ID整型用于指定所借图书的图书ID,外键码用户ID整型用于指定借书者的用户ID,外键码状态字符型用于说明图书状态,如流通、借出、丢失等第四章 项目的详细设计41 用户身份验证模块用户身份验证模块实现用户合法性检查,把用户ID和密码分别保存到全局变量yhID和mm中,然后通过判断全局变量yhID和mm值是否与数据库“读者信息表”中的用户信息一致来确定用户的合法性并决定是否让其登录,以保证系统的安全。其界面如图4-0所示。图4-0 用户身份验证模块界面实现用户身份验证的程序代码如下:Private Sub Form_Load() Main 声明一个记录集对象 Dim ADOrs As New Recordset 与ADOcn连接对象关联 ADOrs.ActiveConnection = ADOcn Dim js As String Dim strSQL As String strSQL = Select * From 用户信息表 strSQL = strSQL + Where 用户ID= + yhID + ADOrs.Open strSQL js = Trim(ADOrs.Fields(角色) 查询用户角色权限 If js = 图书管理员 Then mnuxtwh.Enabled = False End If If js 图书管理员 And js 系统管理员 Then mnuxtwh.Enabled = False mnutsgl.Enabled = False End If ADOrs.CloseEnd Sub以上代码中的Main过程的功能是创建有数据库的连接。42 建立主界面主界面如图4-1所示。主界面frmmain的核心控件是下拉式菜单。而下拉式菜单的设计是借助菜单编辑器实现的,菜单主要有标题(Caption)、名称(Name)、索引(Indecx)、有效(Enabled)等属性,菜单控件中只包含一个事件,即Click事件,当用户用鼠标单击选中菜单控件,即调用该事件。菜单的设计不但使界面友好,而且可以使用户操作起来更加方便。图4-1 系统主界面frmmain图4-1主界面设计的另一个要点是实现不同的用户角色的权限控制。从以上的设计要求可知,对系统管理员,有可操作全部菜单,对图书管理员,可操作除“系统维护”以外的菜单,对一般用户即借书读者,则不能对“系统维护”和“图书管理”菜单进行操作,如图4-2所示。 如图4-2所示 一般用户不能操作“系统维护”和“图书管理”菜单通过以下一段程序代码可以实现对不同的用户角色的权限控制。Private Sub Form_Load() Main 声明一个记录集对象 Dim ADOrs As New Recordset 与ADOcn连接对象关联 ADOrs.ActiveConnection = ADOcn Dim js As String Dim strSQL As String strSQL = Select * From 用户信息表 strSQL = strSQL + Where 用户ID= + yhID + ADOrs.Open strSQL js = Trim(ADOrs.Fields(角色) 查询用户角色权限 If js = 图书管理员 Then mnuxtwh.Enabled = False End If If js 图书管理员 And js 系统管理员 Then mnuxtwh.Enabled = False mnutsgl.Enabled = False End If ADOrs.CloseEnd Sub43 用户个人信息管理模块用户个人信息管理模块(对应“读者查询”菜单)里主要包括了修改密码界面(图4-3)、查看个人信息界面、查看借阅信息界面、查看历史借阅信息界面)和查看预约信息界面。图4-3 用户个人信息管理模块(对应“读者查询”菜单)431 修改密码子模块修改密码子模块。当单击界面上的“更改”按钮时,首先判断用户输入的就密码是否正确,如果不正确,则弹出信息框提示输入旧密码出错。如果就密码正确,则用SQL更新语句对用户信息表中的登录用户的密码进行修改。432 查看个人信息子模块 查看个人信息子模块的界面。其功能是显示登录用户的个人信息。其设计思路十分简单,就是根据用户登录时赋给全局变量yhID的值,从用户信息表查询对应用户的记录,然后再用Label控件把对应记录的各字段值在窗体上显示出来。433 查看当前借阅信息子模块 查看当前借阅信息子模块界面。其功能是显示登录用户当前借阅图书的信息。其设计思路就是根据用户登录时赋给全局变量yhID的值,从数据库中的借阅信息表查询对应用户的已借阅且尚未归还的图书记录,然后用表格控件MSFlexGrid显示出来。当前借阅信息界面还提供了一个“续借”按钮,通过修改与表格中选定的图书对应记录的还书日期,处理借阅事件。434 查看历史借阅信息子模块 查看历史借阅信息子模块的界面。其功能是显示登录用户历史借阅图书的信息。其设计思路是根据用户登录时赋给全局变量yhID的值,从数据库中的借阅信息表查询对应用户曾经借阅过的图书记录,然后用表格控件MSFlexGrid显示出来。435 查看图书预约信息子模块查看图书预约信息子模块的界面,其功能是显示登录用户预约图书的信息。其设计思路是根据用户登录时赋给全局变量yhID的值,从数据库中的预约信息表查询该用户预约的图书记录,然后用表格控件MSFlexGrid显示出来。界面中还提供了一个“取消预约”按钮,当从表格中选中一条图书预约记录后单击该按钮,即从预约信息表中删除该记录。44 图书查询模块如图4-4所示,图书查询模块(对应“书目查询”菜单)主要包括了简单界面一般查询界面、高级查询界面。图4-4 图书查询模块(对应“书目查询”菜单)441 简单查询子模块 简单查询子模块的界面,其功能是提供比较简单的图书查询方法。既可以按题名、作者、主题或出版社,也可以不输入任何查询内容进行模糊查询;也可以输入精确的查询内容进行查询。显示了不输入任何查询内容的查结果。 实现模糊查询的SELECT语句如下:str1 = Text1.Text Select Case Index Case 0 strSQL = select * from 图书信息表 where 编者 like % + str1 + % or 主题词 like % + str1 + % or 书名 like % + str1 + % 调用初始化表格过程 cshbg (strSQL) Case 1 strSQL = select * from 图书信息表 where 书名 like % + str1 + % 调用初始化表格过程 cshbg (strSQL) Case 2 strSQL = select * from 图书信息表 where 编者 like % + str1 + % 调用初始化表格过程 cshbg (strSQL) Case 3 strSQL = select * from 图书信息表 where 主题词 like % + str1 + % 调用初始化表格过程 cshbg (strSQL) Case 4 strSQL = select * from 图书信息表 where 出版社 like % + str1 + % 调用初始化表格过程 cshbg (strSQL) End Select 如果想了解某一图书比较详细的信息,可以在表格中选择一个图书记录,然后单击“查看”按钮,就可以把从图书信息表中查询到相应的记录显示出来。是查看某一图书的结果。在程序中,首先判断登录用户是否允许预约,如果不允许预约,则隐藏“预约”按钮;如果允许预约,则从表格中选中某一图书记录后,就在预约信息表中为该用户增加一条该用户预约该图书的新记录。442 一般查询子模块 一般查询子模块的界面。由于查询的功能大体相同,只是其查询的语句有所不同,其设计思路可参照简单查询子模块。443 高级查询子模块 高级查询子模块的界面。由于查询的功能大体相同,只是其查询的语句有所不同,其设计思路可参照简单查询子模块。

温馨提示

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

评论

0/150

提交评论