论文技巧大全-基于SSM框架的网吧管理系统的设计与实现-CNKI知网查重网站

论文技巧大全-基于SSM框架的网吧管理系统的设计与实现

2021-06-07 16:25:18
作者:杭州千明

  在现如今这个被各种电子、科学技术充斥的社会下,每个行业都或多或少地涉及到先进的技术领域中,利用先进的技术来突出自己的优势壮大自己的业务范围和稳定业务,这其中就包括网吧管理系统。在互联网市场不断更新和丰富时,网吧的管理方式也随着改变,越来越多的管理者选择利用专业的管理系统来管理网吧,他们会根据自己的需求和想要实现的功能结合开发者的意见开发出一套与自己经营方式相符合的网吧管理系统。网吧管理系统利用交互的方式让管理者方便使用系统和系统一起管理网吧。利用系统来管理网吧可以减少很多繁琐的事情,比如:数据的记载,费用结算问题。所以有专业的管理系统来管理对网吧是有很大好处的。

  本网吧管理系统主要包括前台展示模块和后台的系统的管理模块。是基于现在比较主流的SpringMVC+Spring+MYbatis(SSM)框架下利用JSP技术开发的。数据库这一部分是利用MySQL来实现的。系统的页面和功能的设计主要根据使用者的需求和对其他系统取长补短来完成的。最后设计出了简洁美观容易操作的界面。

  这次做的项目主要从管理端和用户端两大方面入手。其中管理端从实现管理员对管理员、部门、订单、商品信息,维修记录,计时结算的管理功能入手。客户端主要是给用户来完成上下机结算时间费用,以及可以在这里进行店内商品点餐购买的功能。

  随着社会的发展进步越来越多的行业开始进行互联网的使用,互联网也为各行各业带来不少的改变和各种好处。并且越来越多的人主动或者是被工作性质所迫需要学习互联网,在互联网上进行工作交流或者学习。因而互联网将人们拉近在一起。无法想象现如今的社会在没有互联网的情况下该怎么进行工作和生活。如果没有互联网,可能会带来很多不便,诸如缺少了玩电子游戏的乐趣,好看的电视剧很难得到传播等等。在刚进入互联网的时代时,网吧行业也随之兴起。跟着也带来了网吧管理问题。经过了解较早之前的网吧管理存在一个主要问题是缺乏一个完整性高,运行强,高效,多功能的网吧管理系统。虽然在人工管理下会形成一个简易的客户信息,客户消费系统,但是这些系统在运行上,实现高效运行技术上还是不够完善。使用者操作起来也比较麻烦或者繁琐,或者系统功能不够齐全,因此需要开发出一个使用者可以简单学会,马上上手且功能齐全的网吧管理系统。

  1.2项目意义

  本网吧管理系统是基于SpringMVC+Spring+MYbatis(SSM)框架开发的,是现在企业级的开发的软件使用比较多的框架,操作简单,也减少了开发难度[1]。根据网吧类企业的特点,觉得SSM比较适合用在开发这个系统。同时我也可以利用到我所学习的SSM框架相关的知识,运用到项目实战中,可以检测自己的知识掌握的程度。

  本网吧管理系统还有一个比较特色的功能就是可以在系统上进行食物点餐(仅限于网吧上架的商品)。民以食为天,特别是在网吧中,不管是去玩游戏的人,或者只是无聊去看剧,或者是去查阅资料的人,都有可能会想要边吃点东西或者喝点东西边上网。而本次开发的系统最大的特就是在具备了网吧原有的管理的功能的基础上加上了购买商品的功能,这是别的网吧管理系统所没有具备的,也是开发这个项目的原因。

  1.3国内外的研究技术

  顺着时代的发展,SpringMVC+Spring+MYbatis(SSM)框架是继SSH框架之后Java EE企业级框架的使用主流,对于大型企业级应用系统的搭建比较适合[2]。Spring框架是的产生是从Rod Johnson发表的著名的作品中的某些理念和原型延伸拓展得来的。从2003年起它开始作为开发框架被广泛运用到级别较轻的Java开发中。而SpringMVC是负责获取资源和转发资源的,同时SpringMVC处理请求的方法是通过拦截来完成的,而且在处理过程中是不和其他共同享用请求资源的方法数据。并且SpringMVC是专门处理方法类的请求。这也是SpringMVC+Spring+MYbatis(SSM)框架替代SSH框架成为大型企业级应用系统的搭建成为主流的原因之一,也是我选择这个框架来开发系统的原因。

  1.4研究的内容

  本网吧管理系统,使用的是技术体系比较完善的JSP技术和被用来当做数据库的MySQL数据库以及SpringMVC+Spring+MYbatis(SSM)框架,提升了网络网吧管理系统的信息管理系统的安全性和技术性也具备了网站所有信息的处理[3]。

  网吧管理系统整个系统的构成分为管理员端和用户端。这样分开设计的原因可以使每个部分的功能点更具有针对性,也可以方管理者更好地利用系统进行管理,减少了工作负担,特别是在进行数据整理时也更加规范,按照一定格式进行数据整理和存放,也方便调出想要的数据,再查看时也一目了然。

  本论文主要分为七大部分,每个部分所介绍的内容如下:

  第一章、绪论,主要介绍了做这个项目的目的,项目做的内容是跟什么相关的,国内外对一些技术的研究。

  第二章、系统所使用的技术的介绍,主要介绍了此次开发的系统利用地技术,并对每个技术进行简单介绍,这样可以方便大家快速的理解开发的系统。

  第三章、系统分析对整个系统能不能开发进行分析,以及如果开发了整个系统应该具备什么的架构,系统的流程是如何完成的。

  第四章、系统设计针对第三章分析的内容来设计出系统的功能,每个模块所包含的部分,以及数据库应该怎么实现。

  第五章、系统实现主要介绍的是实现了第四章设计的功能,每个功能的界面是如何展现的。

  第六章、系统的整体测试,评判系统是否可以上线运行。

  第七章、总结,总的讲了整个系统开发所做所得的,以及不足的地方。

  1.5本章小结

  本章节主要介绍了本项目系统的开发背景和意义,其中项目意义分析了为什么选择开发这个系统。还介绍SSM框架在国内和国外的使用现状和产生的原因,以及使用这一技术的好处。本篇论文所描写的内容和设计出什么样的系统得部分主要在研究内容部门完成了叙述。

  2技术简介

  2.1 Spring技术

  Spring框架是的产生是从Rod Johnson发表的著名的作品中的某些理念和原型延伸拓展得来的。从2003年起它开始作为开发框架被广泛运用到级别较轻的Java开发中。它的产生是为了解决企业在开发项目中的复杂性。Spring的主要框架包括DAO,ORM,JEE,WEB,AOP,CORE。Spring并不局限于应用到服务器的开发,与Java应用有关的项目都可以从中获取好处。Spring框架图如下:

  图2-1 Spring框架图

  2.2 Spring MVC技术

  Spring MVC是具有代码的框架,而它的代码也让人容易理解和使用。在测试时由于其使用了IOC,使测试工作更加容易。在实现与其他的view框架合并时也比较容易[4]。

  2.3 MyBatis技术

  MyBatis技术被多人使用的原因是因为这个技术相对比较简单而且容易学习,占用的空间也比较少。不仅如此MyBatis还是一个持久层框架。此外不会影响到原有的程序和数据库。在xml中就可以使用SQL语句来实现操作数据库的需求。MyBatis技术的结构如下图所示:

  图2-3 MyBatis框架图

  2.4 JSP技术

  在开发项目的时候为了促进动态网站的开发,开发者一般会采用JSP技术进行开发。当开发的系统的形式是生成端和显示端分开的时候尤其喜欢利用JSP技术进行开发,因为JSP技术可以快速开发跨平台的动态网站[5]。

  在开发web应用程序的动态内容页面时开发人员会利用JSP将动态内容加入到网页中,这样就产生了JSP文件,后缀为(*.jsp)[6]。利用JSP技术开发JSP页面时开发者能够利用自己本来的技能和使用别人的组件是因为,JSP技术提供的组件具有可重用和跨平台。与此同时JSP还可以通过HTML页面将结果反馈到浏览器中,极大地提高了网页的运行速度[7]。

  因为此次设计的系统是分为管理端和用户端的,正好符合了JSP技术的生成和分离特点,所以使用此技术来开发是一个很好的选择。

  2.5 JAVA技术

  现在互联网上开发项目主要使用的语言Java。主要是因为Java很可靠又使用了安全模型的优势[8]。而我们的JSP技术正好可以使用Java来实现。

  JAVA特点:

  (1)在开发软件时已经广泛运用面向对象这个方法了,与此同时他已经变成了Java编程的标志之一了。面向对象最主要的优点是方便使用者理解现实世界和系统、代码之间是如何转换,如何实现的。它的原理是把现实世界的事物转换成对象,关系转换成类[9]。

  (2)Java具有跨平台的特点,正因为这个特点Java可以一边运行一边编写[10]。

  2.6 IDEA简介

  IDEA是应用项目开发的工具之一,具有很好的项目管理方式和开发效率很高,IDEA有统一的Global Library可以方便开发者统一管理所有开发部分[11]。IDEA实现了在编写代码的同时界面会随着代码的更新而变化,减少了界面更新查看的工作,提高了开发人员的开发效率。在IDEA编写代码时还会自动提示代码的值[12]。

  2.7 Tomcat服务器

  Tomcat是Apache的一个延伸拓展,主要是用来运行SERVLET和jsp页面[13]。Tomcat服务器主要通过映射客户端请求的URL到对应的servlet来实现处理请求的功能。在开发web应用程序的时候,Tomcat服务器为web服务器提供了Tomcat管理、Tomcat阀和控制平台等[14]。Tomcat也是在做动态内容网站使采用比较多的服务器。

  2.8 MySQL数据库

  MySQL数据库是现在在开发项目中使用比较多的数据库,他的语言简洁明了对初学者来说也是比较容易学习的,功能齐全强大,而且实现某项功能时只需要几句简洁的代码就可以完成[15]。在使用数据库的过程中我们可以不用了解MySQL存储数据的方式和方法就可以使用。操作使用起来也比较灵活方便简单[16]。此次的项目开发利用MySQL来作为数据库管理正是因为其功能齐全且操作简单。

  2.9本章小结

  本章节主要介绍了本项目系统运用的相关技术工具。其中技术包括:Spring技术,MyBatis技术,MyBatis技术,JSP技术,JAVA技术。开发工具为IDEA。服务器使用了Tomcat。数据库为MySQL数据库。还附上了一些相关技术的结构图来帮助理解。

  3系统分析

  3.1需求分析

  3.1.1系统架构分析

  本系统主要根据需求功能设计了管理端模块和用户端模块。管理员在管理端登陆后按照需求对管理员管理、部门管理、电脑信息、商品信息、维修记录、订单管理、会员管理、计时结算的维护操作,根据需求对订单信息进行在线统计操作,系统的整体结构就是围绕用户的网吧管理系统,管理员对商品信息及上网记录、订单查询进行相应的管理处理。会员可以在用户端首页浏览商品,对上网记录和订单记录进行查看的功能,以及退出登录等功能。以MySQL数据库作为数据采集和存储,订单的增删改查是用来mybatis的SQL的映射功能。系统的架构图如下面所示:

  图:3-1功能结构图

  3.1.2客户端分析

  客户端是给网吧的会员所使用的。会员用户登陆成功之后可开始用所具有的功能。其中所包括的功能为:用户登录功能,浏览首页功能,浏览订单记录功能,浏览上网记录功能,退出登录功能。账号已经有事先经过操作存放在系统的数据库中的用户可以直接使用进入到系统中,而数据中不存在的账号要先进行注册操作,存入数据库中才可以使用。登录成功之后,会员用户可以浏览首页展示的食物,当想要购买零食时可以在此页面进行浏览,并且可以浏览每一件商品的详细信息,如果有想要购买的时候还可以进行购买。此外会员用户还可以到订单记录中查看自己购买食物的订单详情,也可以从上网记录的功能中查看自己的上网记录,上网记录中会显示用户会员在此次上网过程中花费了多少金额以及此次上网过程中使用的时间,上网记录中还会显示用户每次来此网吧上网所产生的的每条上网记录。具体的网吧会员使用操作流程如下图所示:

  图:3-2客户端使用操作流程图

  3.1.3管理端分析

  使用者可以在这里使用设计的功能管理网吧。使用者通过使用账号密码进行登录,登录成功就可以使用管理端的所有功能。管理员可以使用的功能有:用户登录、管理员管理、部门信息、电脑信息、商品信息、维修记录、订单管理、会员管理、计时结算。管理员可以在管理员管理功能中对用户ID、状态、创建时间这些信息进行修改添加删除或者查询。对新增管理员进行用户名、所属部门、密码、邮箱、手机号进行添加,也可以修改管理员的基本信息。对于不用的管理员还可以进行删除,删除其基本信息以及所有相关记录。管理人员在部门信息这一页面时可以选择要修改的记录进行部门信息的修改,修改包括部门名称和排序号的修改,其中上级部门是数据库中所规定的的无法修改。在电脑信息这一模块管理者完成了对每台电脑的记录进行新增信息或者删除记录修改信息查寻记录的操作。其中包括电脑编号和电脑信息的增加修改删除以及电脑的上下机情况和创建人员进行查询。商品部分通过添加商品名称,商品价格,商品单价等信息来完成商品的新增,还可以删除商品记录和修改商品信息以及查询商品记录。管理人员可以在这里进行商品详情,商品图片进行上传,也可以下架删除已经卖完的商品信息。维修记录主要记载了需要维修的电脑的信息,以及是否维修好了。订单管理主要是对网吧的所有订单进行查看管理。会员管理实现了会员信息的增删改查,在这里可以添加新的会员信息,其中包括了会员的身份证和密码的添加,还可以查询每个用户的状态以及创建时间。计时结算主要是对用户的上网时间进行结算,在这里只需要输入电脑的编码就可以完成结算,可以自动计算费用以及上机时间。管理员在使用管理端的流程由下图展示:

  图:3-3管理端操作流程图

  3.2操作流程分析

  3.2.1登录操作流程

  由于本项目所做的平台是在网吧中使用的,而有一些功能是需要使用者先进行用户注册有了该网吧的用户信息之后才可以进行使用操作的,甚至有些功能是对会员进行开放的。这种做法也保障了网吧管理系统的安全性,防止一些有非法想法的人员随便登录一致于窃取网吧的管理系统的一些重要信息。

  首先系统的使用者打开所指定的系统登录窗口,管理者从后台的登录窗口进入,网吧用户从用户的客户端进入到登录窗口。进入到对应的窗口之后,输入登录信息,接着系统会对数据进行校验,如果校验正确,则会显示登陆成功,并且进入到功能界面,可以开始使用系统的功能。其中信息的验证和功能使用处理都会通过数据库来实现。反之,如果输入的信息错误,则无法进入到功能界面会返回系统的登录界面,直到信息输入正确才可以登陆成功进入到功能界面。登录的详细过程如下图所示:

  图:3-4登录操作流程图

  3.2.2信息添加操作流程

  此次设计的系统很多功能模块都有添加的功能。使用者如果想要添加新的信息可以通过添加这个功能来操作。首先点击添加按钮,会弹出一个弹框出来,使用者只需要根据所显示的内容填入符合格式的数据信息,点击保存,系统会自动审核该条信息是不是合法的,如果不是合法的就保存失败,如果是合法的就会保存成功,添加到数据库中。具体的操作流程如下所示:

  图:3-5增加新的信息的流程图

  3.2.3记录删除操作流程

  此次设计的系统很多功能模块都有删除的功能。使用者如果想要删除信息可以通过删除这个功能来操作。使用者点击勾选想要删除的记录然后点击删除按钮,就会有弹跳框显示删除成功,数据库也会进行更新。信息删除的操作流程如下所示:

  图:3-6信息删除操作流程图

  3.3本章小结

  主要通过对系统架构的分析,客户端的分析,管理端的分析,以及部分功能操作流程的讲解来完成本章节。其中系统的流程中包括用户登录操作流程、信息添加操作流程、信息删除操作流程。并且每一个操做流程都附上对应的操作流程。

  4系统设计

  4.1客户端设计

  4.1.1首页设计

  首页主要显示了网吧中上架的商品的信息,会显示商品的名称,价格,商品图片以及可以查看商品详情。首页所具备的功能如下:

  (1)浏览商品信息:用户利用登录系统成功进入到首页,按照自己的喜好浏览网吧上架的所有商品。首页上的每一个商品都会显示商品相关的图片,商品名称,商品价格,商品简介,查看详情按钮。

  (2)查看详情:用户如果想了解商品的详情可以利用查看详情按钮来实现。

  (3)购买商品:查看完商品信息之后,如果有想要购买的话可以选择购买的数量,并选择立即购买进行下单。

  4.1.2订单记录设计

  订单记录主要记录了用户在网吧管理系统购买的商品的详情,用户可以在这里查看自己所购买过的记录,以及查看记录详情。每条记录主要记录了购买的商品,购买的数量,商品单价,总价的信息。

  4.1.3上网记录设计

  上网记录主要记录了用户在此网吧的上网消费情况,在这里用户可以查看自己每次上网后生成的上网记录。上网记录包括所使用的电脑编码,开始时间,结束时间,产生的费用。

  4.2管理端设计

  4.2.1管理员管理设计

  在这个模块主要实现了管理员对信息是如何管理的。具体地可以通过输入用户名来查询相关管理人员的信息,包括:ID,用户名,状态,创建时间。可以通过添加新的管理员用户来创建新用户的用户名,密码,邮箱,手机号,状态,所在部门信息。也可以通过修改和删除功能来管理错误的管理员信息。

  4.2.2部门管理设计

  管理员可以在这里修改和查看部门信息,查看的部门信息包括部门ID,部门名称,上级部门,部门序号。修改的功能主要从对部门名称和排序号的修改来实现。

  4.2.3电脑信息设计

  电脑信息设计包括的电脑记录的增删改,以及可以查看电脑的信息的详情包括:电脑ID,电脑信息,电脑编码,上机时间,下机时间,创建人。可以对电脑信息和电脑编码进行修改。

  4.2.4商品信息设计

  商品信息设计包括的商品记录的增删改,以及可以查看商品的信息的详情包括:ID,商品名称,商品价格,商品图片,创建时间,创建人。可以对商品名称,价格,图片进行修改。可以添加新的商品和删除不想要的商品。

  4.2.5维修记录设计

  维修记录设计包括的维修记录的增删改,以及可以查看每条记录的详情包括:ID,电脑编码,原因,描述,时间,状态,创建时间,创建人。可以对ID,维修原因,维修描述,维修时间进行修改。也可以添加新的记录。

  4.2.6订单管理设计

  在这里可以查看所有订单记录,查看的详细内容包括:ID,商品名称,商品价格,商品图片,数量,总价,订单状态,创建时间,创建人。

  4.2.7会员管理设计

  管理者可以处理用户的信息。可以通过输入用户名来查询相关用户的信息,包括:用户ID,用户名,状态,创建时间。可以通过添加新的用户的身份证,密码,状态来创建新用户。也可以通过修改和删除功能管理错误的用户信息。

  4.2.8计时结算设计

  在这个模块可以查看每一条结算的信息,具体的信息包括:ID,电脑编码,上机时间,下机时间,上机时长,上机费用,创建时间,上机人。也可以通过添加电脑编码来添加新的结算记录。

  4.3数据库设计

  4.3.1概念设计

  数据库是用来存储整个系统数据信息的地方,总所周知,数据一旦多了就容易出错,所以只有设计好了数据库,系统才方便管理数据。设计好数据库的前提就是先对项目中的实体进行关系分析,设计好实体与实体间的关系。做好了这一步骤也可以为设计数据库减少设计的复杂性,也提高了工作效率。

  以下我对部分信息,画了信息实体属性图,并根据其信息实体属性图设计数据结构,并对数据结构进行分析。实体属性图主要从订单、管理员、电脑、商品的实体属性图来体现。

  由下图管理员信息实体属性图,得出数据结构,具体的数据结构如下:

  管理员(编号,用户名,密码)主键为:编号。

  其中对管理员的属性图设计如下图所示:

  图:4-1管理员实体属性图

  由下图订单属性图,得出数据结构,具体的数据结构如下:

  订单信息(商品名称,介绍,价格,商品数量,地址,手机号,总价格,订单状态)主键为:手机号。对订单的属性图的设计如下图所示:

  图:4-2订单信息实体属性图

  由下图实体属性关系图,得出商品信息的数据结构,具体的数据结构如下:

  商品信息(ID,名称,价格,商品图片,创建时间,创建人)主键为:ID。

  对商品信息的实体属性图的设计如下图所示:

  图:4-3商品信息实体属性图

  由下图电脑信息实体属性图,得出数据结构,具体的数据结构如下:

  电脑信息(ID,商品名称,商品价格价格,商品图片,创建人)主键为:ID

  电脑信息实体属性图的设计主要从下图来体现:

  图:4-4电脑信息实体属性图

  4.3.2数据表

  在网吧管理系统中由于设计了计时结算的功能,所以利用Quartz数据库配置方法来处理计时任务。

  Quartz主要提供了CronTrigger,CalendarIntervalTrigger,DailyTimeIntervalTrigger以及SimpleTrigger这几个triggers。其中blog类只会储自定义的triggers。本系统生成的qrtz_blob_triggers表如下面所示:

  表:4-1 qrtz_blob_triggers表

  列名数据类型长度约束

  SCHED_NAME int 120 PRIMARY KEY

  TRIGGER_NAM varchar 200 NOT NULL

  TRIGGER_GROUP`varchar 200 NOT NULL

  我们可以利用Quartz的日历功能自己定义时间段,可以控制触发器触发的时间;主要的Calendar类型有如下几类:AnnualCalendar,CronCalendarDailyCalendar,HolidayCalendar,MonthlyCalendar,WeeklyCalendar。本系统生成的qrtz_calendars数据表如下面所示:

  表:4-2 qrtz_calendars数据表

  列名数据类型长度约束

  调度名称可变长度类型120主键

  日程表名称可变长度类型200不为空

  CronTrigger可以指定触发的时间表和选择指定的时间,其触发的事例代码为“0 30 09**?”这个示例代码表示每天早上9:30触发。本系统生成的qrtz_cron_triggers数据表如下面所示:

  表:4-3 qrtz_cron_triggers数据表

  列名数据类型长度约束

  调度名称可变长度类型120主键

  外键varchar 200 NOT NULL

  TRIGGER_GROUP varchar 200 NOT NULL

  CRON_EXPRESSION varchar 120 NOT NULL

  `TIME_ZONE_ID varchar 80 NOT NULL

  fired已经触发的trigger信息主要利用fired来存储。Cron方式的Quartz触发时间的配置需要用到此表。在这种触发器中,trigge信息是否会被数据表删除,主要取决于trigger是否完成了执行,虽然在执行的过程中只要时间发生了变化trigge的状态就会发生变化,但是触发器还是可以进行判断。本系统生成的qrtz_fired_triggers数据表如下面所示:

  表:4-4 qrtz_fired_triggers数据表

  列名数据类型长度约束

  调度名称整型120主键

  调度实例ID varchar 200 NOT NULL

  TRIGGER_NAME`varchar 200 NOT NULL

  TRIGGER_GROUP varchar 200 NOT NULL

  INSTANCE_NAME varchar 11 NOT NULL

  PRIORITY`int 11 NOT NULL

  STATE varchar 16 NOT NULL

  `JOB_NAME varchar 200 NOT NULL

  JOB_GROUP varchar 200 NOT NULL

  `IS_NONCONCURRENT varchar 1 NOT NULL

  `REQUESTS_RECOVERY varchar 1 NOT NULL

  jobDetails的功能主要是被job用来存储特别指定的实例的信息和通过调度器来添加实例。不仅如此job的很多设置属性都是从jobDetails得来的。jobDetails实例是通过jobBuilder类静态导入所构建的。其实现代码为:import static org.quartz.JobBuilder.*

  本系统设计的qrtz_job_details数据表如下面所示:

  表:4-5 qrtz_job_details数据表

  列名数据类型长度约束

  调度名称可变长度类型120主键

  集群中job的名字可变长度类型200不为空

  DESCRIPTION varchar 200 NOT NULL

  JOB_CLASS_NAME varchar 250 NOT NULL

  IS_DURABLE varchar 1 NOT NULL

  `IS_NONCONCURRENT varchar 1 NOT NULL

  IS_UPDATE_DATA varchar 1 NOT NULL

  REQUESTS_RECOVERY varchar 1 NOT NULL

  scheduler存储的所有节点都会定安排固定的时期检查是不是还可以用,有没有失效。本系统设计的qrtz_scheduler_state数据表如下面所示:

  表:4-6 qrtz_scheduler_state数据表

  列名数据类型长度约束

  SCHED_NAME`int 120 PRIMARY KEY

  INSTANCE_NAME int 200 NOT NULL

  4.4本章小结

  本章分为客户端设计,管理端设计,数据库设计。客户端设计又分成:首页设计,订单记录设计,上网记录设计。管理端设计分成:管理员管理设计,部门管理设计,电脑信息设计,商品信息设计,维修记录设计,订单管理设计,会员管理设计,计时结算设计

  5系统实现

  5.1登录功能模块

  用户通过进入网站,在下面这个界面填写规定的问题,输入无误后,进行登录操作,如果没有账号的必须要先注册账号,在进行登录,如下图所示:

  图:5-1登录界面图

  在这里登录界面运用了spring控制反转技术来实现,其实现的代码如下:

  this=new Vue({

  el:'#rrapp',

  data:{

  用户名:'manager001',

  密码:'manager001',

  验证码:'',

  error:false,

  errorMsg:'',

  src:'captcha.jpg'

  },

  beforeCreate:function(){

  if(self!=top){

  top.location.href=self.location.href;

  }

  },

  methods:{

  refreshCode:function(){

  this.src="captcha.jpg?t="+$.now();

  },

  登录:function(){

  定义data="用户名="+this.用户名+"&密码="+this.密码+"&验证码="+this.验证码;

  $.ajax({

  类型:"POST",

  路径:"sys/login",

  data:data,

  数据类型:"json",

  成功:function(){

  InputStream getInputStream(){

  if(this.clazz!=null){//登陆成功

  is=this.clazz.getResourceAsStream(this.path);

  }else{

  is=this.classLoader.getResourceAsStream(this.path);

  }

  }

  });

  }

  }

  });

  5.2管理端模块

  管理员使用账号登陆成功获取功能菜单,实现了管理员、部门、电脑信息、商品信息、维修记录、订单、计时结算的处理功能。

  管理员管理:通过列表进行获取用户名,用户ID,状态,创建时间的记录,也可以对列表进行增删改查。当使用者想调出某个管理员的资料的时候,可以在查询框输入改管理员的名字然后点击查询按钮,该管理员的资料就会显示在下面的记录中,这里的查询操作是利用mybatis的SQL映射来完成的。如下图所示:

  图:5-2管理员管理界面图

  部门管理:使用者可以查看所有与部门相关的记录,也可以选择信息有误的记录进行修改。修改功能针对的是部门名称和排序号的修改。设计这个功能的作用是为了有连锁型的网吧可以使用。在这里可以了解到总共有几个部门,分别叫什么,还可以清楚地知道,每一个部门的上级部门是哪个。如下图所示:

  图:5-3部门管理界面图

  电脑信息:使用者可以在这里添加新的电脑的信息,也可以选择信息有误的记录进行修改或者删除。当网吧内购买了新的电脑的时候,就可以在这里使用新增的功能,对新购买的电脑进行编号,并把电脑的资料存到系统的数据库中,和其他电脑一起管理。这个功能还有一个好处就是:当有顾客到店问还有没有位置的时候,工作人员可以不用在网吧内到处走就可以知道哪台电脑是没人在用的,这主要是因为在这里还会记录每台电脑的什么时候有人上机,什么时候客人已经退出系统下机。在这里还可以看到每台电脑的详细信息:编码,上机时间,创建人等,如下图所示:

  图:5-4电脑信息界面图

  维修记录:通过列表可以进行获取ID、电脑ID、维修原因、维修描述等内容,还可以添加新的电脑的信息,如果发现电脑信息的记录有错误的还可以选择修改,不想要的也可以删除。只要网吧内的电脑有维修过或者是现在处于故障状态不能使用的话,都会形成一条记录显示在这里。我们可以通过状态的内容准确地知道出现需要维修的电脑是不是已经有人来处理了,是不是已经可以正常使用了。如下图所示:

  图:5-5维修记录界面图

  计时结算:通过列表可以进行获取ID、电脑编码、上机时间、下机时间、上机时长、上机费用、创建时间、上机人等信息,在网吧内一旦用户端开始启动,系统便会开始自动计时用户的上网时间,并产生相应的费用。在用户发起下机申请时,计时计费功能会自动停止,并且生成会员的消费账单,然后管理员只需要在管理端输入对映电脑的编码就可以进行结算操作。如下图所示:

  图:5-6计时结算界面图

  在管理端系统的视线中,每个功能模块的增删改查功能使用的技术都是通过mybatis的SQL映射,通过controler控制器,调用service接口实现数据库持久化。其中查询功能使用了<select id="queryByKey"parameterType="string"resultType="com.system.modules.sys.entity.SysConfigEntity">select*from sys_config where param_key=#{paramKey}</select>语句来实现。

  删除功能使用了下面的语句来实现。

  <delete id="deleteBatch">

  delete from sys_role_dept where role_id in

  <foreach item="roleId"collection="array"open="("separator=","close=")">

  #{roleId}

  </foreach>

  </delete>

  5.3用户端模块

  用户登录成功后可以在首页浏览商品信息,这里的商品主要是网吧内自己提供的食物,用品等,用户可以根据自己的喜好浏览商品。用户还查看自己的之前买过的东西的订单记录。如果想看自己来过几次这个网吧可以从上网记录中看到记录,并且可以退出登录,如下图所示。

  图:5-7网站界面图

  用户可以根据自己的喜好浏览商品,碰到想了解的商品,可以点击查看详情按钮,就会出现商品具体信息的界面,可以看见商品的图片,价格等内容。可以在数量选择框中选择自己想要购买的数量。了解完商品和确定数量之后,就可以点击立即购买按钮,进行下单,系统会自动将请求反馈到管理端,工作人员就会把你购买的东西送到你的位置上。如下图所示。

  图:5-8商品详情界面图

  订单记录:用户如果想查看自己购买过的东西的记录可以从订单记录按钮进入,就可以看见自己买过的所有订单的记录,主要记录了买过的商品,购买的数量,总的价钱等,如下图所示:

  图:5-9订单记录界面图

  上网记录:通过上网记录,可以查看电脑编码、开始时间、结束时间、费用等上网记录,进行查看操作。如果用户想知道自己每次上网的费用大概是多少钱的话,可以在这里看到,还可以从开始时间和结束时间算出自己上网用了多少时间。还可以从这里知道自己到底来这家网吧几次,以及每次来的时间。如下图所示:

  图:5-10上网记录界面图

  5.4本章小结

  本章节主要介绍了系统的实现,主要包括三个大方向:登录功能实现,客户端实现,管理端实现,数据库实现。客户端实现又分成:首页实现,订单记录实现,上网记录实现。管理端实现分成:管理员管理实现,部门管理实现,电脑信息实现,商品信息实现,维修记录实现,订单管理实现,会员管理实现,计时结算实现。并附上了各个部分界面实现图,还附上了系统所用技术的编码。

  6系统测试

  6.1测试目的

  系统测试是每个项目开发过程中必须要经历的环节,只有经历了测试阶段一个系统才算初步的完成。在测试的过程中我们可能会发现系统的某个部分出现了问题不能进行运行,那么我们就针对该问题进行改正,况且我们是为了发现系统的更多缺陷才进行测试的,这就是系统测试的目的。好的测试是可以发现难以发现的缺陷,并进行改正。我们把系统交给客户的时候也是要先进行测试,才可以提高系统顺利运行的概率。现在测试方法多种多样,我们可以选取适合自己系统的测试方法,进行测试,也可以使用多种测试方法进行测试,防止遗漏了难以发现的系统缺陷。

  6.2功能测试

  项目设计和编写完成后,需要对项目中的功能进行测试,在系统界面上,进行功能操作,使用添加的功能的时候可以添加一条新的记录看能否添加成功,删除信息的时候可以选择一条记录进行删除,操作完看数据库是否还存在该条记录等功能测试,还要测试系统在运行过程中是否会出现问题,比如点了按钮却没有反应,运行过程中出现卡顿等原因,测试完还要根据结果来解决问题,以保证系统的实用。以下是部门功能的测试:

  (1)登录模块测试:当用户使用未注册过的账户进行登录时,会有弹出框显示登陆失败,这就相当于无法登陆系统;当用户使用注册过,并存入数据库中的账号进行登录,会弹出框显示登陆成功,登陆成功即可使用系统。通过测试。

  (2)管理员模块新增功能测试:使用者添加新的管理员的信息时需要填入符合格式的字符串内容才可以添加成功;当在添加信息格式不正确,会弹出弹框显示添加失败。通过测试。

  (3)计时结算模块测试:管理员要添加新的结算时,点击结算输入电脑编码就可以完成结算。结算失败的原因主要是因为输入了错误的电脑编号,系统和数据库无法识别才会出现错误;当输入的电脑编码是正确的,系统和数据库就会成功识别并且完成结算。通过测试。

  测试的测试用列表由下表展示:

  表:6-1测试用例表

  名称用例操作预期结果用例类型测试结果

  登录输入已经存在的账号输入存在的数据,进行登录登录成功功能点与预期一致

  添加新的管理用户输入格式错误的信息进入新增页面,在创建日期栏输入不带—的数字,进行添加输入错误,添加失败功能点与预期一致

  计时结算输入不存在的电脑编码进入结算界面,输入数据库中不存在的电脑编码结算失败功能点与预期一致

  6.3测试结果

  本次系统的测试主要针对系统的登录模块以及新增和结算功能进行测试。在一个系统中登录是在开始的环节也是最重要的环节,只有登录系统可以使用了,才有办法使用系统。测试出来的结果和预期的的结果一样,由于自己觉得系统做得还不够完美,觉得还有潜在的问题没有发现,之后会对整个系统进行详细测试,然后解决出现的问题,让系统更加完美。