PHPMYsql图书管理系统样本_第1页
PHPMYsql图书管理系统样本_第2页
PHPMYsql图书管理系统样本_第3页
PHPMYsql图书管理系统样本_第4页
PHPMYsql图书管理系统样本_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

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

文档简介

资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。摘要虽然当前很多大型的图书馆已经有一整套比较完善的管理系统,可是在一些中小型的图书馆中,大部分工作仍需由手工完成,工作起来效率比较低,管理员不能及时了解图书馆内各类图书的借阅情况,读者需要的图书难以在短时间内找到,不便于动态及时地调整图书结构为了更好地适应当前读者的借阅需求,解决手工管理中存在的许多弊端,越来越多的中小型图书馆正在逐步向计算机信息化管理转变。本系统设计实现了基于web的图书管理系统,该系统采用现今比较流行的PHP语言,结合MYsql数据库,实现了图书信息的存储查询等功能。系统不但维护方便,节省了图书馆的资源,方便图书馆进行管理图书,本系统主要为图书管理者而设计,为学校和学生提供提供科学化图书管理数据的平台。系统主要功能包括:用户的管理,图书的增删,图书的检索等。关键词:数据库;PHP;MySQL;数据库技术;图书管理AbstractAlthoughmanylargelibraryhasasetofperfectmanagementsystem,butinsomesmallandmedium-sizedlibraries,mostoftheworkremainstobedonebyhand,workefficiencyisrelativelylow,theadministratorcan'tunderstandallkindsofbookstoborrowlibrarybooks,readersneedtofoundinashortperiodoftime,noteasydynamicandtimelyadjustthestructureofbooksinordertobetteradapttothereadersoftheloandemand,solvethemanualmanagementexistsmanydisadvantages,moreandmoresmallandmedium-sizedlibrariesaregraduallytothecomputerinformationmanagement.It’smainfunctionsinclude:theadministrationofusers,bywhichadministratorscanadd,deleteorrevisetheinformationthroughdifferentsettings;thefunctionofborrowingbooks,bywhichadministratorscanchoosetoborrowbooksornotaccordingtotheretrieval;checkinginformation,bywhichadministratorscancheckthehistoryofborrowingandreturningbooksandrecordsofthosebookswhichareoverdue;checkingthedetailedinformationofbooks,bywhichuserscanfindthedetailsandwhetherit'savailableornotinlibrary.Thesystemfeaturesinclude:usermanagement,additionsanddeletionsofbooks,booksearchKeywords:Database;PHP;MySQL;DatabaseTechnology;LibraryManagement目录TOC\o"1-3"\u1绪论 61.1研究背景 61.2研究现状 61.3研究意义 72相关技术综述 82.1PHP技术 82.2MYSQL数据库 92.3Apache 102.4WampServer 102.5数据库简介 112.6网页制作工具 122.7B/S模式 123需求分析 163.1系统需求 163.2需求分析 163.2.1功能分析 163.2.2功能描述 163.2.3可行性分析 174总体设计 184.1系统流程图 184.2数据库设计 184.2.1数据库概念设计 184.2.2创立数据库及数据表 205设计思想与实现 315.1首页设计 315.1.1首页概述 315.1.2首页实现过程 335.2管理模块设计 345.2.1管理员模块概述 345.2.2管理员模块技术分析 345.2.3系统登录的实现过程 355.2.4查看管理员的实现过程 385.2.5添加管理员的实现过程 405.2.6设置管理员权限的实现过程 415.2.7删除管理员的实现过程 425.3图书档案管理模块设计 435.3.1图书档案管理模块概述 435.3.2图书档案管理模块技术分析 445.3.3查看图书信息列表的实现过程 445.3.4添加图书信息的实现过程 465.3.5修改图书信息的实现过程 475.3.6删除图书信息的实现过程 485.4.1图书借还模块概述 495.4.2图书借还模块技术分析 495.4.3图书借阅的实现过程 505.3.4图书续借的实现过程 545.4.5图书归还的实现过程 565.4.6图书借阅查询的实现过程 576.系统测试 636.1软件测试概念与方法 636.2测试内容 646.3测试结果 646.3.1登陆测试 656.3.2添加会员页面 656.3.3借还书测试 667.总结 688.参考文献 691绪论1.1研究背景随着社会的发展和经济的进步,科学技术的飞速发展把人类社会推向了一个崭新的时代——信息时代。学校是人们学习知识、获取信息的主要场所。由于中国的教育行业飞速发展,当前各类学校的学生人数与日俱增,随之而来的是学校所拥有的图书越来越多,在这种情况下,对图书的管理和查询以及对借阅者的管理都变得非常困难,利用计算机设计的图书馆管理系统对其进行辅助管理,是一种很好的方法。图书管理系统的开发和应用,能够提高学校的管理水平以及办公效率,为学校的图书信息的管理提供了一个良好的工具,化简了繁琐的工作模式,从而使得学校的管理更加规范化和科学化。良好的管理信息系统节省了大量的人力和物力,避免了大量重复性工作。它作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是学校科学化、正规化管理的重要条件。1.2研究现状随着计算机及网络技术的飞速发展,信息自动化的作用也越来越大。这就使传统的图书管理方式受到了很大的冲击,有关图书的借阅工作部分还是手工管理,工作效率很低,而且不能及时了解图书的种类和读者们比较需求的图书等,不能更好的适应当前读者的借阅要求。手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。现今许多学校图书馆已经逐步实现了利用计算机对图书进行信息化管理,但大部分使用的是VB、VC++等系统,这些系统多数使用access数据库,它在并发操作的控制和数据库安全性方面远没有MYSQL强大,不能够进行基于web的管理,即使如此,还有更多的二级学院因经费等各种原因还是延续传统手工管理模式,工作量巨大、存放麻烦、更新困难、不易备份,已不能适应信息化社会的要求。1.3研究意义本系统主要适用于二级学院的图书管理,编写本系统是为了达到图书管理工作系统化、智能化、规范化、自动化、科学化,减轻管理人员的工作强度,方便查询与统计,节约时间,从而达到提高图书管理效率的目的。使用本系统,图书管理人员作为桥梁、导航的作用将变得更为重要,图书管理工作变得更加便利和高效,系统将传统的方式与现代的信息技术相结合,为读者提供更加优质的服务,只有如此,才能有效地提高学校的科研和教学水平。

本系统服务器端采用MYSQL数据库系统和PHP组件来构成整个图书管理系统客户端采用浏览器来实现信息管理的全过程,同时管理员经过浏览器也能够进行远程系统的维护和管理。本系统选择使用当前比较流行的apache服务器结合mysql数据库使用php语言进行web设计。2相关技术综述2.1PHP技术PHP”PHPHypertextPreprocessor”超文本预处理器的字母缩写,是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到HTML中,特别适合web开发。它是一种服务器端的HTML脚本编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。PHP代码在服务器端被解释转变成普通的HTML页面内容,送给浏览器端,这种模式可使我们用它来完成相当复杂的功能。它能运行在包括Windows、Linux等在内的绝大多数操作系统环境中,常与免费的Web服务器软件Apache和免费数据库软件MySQL配合使用于Linux平台上,具有较高的性能价格比。

强大的数据库支持当前其支持范围覆盖了包括Oracle,Sybase,MicrosoftSQL,MySQL,Informix、SoliddBase,ODBC,Unixdb,PostgreSQL,AdabasD等在内的大多数常见数据库。用它编写一个含有数据库功能的网页程序十分简单。

PHP能够编译成具有与许多数据库相连接的函数。PHP与MySQL是绝佳组合。你还能够自己编写外围的函数去间接存取数据库。经过这样的途径当你更换使用数据库时,能够轻松的更改编码以适应变化。

可扩展性就像前面说的那样PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,可是对于一个PHP程序员来说并不困难。

面向对象编程PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

可伸缩性传统上网页的交互作用是经过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常见来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就能够以这种方式安装虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP能够具有更高的可伸缩性。2.2MYSQL数据库MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。当前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,特别是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其它的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能

有限,MySQL不支持视图已经被列入5.1版的开发计划、事件等等,可是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此能够大大降低总体拥有成本。在数据库的发展历程中曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言(StructuredQueryLanguage)。MySQL是C/S架构的服务器服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C++、Java、Perl、PHP、Tcl等,也提供了简单的管理工具,如mysqladmin,mysql等。当前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP)即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就能够建立起一个稳定、免费的网站系统。相比较其它系统而言,MySQL数据库能够称得上是当前运行速度最快的SQL语言数据库之一,除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户能够直接从网上下载数据库,用于个人或商业用途,而不必支付任何费用。总体来说,MySQL数据库具同时访问数据库的用户数量不受限制;能够保存超过50,000,000条记录,是当前市场上现有产品中运行速度最快的数据库系统;用户权限设置简单、有效。2.3ApacheApache是世界使用排名第一的Web服务器软件。Apache起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,ApacheHttpd被开放源代码团体的成员不断的发展和加强。ApacheHttp网站服务器拥有牢靠可信的美誉,已经在全球超过半数的网站中被使用-特别是几乎所有最热门和浏览量最大的网站。比喻说,维基百科网站服务器就是使用Apache的。刚开始发展时,Apache只是Netscape网页服务器(现在是SunONE)之外的开放源代码选择之一。慢慢地,它开始在功能和速度超越其它基于Unix的HTTP服务器。到了Apache2.x的时代,实际效率又比Apache1.x更快,2.x比1.x能同时服务更多的网页连线数。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器:1999年5月它在57%的网页服务器上运行,到了7月这个比例上升到了69%。在11月最风光的时候达到接近70%的市占率,不过在部份拥有大量域名的主机域名商转换为微软IIS平台后,Apache市占率近年来呈现些微下滑。同时搜寻引擎巨擘Google自己的网页服务器平台GWS推出后(也可说是一种修改版的Apache[3]),再加上nginx、Lighttpd等轻量化网页服务器软件在市场上有一些能见度,这些因素都反应在整体网页服务器市占率的消长,Apache的市占率就随之滑落。根据Netcraft在12月的最新统计数据,Apache的市占率已经降为53.67%,IIS降为18.26%,谷歌网页服务器13.53%,nginx8.75%。尽管如此,Apache仍旧是当前互联网市场上,市占率最高的网页服务器软件。2.4WampServerWampServer是ApacheWeb服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。在windows下将Apache+PHP+Mysql集成环境,拥有简单的图形和菜单安装和配置环境。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。再也不用到处询问php的安装问题了,wampserver一切都搞定了。这个软件是完全免费的,能够在其官方网站下载到最新的版本。本文中使用的版本是WampServer2.0f(发布日期12月16日),其中包括Apache2.2.11,PHP5.2.8,MySQL5.1.302.5数据库简介数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。数据整体性数据库是一个单位或是一个应用领域的通用数据处理系统,她存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,她按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。数据共享性数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户能够按各自的用法使用数据库中的数据;多个用户能够同时共享数据库中的数据资源,即不同的用户能够同时存取数据库中的同一个数据。数据共享性不但满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。2.6网页制作工具本系统的开发主要依靠MacromediaDreamweaver8制作动态网页。

MacromediaDreamweaver8是一款专业的HTML编辑器,用于对Web站点、Web页和Web应用程序进行设计、编码和开发。无论是喜欢直接编写HTML代码的驾驭感还是偏爱在可视化编辑环境中工作,Dreamweaver都能提供帮助良多的工具,丰富Web创作体验。利用Dreamweaver中的可视化编辑功能,能够快速创立Web页面而无需编写任何代码。能够查看所有站点元素或资源并将它们从易于使用的面板直接拖到文档中。能够在MacromediaFireworks或其它图形应用程序中创立和编辑图像然后将它们直接导入Dreamweaver,从而优化开发工作流程。Dreamweaver还提供了其它工具,能够简化向Web页中添加Flash资源的过程。除了可帮助生成Web页的拖放功能外,Dreamweaver还提供了功能全面的编码环境,其中包括代码编辑工具(例如代码颜色、标签完成、”编码”工具栏和代码折叠);有关层叠样式表(CSS)、JavaScript、ColdFusion标记语言(CFML)和其它语言的语言参考资料。Macromedia的可自由导入导出HTML技术可导入手工编码的HTML文档而不会重新设置代码的格式,能够随意用首选的格式设置样式来重新设置代码的格式。Dreamweaver还可使用服务器技术(如CFML、ASP.NET、ASP、JSP和PHP)生成动态的、数据库驱动的Web应用程序。如果使用XML数据,Dreamweaver也提供了相关工具,可帮助创立XSLT页、附加XML文件并在Web页中显示XML数据。

Dreamweaver能够完全自定义。能够创立自己的对象和命令修改快捷键甚至编写JavaScript代码,用新的行为、属性检查器和站点报告来扩展Dreamweaver的功能。2.7B/S模式在因特网上,万维网即Web以B/S(Browser/Server)形式运行,网页以文件形式存储在服务器中。万维网与因特网是有根本区别的,万维网只是因特网提供的服务之一,是存储在全世界Internet计算机中、数量巨大的文档的集合,是一种图形化的和易于导航的与平台无关的超文本信息系统,它具有分布式、新闻性、动态、交互的特性。Web服务器,就是在因特网上昼夜不停地运行某些特别的程序(如服务器程序等)的计算机,使得世界各地的用户可随时对其进行访问或获取其中的网页。网站开发采用的是PHP、JavaScript、MySQL、Apache组合模式在该组合中充分考虑了各种技术原有的优点。

B/S模式中PHP和JavaScript作为实现交互的开发工具,起到了连接纽带的作用。

C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S(Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,经过它能够充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。当前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都能够进行同样的业务处理,应用不同的模块共享逻辑组件。因此,内部的和外部的用户都能够访问新的和现有的应用系统,经过现有应用系统中的逻辑能够扩展出新的应用系统。这也就是当前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是经过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,可是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以当前的技术看,局域网建立B/S结构的网络应用,并经过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。(1)C/S服务器一般采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。(2)B/S客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer服务器安装Oracle、Sybase、Informix或SQLServer等数据库。用户界面完全经过浏览器实现,主要事务逻辑在服务器端实现。浏览器经过Web服务器同数据库进行数据交互。

B/S系统的三层体系结构

在B/S的系统中,用户能够经过浏览器向分布在网络上的许多服务器发出请求。B/S结构极大的简化了客户机的工作,客户机上只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。

在Browser/Server三层体系结构下,表示层(Presentation)、功能层(BusinessLogic)、数据层(DataService)被分割成三个相对独立的单元:第一层--表示层:Web浏览器在表示层中包含系统的显示逻辑,位于客户端。它的任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。第二层--功能层:具有应用程序扩展功能的Web服务器在功能层中包含系统的事务处理逻辑,位于Web服务器端。它的任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,经过SQL等方式向数据库服务器提出数据处理申请,然后数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。

第三层--数据层:数据库服务器在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,最终把运行结果提交给Web服务器。

从上面的分析中能够看出,三层的B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由单独组成的一层功能层来负担其任务,这样客户机的压力大大减轻了,把负荷均衡地分配给了Web服务器,于是由原来的两层的C/S结构转变成三层的B/S结构。B/S与C/S的区别表现在下述八个方面(1)硬件环境不同C/S一般建立在专用的、小范围的网络环境上,局域网之间再经过专门服务器提供连接和数据交换服务;而B/S建立在广域网之上,不必是专门的网络硬件环境,例如电话上网,租用设备等。信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。(2)对安全要求不同C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构较适宜。能够经过B/S发布部分公开信息;而B/S建立在广域网之上,对安全的控制能力相对弱,可能面向的是不可知用户。(3)对程序架构不同C/S程序能够更加注重流程,能够对权限多层次校验,对系统运行速度能够较少考虑;而B/S对安全以及访问速度的多重考虑,建立在需要更加优化的基础之上。它比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalkExchange等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,都使B/S更加成熟。(4)软件重用不同C/S程序不可避免的需要整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好;而B/S的多重结构,要求构件相对独立的功能,能够较好的重用。(5)系统维护不同C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级较难,很有可能就是再做一个全新的系统;而B/S构件组成,方便构件个别更换,能实现系统的无缝升级,同时系统维护开销减到最小,用户只需从网上自己下载安装就能够实现升级。

(6)处理问题不同C/S程序能够处理用户面固定,而且在相同区域,安全要求较高,并与操作系统相关,应该都是相同的系统;而B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法做到的,与操作系统平台关系最小。(7)用户接口不同C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高;而B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,而且大部分难度减低,减低了开发成本。(8)信息流不同C/S程序一般是典型的中央集权的机械式处理,交互性相对低;而B/S信息流向可变化,B-B、B-C、B-G等信息、流向的变化,更像是交易中心。针对本网站系统的开发,经过对比,B/S比较合适。3需求分析3.1系统需求学校图书管理系统使基于任意操作系统上的,经过对当前存在的大量的学校或社会上图书管理系统的分析和总结,然后根据学校的特点,研究一套合适于学校内部的图书管理系统。系统要求有优良的可视化图形操作界面,大力提高系统的可操作性和交互性,尽量减少操作员的负担,让她们更方便、更快捷、更简单的进行操作。还有要求系统有很强的稳定性、可维护性、扩充性、可移植性。同时,实现控制各种用户系统权限,从而保证系统的安全性。3.2需求分析 3.2.1功能分析 信息技术学院图书管理系统是为学院图书管理而设计的书管理员提供提供科学化图书管理数据的平台。图书管理系统主要实现以下5方面的能:图书入库、查询、修改信息、图书借还、系统管理。3.2.2功能描述1.书籍管理功能:包括书籍类别管理和书籍信息管理两部分。2.读者管理部分:这一部分包括对读者信息进行管理的功能。3.借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。4.系统管理:包括修改系统用户密码、增加新用户以及退出系统等。3.2.3可行性分析技术可行性根据系统功能、性能及实现系统的各项约束条件,现有的技术已较为成熟硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全能够达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是能够在规定期限内完成开发。经济可行性 本系统建立在PHP开发的基础上,项目开发成本非常小。而且本系统实施后能够显著提高工作效率。因此本系统在经济上是可行的。运行可行性本系统采用完全的图形化界面,充分得考虑了用户对系统的易于管理,管理者方便查询设备信息效率,完全满足了使用者的要求。该系统应该提供简单的操作界面,能够快速的实现查书、借书、还书功能,该系统主要使用通用的浏览器因此便于系统的移植和使用。4总体设计4.1系统流程图4.2数据库设计4.2.1数据库概念设计根据以上各节对系统所做的需求分析、系统设计,规划出本系统中使用的数据库实体分别为图书档案实体、读者档案实体、借阅档案实体、归还档案实体和管理员实体。1.图书档案实体图书档案实体包括编号、条形码、书名、类型、作者、译者、出版社价格、页码、书架、录入时间和操作员等属性。2.读者档案实体读者档案实体包括编号、姓名、性别、条形码、职业、出生日期、有效证件、证件号码、电话、电子邮件、登记日期、操作员、类型和备注等属性。借阅档案实体借阅档案实体包括编号、读者编号、图书编号、借书时间、应还时间、操作员和是否归还等属性。4.归还档案实体归还档案实体包括编号、读者编号、图书编号、归还时间和操作员等属性。数据库具体实现4.2.2创立数据库及数据表结合实际情况及对用户需求的分析,学校图书馆管理系统library数据库主要包含如下11个数据表library表tb_bookcase表tb_bookinfo表tb_booktype表tb_borrow表tb_library表tb_manager表tb_parameter表tb_publishing表tb_purview表tb_reader表tb_readertype--phpMyAdminSQLDump--version--主机:localhost--生成日期:年05月01日06:46--服务器版本:5.5.20--PHP版本:5.3.10SETSQL_MODE="NO_AUTO_VALUE_ON_ZERO";SETtime_zone="+00:00";数据库:`library`表的结构`tb_bookcase`--CREATETABLEIFNOTEXISTS`tb_bookcase`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_bookinfo`--CREATETABLEIFNOTEXISTS`tb_bookinfo`(`barcode`varchar(30)DEFAULTNULL,`bookname`varchar(70)DEFAULTNULL,`typeid`int(10)unsignedDEFAULTNULL,`author`varchar(30)DEFAULTNULL,`translator`varchar(30)DEFAULTNULL,`ISBN`varchar(20)DEFAULTNULL,`price`float(8,2)DEFAULTNULL,`page`int(10)unsignedDEFAULTNULL,`bookcase`int(10)unsignedDEFAULTNULL,`storage`int(10)unsignedDEFAULTNULL,`inTime`dateDEFAULTNULL,`operator`varchar(30)DEFAULTNULL,`del`tinyint(1)DEFAULT'0',`id`int(11)NOTNULLAUTO_INCREMENT,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_booktype`--CREATETABLEIFNOTEXISTS`tb_booktype`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`typename`varchar(30)DEFAULTNULL,`days`int(10)unsignedDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_borrow`--CREATETABLEIFNOTEXISTS`tb_borrow`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`readerid`int(10)unsignedDEFAULTNULL,`bookid`int(10)DEFAULTNULL,`borrowTime`dateDEFAULTNULL,`backTime`dateDEFAULTNULL,`operator`varchar(30)DEFAULTNULL,`ifback`tinyint(1)DEFAULT'0',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_library`--CREATETABLEIFNOTEXISTS`tb_library`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`libraryname`varchar(50)DEFAULTNULL,`curator`varchar(10)DEFAULTNULL,`tel`varchar(20)DEFAULTNULL,`address`varchar(100)DEFAULTNULL,`email`varchar(100)DEFAULTNULL,`url`varchar(100)DEFAULTNULL,`createDate`dateDEFAULTNULL,`introduce`text,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_manager`--CREATETABLEIFNOTEXISTS`tb_manager`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(30)DEFAULTNULL,`pwd`varchar(50)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=3;转存表中的数据`tb_manager`--INSERTINTO`tb_manager`(`id`,`name`,`pwd`)VALUES(1,'admin','21232f297a57a5a743894a0e4a801fc3'),(2,'bulongwind','845d07a73a3c0bbf6ff27b4b2130413a');表的结构`tb_parameter`--CREATETABLEIFNOTEXISTS`tb_parameter`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`cost`int(10)unsignedDEFAULTNULL,`validity`int(10)unsignedDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_publishing`--CREATETABLEIFNOTEXISTS`tb_publishing`(`ISBN`varchar(20)DEFAULTNULL,`pubname`varchar(30)DEFAULTNULL)ENGINE=MyISAMDEFAULTCHARSET=gb2312;表的结构`tb_purview`--CREATETABLEIFNOTEXISTS`tb_purview`(`id`int(11)NOTNULLDEFAULT'0',`sysset`tinyint(1)DEFAULT'0',`readerset`tinyint(1)DEFAULT'0',`bookset`tinyint(1)DEFAULT'0',`borrowback`tinyint(1)DEFAULT'0',`sysquery`tinyint(1)DEFAULT'0',PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312;转存表中的数据`tb_purview`--INSERTINTO`tb_purview`(`id`,`sysset`,`readerset`,`bookset`,`borrowback`,`sysquery`)VALUES(1,1,1,1,1,1);表的结构`tb_reader`--CREATETABLEIFNOTEXISTS`tb_reader`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(20)DEFAULTNULL,`sex`varchar(4)DEFAULTNULL,`barcode`varchar(30)DEFAULTNULL,`vocation`varchar(50)DEFAULTNULL,`birthday`dateDEFAULTNULL,`paperType`varchar(10)DEFAULTNULL,`paperNO`varchar(20)DEFAULTNULL,`tel`varchar(20)DEFAULTNULL,`email`varchar(100)DEFAULTNULL,`createDate`dateDEFAULTNULL,`operator`varchar(30)DEFAULTNULL,`remark`mediumtext,`typeid`int(11)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;表的结构`tb_readertype`--CREATETABLEIFNOTEXISTS`tb_readertype`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(50)DEFAULTNULL,`number`int(4)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=gb2312AUTO_INCREMENT=1;5设计思想与实现5.1首页设计5.1.1首页概述管理员经过”系统登录”模块的验证后,能够登录到图书馆管理系统的首页。系统首页主要包括导航栏、排行榜和版权信息3部分。其中,导航栏中的功能菜单将根据登录管理员的权限进行显示。例如,系统管理员admin登录后,将拥有整个系统的全部功能,因为它是超级管理员。5.1.2首页技术分析学校图书馆管理系统是一个功能全面、大型的Web网站,经过对网站的安全性考虑,本网站对该系统进行权限的分配,只有管理员级别的超级用户能够对普通用户的权限进行管理和设置。系统首页主要经过判断管理员的权限来显示该用户所操作的功能模块,关键代码如下:<?phpsession_start();//初始化session变量include("conn/conn.php");//连接数据库文件$query=mysql_query("selectm.id,,p.id,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysqueryfromtb_managerasmleftjoin(select*fromtb_purview)asponm.id=p.idwherename='$_SESSION[admin_name]'");$info=mysql_fetch_array($query);//检索用户权限?><!--检索用户所对应的权限,如果权限值为1,则说明该功能可用,并输出到浏览器,否则不显示--><tdwidth="70%"align="right"><ahref="index.php"class="a1">首页</a>┊<?phpif($info[sysset]==1){?><aonmouseover=showmenu(event,sysmenu)onmouseout=delayhidemenu()style="CURSOR:hand"class="a1">系统设置</a>┊<?php}?><?phpif($info[readerset]==1){?><aonmouseover=showmenu(event,readermenu)onmouseout=delayhidemenu()style="CURSOR:hand"class="a1">读者管理</a>┊<?php}?><?phpif($info[bookset]==1){?><ahref="book.php"class="a1">图书档案管理</a>┊<?php}?><?phpif($info[borrowback]==1){?><aonmouseover=showmenu(event,borrowmenu)onmouseout=delayhidemenu()style="CURSOR:hand"class="a1">图书借还</a>┊<?php}?><?phpif($info[sysquery]==1){?><aonmouseover=showmenu(event,querymenu)onmouseout=delayhidemenu()style="CURSOR:hand"class="a1">系统查询</a>┊<?php}?><ahref="pwd_Modify.php"class="a1">更改口令</a>┊<ahref="safequit.php"class="a1">注销</a></td>?5.1.2首页实现过程系统首页的内容显示区用于显示图书的排行信息,并将排行结果按借阅数量降序排列。该页的关键代码如下:<tdheight="25"align="center"><?phpecho$i;?></td><tdstyle="padding:5px;"> <?phpecho$info[barcode];?></td><tdstyle="padding:5px;"><?phpecho$info[bookname];?></td><tdstyle="padding:5px;"><?phpecho$info[typename];?></td><tdalign="center"> <?phpecho$info[bookcasename];?></td><tdalign="center"> <?phpecho$info[pubname];?></td><tdalign="center"><?phpecho$info[author];?></td><tdalign="center"><?phpecho$info[price];?></td><tdalign="center"><?phpecho$info[degree];?></td>5.2管理模块设计5.2.1管理员模块概述管理员模块主要包括管理员登录、查看管理员列表、添加管理员信息、管理员权限设置、管理员删除和更改口令6个功能。5.2.2管理员模块技术分析在管理员模块中,涉及的数据表是tb_manager(管理员信息表)和tb_purview(权限表)。其中,管理员信息表中保存的是管理员名称和密码等信息,权限表中保存的是各管理员的权限信息,这两个表经过各自的id字段相关联。经过这两个表能够获得完整的管理员信息。从网站安全的角度考虑,仅有上面介绍的系统登录页面并不能有效地保存系统的安全,一旦系统首页面的地址被她人获得,就能够经过在地址栏中输入系统的首页面地址而直接进入到系统中。为了便于网站的维护,因此将验证用户是否登录的代码封装在独立的PHP文件中,即check_login.php文件。验证用户是否登录的具体代码如下:<?phpsession_start();//初始化session变量if($_SESSION[admin_name]==""){//如果session变量为空,则说明用户未登录echo"<script>alert('对不起,请经过正确的途径登录博考图书馆管理系统!');window.location.href='login.php';</script>";}?>5.2.3系统登录的实现过程系统登录是进入学校图书馆管理系统的入口,主要用于验证管理员的身份。运行本系统,首先进入的是系统登录页面,在该页面中,系统管理员能够经过输入正确的管理员名称和密码登录到系统首页,当用户没有输入管理员名称或密码时,系统会经过JavaScript进行判断,并给予信息提示。系统登录页面主要用于收集管理员的输入信息及经过自定义的JavaScript函数验证输入信息是否为空。编写自定义的JavaScript函数,用于判断管理员名称和密码是否为空。代码如下:

<scriptlanguage="javascript">functioncheck(form){//自定义一个JavaScript函数check()if(.value==""){//如果管理员名称为空,则弹出提示信息,并重新返回焦点 alert("请输入管理员名称!");.focus();returnfalse;} if(form.pwd.value==""){//如果管理员密码为空,则弹出提示信息,并重新返回焦点 alert("请输入密码!");form.pwd.focus();returnfalse;}}</script>提交表单到数据处理页,页面中为了防止非法用户进入学校图书馆管理系统首页,经过调用类的chkinput()方法实现判断用户名和密码是否正确。如果为合法用户,则能够登录学校图书馆管理系统的首页;否则,弹出相应的错误提示。关键代码如下:<?phpsession_start();//初始化session变量$A_name=$_POST[name];//接收表单提交的用户名$A_pwd=$_POST[pwd];//接收表单提交的密码 classchkinput{//定义类 var$name; var$pwd; functionchkinput($x,$y){//定义一个方法 $this->name=$x;//将管理员名称传给类对象$this->name $this->pwd=$y;//将管理员密码传给类对象$this->pwd}functioncheckinput(){ include("conn/conn.php");//连接数据库文件 $sql=mysql_query("select*fromtb_managerwherename='".$this->name."'andpwd='".$this->pwd."'",$conn);$info=mysql_fetch_array($sql);//检索管理员名称和密码是否正确if($info==false){//如果管理员名称或密码不正确,则弹出相关提示信息echo"<scriptlanguage='javascript'>alert('您输入的管理员名称错误,请重新输入!');history.back();</script>"; exit;}else{//如果管理员名称或密码正确,则弹出相关提示信息echo"<script>alert('管理员登录成功!');window.location='index.php';</script>";$_SESSION[admin_name]=$info[name];//将管理员名称存到 $_SESSION[admin_name]变量中$_SESSION[pwd]=$info[pwd];//将管理员密码存到$_SESSION[pwd]变量中 }}}$obj=newchkinput(trim($name),trim($pwd));//创立对象$obj->checkinput();//调用类?>5.2.4查看管理员的实现过程管理员登录后,选择”系统设置”/”管理员设置”菜单项,进入到查看管理员列表页面。在该页面中,将以表格的形式显示全部管理员及其权限信息,并提供添加管理员信息、删除管理员信息和设置管理员权限的超链接。首先使用左外联接语句(leftjoin…on)从数据表tb_manager和tb_purview中查询出符合条件的数据,然后将查询结果应用do…while循环语句输出到浏览器。关键代码如下:<?phpinclude("conn/conn.php");//连接数据库文件$sql=mysql_query("selectm.id,,p.sysset,p.readerset,p.bookset,p.borrowback,p.sysqueryfromtb_managerasmleftjoin(select*fromtb_purview)asponm.id=p.id");$info=mysql_fetch_array($sql);//检索数据信息do{//应用do…while循环语句输出查询结果?>/*输出符合查询条件的记录*/<tr><tdstyle="padding:5px;"><?phpecho$info[name];?></td><tdalign="center"><inputname="checkbox"type="checkbox"class="noborder"value="checkbox"disabled="disabled"<?phpif($info[sysset]==1){echo("checked");}?>></td><tdalign="center"><inputname="checkbox"type="checkbox"class="noborder"value="checkbox"disabled="disabled"<?phpif($info[readerset]==1){echo("checked");}?>></td><tdalign="center"><inputname="checkbox"type="checkbox"class="noborder"value="checkbox"disabled<?phpif($info[bookset]==1){echo("checked");}?>></td><tdalign="center"><inputname="checkbox"type="checkbox"class="noborder"value="checkbox"disabled<?phpif($info[borrowback]==1){echo("checked");}?>></td><tdalign="center"><inputname="checkbox"type="checkbox"class="noborder"value="checkbox"disabled<?phpif($info[sysquery]==1){echo("checked");}?>></td><tdalign="center"><ahref="#"onClick="window.open('manager_modify.php?id=<?phpecho$info[id];?>','','width=292,height=175')">权限设置</a></td><tdalign="center"><ahref="manager_del.php?id=<?phpecho$info[id];?>">删除</a></td></tr>/***************************************************************************************/<?php}while($info=mysql_fetch_array($sql));//do…while循环语句结束?>5.2.5添加管理员的实现过程在添加管理员页面中,输入合法的管理员名称及密码后,单击”保存”按钮,提交表单信息到数据处理页,将添加的管理员信息保存到数据表中。如果添加成功,弹出成功的提示信息;否则,弹出错误提示。代码如下:<?phpinclude("conn/conn.php");//连接数据库文件if($_POST[submit]!=""){//如果单击了”保存”按钮,则执行下面的作$name=$_POST[name];//获取管理员名称$pwd=$_POST[pwd];//获取管理员密码$sql=mysql_query("insertintotb_manager(name,pwd)values('$name','$pwd')");if($sql==true){//向数据表中添加管理员信息成功,则给出提示信息echo"<scriptlanguage=javascript>alert('管理员添加成功!');window.close();window.opener.location.reload();</script>";}else{//向数据表中添加管理员信息失败,则给出提示信息echo"<scriptlanguage=javascript>alert('管理员添加失败!');window.close();window.opener.location.reload();</script>";}}?>5.2.6设置管理员权限的实现过程在查看管理员列表页面中添加”权限设置”列,并在该列中添加以下用于打开”权限设置”页面的超链接代码。<ahref="#"onClick="window.open('manager_modify.php?id=<?phpecho$info[id];?>','','width=292,height=175')">权限设置</a>从上面的URL地址中能够获取设置管理员权限页所涉及的id号,将id号提交给处理页manager_modifyok.php,修改id号所对应的管理员信息。具体代码如下:<?phpinclude("conn/conn.php");//连接数据库文件if($_POST[submit]!=""){//如果提交表单,则执行以下操作$id=$_POST[id];//获取id信息$sysset=$_POST[sysset]==""?0:1;//应用三目运算符求出”系统设置”复选框的值$readerset=$_POST[readerset]==""?0:1;//应用三目运算符求出”读者管理”复选框的值$bookset=$_POST[bookset]==""?0:1;//应用三目运算符求出”图书管理”复选框的值$borrowback=$_POST[borrowback]==""?0:1;//应用三目运算符求出”图书借还”复选框的值$sysquery=$_POST[sysquery]==""?0:1;//应用三目运算符求出”系统查询”复选框的值$query=mysql_query("select*fromtb_purviewwhereid=$id");$info=mysql_fetch_array($query);//检索权限信息表中是否存在该管理员if($info==false){//如果不存在,向权限表中添加管理员权限信息mysql_query("insertintotb_purview(id,sysset,readerset,bookset,borrowback,sysquery)values($id,$sysset,$readerset,$bookset,$borrowback,$sysquery)");}else{//否则,更新管理员的权限信息mysql_query("updatetb_purviewsetsysset=$sysset,readerset=$readerset,bookset=$bookset,borrowback=$borrowback,sysquery=$sysquerywhereid='$id'");}echo"<scriptlanguage=javascript>alert('权限设置修改成功!');window.close();window.opener.location.reload();</script>";//更新成功,弹出提示信息,并更新父窗口}?>5.2.7删除管理员的实现过程在查看管理员列表页面中单击指定管理员信息后面的”删除”超链接,该管理员及其权限信息将被删除。在查看管理员列表页面中添加以下用于删除管理员

温馨提示

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

评论

0/150

提交评论