计算机毕设之 餐厅点餐app

1 简介

今天向大家介绍一个帮助往届学生完成的毕业设计项目,餐厅点餐app

计算机毕业生设计,课程设计需要帮助的可以找我

2 设计概要

21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,人们可以随时随地浏览到海量信息,但是这些大量信息千差万别,需要费事费力的筛选、甄别自己喜欢或者感兴趣的数据。对网络电影服务来说,需要用到优秀的协同过滤推荐功能去辅助整个系统。

本系统基于java技术,使用UML建模,采用springboot框架组合进行设计,Mysql数据库存储数据。本系统的功能主要包括:用户注册、登录、信息维护、搜索电影、电影评分、个性化推荐以及管理员进行信息管理等。
一、web后台

  1. 用户管理
    进入用户管理栏目展示用户表(姓名,账号,密码,联系电话,注册时间,角色(普通用户、审核人、确认人、超级管理员))

  2. 实现 增、删、改、查 功能(可添加用户)
    查的话根据输入的关键字模糊查询

  3. 用餐方式管理
    进入用餐方式管理栏目展示用餐方式表(用餐类型名称)
    给一个个人用餐不可删除,但可不启用
    实现 增、删、改、查 功能

  4. 餐厅管理
    进入餐厅管理栏目展示餐厅表(序号餐厅名称,餐厅地点)
    实现 增、删、改、查 功能

  5. 综合查询
    字段如图(班级改成单位),导出可不用

  6. 个人用餐座位管理
    增删改查 (座位号,是否启用)
    点击新增则直接添加一条座位(座位号1234…自增,默认启用)
    表中得有是否占用的状态
    二、App

  7. 首先登录功能(登录名(账号)、密码)
    注册先写了 但不一定用 计划用户是由超级管理员录入的(姓名、登录名(账号)、密码、手机号)

  8. 然后是预约功能
    先选择用餐类型(前面超级管理员管理的启用的用餐类型)
    二 app功能
    ***如选别的用餐类型则继续填写其他信息:
    申请人:默认为登录用户姓名,不可编辑;
    联系人电话:默认为用户表里的电话,可编辑;
    申请单位:由用户自己输入;
    用餐类型:默认刚才选择的用餐类型,不可编辑;
    用餐日期:今日即以前不可选;
    用餐时间:前面超级管理员编辑的预设时间(中餐/晚餐);
    用餐人数:可手输可加减;
    备注:随便输,可为空,其余皆不可为空;
    选择审核人:给出下拉列表(角色中有审核人角色的用户列表,只可选一)
    选择确认人:给出下拉列表(角色中有确认人角色的用户列表,只可选一)

发起申请后,通知审核人,审核人比普通用户多一个待审核功能,收到的申请就在这个里面,然后审核人可以进行审核(点击查看申请的信息,最下面填写意见然后两个按钮同意或不同意),如不同意则通知申请用户审核未通过,如同意则通知确认人,确认人则比普通用户多一个待确认的功能,确认人可以进行确认(点击差看申请的信息,最下面填写意见,分配餐厅(下拉菜单选择超管编辑好的餐厅),两个按钮同意(未选分配餐厅则同意不可选)或者不同意),将确认信息通知申请用户。

***如选个人用餐
用动态规划算法,结合疫情背景自动分配最优座位,如座位已满则提示座位已满需等待,如预约成功则提示被分配的座位号(座位状态改为占用),吃完后用户要退座(座位状态改为空闲),最好加上一个预约成功2个小时还未退座的话自动退座

3 系统关键技术

使用springboot,vue,mysql, mybaties, typescript, html ,css, js 等进行开发

4 开发工具

开发工具主要有:idea、jdk1.8、maven、mysql5.7、Navicat,hbuilder等。

5 代码展示

<template name="info">
	<view>
		<scroll-view scroll-y="true" class="page">
			<cu-custom bgColor="bg-gradual-blue" :isBack="true">
				<block slot="backText">返回</block>
				<block slot="content">{{orderInfo.orderString}}</block>
			</cu-custom>
			<!--设备详情展示-->
			<view v-if="fromcar==false">
				<view class="cu-list menu  sm-border solid-bottom">
					<view class="cu-item arrow">
						<navigator class="content" hover-class="none" :url="'../index/carInfo?carStringCode='+orderInfo.carStringCode
						+'&fromOrder=true'"
						 open-type="navigate">
							<!-- <text class="cuIcon-discoverfill text-orange"></text> -->
							<text class="cuIcon-title  text-orange"> </text>
							<text class="text-lg">汽车详情</text>
						</navigator>
					</view>
				</view>
				<view class=" bg-white">
					<view class="flex flex-wrap">
						<view class="basis-xs margin-xs  padding-xs radius">
							汽车名称
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.carName}}</text>
						</view>
					</view>
					<view class="flex flex-wrap">
						<view class="basis-xs margin-xs  padding-xs radius">
							汽车租(RMB)/</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.carPrice}}</text>
						</view>
					</view>
					<view class="flex flex-wrap">
						<view class="basis-xs margin-xs  padding-xs radius">
							汽车状态
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<view v-if="orderInfo.carType==0" class="cu-tag round bg-orange light">空闲</view>
							<view v-if="orderInfo.carType==1" class="cu-tag round bg-green ">使用中</view>
							<view v-if="orderInfo.carType==2" class="cu-tag round bg-red light">异常</view>
							<view v-if="orderInfo.carType==3" class="cu-tag round bg-blue light">归还中</view>
						</view>
					</view>
				</view>
			</view>
			<!--顾客信息展示-->
			<view v-if="fromcar==false">
				<view class="cu-list menu  sm-border solid-bottom">
					<view class="cu-item ">
						<navigator class="content" hover-class="none" url="." open-type="navigate">
							<text class="cuIcon-title  text-orange"> </text> <text class="text-lg">顾客信息</text>
						</navigator>
					</view>
				</view>
				<view class=" bg-white sm-border solid-bottom">
					<view class="flex flex-wrap solid-bottom">
						<view class="basis-xs margin-xs  padding-xs radius">
							姓名
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.customerName}}</text>
						</view>
					</view>
					<view class="flex flex-wrap solid-bottom">
						<view class="basis-xs margin-xs  padding-xs radius">
							手机号码
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.customerPhoneNum}}</text>
						</view>
					</view>
					<view class="flex flex-wrap solid-bottom">
						<view class="basis-xs margin-xs  padding-xs radius">
							身份证号
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.customerIdCard}}</text>
						</view>
					</view>
					<view class="flex flex-wrap solid-bottom">
						<view class="basis-xs margin-xs  padding-xs radius">
							联系地址
						</view>
						<view class="basis-lg margin-xs  padding-xs radius">
							<text class="text-black">{{orderInfo.customerAddress}}</text>
						</view>
					</view>
				</view>
			</view>
			<!--订单详情展示-->
			<view>
				<view class="cu-list menu">
					<view class="cu-item">
						<view class="content" hover-class="none">
							<text class="cuIcon-title  text-orange"> </text> <text class="text-lg">订单详情</text>
						</view>
					</view>
				</view>

				<view>
					<view class="cu-item  solid-bottom " v-for="value,key in orderInfo" :key="key">
						<view v-if="getOrderDesc(key)!=null" class=" bg-white">
							<view class="flex flex-wrap">
								<view class="basis-xs margin-xs  padding-xs radius">
									{{getOrderDesc(key)}}
								</view>
								<view v-if="getOrderDesc(key)=='订单状态'" class="basis-lg margin-xs  padding-xs radius">
									<text class="text-black ">{{value==0?'已下单':(value==1?'已使用':(value==2?'待归还':(value==3?'异常':'已归还')))}}</text>
								</view>
								<view v-else class="basis-lg margin-xs  padding-xs radius">
									<text class="text-black ">{{value}}</text>
								</view>
							</view>
						</view>
					</view>

					<!--补充信息-->
					<view class="cu-item ">
						<view class=" bg-white">
							<view class="flex flex-wrap ">
								<view class="basis-xs margin-xs  padding-xs radius">
									订单照片
								</view>
								<view class="basis-lg margin-xs  padding-xs radius">
									<swiper v-if="swiperList.length>0" class="screen-swiper square-dot" indicator-dots="true" circular="true"
									 :autoplay="true" interval="5000" duration="500">
										<swiper-item v-for="(item,index) in swiperList" :key="index">
											<image :src="item.url" mode="aspectFill" v-if="item.type=='image'"></image>
										</swiper-item>
									</swiper>
									<view v-else></view>
								</view>
							</view>
						</view>
					</view>
					<view class="padding-xl bg-white solid-bottom">

						<button form-type="submit" class="cu-btn block line-blue  lg" @click="orderCancel()">取消订单</button>

					</view>
				</view>


			</view>
		</scroll-view>

	</view>
</template>

6 系统功能描述

项目功能演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7 最后

计算机毕业生设计,课程设计需要帮助的可以找我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值