图书借阅系统
摘 要
随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。
本系统是为某某学院图书馆设计开发的在线图书馆管理系统,来研究基于B/S模式的网上借阅归还的实现,采用的是nodejs+MYSQL模式的电子服务平台。图书馆作为一种信息资源的集合,图书和用户借阅资料繁多,涉及很多的信息数据的管理,现今,虽然大多数图书馆都使用了单机版管理系统或局域网管理系统,但还是没法满足这个起来越网络化的时代的要求。该图书馆管理系统传袭了传统图书馆管理系统甚至手工管理系统在信息处理方面的长处,弥补了传统图书馆管理系统在网络化服务方面的缺失,使图书馆的服务在服务质量没有减弱的前提下,更方便用户,贴近用户。
此系统设计上采用三层结构、Web Service技术,使之在选用平台、采用技术上具有先进性、前瞻性、扩充性,从而保证建成的系统具有良好的稳定性、可扩充性。系统设计按标准化、规范化,分层设计,构件化实现。采用软件构件化的开发方式,使系统结构分层,业务与实现分离,逻辑与数据分离;以统一的服务接口规范为核心,使用开放标准。从功能上来说,系统是比较完备的,系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。系统实现了对信息数据的浏览、查询、编辑和管理等基本数据库操作,采用了模块化设计方法,根据用户的需求及程序的应用与维护的易用性,将各个部分置于不同的模块当中,方便了程序的扩展与维护,同时建立了程序功能复用的基础。
本系统的开发使获取图书借阅信息能够更加方便快捷,同时也使图书借阅系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作。前端技术:nodejs+vue+elementui,
Express 框架于Node运行环境的Web框架,
语言 node.js
框架:Express
前端:Vue.js
数据库:mysql
数据库工具:Navicat
开发软件:VScode
视图层其实质就是vue页面,通过编写vue页面从而展示在浏览器中,编写完成的vue页面要能够和控制器类进行交互,从而使得用户在点击网页进行操作时能够正常。
代码结构讲解
1、 node_modules文件夹(有npn install产生)
这文件夹就是在创建完项目后,cd到项目目录执行npm install后生成的文件夹,下载了项目需要的依赖项。
2、package.json文件
此文件是项目的配置文件(可定义应用程序名,版本,依赖项等等)。node_modules文件夹下的依赖项是从哪里知道的呢?原因就是项目根目录下的这个package.json文件,执行npm install时会去找此文件中的dependencies,并安装指定的依赖项。
3、public文件夹(包含images、javascripts、stylesheets)
这个文件夹做过Web开发的应该一看就知道,为了存放图片、脚本、样式等文件的。
4、routes文件夹
用于存放路由文件。
5、views文件夹
存放视图。 目 录
摘 要 1
Abstract 1
1 系统概述 4
1.1 概述 4
1.2课题意义 4
1.3 主要内容 4
2 系统开发环境 5
2.1 nodejs技术 5
2.2访问数据库实现方法 6
2.3 nodejs对MySQL数据库的两钟连接方式 7
2.4 MySql数据库 7
3 需求分析 9
3.1技术可行性:技术背景 9
3.2经济可行性 9
3.3操作可行性: 10
3.4系统设计规则 10
3.5系统流程和逻辑 10
4系统概要设计 14
4.1 概述 14
4.2 系统结构 14
4.3. 数据库设计 17
4.3.1 数据库实体 17
4.3.2 数据库设计表 18
5 系统详细设计 22
5.1 管理员功能模块 22
5.2 学生功能模块 24
5.3 教师功能模块 27
6 系统测试 31
6.1系统测试的目的 31
6.2系统测试方法 31
6.3 测试结果 32
结论 33
致 谢 34
参考文献 35
1 系统概述
1.1 概述
随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对健康检查的要求也在不断提高,参与定期图书借阅的人数更是不断增加,使得图书借阅系统的开发成为必需而且紧迫的事情。图书借阅系统主要是借助计算机,通过对图书借阅系统所需的信息管理,增加用户的选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。图书借阅系统对用户带来了更多的便利, 该系统通过和数据库管理系统软件协作来满足用户的需求。
1.2课题意义
随着全球信息化的发展,人们的生活节奏越来越快,对信息的时效性越来越重视。以传统的宣传方式为载体的传统媒介早已不能满足人们对获取信息的方式、便捷性的需求。所以图书借阅系统渐渐成为人们关注的焦点。首先,图书借阅系统,网上获取信息的实时性、便捷性要远远高于传统媒介。系统一经上线,无论用户在世界的哪个角落,只要能够连接互联网,就能在第一时间获得想要的信息。
计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。
1.3 主要内容
图书借阅系统从功能、数据流程、可行性、运行环境进行需求分析。对图书借阅系统的数据库、功能进行了详细设计。分析了主要界面设计和相关组件设计,对图书借阅系统的具体实现进行了介绍。
采用nodejs技术,从数据库中获取数据、向数据库中写入数据,实现系统直接对数据库进行各种操作,在网页中加入动态内容,从而实现图书借阅系统所需要的各种基本功能。
3 需求分析
3.1技术可行性:技术背景
图书借阅系统网站是在Windows操作系统中进行开发运用的,而且目前PC机的各项性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
系统的开发环境和配置都是可以自行安装的,系统使用PHP开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
图书借阅管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个系统使用的是云计算,流量的可扩展性和基于流量的智能调整云计算的优点就是流量的可扩展性和基于流量的智能调整,保障了数据信息能够得到及时的备份,整个系统可以安全有效的运行。
因此,我们从两个方面进行了可行性研究,可以看出系统的开发没有问题。
3.2经济可行性
在图书借阅系统开发之前所做的市场调研及与其相关的其他管理系统,都是没有任何费用的。所有的调查研究都是通过开发者自己的努力,所有的工作也都是自己亲力亲为的。在碰到自己比较难以解决的问题时,大多数是通过指导老师和同学的帮助进行相关问题的解决。所以对于图书借阅系统的开发在经济上是完全可行的,没有任何费用支出的。
使用比较成熟的技术,系统是基于nodejs的开发,采用Mysql数据库。所以系统在开发人力、财力方面的要求不高,具有经济可行性。
3.3操作可行性:
可操作性主要是对在图书借阅系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、学生三个用户角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息。对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以图书借阅系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.4系统设计规则
本图书借阅系统采用nodejs技术,Mysql数据库开发,充分保证了系统稳定性、完整性。
图书借阅系统的设计与实现的设计思想如下:
1、操作简单方便、系统界面安全良好:简单明了的页面布局,方便查询图书借阅管理相关信息。
2、即时可见:对图书借阅系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。
4.3. 数据库设计
4.3.1 数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过系统功能分析,针对图书馆管理系统,总结出如下的需求信息:
1)用户分一般用户、用户和管理员用户;
2)一般用户和注册用户无需要登录就可以查看图书信息;
3)注册用户登录后可以维护自己的个人信息,并可在网站完成图书借阅、续借、归还等操作;
4)管理员用户登陆后可进行管理员信息、用户信息及图书信息的维护,以且图书借阅、续借及归还信息的维护;
5)图书按图书类别来分类;
6)一个用户可以借阅多个或多种型号的图书。
经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
1)管理员信息,包括数据项:帐号,姓名,密码等。
2)注册用户(用户)信息,包括数据项:用户ID,用户名,密码等。
3)图书信息,包括数据项:馆藏编号,图书名称,分类编号等。
4)图书借阅信息,包括数据项:图书编号,用户编号,图书编号,借阅时间等。
4.3.2 数据库概念结构设计
得到上面数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
设计规划出的实体有:管理员信息实体、注册用户(用户)信息实体、图书信息实体、图书借阅信息实体、图书续借信息实体和图书归还实体。
4.3 数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。
在线图书书店数据库中各个表的设计结果如表所示。每个表格表示在数据库中的一个表。
表1为管理员信息表,存储系统中的管理员信息。
allusers表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 username VarChar 50 是 255
3 pwd VarChar 50 是 255
4 cx VarChar 50 是 255
5 addtime DateTime 8 是 23
jieyuejilu表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 bianhao VarChar 50 是 255
3 mingcheng VarChar 300 是 255
4 leibie VarChar 50 是 255
5 zuozhe VarChar 50 是 255
6 yujietianshu VarChar 50 是 255
7 shifouguihuan VarChar 50 是 255
8 guihuanshijian VarChar 50 是 255
9 beizhu VarChar 500 是 255
10 jieyueren VarChar 50 是 255
11 issh VarChar 2 是 255
12 addtime DateTime 8 是 23
tushuleibie表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 leibie VarChar 50 是 255
3 addtime DateTime 8 是 23
tushuxinxi表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 bianhao VarChar 50 是 255
3 mingcheng VarChar 300 是 255
4 leibie VarChar 50 是 255
5 zuozhe VarChar 50 是 255
6 chubanshe VarChar 300 是 255
7 chubanriqi VarChar 50 是 255
8 fengmian VarChar 50 是 255
9 jianjie VarChar 500 是 255
10 zhuangtai VarChar 50 是 255
11 addtime DateTime 8 是 23
yonghuzhuce表:
序号 字段名称 字段类型 大小 允许为空 最大长度 备注
1 ID Int 4 自增编号 10
2 yonghuming VarChar 50 是 255
3 mima VarChar 50 是 255
4 xingming VarChar 50 是 255
5 xingbie VarChar 2 是 255
6 dianhua VarChar 50 是 255
7 youxiang VarChar 50 是 255
8 shenfenzheng VarChar 20 是 255
9 QQ VarChar 50 是 255
10 dizhi VarChar 100 是 255
11 touxiang VarChar 50 是 255
12 beizhu VarChar 300 是 255
13 addtime DateTime 8 是 23
14 issh VarChar 2 是 255
5 系统详细设计
客户界面的大部分功能都是以管理模块为前提的,因为客户模块所显示的数据大部分需要通过管理模块来添加。因此,我们首先要来介绍管理模块的设计与开发。管理模块相对客户模块要复杂一些,因为在这里需要对所有信息进行维护,包括浏览、增加、修改和删除等操作。为了便于系统维护,页面的命名才用“模块名+功能名”的方式。概括起来,管理模块具有以下功能:
管理员管理。
图书维护。
普通管理员维护。
借阅维护。
在每个管理界面当中均直接或间接地才用<!-#include file=“checkuser.PHP”–>方法引用了checkuser.nodejs文件,这种设计是为了检测管理员是否登录,防止没有管理权限的用户非法篡改系统数据。
下面分别说明这些页面的实现,首先开始首页界面设计。
普通管理员与超级管理员,都是系统的管理员,怕一个人管理不了,所以超级管理员可以添加一些普通管理员来共同管理,唯一区别是超级管理员可以添加普通管理员,而普通管理员不能添加普通管理员
这是为了防止人员泛滥,符合软件工程的设计原则
该模块主要是让超级管理员可以添加系统中的普通管理员来共同管理本系统。
1
该模块分为两个小块,上面是添加新管理员,包括用户名和密码两个可见字段,还有一个权限是默认隐藏字段。下面是将已有的管理员信息以列表的形式列出,简单明了!
由于考虑到系统人员泛滥问题,本模块仅限超级管理员一人使用。
实现本模块的主要代码如下所示:
5.3 管理员操作举例
因管理员的操作过程大致相同,只是对象不同,故只列举其中图书管理一例。
普通用户管理页面:
图书类别管理页面:
图书信息管理页面:
图书代借阅管理页面:
系统数据管理页面:
下面就各页面的界面设计情况展开说明。
5.3.1 图书类别页面
图5-5 图书类别表运行结果页面
此页面可以显示所有图书类别添加,查看列表,等。并在列表上方附有图书查询功能。
5.3.2 图书信息页面
管理员拥有整个系统的所有操作权限,以上仅是对其中图书信息管理一项功能进行界面解说。其他各项功能操作界面都清晰明了,故不一一说明。
6 系统测试
6.1系统测试的目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。
本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
图书借阅系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在商城管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2系统测试方法
在对图书借阅系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让图书借阅系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个图书借阅系统开发所牵扯的该问题都必须一一解决,提高图书借阅管理平台的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
6.3 测试结果
经过对一系列测试结果的有效分析,本平台开发系统符合用户的要求和需求。所有的基本功能相对齐全,操作起来简单方便,测试系统性能良好,作为大众化系统使用是比较值得推广宣传的。
结论
此时项目已经完成,即使实施的时间不是很长,但是在这个过程中需要准备很长的一段时间去对系统设计开发所实际用到的技术进行学习和巩固。在学习的过程中,我逐渐认识到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是掌握了常用的性能和控制方法,我觉得还是相对来说挺容易的。从该系统中,系统的分析和设计的调查数据,已经经历了几个月,并且努力了几个月,该系统现在已经完成。很显然,该系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。
系统的开发环境和配置都是可以自行安装的,系在设计图书借阅系统的过程中还遇到了一个棘手的问题,那就是自己的英语水平还有待提高,很多关于网站技术开发的资料文献都是英文版的,关键词语以及技术性词汇不能很好的理解。只有在借助翻译软件的实时性翻译功能的辅助下才勉强看懂。显然英语水平的高低直接影响到系统的开发过程。
回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作的学习让我有了更多的信心,我相信在未来的路上,我会走的更好。
统使用nodejs开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言结合需求对数据库进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。
致 谢
毕业设计结束的同时也意味着四年的大学生活就要结束了。图书借阅系统的完成以及如何在系统运行过程中实现的更好,这其中付出了很大的努力,这段时光将会终身难忘。
在毕业设计的这一段时间里,离不开导师的细心指导,还有同学们的热情帮助,有时候几个同学在一起讨论系统中的某个功能模块如何实现,如何实现的更好,或是问题没得到有效的解决,就会没有心思做其他的事情,让我们对学习充满了动力。
在毕业设计即将结束之时,首先要感谢我的指导老师,谢谢您在毕业设计和毕业论文中对我的指导。在您的细心指导下我才能快速的掌握系统的相关功能,在您的大力帮助下我才能将课本上的知识与自己的项目结合,真正的做到学以致用。感谢您经常牺牲自己的休息时间,利用其丰富的教学和项目经验对我进行指导。 课堂上,您教会我们如何学习、教会我们新的知识,在课下,您又像朋友一样亲切,教会了我很多道理,让我意识到先做人、后做事。感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教诲、严谨教学才使我能顺利的完成学业,再此向你们表示深深的感谢。感谢大学里教过我的每一位老师,真心祝福您们。
在这里还得感谢我的战友们,也就是同学们对我的大力支持及帮助。正是因为有你们的不断帮助、鼓励,熬夜通宵,不停的调试、测试程序,给我带来了极大的动力,才能最终完成网站的运行。我们在一起交流、谈论的时光,都将是我们在通往未来道路上的宝贵财富。我要深深地感谢你们!
毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!
最后,我要向牺牲了休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!