1 简介
今天向大家介绍一个帮助往届学生完成的毕业设计项目,餐厅点餐app。
计算机毕业生设计,课程设计需要帮助的可以找我
2 设计概要
21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,人们可以随时随地浏览到海量信息,但是这些大量信息千差万别,需要费事费力的筛选、甄别自己喜欢或者感兴趣的数据。对网络电影服务来说,需要用到优秀的协同过滤推荐功能去辅助整个系统。
本系统基于java技术,使用UML建模,采用springboot框架组合进行设计,Mysql数据库存储数据。本系统的功能主要包括:用户注册、登录、信息维护、搜索电影、电影评分、个性化推荐以及管理员进行信息管理等。
一、web后台
-
用户管理
进入用户管理栏目展示用户表(姓名,账号,密码,联系电话,注册时间,角色(普通用户、审核人、确认人、超级管理员)) -
实现 增、删、改、查 功能(可添加用户)
查的话根据输入的关键字模糊查询 -
用餐方式管理
进入用餐方式管理栏目展示用餐方式表(用餐类型名称)
给一个个人用餐不可删除,但可不启用
实现 增、删、改、查 功能 -
餐厅管理
进入餐厅管理栏目展示餐厅表(序号餐厅名称,餐厅地点)
实现 增、删、改、查 功能 -
综合查询
字段如图(班级改成单位),导出可不用 -
个人用餐座位管理
增删改查 (座位号,是否启用)
点击新增则直接添加一条座位(座位号1234…自增,默认启用)
表中得有是否占用的状态
二、App -
首先登录功能(登录名(账号)、密码)
注册先写了 但不一定用 计划用户是由超级管理员录入的(姓名、登录名(账号)、密码、手机号) -
然后是预约功能
先选择用餐类型(前面超级管理员管理的启用的用餐类型)
二 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 最后
计算机毕业生设计,课程设计需要帮助的可以找我