🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘 要
近年来,科技飞速发展,在经济全球化的背景之下,互联网技术将进一步提高社会综合发展的效率和速度,互联网技术也会涉及到各个领域,而餐厅点餐系统在网络背景下有着无法忽视的作用。信息管理系统的开发是一个不断优化的过程,随着网络数据时代的到来,信息管理系统与计算机的集成成为必然。
本次将以餐厅点餐系统方面为切入点,论述了餐厅点餐系统的意义和内容,以此展开对餐厅点餐系统的开发与建设的详细分析。从数据挖掘的角度出发,了解信息管理系统的作用,对餐厅点餐系统的过程以及用处进行更深一步的研究,数据的处理效率,以及具体的应用方向。对于餐厅点餐系统所带来的影响,将从传统管理方式进行对比分析,从硬件优化、软件开发,这几个方面来论述餐厅点餐系统的优势所在,分析餐厅点餐系统在计算机时代发展的变化趋势。
关键词:餐厅点餐系统;
1 绪 论
随着当代社会科技的迅速发展,计算机网络时代正式拉来帷幕,它颠覆性的影响着社会发展的各个方面。餐厅点餐系统更是与数据密不可分,不仅在互联网中起着重要作用,更是充斥着我们日常工作和生活之中。在这个信息化的时代背景之下,互联网的来临,无论是对人类社会,还是对政治、经济等多方面领域影响深远,也给新时代的信息管理和信息系统带来新的机遇和挑战。网络电脑化越深入,影响越大,社会就越进入互联网时代。生活的各个领域都需要巨大的信息资源,需要妥善处理。因此,在计算机技术快速发展环境下,信息管理和信息系统尤为重要。对于餐厅点餐系统的未来进行分析和展望,并提出研究意见[1]。
1.1论文背景
近年来互联网技术飞速发展,给人们的生活带来了极大便利,也改变人们的生活生产方式,拥有存储量大、可靠性高、使用方便等不可替代的优点,正在逐步取代传统的信息管理模式。由代码编程实现的各种管理工具和系统替代传统的人工操作,不但提升了可靠性还降低了人力成本,节省了时间,提升了工作效率。全球视域下信息技术逐步渗透到各个领域,多样化的数据信息为餐厅点餐系统带来了深刻变革,打破了传统的餐厅点餐系统的方式与载体,管理者的事务性工作面临新形势和新挑战[2]。
餐厅点餐系统作为信息化建设的重要一环,餐厅点餐系统的开发与实现,能够使管理者的工作开展得更加有序。
餐厅点餐系统分析基本内容:本设计主要是实现一个餐厅点餐系统,实现自动化、信息化、管理。系统的主要的设计原则是:以实际应用为核心,重点突出“实用、易用、简洁、稳定”的优点。既能够注重到实效,满足现实用户的实际需要,也能够为系统以后的升级和扩展留有一定的余地。在技术设计的实现上,突出“实现合理、结构清晰、简单易懂”的特点[3]。
本系统的主要目的在于加速数据可视化与信息化进程,充分利用计算机技术和现代通讯的手段面向餐厅或个人的服务。建立一个方便管理的餐厅点餐系统的平台,方便信息资源的共享,提高管理的效率,为管理员和用户提供了餐厅点餐系统的辅助服务。本系统将最大程度地提高管理者整体的工作效率和工作质量,降低管理和工作的成本,改善工作的环境和条件,提高管理者的管理和决策的自动化和科学化水平。帮助各行业节省费用,减少中间环节,优化业务流程,提高整体工作效率,促进管理的进步[4]。
1.3 研究方法
该餐厅点餐系统在windows平台下完成开发,采用SSM框架,JSP技术,java语言开发,将应用程序部署于tomcat上,加之servlet接口来实现交互式响应服务器上的数据,将最终效果呈现于服务器上。运用mysql数据库,使用navicat premium连接数据库,从而实现数据库各个功能以友好的图形化界面展示。使用mvc三层架构,来降低各个层间解耦合,从而便捷高效完成开发[5]。
2系统相关技术
2.1 Java语言简介
Java,目前Internet中最流行的编程语言之一。它吸取了C++编程语言的长处的同时还摒弃了许多复杂抽象,不易掌握的问题,使得Java编程语言不但功能强大而且使用方便。
Java技术在使用过程中有优势也有劣势。其优势在于,因为Java本身相对严格的语法,所以可以强化程序员在编程时的规范性问题,不容易出现明显结构错乱的问题。因此,规范将是Java的巨大优势。但是它也有劣势,就是不太适应互联网模式下的不断修改,总是修改容易破坏架构。
面向对象的三种特征:封装,继承和多态。
密封:主要是指对数据信息的隐藏,通过把数据信息类别与通过数据信息的功能密封在一块,让数据信息被保存在数据信息类别的里面,只留下一部分可以对外的接口,以便于尽可能的地隐蔽里面的数据信息。因此好处也就十分的明显就是实现了专业的分工,同时也隐藏了信息,保证了安全。
继承:这就像是实际人生中的父子关系一样,孩子要承袭父母的特点。类似的,一个种类同时也继承了另一个种类的某些特性,其父属之间有一种特别的一般性的联系,是is-a的关系,从根本上来说都属于同一个实体。
多态:多态系统是以封装和继承为基础的。由于所传输的父类对象能够引入各种各样的子类对象,因而能够显示出各种各样的现象,给多态的编程带来了良好的扩展。
2.2 MySQL数据库
MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。
MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。餐厅点餐系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用。
2.3 B/S架构
B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。
B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:
(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。
(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。
2.4 JSP技术介绍
JSP技术是日常生活中广泛使用、十分普遍的语言工具。该技术的开发过程经历了重重曲折,但一经问世,就造成了巨大的影响。JSP技术对于所有的JAVA类,都能够对其进行操作,方便快捷,减少了很多JAVA开发中的麻烦。当JSP技术与JAVA Beans类结合在一起使用时,就能够将显示逻辑和内容分离开。并且在Web网页这一块,他可以利用自身的特有属性,提高网页的执行速度,对于Web网页的开发和使用具有非常的帮助推动作用。所有的脚本都在伺服器端执行,而JSP引擎则会根据用户所提出的要求做出说明,然后产生脚本程序和JSP标识,最后再通过HTML/XML界面把结果反馈给客户端。所以,当开发人员亲自设计了一个网页的基本格式和HTML/XML标识时,就完全可以采用JSP技术了。
3 系统分析
在对一个软件进行设计与开发之前,需要对该系统进行深层次的调查、分析、研究[6]。良好的需求分析不仅能使开发人员快速、准确地理解开发任务,还能提高开发效率,能好地完成工作。对系统进行需求分析是必不可少的,这是软件生存周期上一个很重要的部分,在这个阶段需要确定该系统需要实现什么功能,然后做成一个数据规范、图表清晰的文档,为接下来的系统设计工作提供一定的基础。
3.1.1系统总体分析
本系统采取了一系列的设计原则,主要目的是为了系统的功能设计,还有管理人员在后期对系统维护时的方便,以及使用户能够简易的操作。最重要的设计原则包括:简单性、针对性、实用性、一致性、先进性[7]。
(1)简单性:在该系统中功能模块实现的同时,让用户操作起来简单明了,很快找到所需资源是最直接的目的。
(2)针对性:该系统是根据设计需求为导向来开发餐厅点餐系统的设计,所以针对性较强。
(3)实用性:该设计能够满足餐厅点餐系统的实际的功能需求,能够在实际中让用户真正使用到,具有实际的应用价值。
(4)一致性:网站整体的页面布局,在不同的界面之间,img里的图片的放置位置以及大小都应该有严格的一致性。变量命名规则应该具有统一性。
(5)先进性:本系统采用java作为开发语言、JSP技术、SSM框架、MySQL作为系统数据库,它们被软件设计者们广泛使用[8]。
3.2 可行性分析
可行性分析是每开发一个项目必不可少的一部分,可行性分析可以直接影响一个系统的存活问题,针对开发意义进行分析,还有就是是否可以通过所开发的系统来弥补传统纸质手工统计模式的不足,是否能够更好的解决其中问题等,通过对该餐厅点餐系统的开发设计,不仅能够逐步减少工作人员的工作量,而且还可以进行高效工作和管理[9]。所以该系统的开发实现了最大的意义和价值,在系统完成后,利益是否大过于成本,是否能够达到预期效果,这些方面都要进行可行性分析,再通过分析之后,就可以决定是否开发此系统。该餐厅点餐系统的开发设计中,以下几点进行了可行性分析:经济、技术、运行可行性:通过java的采用,由于该技术不断成熟,所以使用该技术设计餐厅点餐系统是具有可行性的。经济可行性:在开发过程中,系统完成后的利益是否大过于开发成本。操作可行性:餐厅点餐系统的开发设计中,方便用户的可操作性和实用性[10]。
3.2.1 经济可行性
由于本系统是作为毕业设计系统,且系统本身存在一些技术层面的缺陷,并不能直接用于商业用途,只想要通过该系统的开发提高自身学术水平,不需要特定服务器等额外花费。所有创造及工作过程仅需在个人电脑上就能实现,使用到的软件大多为开源软件,所以经济成本并不高,可以轻易实现[11]。
3.2.2 技术可行性
本系统的开发使用JSP作为系统开发的开发技术,开发工具选择 Eclipse,而 B/S架构决定了本系统的兼容性和多用户可操作性,此外选择MySql作为数据库不仅提高了数据安全性更保障了数据的可操作性[12]。
3.2.3 运行可行性
本系统作为以java作为开发技术的系统,而且选用 B/S架构则决定了要操作本系统仅需要占用很小的资源,并没有过多地硬件配置要求,目前市面上只要能正常运行浏览器的个人电脑都可以正常运行使用该系统。
综上所述,本系统的设计与开发在经济上、技术上、运行上的条件都是满足的,因此,系统开发具备可行性条件[13]。
3.3 系统结构和流程设计
开发该系统主要选用了SSM的架构设计,将主要表现层、业务逻辑层和数据访问层分离出来。表现层将请求的回应信息展现在java网页页面上便于客户访问,业务逻辑层负责获得并正确处理请求逻辑,确保SQL语句读取时取得成功或失败,数据访问层关键将数据信息拼写成SQL语句。由于分层次构造开展开发,可以使开发系统软件的耦合性减少,随后重用率提升,只在数据层对数据开展处理就可以了。随后由接口封装对象,业务层完成对系统的逻辑操作,在显示层展现和接受数据信息,用接口完成每个层间的数据信息的传送。实际操作的方法简洁明了,使体系能更快的运作。
操作流程需要进行设计,一个完整的系统可以流畅的操作下来是至关重要的,本系统的完整操作流程如图3-1所示:
- 系统操作流程图
本系统主要有管理员和用户二种角色,进行登录时需要确保输入的内容与已经保存的账号信息一致,通过账户密码等方式来校验用户信息,输入正确则登入系统,输入错误则登入失败。系统登录流程,如图3-2所示:
- 系统登录流程图
在添加信息的时候,会判断是哪类用户,并根据用户类型判断执行是否合法,合法者可以进行添加,不合法者则不能进行此操作。管理员登录账号后可以对内容进行添加,拥有着最高的权限,用户权限仅次于管理员。添加信息流程图如图3-3所示:
- 系统添加流程图
删除数据时与添加数据功能类似,删除数据具体流程如图3-4所示
图3-4系统删除流程图
4 系统设计
4.1系统通用功能用例分析
系统的通用功能包括用户登录和密码修改,是二个角色共同需要使用的功能,用例分析如图4-1所示
图4-1系统通用功能用例分析图
4.2 系统设计主要功能
本系统采用自上往下的方法开发与实现,本课题要求实现一套餐厅点餐系统,系统主要包括管理员模块和用户模块的功能模块;
(1)管理员用例图如下所示:
图4-2管理员用例图
(2)用户用例图如下所示:
图4-3用户用例图
通过市场调研及咨询研究,可以按照用户的角色权限使不同用户角色看到不一样的信息界面。现根据需求阶段的分析,我们可以大致确定系统需要包含的功能如下图4-4所示:
图4-4餐厅点餐系统结构功能图
4.3 数据库设计
4.3.1 数据库设计规范
数据可设计要遵循职责分离原则,即在设计时应该要考虑系统独立性,即每个系统之间互不干预不能混乱数据表和系统关系。
数据库命名也要遵循一定规范,否则容易混淆,数据库字段名要尽量做到与表名类似。
4.3.2 E-R图
餐桌信息E-R图,如图4-5所示:
图4-5餐桌信息E-R图
餐桌使用E-R图,如图4-6所示:
图4-6餐桌使用E-R图
菜品信息E-R图如图4-7所示。
图4-7菜品信息E-R图
订单信息E-R图如图4-8所示。
图4-8订单信息E-R图
4.3.3 数据表
本系统采用的是MySQL数据库存储数据,系统中使用到的主要数据表的具体展示部分如下所示。
表4-1:餐厅资讯
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| title | varchar | 200 | 标题 | ||
| introduction | longtext | 4294967295 | 简介 | ||
| picture | longtext | 4294967295 | 图片 | ||
| content | longtext | 4294967295 | 内容 |
表4-2:菜品信息评论表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| refid | bigint | 关联表id | |||
| userid | bigint | 用户id | |||
| avatarurl | longtext | 4294967295 | 头像 | ||
| nickname | varchar | 200 | 用户名 | ||
| content | longtext | 4294967295 | 评论内容 | ||
| reply | longtext | 4294967295 | 回复内容 |
表4-3:配置文件
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| name | varchar | 100 | 配置参数名称 | ||
| value | varchar | 100 | 配置参数值 |
表4-4:购物车表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| tablename | varchar | 200 | 商品表名 | caipinxinxi | |
| userid | bigint | 用户id | |||
| goodid | bigint | 商品id | |||
| goodname | varchar | 200 | 商品名称 | ||
| picture | longtext | 4294967295 | 图片 | ||
| buynumber | int | 购买数量 | |||
| price | float | 单价 | |||
| discountprice | float | 会员价 | |||
| goodtype | varchar | 200 | 商品类型 |
表4-5:餐桌信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| canzhuohaoma | varchar | 200 | 餐桌号码 | ||
| tupian | longtext | 4294967295 | 图片 | ||
| kezuorenshu | int | 可坐人数 | |||
| canzhuoweizhi | varchar | 200 | 餐桌位置 | ||
| canzhuozhuangtai | varchar | 200 | 餐桌状态 |
表4-6:餐桌使用
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| canzhuohaoma | varchar | 200 | 餐桌号码 | ||
| canzhuoweizhi | varchar | 200 | 餐桌位置 | ||
| kezuorenshu | int | 可坐人数 | |||
| shiyongshijian | datetime | 使用时间 | |||
| yonghuming | varchar | 200 | 用户名 | ||
| xingming | varchar | 200 | 姓名 | ||
| shouji | varchar | 200 | 手机 |
表4-7:用户
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| yonghuming | varchar | 200 | 用户名 | ||
| mima | varchar | 200 | 密码 | ||
| xingming | varchar | 200 | 姓名 | ||
| touxiang | longtext | 4294967295 | 头像 | ||
| xingbie | varchar | 200 | 性别 | ||
| youxiang | varchar | 200 | 邮箱 | ||
| shouji | varchar | 200 | 手机 | ||
| money | float | 余额 | 0 |
表4-8:菜品信息
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| caipinmingcheng | varchar | 200 | 菜品名称 | ||
| caipinleixing | varchar | 200 | 菜品类型 | ||
| tupian | longtext | 4294967295 | 图片 | ||
| kouwei | varchar | 200 | 口味 | ||
| yujishijian | varchar | 200 | 预计时间 | ||
| caipinjieshao | longtext | 4294967295 | 菜品介绍 | ||
| fabushijian | datetime | 发布时间 | |||
| clicktime | datetime | 最近点击时间 | |||
| price | float | 价格 |
表4-9:用户表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| username | varchar | 100 | 用户名 | ||
| password | varchar | 100 | 密码 | ||
| role | varchar | 100 | 角色 | 管理员 | |
| addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-10:菜品类型
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| caipinleixing | varchar | 200 | 菜品类型 |
表4-11:token表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| userid | bigint | 用户id | |||
| username | varchar | 100 | 用户名 | ||
| tablename | varchar | 100 | 表名 | ||
| role | varchar | 100 | 角色 | ||
| token | varchar | 200 | 密码 | ||
| addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
| expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-12:地址
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| userid | bigint | 用户id | |||
| address | varchar | 200 | 地址 | ||
| name | varchar | 200 | 收货人 | ||
| phone | varchar | 200 | 电话 | ||
| isdefault | varchar | 200 | 是否默认地址[是/否] |
表4-13:收藏表
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| userid | bigint | 用户id | |||
| refid | bigint | 商品id | |||
| tablename | varchar | 200 | 表名 | ||
| name | varchar | 200 | 名称 | ||
| picture | longtext | 4294967295 | 图片 | ||
| type | varchar | 200 | 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) | 1 | |
| inteltype | varchar | 200 | 推荐类型 | ||
| remark | varchar | 200 | 备注 |
表4-14:订单
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | 主键 | 主键 | ||
| addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
| orderid | varchar | 200 | 订单编号 | ||
| tablename | varchar | 200 | 商品表名 | caipinxinxi | |
| userid | bigint | 用户id | |||
| goodid | bigint | 商品id | |||
| goodname | varchar | 200 | 商品名称 | ||
| picture | longtext | 4294967295 | 商品图片 | ||
| buynumber | int | 购买数量 | |||
| price | float | 价格 | 0 | ||
| discountprice | float | 折扣价格 | 0 | ||
| total | float | 总价格 | 0 | ||
| discounttotal | float | 折扣总价格 | 0 | ||
| type | int | 支付类型 | 1 | ||
| status | varchar | 200 | 状态 | ||
| address | varchar | 200 | 地址 | ||
| tel | varchar | 200 | 电话 | ||
| consignee | varchar | 200 | 收货人 | ||
| remark | varchar | 200 | 备注 | ||
| logistics | longtext | 4294967295 | 物流 | ||
| goodtype | varchar | 200 | 商品类型 |
5 系统实现
5.1前台用户功能实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到餐厅点餐系统的导航条显示首页、餐桌信息、菜品信息、餐厅资讯、购物车等,系统首页界面如图5-1所示:
图5-1 系统首页界面
当用户进入系统进行相关操作前必须进行注册、登录,用户注册、用户登录界面如图5-2所示:
图5-2 用户注册、用户登录界面
用户点击餐桌信息,在餐桌信息页面的搜索栏输入餐桌号码,进行查询,还可以查看餐桌号码、图片、可坐人数、餐桌位置、餐桌状态等信息,还可以点击使用、收藏或者评论等操作,如图5-3所示:
图5-3餐桌信息页面
用户点击菜品信息,在菜品信息页面的搜索栏输入菜品名称、菜品类型,进行查询,还可以查看菜品名称、菜品类型、图片、口味、预计时间、发布时间、价格等信息,还可以添加到购物车、立即购买、收藏或者评论等操作,如图5-4所示:
图5-4菜品信息页面
购物车:用户将想要购买的商品加入购物车,加入购物车后可以增减数量、删除、点击购买,可一键清除失效商品,如图5-5所示:
图5-5购物车页面
在个人中心页面可以输入个人详细信息,进行信息更新操作,还可以对我的订单、我的收藏进行详细操作,如图5-6所示:
图5-6个人中心页面
5.2 后台管理员功能实现
管理员登录,通过登录页面输入用户名、密码,进行登录操作,如图5-7所示。
图5-7管理员登录界面图
管理员登录进入餐厅点餐系统可以查看首页、个人中心、用户管理、餐桌信息管理、餐桌使用管理、菜品类型管理、菜品信息管理、系统管理、订单管理等信息,进行相应操作,如图5-8所示。
图5-8管理员功能界面图
管理员点击餐桌信息管理,在餐桌信息管理页面的输入餐桌号码、图片、可坐人数、餐桌位置、餐桌状态等内容,进行查询、添加或者删除餐桌信息等操作,如图5-9所示。
图5-9餐桌信息管理界面图
管理员点击餐桌使用管理,在餐桌使用管理页面的对餐桌号码、餐桌位置、可坐人数、使用时间、用户名、姓名、手机等内容,进行查询或者删除餐桌使用等操作,如图5-10所示。
图5-10餐桌使用管理界面图
管理员点击菜品类型管理,在菜品类型管理页面的对菜品类型等内容,进行查询或者删除菜品类型等操作,如图5-11所示。
图5-11菜品类型管理界面图
管理员点击菜品信息管理,在菜品信息管理页面的对菜品名称、菜品类型、图片、口味、预计时间、发布时间、价格等内容,进行查询或者删除菜品信息等操作,如图5-12所示。
图5-12菜品信息管理界面图
管理员点击系统管理,在系统管理页面的对轮播图管理、餐厅资讯等内容,进行查询或者删除系统信息等操作,如图5-13所示。
图5-13系统管理界面图
管理员点击订单管理,在订单管理页面的对已取消订单、已退款订单、未支付订单、已发货订单、已支付订单、已完成订单等内容,进行查询或者删除订单信息等操作,如图5-14所示。
图5-14订单管理界面图
6 系统测试
从多个角度进行测试找到系统中存在的问题是本系统首要的测试目的,通过功能测试寻找出系统缺陷并改正,确保系统没有缺陷。在测试过程中证明系统满足客户需求,发现问题和不足及时改正。测试完成之后得出测试结论[14]。
在餐厅点餐系统的开发周期中,系统测试是必不可少且考验耐心的过程。其重要性在于,它是保证系统质量和牢靠性的最后一道关,也是整个系统开发过程的最后一次检查。
系统测试主要是为了避免用户在使用时发生问题,增强用户体验感,为了不影响用户的使用,我们需要从多角度、多思路去考虑系统可能遇到的问题,通过不同的模拟场景来发现缺陷并解决问题。在测试的过程中也可以了解到该系统的质量情况,系统功能是否健全,系统逻辑是否顺畅。一个合格的系统测试过程完成后将大大提升系统质量和使用感。测试的目标是验证系统是否符合需求规格说明书的定义,并找出与需求规格说明书不符合或与之冲突的内容。测试过程中一定站在用户的角度考虑问题,避免一些不切实际的场景,浪费测试时间,从而可能会引起问题导致预期结果与实际结果不符[15]。
对系统功能模块进行测试,通过点击、输入边界值和必填项非必填项的验证等方法进行一系列的黑盒测试。通过编写测试用例,根据测试用例中的内容进行测试,最后得出测试结论。
登录功能测试方案:当需要登入该系统时,通过账户密码等功能点进行验证,用户在输入时需要输入与数据库内存储的数据匹配的内容,当其中某项输入错误时系统将提示输入错误。此界面对角色权限也有相应的校验,当用户角色的帐号选择管理员角色登录时,也会报错[16]。登录功能测试用例如表6-1所示。
表6-1 登录管理测试用例
| 编号 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
| 01 | 用户名:guanliyuan 密码:123456 验证码:正确输入 | 登入系统 | 成功登入系统 | 和估算结果一样 |
| 02 | 用户名:guanliyuan 密码:111222 验证码:正确输入 | 密码错误 | 密码错误,请重新输入密码 | 和估算结果一样 |
| 03 | 用户名:guanliyuan 密码:123456 验证码:空 | 验证码信息错误 | 验证码信息错误 | 和估算结果一样 |
| 04 | 用户名:空 密码:123456 验证码:正确输入 | 用户名必须填写 | 请输入用户名 | 和估算结果一样 |
| 05 | 用户名:guanliyuan 密码:空 验证码:正确输入 | 密码错误 | 密码错误,请重新输入密码 | 和估算结果一样 |
用户管理功能测试方案:用户管理主要有添加、编辑、删除、查找用户功能。添加用户时,必填项不填,检验系统是否有非空检验;添加已有的用户信息,检验是否提示用户名已被使用;删除用户信息,系统将检验是否进行此操作;更改用户信息,更改用户信息后页面是否可以展示出来。用户管理测试用例如表6-2所示。
| 编号 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
| 01 | 填入用户基本信息 | 添加成功,在用户列表中显示 | 该用户出现在在列表中 | 和估算结果一样 |
| 02 | 修改用户信息 | 编辑成功,修改信息成功被修改 | 用户信息被修改 | 和估算结果一样 |
| 03 | 选中删除用户 | 系统询问是否删除用户,确认后用户被删除 | 系统询问是否删除用户,确认后查找不到用户信息 | 和估算结果一样 |
| 04 | 添加用户时不填用户名 | 提示用户名不能为空 | 提示用户名不能为空 | 和估算结果一样 |
| 05 | 填入已有用户名 | 添加失败,提示用户名重复 | 添加失败,提示用户名重复 | 和估算结果一样 |
本系统主要使用黑盒测试,通过模拟用户使用系统实现各个功能编写测试用例,并进行测试。以确保系统流程的正确性。系统测试必不可少,可以使系统更加完善,该系统的可使用性也会更高。
测试该系统主要为了验证系统的功能模块是否满足我们最初的设计理念,验证各个功能模块逻辑是否正确,此系统不需要过于复杂的逻辑处理,以便于使用者操作。测试的最终目的也是围绕着用户使用展开。测试过程中所有场景都应符合用户需求,不可偏离需求目标,遇到问题时要站在用户的角度进行思考。经过一系列的测试过程后得到最终的测试结果,从测试结果可以看出,实现的系统在功能和性能方面满足设计要求。
结论
现在,已经完成了该餐厅点餐系统程序开发和论文的编写,通过这次的程序开发和论文的写作,可以检测我们大学期间的所学,是不是做到了认真学习。
该系统主要实现了用户和管理员二个功能模块,其中用户模块主要实现了餐桌信息、菜品信息、餐厅资讯等功能;管理员模块主要实现了用户、餐桌信息、餐桌使用、菜品类型、菜品信息等功能。软件开发的过程,是一个很辛苦的过程,如果在大学期间没有好好学习,困难更是重重,即使对大学期间认真学习了的同学,也是有一定的困难,毕竟理论知识和实践还是有很大差距的。所以,在本次开发餐厅点餐系统的时候,也是遇到了相当多的困难,有时候一点头绪也没有,思想都是混乱的,首先就要克服这些问题,在经过了上网查询、同学沟通以及听取指导老师的建议后,慢慢的理顺了思路。
针对餐厅点餐系统的发展趋势分析,也对其未来提出了一些建议,并且规范操作流程,使管理信息系统的安全得到更好的保障,再者就是及时的信息反馈,针对现状进行分析与完善,让信息管理系统有更好的发展。
参考文献
[1] 金芳芳.教学管理系统专业实践教学体系改革——基于就业的 视角 [J].中外企业家 ,2020(03):180-181.
[2]王朝友,谢兰云.课程信息化管理系统专业本科课程国际化建设研究[J]. 教育教学论坛 ,2019(48):64-65.
[3]冉翠翠 ,荀珂 . 基于计算机应用技术与信息管理的整合研究 [J].科学 技术创新 ,2019(31):93-94.
[4]查先进,杨海娟 . 网络背景下信管专业人才培养模式改革创新影响因素研究[J].图书情报知识,2020 ( 2) : 21-29.
[5] 中华人民共和国教育部局等教育司 . 普通高等学校本科专业目录和专业简介[M].北京: 高等教育出版社,2019: 90-98.
[6] H. M. Hassan & Charles Hutchinson. Natural Resource and Environmental Information for Decision Making. A World Bank Publication, Washington D. C., USA, 2020.
[7] 杨善林,李兴国,顾东晓,左春荣 . 信息管理类专业创新性人才培养模式研究[J].理工高教研究,2020 ( 6) : 104-106.
[8] 叶福兰 . 基于能力本位的教学系统专业应用型人才培养模式研究[J].中国管理信息化,2019 ( 23) : 239-241.
[9] 闫娜 . 精品课程网站专业建设研究[J].图书馆学研究,2021 ( 11) : 9-12.
[10] 陶雷,莫赞,张立厚 . 应用型本科 “信管”专业课程体系探究及构建实践[J].情报杂志,2020 ( 2) : 180-184.
[11] 《International Journal of Emerging Trends and Technology in Computer Science》 , 2019, 38 (2) :99-103
[12] 张宁,袁勤俭 . 面向数据科学的信息管理和信息系统专业课程建设与改革[J].现代情报,2021 ( 8) : 106-110.
[13] 曾维佳,秦放 . 计算机技术下在线学习信息化管理系统专业应用型课程改革研究[J].信息与电脑,2019 ( 2) : 231-232.
[14] 骆正山,张新生,王小完 . 互联网+背景下课程信息管理系统专业实践教学体系改革研究[J].西安建筑科技大学学报 ( 社会科学 版) ,2020 ( 6) : 92-96.
[15] 田世海,刘天林 . 网站数据可视化专业综合实践教学体系研究[J].黑龙江教育学院学报,2020 ( 9) : 37-40.
[16]Thomas R. Peltier.Information Security Risk Analysis.Rothstein Associates Inc,2019
[17] 司莉,何依 . iSchool 院校的大数据相关课程设置及其特点分析[J].图书与情报,2020 ( 6) : 84-91.
[18] 贺文武,刘国买 . 网络技术专业核心课程建设的探索与研究[J].教育评论,2019 ( 11) : 31-35.
致谢
时光荏苒,岁月如梭,相逢一见太匆匆,校内繁花几度红。六月盛夏,随着这篇致谢词的开始,也就意味着我大学四年时光也即将落下帷幕,始于XXXX年初秋,终于XXXX年盛夏,xx岁的我也将开启全新的人生篇章。以前总觉得时间尚早,年龄尚轻,殊不知,人生是一道减法,逝去的便不会再回来。行文至此,也感谢一路以来支持我,陪伴我的老师、家人还有朋友。
“桃李不言,下自成蹊”。首先感谢我的论文指导老师xxx,感谢您的悉心指导和耐心帮助,才得以让我的毕业论文顺利完成。感谢大学四年以来所有的授课老师,谆谆教导、细心耐心,授予我丰富的专业知识,让我在此后的工作方向上有了更加明确的认识以及理论基础。
“慈母爱子,非为报也”。感谢我的母亲,这多年以来的养育之恩,给我提供了优渥的环境让我的学习生活没有后顾之忧。感谢妈妈多年以来的言传身教,教会了我如何做人如何做事,也让我在爱里快乐的长大。在这成长的路上,一直陪伴我、尊重我,支持我做的每一个决定,让我有更多的底气和勇气去面对这一路以来遇到的所有问题。在此也将我美好的祝愿送给我最爱的母亲,平安喜乐,健康长寿,更希望自己可以不断努力奋进,不负所望,成为你的骄傲。
“过眼年华,动人幽意,相逢几番春换”。感谢我的好朋友xxx陪伴了我的整个青春时光,相识xx年,我们早已从朋友变成了家人般的存在,成为彼此重要的依托,在成长的这一路上相互扶持、相互陪伴,互相倾诉心中苦恼。平生感知己,方寸岂悠悠,愿未来的人生旅途中,我们可以继续相互扶持,依旧保持热爱,奔赴热爱。
“山水一程,三生有幸”。感谢大学里在学生会遇见的每一个同学,共同在计算机学院里参与很多活动,一起学习成长。也感谢大学里遇到的同学们,以及我的室友,四年来共同成长,也在此祝愿大家,前途似锦,我们都将拥有光明的未来。
“以梦为马,不负韶华”。最后,感谢自己这一路以来的坚持和努力,还有不曾放弃的每个小节点,我始终相信学无止境,希望自己不忘初心,努力朝着自己的目标不断努力。凡是过往,皆为序章,凡事未来,皆有可期。
核心代码展示
/**
* 公告通知
* 后端接口
* @author
* @email
* @date 2021-03-09 11:33:59
*/
@RestController
@RequestMapping("/news")
public class NewsController {
@Autowired
private NewsService newsService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( NewsEntity news){
EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
return R.ok().put("data", newsService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(NewsEntity news){
EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
ew.allEq(MPUtil.allEQMapPre( news, "news"));
NewsView newsView = newsService.selectView(ew);
return R.ok("查询公告通知成功").put("data", newsView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
NewsEntity news = newsService.selectById(id);
return R.ok().put("data", news);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody NewsEntity news, HttpServletRequest request){
news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(news);
newsService.insert(news);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
//ValidatorUtils.validateEntity(news);
newsService.updateById(news);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
newsService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = newsService.selectCount(wrapper);
return R.ok().put("count", count);
}
}







5万+

被折叠的 条评论
为什么被折叠?



