外卖订餐——吃货联盟订餐系统

通过一段时间的学习,也到了检验成果的时候了,下面通过实战提升对技能点的运用能力、积累项目经验。

“吃货联盟定餐系统”需求说明

现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只 要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐 现要求开发一个 网上订餐系统,其具体功能如下:

一、我要订餐 完成用户订餐,每条订单包含如下信息:

 订餐人姓名:要求用户输入

 选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要 选择的菜品序号及份数

 送餐时间:要求当天 10 到 20 点间整点送餐,要求用户输入 10~20 的整数,输 入错误,重复输入。

 送餐地址:要求用户输入

 状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)

 总金额: 总金额 = 菜品单价*份数-送餐费 (送餐费:当单笔订单金额达到 50 元时,免送餐费,否则,需交纳 6 元送餐费) 订餐成功后,显示订单信息。

二、 查看订单 遍历显示已有定单

内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、 状态(已预定或已完成)、总金额

三、 签收定单 将定单中状态改为已完成

四、删除定单

用户输入订单序号,如该序号定单为已完成状态,可以删除,其它情况给出相应提 示信息

五、我要点赞

显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜 品的点赞。

六、退出系统

退出整个系统,显示“谢谢使用,欢迎下次光临”。

七、菜单切换

用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入 1~5 时,执行相应功 能(如图 1 所示)。

package cn.kgc;

import java.util.Scanner;

/**
 * @Author:Adminstrator
 * @Date:
 * @Description:
 */
public class PingTai {
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        String[] dishes={"宫保鸡丁","蒸熊掌","红烧鲍鱼","佛跳墙","麻婆豆腐"};
       double[] prices={23,56,43,88,15};
        int[] honors=new int[5];
        final double SEND_PRICE=6;
        String[][] bills=new String[1000][];
        System.out.println("***********欢迎来到吃货联盟**********");
        int choice;
       do{
           System.out.println("***1、我要订餐***");
           System.out.println("***2、查看订单***");
           System.out.println("***3、确认订单***");
           System.out.println("***4、删除订单***");
           System.out.println("***5、我要点赞***");
           System.out.println("***6、退出系统***");
           System.out.println("请输入你的选择");
           choice=s.nextInt();
           switch (choice){
               case 1:
                   System.out.println("请输入您的姓名:");
                   String name = s.next();
                   //展示菜单
                   System.out.println("序号\t菜名\t\t价格\t点赞数");
                   for (int i = 0; i < dishes.length; i++) {
                       System.out.println(i + 1 + "\t" + dishes[i] + "\t" + prices[i] + "\t" + honors[i]);
                   }
                   System.out.println("请输入您要点的菜");
                   int num = s.nextInt();
                   System.out.println("请输入份数:");
                   int pcs = s.nextInt();
                   System.out.println("请输入送餐时间(10-20点整点送餐)");
                   int time = s.nextInt();
                   System.out.println("请输入送餐地址:");
                   String address = s.next();
                   double total = prices[num - 1] * pcs;
                   total = total > 60 ? total : total + SEND_PRICE;
                   System.out.println(name + "顾客,恭喜订餐成功,您点了" + dishes[num - 1] + pcs + "份,"
                           + "总价格为:" +total + "," + time + "点送达,您的地址为:" + address);
                   for (int i = 0; i < bills.length; i++) {
                       if(bills[i]==null){
                           bills[i]=new String[]{dishes[num-1]+"\t"+pcs+"\t"+total+"\t"+
                           name+"\t"+time+"\t"+address,"已预订"};
                           break;
                       }

                   }
                   break;
               case 2:
                   System.out.println("***查看订单***");
                   System.out.println("序号\t菜名\t\t份数\t总价\t\t姓名\t时间\t送餐地址\t状态");
                   for (int i = 0; i < bills.length; i++) {
                       if(bills[i]==null){
                           break;
                       }
                       System.out.println(i+1+"\t"+bills[i][0]+"\t"+bills[i][1]);
                   }
                   break;
               case 3:
                   System.out.println("***确认订单***");
                   System.out.println("序号\t菜名\t\t份数\t总价\t姓名\t时间\t送餐地址\t状态");
                   for (int i = 0; i < bills.length; i++) {
                       if(bills[i]==null){
                           break;
                       }
                       System.out.println(i+1+"\t"+bills[i][0]+"\t"+bills[i][1]);
                   }
                   System.out.println("请输入你要确认的订单编号:");
                    int billNum=s.nextInt();
                    if(bills[billNum-1]==null){
                        System.out.println("订单不存在");
                    }else if(bills[billNum-1][1].equals("已完成")){
                        System.out.println("订单已完成,不能重复确认!");
                    }else{
                        bills[billNum-1][1]="已完成";
                        System.out.println("确认订单成功!");
                    }
                   break;

               case 4:
                   System.out.println("***删除订单***");
                   System.out.println("序号\t菜名\t\t份数\t总价\t\t姓名\t时间\t送餐地址\t状态");
                   for (int i = 0; i < bills.length; i++) {
                       if(bills[i]==null){
                           break;
                       }
                       System.out.println(i+1+"\t"+bills[i][0]+"\t"+bills[i][1]);
                   }
                   System.out.println("请输入你要删除的订单编号:");
                   int delNum=s.nextInt();
                   if(bills[delNum-1]==null){
                       System.out.println("订单不存在,删除失败!");
                   }else if(bills[delNum-1][1].equals("已预订")){
                       System.out.println("订单未完成,不能删除!");
                   }else{//可以删除
                       for (int i = delNum-1; i < bills.length; i++) {
                           bills[i]=bills[i+1];
                           if (bills[i+1]==null){
                               break;
                           }
                       }
                       System.out.println("删除成功!");
                   }
                   break;
               case 5:
                   System.out.println("***我要点赞***");
                   //展示菜单
                   System.out.println("序号\t菜名\t\t价格\t点赞数");
                   for (int i = 0; i < dishes.length; i++) {
                       System.out.println(i + 1 + "\t" + dishes[i] + "\t" + prices[i] + "\t" + honors[i]);
                   }
                   System.out.println("请输入您要点赞的菜品");
                   int honorNum=s.nextInt();
                   honors[honorNum-1]++;
                   break;
               case 6:
                   break;
               default:
                   break;
           }
       }while(choice>0&&choice<6);
        System.out.println("谢谢惠顾,欢迎下次光临");
    }
}

今天的内容到此结束,下次再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/34135.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于android 订餐外卖APP,前台后台服务都齐全

基于android开发的订餐外卖APP 一 项目介绍 该项目是基于android开发的订餐外卖app&#xff0c;前台和后台管理都有&#xff0c;内容很多&#xff0c;非常值得学习&#xff0c;二次开发&#xff0c;设计指导性项目。 二 软件技术说明 软件架构说明 项目技术&#xff1a; …

瑞吉外卖-后台系统功能

目录 前言后台系统登录功能需求分析代码实现实体类Mapper层Service层Controller层 总结 后台系统退出功能需求分析代码实现总结 后台登录优化需求分析代码实现方法一&#xff1a;过滤器方法二&#xff1a;拦截器 总结 前言 所有的命名要符合开发规范&#xff0c;本项目中不再解…

【瑞吉外卖】day09:用户地址簿功能、菜品展示、购物车、下单

目录 1. 用户地址簿功能 1.1 需求分析 1.2 数据模型 1.3 导入功能代码 1.4 功能测试 2. 菜品展示 2.1 需求分析 2.2 前端页面分析 2.3 代码开发 2.4 功能测试 3. 购物车 3.1 需求分析 3.2 数据模型 3.3 前端页面分析 3.4 准备工作 3.5 代码开发 3.6 功能测试 …

外卖管理系统(一)

内容 软件开发整体介绍 瑞吉外卖项目介绍 开发环境搭建 后台登录功能开发 后台退出功能开发 1. 软件开发整体介绍 作为一名软件开发工程师,我们需要了解在软件开发过程中的开发流程&#xff0c; 以及软件开发过程中涉及到的岗位角色&#xff0c;角色的分工、职责&#x…

外卖订餐管理系统

需求分析 项目概述 外卖订餐系统分成前台订餐管理子系统、店家信息管理子系统和后台管理子系统这三个子系统。用户通过此平台可以浏览菜品、查询菜品、查询店家&#xff0c;注册登录后可以提交订单、查询订单、管理个人信息等&#xff1b;商家通过此平台注册登录后可以接单、…

基于android的外卖在线订餐系统app

本外卖订餐系统是一个Android 客户端JSP Servlet服务端应用程序&#xff0c;启动Android上的应用程序后可以登录、查看菜品等,再者学校学生人数的增加&#xff0c;学生对餐饮服务的要求更加高&#xff1b;许多学生不满足于学校食堂的餐饮或嫌学校食堂就餐排队时间长&#xff0c…

瑞吉外卖订单后台和用户端功能

项目场景&#xff1a; 在编写瑞吉外卖的订单功能的时候&#xff0c;还是按照惯例&#xff0c;订单的一些功能是我们自己做&#xff0c;毕竟都看了一百多集视频了&#xff0c;自己应该能写一点东西了。 遇到的坑&#xff1a; 后台的订单列表功能&#xff0c;有一个输入订单号查询…

瑞吉外卖 —— 2、后台登录和登出

目录 1、后台登录功能 1.1、接口分析 1.1.2、登录校验逻辑 1.2、代码 1.2.1、统一的返回结果实体类 1.2.2、controller 方法 1.3、测试 2、后台退出功能 2.1、分析 2.2、代码 3、未登录访问首页跳转到登录页面 3.1、分析 3.2、代码 1、后台登录功能 1.1、接口分析…

外卖点餐APP-02(后台--员工管理)

&#xff08;一&#xff09;登录 实现思路&#xff1a; 接收到用户登录输入的用户名和密码&#xff0c;封装到了emp对象中对密码进行MD5加密创建条件构造器添加sql查询判断条件&#xff0c;emp对象中的Username等于Employee数据表中的Username调用MyBatis-Plus的方法查询数据库…

瑞吉外卖-移动端菜品展示功能,购物车添加菜品及修改等功能,用户下单功能及历史订单派送功能

整理记录下学习整个瑞吉外卖项目&#xff0c;详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用&#xff01; 12.菜品展示 12.1 需求分析 12.2 更改前台页面使其正常显示 由于购物车功能还未进行开发&#xff0c;所以修改main.js中的cartListJson函数中访问固定数据&a…

外卖点餐APP-04(后台--菜品管理)

&#xff08;一&#xff09;新增 controller层思路&#xff1a; 调用service处理响应处理结果 PostMapping public R<String> save(RequestBody DishDto dishDto){dishService.saveWithFlavors(dishDto);return R.success("新增成功&#xff01;"); } servi…

瑞吉外卖:后台系统登录和退出功能

文章目录 需求分析代码开发创建实体类导入返回结果类Rcontroller、service与mapperlogin.html防止非法访问 需求分析 点击登录按钮后&#xff0c;浏览器以POST方式向employee/login提交username和password&#xff0c;服务器经过处理后向浏览器返回某种格式的数据&#xff0c;…

服装销售数据分析

目录&#xff1a; 一、项目背景介绍 二、数据源 三、分析流程 四、分析框架 五、知识点总结 一、项目背景介绍&#xff1a; 某服装经销商经营多个女装品牌&#xff0c;每个品牌设有线下店铺。该公司老板及销售总监需在每日营业结束后查看当日销售数据。以往主要由业务员手动整…

创建报价单或销售凭证,提示无定价确定过程能被确定,消息号V1212

创建报价单&#xff0c;提示无定价确定过程能被确定&#xff0c;消息号V1212。 解决方案&#xff1a; spro 》销售和分销——》基本功能——》定价——》定价控制——》定价并分配定价过程 1&#xff09;将凭证定价程序分配给订单类型 2&#xff09;设置定价程序确定&#xff0…

ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)

ChatGPT工作提效系列文章目录 ChatGPT工作提效之初探路径独孤九剑遇强则强ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)ChatGPT工作提效之生成开发需求和报价单并转为Excel格式ChatGPT工作提效之小鹅通二次开发批量API对…

Zia和ChatGPT如何协同工作?

有没有集成ChatGPT的CRM系统推荐&#xff1f;Zoho CRM已经正式与ChatGPT集成。下面我们将从使用场景、使用价值和使用范围等方面切入讲述CRMAI的应用和作用。 Zia和ChatGPT如何协同工作&#xff1f; Zia和ChatGPT是不同的人工智能模型&#xff0c;在CRM中呈现出共生的关系。 …

AIGC持续火爆大模型争相推出,庞大市场造就算力供应模式演变

本图由AI生成 文/王吉伟 近期的AIGC领域仍旧火爆异常。 但火的不只是AIGC应用&#xff0c;还有巨头之间的AI竞赛&#xff0c;以及接连不断上新的AI大模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;。 面对ChatGPT带来的技术冲击&#xff0c;为了研发谷歌多…

ChatGPT实现命名实体识别(NER, named entity recognization)和词性归类

语义分析词格分类 命名实体识别(NER, named entity recognization)和词性归类是 NLP 技术中的关键一环。过去 NLP 领域有不少流行的开源项目专注在这个领域&#xff0c;如 Spacy、NLTK 等等。我们来试试 ChatGPT 在这方面的表现情况如何。我们从"四渡赤水"的百度百科…

突发!两所知名大学,曝合并!校方紧急回应:校长将亲自说明!

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 来源丨联合新闻网 编辑丨3D视觉工坊 点击进入—>3D视觉工坊学习交流群 我国台湾又有“国立”大学传出合并的消息&#xff0c;台湾中山大学与台湾高雄大学传将重启合并协商&#xff0c;有网友曝光中山大学发…

从 Uber 数据泄露事件我们可以学到什么?

Uber 数据泄露始于一名黑客从暗网市场购买属于一名 Uber 员工的被盗凭证。最初尝试使用这些凭据连接到 Uber 的网络失败&#xff0c;因为该帐户受 MFA 保护。为了克服这一安全障碍&#xff0c;黑客通过 What’s App 联系了 Uber 员工&#xff0c;并假装是 Uber 的安全人员&…