摘 要
随着我国经济的快速发展,各大城市的餐厅数量与日俱增。而与之配套的设施设备、菜品等种类繁多、数目庞大。如何更好管理餐厅日常设备设施、菜品库存,使得管理方法科学化、流程顺畅化、目标精准化、耗费低能化是各大餐厅管理部门在实践中探索的问题。
本文设计的收银管理系统以中小型餐厅为主要调研对象,采用传统的程序代码加数据库的设计思想,利用Java语言进行程序代码的编制,数据库系统采用小型化的MySQL数据库系统,从而实现程序从框架分配、功能定位、数据存储等多个环节的系统开发工作。该收银管理系统以用户所需为出发点,设计符合用户需求的收银管理系统,从使用习惯、环境风格特点等多个方面综合考虑进行开发,为用户提供更为贴心细致的服务。
收银管理系统改变了餐厅日常管理低效、混乱无序的状态,实现信息统计快速化、全面化,为餐厅的日常管理提供高效的工具。
关键词:餐厅收银 管理系统 Java MySQL
目 录
第一章 绪论
1.1 开发背景
1.2 开发意义
1.3 研究现状
第二章 系统开发技术
2.1 B/S模式
2.2 Java语言
2.3 MySQL数据库
2.4 UML建模技术
第三章 收银管理系统分析
3.1 系统开发目标
3.2 可行性分析
3.2.1 技术可行性
3.2.2 操作可行性
3.2.3 经济可行性
3.3 功能需求分析
3.4 性能需求分析
第四章 收银管理系统设计
4.1 系统运行架构设计
4.2 系统功能框架设计
4.3 系统数据库设计
4.3.1 概念设计
4.3.2 物理设计
第五章 收银管理系统实现
5.1 管理员功能实现
5.1.1 菜品管理
5.1.2 账单查询
5.1.3 进货单查询
5.2 收银员功能实现
5.2.1 桌位管理
5.2.2 订单新建
第六章 系统测试
6.1 目的与意义
6.2 过程与方法
6.3 测试小结
第七章 结 论
致 谢
参考文献 31
第一章 绪论
1.1 开发背景
信息化管理是伴随着计算机、网络等技术发展而诞生的,信息化管理覆盖社会各个方面。从小百货到餐厅,虽然跨越了近百年,但餐厅形成规模是上个世纪八十年代,伴随着餐厅的便利性、盈利性等优势的出现,餐厅在数量和规模上都呈现上升态势。但同时应该看到,在餐厅的管理方面暴露的问题也越来越多了。
首先,餐厅的管理方法存在随意、主观判断、缺乏科学分析统筹的问题,餐厅在菜品的配置、价格的统计分析、季节盈利变化等多个方面的分析缺乏数据的支撑,而背后存在的问题就是不具备一个系统化的管理工具来实现对菜品、价格、客流量等关键数据的统计管理及分析[1]。打破传统的单一的对菜品的管理模式,引入新的技术实现,实现管理的新突破。在早期的百货模式,甚至现存的一些小型百货店,还简单的依赖几个售货员。从菜品摆放、取拿、结账、找零等还是依靠原始的人工方式。人工方式不仅在统计、结算、盘点库存等方面存在速度慢效率低等问题,在购物高峰期也容易造成人员排队阻塞、菜品供需不平衡等问题。
其次,餐厅的最大优势是顾客可以随意选择自己购买的菜品,将自主权交给顾客,而在选择完毕进行一次结算,这给顾客和收银员都带来了便利。而传统的餐厅管理模式并没有体现上述的便利性,而信息化的快速发展,催生了新的收银管理系统,餐厅管理向着更快更好的方向发展[2]。信息技术的应用,不仅将录入、结算、甚至称重等环节纳入了整个管理流程,利用信息技术下的收银管理系统,也可实现对货品的管理、对顾客的管理、对数据的统计等,管理过程更科学。
1.2 开发意义
信息技术在餐厅管理上的应用,主要体现在对菜品、人员等信息的采集及对上述信息的处理上。通过该系统,不仅能够实现对菜品流通过程的管控,也可以实现对员工、顾客的管理,可以利用数据进行统计分析,为货物的采购等提供事实参考。从人员层面看,可以了解餐厅人员的消费能力,并根据顾客的消费水平采购对应的菜品,有利用顺应季节推出促销计划[3]。同时,信息化的收银管理系统不仅能够促使购物、结算流程更为顺畅,更重要的是减少了人力成本的投入。随着系统的升级,条码扫描、货物自动识别、自动称重、自动打码等均会促进管理系统自动化水平的提高。让更多的人体会到购物的快乐,提升本餐厅在同行中的竞争资本。综上所述,餐厅管理模式的改革对餐厅的发展前景具有重要意义。通过对现实餐厅的调研,信息化技术都有不同程度的应用,并且涵盖的各个方面,比如货物管理系统、货物采购系统、餐厅员工管理系统、餐厅数据分析系统等,虽然名称不同,但可以看出,信息技术被应用在餐厅的方方面面。本系统对上述功能进行了综合,功能更为强大,涵盖了餐厅进货、仓储、收款、报表分析等多个功能。通过本系统可以实现菜品的录入,并形成进货单据、仓储单据等,也可以利用顾客人员信息进行价格等方面的优惠,形成会员名单[4]。此外,根据餐厅销售的同比、环比成绩对菜品、价格等方面进行调整,完成数据统计工作。为了提高系统的安全性,对收银管理系统设置不同的角色,行使不同的功能,本系统共设置了三种角色。通过三个角色行使不同的功能,促进餐厅的有效管理、提升管理效率。
1.3 研究现状
餐饮行业的收银管理系统的发展经历了从人工管理、计算机辅助管理到计算机智能管理的几个阶段。随着计算机在我国的普及,更多的功能由计算机替代工作人员来完成。至上个世纪末,互联网异军突起,全面进军行业各个领域,互联网影响了人们的生活和工作方式。餐饮、医疗、购物等等,人们可以足不出户就可以通过互联网进行预约、购买等行为[5]。互联网改变了人们对购物、销售的传统观念。现阶段一些餐饮市场没有进行信息化建设,有的基于早期开发语言的收银系统过于基础,缺少集成化,操作界面简陋,这与当今“互联网+”发展的规模形成强烈对比,开发新形势下的管理网站呼之欲出。早期的收银相关的网站采用客户端加服务器结构,用户需要在执行末端安装专用的执行程序。后期,新的网站采用了浏览器加服务器的模式,用户不再需要安装特定的执行程序,通过浏览器即可完成对网站的访问。浏览器加服务器模式开发语言集成化程度高,促进程序的开发效率,从软件开发、使用、网站升级、维护等各个环节更为科学合理。随着通讯技术的发展,人们对手机的依赖性强于以往任何一个时代,手机影响着人们生产生活的方方面面[6]。这不仅由于手机本身功能等的完善,更取决于手机背后的强大的潜在的互联网发展。浏览新闻、刷视频、学习等活动,人们的生活高度依赖手机。而计算机信息管理系统,就是众多的赖于手机的一个活动。计算机信息管理系统的出现与人们生活节奏的提高密不可分,计算机信息管理系统的使用群体逐年剧增,而随着人们生活理念的改变,计算机信息管理系统行业将有更大的空间等待填充[7]。与我国发展现状相比,欧美等西方国家在信息建设方面起步较早,较早就形成了稳定的开发团队,从开发语言、平台、软硬件等多个方面形成了网站化、规模化。
第二章 系统开发技术
2.1 B/S模式
为了增强系统设计的灵活性、维护的便利性,摒弃了以往的C/S设计模式,采用了B/S模式进行设计,在程序设计、实现、维护等多个环节更为便捷。采用B/S模式具有以下三点优势,其一,使用用户只需要知道系统所在的网络路径,便可以通过互联网浏览器实现对系统平台的访问。从用户所输入的网址,到代码解析、数据库访问、数据应答、信息反馈等一系列操作都由系统自动完成,用户操作更为简单化[8]。其二,代码最小化,对于用户所需要的平台代码,用户不需要安装额外的组件或代码,减少了用户的本地存储空间及操作,所有的操作代码被统一布置在服务器上。其三,通过B/S模式开发的产品,具有易维护的特点,对功能的升级只需要升级服务器端的代码即可,系统维护具有高效、便利的特点。B/S模式结构原理见图2.1所示。
图2.1 基本的B/S结构图
2.2 Java语言
在网络编程领域,采用Java语言所进行开发的网络产品占有极大的比例,这与Java的易用性、灵活性等特点分不开的。首先,同大多数语言一样,Java语言是一种面向对象的语言,其封装性等功能使得程序编制更为灵活。其次,Java专门开发了针对网络编程的技术,即丰富的网络接口函数以及网络虚拟机工具[9]。最后,Java语言与开发平台具有很好的融合性,通过Java开发的产品,与系统平台具有很好的融合性,从功能、风格上实现完美统一。另外,Java语言具有以下特点:
(1)Java语言具有简单通俗的特点,与大多数编程语言相比,Java语言取长补短,集成了封装性的优势,同时将不易理解的类继承、同名函数重载等概念进行舍弃,让程序员将更多的精力放在开发程序本身。
(2)同大多数语言一样,Java具有面向对象的特点,通过面向对象,实现对程序的封装,程序功能更为专一,抵御外界风险能力增强,同时保留面向对象的对外接口,使得程序的维护和函数调用简单方便。
(3)数据类型标准化。Java虽然具有多种的数据类型,但同大多编程语言一样,每种类型都有固定的定义,这使得不同语言的程序产品在调用数据的时候具有通用性,而不需要进行额外的数据类型转换。
2.3 MySQL数据库
根据系统数据需求特点,数据库采用了MySQL数据库系统。该数据库系统所占用空间小、实用性强、易于维护,上述特点使得MySQL长期以来一直备受青睐,MySQL在Oracle公司众多产品中占有重要位置[10]。该数据库具有以下特点:
首先,MySQL在编程语言上采用标准的数据库语言,这使得通过其打造的产品可以在不同的平台系统之间被调用,具有复用性强的特点;
其次,MySQL数据库在数据存储机制上进行了规范化处理,除了优化数据存储空间外,在数据搜索的方式上进行了优化,提升了搜索速度;
最后,MySQL数据库产品代码具有可重复利用的特点,程序开发者可以对前期产品进行升级改造,极大提高了开发效率。
2.4 UML建模技术
UML(全称为 Unified Modeling Language)是统一建模语言的英文缩写,它在进行软件程序开发时为开发者提供标准的可视化流程,方便开发人员对开发工作进行梳理,直观的反映出应用程序的工作流程。UML被广泛的应用在各类建模场景中,以满足程序开发的需要。
统一建模语言的设计与具体的程序开发无关,它在语法组成上与其它的开发语言类似,具体可分为语法及固定的词汇,通过建模可以对程序的开发业务进行梳理,并形成统一的开发标准[11]。在UML中的固定词汇主要是指用来进行建模的基本元素,并对进行定义,已表现出它的含义,比如像构件、接口等;语法则是用来反映出基本元素之间的关系,它是对现实模型的物理映射,并通过特定的规则来进行说明。
第三章 收银管理系统分析
3.1 系统开发目标
本系统的目标主要为了促进餐厅日常管理的信息化建设,餐厅管理员可以及时了解各类菜品购销存的相关数据信息,为餐厅管理人员提供便捷的在线信息查询等事宜[12]。这样的餐厅购销存管理信息化管理模式可以使得餐厅管理的菜品基础信息、销售信息等数据得到集中统一管理,便于相关部门对数据调用和深入分析,为进一步建设信息化餐厅夯实基础。
系统采用的运行模式为B/S,本系统的开发严格按照软件工程的规定进行任务分配,系统的开发流程如图3.1所示。
图3.1 系统开发流程图
3.2 可行性分析
收银管理系统主要实现该校对餐厅菜品基础信息、销售信息等事务管理,下面从四个方面分析该系统实现的可行性。
3.2.1 技术可行性
根据对软件开发行业的调研,开发收银管理系统需要确立两项关键性的技术,其一是系统的框架模式,其二是编程技术,综合分析,前者采用B/S架构,后者采用Java语言+SSM框架。上述技术被行内广泛使用,具有成熟规范的特点,业内针对二者的相关开发经验也比较多。
正因为如此,对于新入手的编程者,学习均可通过网络进行。网络学习,不仅具有系统性特点,最大的优势是网络网罗众家之长,技术上的重点、难点均具有有效的获取途径,同时,在程序开发过程中的关键环节,均可以请具有丰富经验的前辈进行实地指导[13]。综合上述分析,开发收银管理系统在技术上,不存在问题,是可行的。
3.2.2 操作可行性
在餐厅菜品销售和管理的工作过程中,共涉及三类人员,即管理员、进货员和收银员。上述人员均为收银管理系统的使用对象。
针对上述对象,首先对使用群体进行了角色分配,并对每个角色布置了相关的功能,功能以页面的形式进行体现。这样设计具有条理清晰,功能划分区分明显,程序维护方便。同时页面操作具有简单明了容区分等特点,提高对用户群体的适应性。综合以上,开发收银管理系统,能够适应用户的使用要求,具有操作可行性。
3.2.3 经济可行性
收银管理系统旨在信息管理流程最优化、信息利用最大化、服务目标精准化。该系统对提高生餐厅的保障能力、提升餐厅的服务品质、树立良好的餐厅的形象具有重要意义。管理系统除了在前期需要相关的软硬件投入外,在系统投入使用后,需对系统的数据进行维护,并根据需求对软件进行系统升级。相比餐厅在收银管理系统上的投入,软件所取得的经济价值及社会效益以及远景期望价值均具有不可限量的价值。综合以上分析,开发收银管理系统具有经济可行性。
3.3 功能需求分析
收银管理系统在主要业务线上主要操作对象包括“收银员”、“进货员”以及“餐厅负责人”,根据业务线的需求,主要需要设置具有三种功能角色的用户,即具有订单创建需求的“收银员”角色,具有进货单创建需求的“进货员”角色以及完成该收银管理系统基础数据的系统“管理员”角色。为了完成上述三种角色的需求分析,需要对UML方法进行了解[14]。UML具有通用性的特点,实际上其是实现各个角色定义的打造程序模型的标记性语言。一个系统的总体布局、功能分布、程序走向、流程分支等均可通过UML进行识别,并以此为依据,确定程序的实现走向。通过对餐厅业务主干线的分析,建立起UML模型,该系统功能用例如图3-2。
图3.2 系统总体用例图
3.4 性能需求分析
(1)实用性
收银管理系统在操作性上要满足不同层次等级的计算机客户群体的使用需求,在操作界面设计上,除了合理的功能分布及布局外,还要设定好相关的导航提示,同时要具有防差错设计,最大可能杜绝因为系统设计考虑不足,而产生由于用户操作造成的系统坍塌、数据崩溃等问题。
(2)可扩展性
信息技术日新月异,在程序设计的初期就要将产品的可扩展性充分考虑进去。在程序设计的时候,要进行模块化设计的思想,使得每一个模块具有可替代性,而又不影响整个系统的运行,这对提升系统的性能具有积极的意义。
(3)可维护性
系统的维护,除了对系统的程序产品定期升级外,也要考虑系统发生故障时,对故障的查询有据可依,这在数据库设计的时候要保留操作、运行数据的记录存储空间,并在数据库终端可以进行查询,作为排除故障的重要依据。
(4)整体性
在进行系统开发过程中,不仅要考虑统一批次程序产品,不同模块之间的数据之间的统一性,也要考虑不同批次程序产品,不同模块数据之间数据统一性问题,并由此避免因为数据的不统一而产品数据调用失败,进而引起系统运行故障。
(5)安全性
系统运行安全是客户利益最根本的保障。为了提升系统安全性,在对系统进行数据、资源的配置时,要进行合理的分配,二者要做到统一。严格的用户认证体系、权限分配体系也是系统安全性的重要保证。除此之外,系统数据要做到随时备份及加密处理,避免数据被认为破坏和盗取。
第四章 收银管理系统设计
4.1 系统运行架构设计
收银管理系统的设计包括用户层、应用系统层及数据层,具体如图4.1所示。系统架构中的用户层为呈现在使用用户面前的程序界面元素,包括系统的按钮、单选框、各类控件等元素。应用层是程序中最重要的层架构,程序中的数据走向、函数调用以及数据库访问等均有应用层来实现,应用层为上述操作制定了程序执行标准,任何应用层程序都应遵循上述标准。对于本系统而言,业务应用层包含了对收银管理系统的各个模块的逻辑管理,包括对员工的管理、对菜品对象的管理、对订单对象的管理、对进货单对象的管理等[15]。系统用户通过用户层才能实现对数据层的间接访问,而用户层是通过应用层来访问数据层,也就是说,直接与数据层逻辑运行的是应用层,没有应用层,用户是无法实现对数据层的访问。数据层是数据的终端存储仓库,数据层的数据根据用户的操作不同,数据处于不断更新过程,数据层的安全稳定可靠是程序正确运行的重要保障。
图4.1 收银管理系统体系架构
4.2 系统功能框架设计
该收银管理系统的用户类型主要包括收银员、进货员和管理员三类,按照操作对象不同,所具有的操作权限不尽相同。根据不同角色的用户,功能设置要做到通用性和个性化上要兼而有之,保证客户群体的最优化。同时,功能模块需要逻辑清楚、功能与实际紧密结合,避免产生系统漏洞,确保系统正确有效地运行。主要功能设计如图4.2所示。
图4.2 收银管理系统功能框架
4.3 系统数据库设计
4.3.1 概念设计
收银管理系统对应的数据库的设计需要以下步骤。首先,根据系统的业务流程确定系统包含的管理员、员工、进货单、订单、会员、菜品等实体。其次,分析各个实体之间的逻辑关系,剥离非必要关系,保存有意义关系,设计各实体之间的联系模式。最后,对实体及实体关系进行标准化处理,完成概念设计。系统实体属性图如图4.3至图4.12所示。
图4.3 员工信息实体属性图
图4.4 菜品类别实体属性图
图4.5 菜品信息实体属性图
图4.6 订单信息实体属性图
图4.7 订单信息实体属性图
图4.8 进货单明细实体属性图
图4.9 进货单信息实体属性图
图4.10 用户信息实体属性图
图4.11 会员类型实体属性图
图4.12 会员信息实体属性图
一类会员类型可以包含多个会员,所以会员类型与会员为1对多;一个员工可以负责多个订单或进货单,所以员工与进货单和订货单都是1对多的关系;一个菜品类型可以包含多种菜品,所以菜品类型与菜品是1对多的关系;一条订单或者进货明细包含一种菜品,所以订单明细和进货单明细与菜品均为1对1的关系。通过分析各个实体之间的关系,确定系统的E-R图如图4.13所示。
图4.13 系统E-R图
4.3.2 物理设计
收银管理系统数据库采用MySQL系统,在进行数据库设计时候,将要遵守该系统的设计原则,即以表的形式体现实体,借助可视化工具建立实体之间的逻辑关系。通过对该商务系统的实体属性分析,确定了系统对应的数据库将采用10个数据表来完成实体属性分配。根据各个实体的特点及各实体之间的逻辑关联,对其进行字段设置及数据类型设置。数据库中各个实体的表结构如表4.1至表4.10所示。
表4.1员工信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
eid | int | 10 | NO | 编号(主键) |
eno | int | 10 | YES | 员工工号 |
ename | varchar | 10 | YES | 员工姓名 |
ecardid | varchar | 18 | YES | 员工身份证号 |
esex | varchar | 2 | YES | 员工性别 |
ephone | varchar | 11 | YES | 员工手机号 |
ework | varchar | 255 | YES | 工作内容 |
estatus | int | 10 | YES | 员工状态 |
表4.2菜品信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
id | int | 10 | NO | 编号(主键) |
gname | varchar | 200 | YES | 菜品名称 |
gprice | float | (10,2) | YES | 菜品价格 |
gcontent | varchar | 255 | YES | 菜品内容 |
gtype | int | 10 | YES | 菜品类型(外键) |
weight | float | (10,2) | YES | 菜品重量 |
stock | int | 10 | YES | 库存 |
buildtime | varchar | 10 | YES | 生产日期 |
expirationdate | int | 10 | YES | 保质期 |
empid | int | 10 | YES | 上架员工 |
表4.3菜品类别表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
tid | int | 10 | NO | 类型编号(主键) |
tname | varchar | 255 | YES | 类型名称 |
表4.4订单明细信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
ordergoodsid | int | 20 | NO | 订单明细编号(主键) |
orderid | int | 20 | NO | 订单编号(外键) |
goodsid | int | 40 | YES | 菜品编号 |
goodsprice | float | (10,2) | YES | 菜品价格 |
goodsnum | int | 10 | YES | 菜品数量 |
表4.5订单信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
orderid | int | 20 | NO | 订单编号(主键) |
ordertime | varchar | 255 | YES | 下单时间 |
ordervip | int | 50 | YES | 下单会员编号 |
orderall | float | (255,2) | YES | 订单总金额 |
orderscore | float | (50,2) | YES | 订单积分 |
empid | int | 10 | YES | 下单员工编号 |
orderstatus | varchar | 20 | YES | 订单状态 |
ocontent | varchar | 255 | YES | 备注 |
表4.6进货单明细信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
purgoodsid | int | 20 | NO | 进货明细编号(主键) |
purid | int | 11 | NO | 进货单id(外键) |
goodsid | int | 40 | YES | 上架菜品id |
purprice | float | (10,2) | YES | 进货价 |
purnum | int | 50 | YES | 上架数量 |
表4.7进货单信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
purid | int | 11 | NO | 进货编号(主键) |
purtime | datatime | YES | 进货时间 | |
purall | float | (255,2) | YES | 进货总金额 |
empid | int | 10 | YES | 进货人员 |
purstatus | varchar | 20 | YES | 进货状态 |
pcontent | varchar | 50 | YES | 进货备注 |
表4.8用户信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
userid | int | 10 | NO | 编号(主键) |
username | varchar | 64 | YES | 用户名 |
password | varchar | 10 | YES | 密码 |
power | varchar | 50 | YES | 权限名称 |
name | varchar | 64 | YES | 昵称 |
desc | varchar | 255 | YES | 描述 |
表4.9会员类别表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
vid | int | 10 | NO | 会员类型编号(主键) |
vname | varchar | 50 | YES | vip类型名称 |
vscore | int | 10 | YES | 最低积分 |
表4.10会员信息表
字段名 | 字段类型 | 字段长度 | 允许为空 | 备注 |
id | int | 10 | NO | 编号(主键) |
vno | int | 50 | YES | 会员卡号 |
vname | varchar | 10 | YES | 会员姓名 |
vphone | varchar | 11 | YES | 会员电话 |
vtime | datatime | YES | 办卡时间 | |
vscore | float | (11,2) | YES | 会员积分 |
vstatus | int | 2 | YES | 会员状态 |
第五章 收银管理系统实现
5.1 管理员功能实现
本系统作为餐厅管理的内部系统,客户端没有设置账号的注册功能。登录设置单独的页面,根据系统的提示,用户将既定的内容输入到登录页面指定的位置。上述输入内容首先需要通过系统前台的对数据规范的检验,检验通过后被送到系统后台数据库进行一致性比对。根据用户输入的参数,在指定的表内进行查询,根据查询结果,将反馈给前台登录成功或失败的信息。登录页面如图5.1所示。
图5.1 系统登录页面
用户登录系统后,操作页面主要功能列表如图5.2所示。
图5.2 管理员类型用户首页
5.1.1 菜品管理
管理员端对菜品信息只可以编辑和删除,进货员才可以对菜品信息进行添加。如图5.3所示。管理模块的菜品信息是从“进货员”端同步过来的,管理员可以对根据餐厅的实际经营情况调整菜品的信息。这样多端对数据共同维护可以做到工作分工明确,提高管理效率。页面效果如图5.4所示。
图5.3 菜品信息管理页面
图5.4 菜品列表页面
5.1.2 账单查询
管理员端的订单信息为“收银员端”数据同步过来的,系统管理员可以根据供应商以及商品名称进行字段的模糊查询。页面如图5.5和图5.6所示。可以整体把握餐厅的收益状况。
图5.5 订单查询页面
图5.6 订单分类统计页面
5.1.3 进货单查询
进货单查询页面主要对所有进货菜品进行记录。记录的内容包括进货时间、进货总价、进货员工工号以及相关备注等,进货单是进行库存盘点的重要依据,也是需要周期性维护的重要数据之一。可以帮助管理员及时了解相关菜品的到货状况,效果页面如图5.7所示。
图5.7 进货记录查询页面
5.2 收银员功能实现
5.2.1 桌位管理
此功能主要用于管理餐桌,管理顾客的用餐时间和结算状况,可以根据此功能监测各个餐位的状态,合理安排用餐位置,页面如图5.8所示。可以对占用的桌位进行开桌设置,页面如图5.9所示。
图5.8 桌面可视化页面
图5.9 卓位开桌页面
5.2.2 订单新建
订单新建模块的数据来源于顾客对菜品的购买行为,是对日常销售行为发生的各个环节数据的管理。活动图如图5.10所示。收银员根据每桌的需求在页面左侧点击相应的菜品进行数量设置,数量设置成功后相关记录会同步到右侧的订单中,最后生成结算单。页面如图5.11和5.12所示。用餐结束后进行结账,页面如图5.13所示。
图5.10 订单新建活动图
图5.11 订单新建效果图
图5.12 订单新建效果图
图5.13 订单结账效果图
第六章 系统测试
6.1 目的与意义
作为软件开发过程中最后一项任务,软件测试通常情况下是在设计完成后才进行的,但是,现如今,软件测试的要求是在完成每一个小开发后,都得马上开始测试该部分的性能,这样做的好处在于,经过测试可以快速发现问题,马上对其处理,防止由于系统小错误的累积引起更严重的后果,这样可以极大地节省了系统开发的资源。首先得明确本系统测试的需求,了解本系统在功能与性能方面测试的详细指标,再根据以上信息构建具体的测试环境,值得注意的是,构建的测试环境要与日后系统上线的真实环境类似,这样才能够尽可能地找到系统潜在的问题,最后,根据测试的功能与性能选择合适的测试方法。本系统在测试时选择的测试方法是模块化测试,对系统的各个模块依次测试,测试它们的功能与性能,按照测试的结果,对暴露出来的问题进行整改,保障系统在真实环境中上线后能够正常的运行。软件测试是软件开发的必要步骤和重要环节,没有软件测试,开发者将无法对软件的覆盖性、完善性、正确性进行评估,同时也无法给出软件运行的参数指标,软件测试是评测软件的唯一标准。软件测试有着标准的测试规范和内容,通过测试,可以减少软件运行问题,保证软件投入使用后运行状态良好。软件测试流程图包括数据测试、期望结果评价及信息纠错,如图6.1所示。
图6.1 测试与纠错信息流程
6.2 过程与方法
在系统测试过程中,常用的测试方面如下所述:
1.黑盒测试
黑盒测试作为常用的简便的系统检测方法,主要是指忽视系统实现过程中的细节问题,以用户为视角,结合设定的输入输出对应关系,编写相应的测试用例,通过用例实现对系统各项功能的测试。当系统存在功能性问题时,则测试用例不会通过,从而证明系统存在错误,因此也将该项测试称之为功能测试。
2.结构测试
区别于黑盒测试只关注功能、忽视系统细节的特点,结构性测试侧重于对系统代码的检测,通过该项测试,研发人员能够发现系统代码中所存在的问题,因此也将其称之为基于代码的测试。该项测试的核心在于对系统实现结构以及相关代码进行检测,以代码为视角,对系统的准确性进行检测。
3.压力测试
压力测试则是从具体的使用情景出发检测系统。当系统功能检测完成后,则后续需要考虑整个系统运行以及部署的可靠性,该项测试的关键在于分析软件在运行负荷极限情况下能够承受的负荷。科学的系统应当在确保满足功能性需求的前提下,还应当确保其能够在实际的应用场景中能够承受用户访问、运算的压力,从而提高用户的使用感受,所以压力测试也是系统测试流程过程中非常重要的环节。
系统测试采用“黑盒测试”法。采用“黑盒测试”的软件测试,测试者将不再关注程序模块的内部结构和逻辑关系,程序模块提供给测试者的仅仅是输入、输出接口,测试者将关注测试内容、结果是否与标准一致。测试者需要做的工作是列举测试用例,测试范围需要涵盖运行的各种可能,测试用例的少列举或漏列举都有可能导致软件测试分支达不到,进而为今后的实际使用埋下隐患。通过在不同的测试用例条件下测试,检验测试结果与实际期望结果的一致性。主要测试用例如下表所示。
菜品信息管理功能名称 | 菜品信息管理执行测试的操作 | 菜品信息管理测试预期结果 | 菜品信息管理测试结果 |
添加菜品信息 | 点击添加菜品信息Button按钮 | 菜品信息添加成功 | 满足用户要求效果 |
编辑菜品信息 | 点击编辑菜品信息Button按钮 | 菜品信息编辑修改成功。 | 满足用户要求效果 |
删除菜品信息 | 点击删除菜品信息Button按钮 | 菜品信息删除成功 | 满足用户要求效果 |
表6.2桌位信息管理用例
桌位信息管理功能名称 | 桌位信息管理执行测试的操作 | 桌位信息管理测试预期结果 | 桌位信息管理测试结果 |
添加桌位信息 | 点击添加桌位信息Button按钮 | 桌位信息添加成功 | 满足用户要求效果 |
编辑桌位信息 | 点击编辑桌位信息Button按钮 | 桌位信息编辑修改成功 | 满足用户要求效果 |
删除桌位信息 | 点击删除桌位信息Button按钮 | 桌位信息删除成功 | 满足用户要求效果 |
表6.3订单信息管理用例
订单信息管理功能名称 | 订单信息管理执行测试的操作 | 订单信息管理测试预期结果 | 订单信息管理测试结果 |
添加订单信息 | 点击添加订单信息Button按钮 | 订单信息添加成功 | 满足用户要求效果 |
编辑订单信息 | 点击编辑订单信息Button按钮 | 订单信息编辑修改成功。 | 满足用户要求效果 |
删除订单信息 | 点击删除订单信息Button按钮 | 订单信息删除成功 | 满足用户要求效果 |
6.3 测试小结
依据“黑盒测试”用例,对餐饮行业收银系统进行了软件测试,针对测试中出现的问题进行了软件问题查找和漏洞捕获,并对软件进行修正。经过修正后的软件,又进行了系统测试,系统测试覆盖全流程,测试结果符合前期要求,性能稳定,实现了全部功能目标。
第七章 结 论
为了完成该系统,主要进行如下工作:
首先,根据餐厅日常管理的实际经验,对线下销售的相关知识、线上管理的相关现状进行摸索学习,并明确本课题的探究方向和软件需要完成的功能目标;
其次,针对完成本系统需要掌握的程序语言知识、数据库知识、网络结构知识等,进行探究学习,为软件的实现打下坚实的基础;
再次,通过对相关中小型餐厅的需求调研,明确该系统需要实现的功能,并根据要求,明确各类使用角色。依据信息发展现状,对该项目的可行性进行分析。依据各个角色实例,完成数据库的设计。
最后,采用Java语言+SSM框架对收银管理系统进行编码实现,通过软件测试,对其功能覆盖性、系统运行稳定性以及多项指标等进行测试,并对软件存在的不足进行改进。
免费领取源码,请点赞关注私信博主