package com;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {
        
        //数据主体:一组订单信息
        String[] names = new String[4];       //保存订餐人姓名
        String[] dishMegs = new String[4];    //保存所选信息,包括菜品及份数
        int[] times = new int[4];             //保存送餐时间
        String[] addresses = new String[4];      //保存送餐地址
        int[] states = new int[4];            //保存订单状态:0表示已预定;1表示已完成
        double[] sumPrices = new double[4];   //保存订单的总金额
        
        //供选择的菜品信息
        String[] dishNames ={"宫保鸡丁","蒸熊掌","红烧鲍鱼","佛跳墙","麻婆豆腐"};
        //菜品单价
        double[] prices={23,56,43,88,15};
        int[] praiseNums =new int[5];
        
        Scanner input = new Scanner(System.in);
        int num = -1;             // 用户输入0返回主菜单,否则退出系统
        boolean isExit = false;  //标志用户是否退出系统,true为退出系统
        
        
//=======================================================================================        
        int choose;
        System.out.println("欢迎使用\"吃货联盟订餐系统\"");
        //循环:显示菜单,根据用户选择的数字执行相应的功能
        do{
            System.out.println("******************************************");
            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("******************************************");
            
            System.out.print("请选择:");
            choose = input.nextInt();
            for (; choose>6 || choose<0; ) {
                System.out.print("输入有误,请重新输入:");
                choose = input.nextInt();
            }
            switch(choose){
            case 1:
                System.out.println("***********1、我要订餐**********");
                boolean isAdd = false;
                for(int i = 0; i<names.length; i++){
                    if(names[i] == null){    //找到空位,可以添加信息
                        
                        isAdd = true;//标记位置,可以订餐
                        
                        /*boolean bool = true;*/
                        
                        System.out.println("请输入订餐人的姓名:");
                        String name= input.next();    
                        /*while(bool){*/
                            //展示菜单:
                            System.out.println("序号"+"\t"+"菜名"+"\t"+"价格"+"\t"+"点赞数");
                            for (int j = 0; j < dishNames.length; j++) {
                                String price = prices[j] +"元";
                                /*String praiseNum = (praiseNums[j])>0?(praiseNums[j])+"赞":" ";*/
                                System.out.println((j+1)+"\t"+dishNames[j]+"\t"+price+"\t"+praiseNums[j]);
                            }
                            //用户点菜
                            System.out.print("请选择您要点的菜品序号:");
                            int chooseDish = input.nextInt();  //餐品序号从一开始
                            
                            System.out.print("请选择您需要的份数:");
                            int number = input.nextInt();
                            String dishMeg = dishNames[chooseDish-1]+""+number+"份";   //序号从一开始,但是索引从0开始,减一
                            double sumPrice = prices[chooseDish-1]*number;
                            //餐费满50免配送费,否则+5
                            double sendmoney = (sumPrice>50)?0:5;
                            sumPrice += sendmoney;   //加上配送费后总的订餐价格
                            System.out.print("请输入送餐时间(送餐时间是10:00点到20:00点间整点送餐):");
                            int time = input.nextInt();
                            while (time<10||time>20) {
                                 System.out.println("您输入有误,请输入10~20间的整数!");
                                 System.out.print("请重新"
                                         + "输入送餐时间(送餐时间是10:00点到20:00点间整点送餐):");
                                 time = input.nextInt();
                             }
                            System.out.print("请输入送餐地址:");
                            String address =input.next();
                            //赋值:
                            names[i] = name;
                            dishMegs[i] =dishMeg;
                            times[i] =time;
                            addresses[i] =address;
                            sumPrices[i] =sumPrice+sendmoney;
                        
                            System.out.println("=============订餐成功~============");
                            System.out.println(name+"您订的是:" + dishNames[chooseDish-1]+" "+number+"份\n" 
                                    +"送餐时间是:"+time
                                    + "\n送餐地址:" + address
                                    +"\n餐费:"+prices[chooseDish-1]*number + "元   配送费:" + sendmoney+ "元   共计:" + sumPrice+"元");

/*System.out.println("是否继续点餐(y继续/n退出)");
                            String str = input.next();
                            if("y".equals(str)){
                                bool = true;
                            }else{
                                bool = false;
                            }
                        }*/
                        break;
                    }                        
                }if(!isAdd){
                    System.out.println("对不起,您的餐袋已满!");
                }
                
                break;
            case 2:
                System.out.println("***********2、查看餐袋**********");
                System.out.println("序号"+"\t"+"订餐人"+"\t"+"餐品信息"+"\t\t"+"送餐时间"+"\t"+"送餐地址"+"\t"+"总金额"+"\t"+"订单状态");
                for(int i = 0; i<names.length;i++){
                    if(names[i] != null ){
                        String state = states[i] == 0?"未签收":"已签收订单";
                        String time = times[i]+"点";
                        String sumPrice = sumPrices[i] + "元";
                        System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t\t"+time+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
                    }
                }
                break;
                
            /*1.输入正确的序号且当前状态为未签收,这种情况可以签收
              2.输入正确的序号且当前状态为已签收还未删除,这种情况须作出相应的提示
              3.输入序号不存在。作出提示。*/
            case 3:
                System.out.println("***********3、查收订单**********");
                boolean isSign = false;
                
                System.out.println("序号"+"\t"+"顾客"+"\t"+"餐品名"+"\t"+"订单状态");
                for(int i = 0; i<names.length; i++){
                    if(names[i] != null){
                        String state = states[i] == 0?"未签收":"已签收订单";                    
                        System.out.println((i + 1) + "\t" + names[i]+ "\t" + dishNames[i] + "\t" + state);
                    }
                }
                System.out.println("请选择要签收的订单序号:");
                int signOrder = input.nextInt();
                for(int i = 0; i<names.length;i++){
                    if(names[i] != null && states[i]==0 && signOrder==i+1){   //正常未签收
                        states[i] = 1;   //赋值1为订单签收
                        isSign = true;
                        System.out.println("订单签收成功!");
                    }else if(names[i] != null && states[i]==1 && signOrder==i+1){  //已签收
                        System.out.println("您的订单已签收,请勿重复操作。");
                        isSign = true;
                    }    
                }
                if(!isSign){
                    System.out.println("您输入的编号不存在,签收失败!");
                }
                break;    
                
            case 4:
                /*1.输入正确的序号且当前状态为未签收,不可删除
                2.输入正确的序号且当前状态为已签收,可删除
                3.输入序号不存在。作出提示。*/
                System.out.println("***********4、删除订单**********");
                boolean isDel = false;
                System.out.println("序号"+"\t"+"顾客"+"\t"+"餐品名"+"\t"+"订单状态");
                for(int i = 0; i<names.length; i++){
                    if(names[i] != null){
                        String state = states[i] == 0?"未签收":"已签收订单";
                        System.out.println((i + 1) + "\t" + names[i]+ "\t" + dishNames[i] + "\t" + state);
                    }
                }    
                boolean again3 = true;
                while(again3){
                    System.out.print("请输入要删除的订单序号:");
                    int delID = input.nextInt();
                    for(int i = 0; i<names.length; i++){                    
                        if (names[i] != null && states[i]==1 && delID ==i +1) {  //订单签收正常输出
                            isDel = true;
                            //执行删除操作:删除后的元素依次前移
                            for(int j = delID-1; j < names.length-1; j++){
                                names[j] = names[j+1];
                                dishMegs[j] = dishMegs[j+1];
                                times[j] = times[j+1];
                                addresses[j] = addresses[j+1];
                                states[j] = states[j+1];    
                                sumPrices[j] = sumPrices[j+1];
                            }
                            //最后一位清空
                            names[names.length-1] = null;
                            dishMegs[dishMegs.length-1] = null;
                            times[names.length-1] = 0;
                            addresses[names.length-1] = null;
                            states[names.length-1] = 0;
                            sumPrices[names.length-1] = 0;                        
                            System.out.println("订单删除成功~==============================");
                            break;
                        }else if(names[i] != null && states[i]==0 && delID==i+1){  //订单未签收,不可删除
                            System.out.println("您选择的订单未签收,不能删除!");
                            isDel = true;
                        }
                    }if(!isDel){
                        System.out.println("订单不存在,删除失败!");
                    }
                    System.out.print("是否继续删除(y继续/n退出):");
                    String str = input.next();
                    if("n".equals(str)){
                        again3 = false;
                    }
                    
                }
                break;
                                
            case 5:
                System.out.println("***********5、我要点赞**********");
                //展示菜单:
                System.out.println("序号"+"\t"+"菜名"+"\t"+"价格"+"\t"+"点赞数");
                for (int j = 0; j < dishNames.length; j++) {
                    String price = prices[j] +"元";
                    String praiseNum = (praiseNums[j])>0?(praiseNums[j])+"赞":" ";
                    System.out.println((j+1)+"\t"+dishNames[j]+"\t"+price+"\t"+praiseNum);
                }
                System.out.print("请选择您要点赞的菜品序号:");
                int praiseNum = input.nextInt();
                if (praiseNum < 0 || praiseNum > dishNames.length) {  //数字不能大于菜品数
                    System.out.println("您的输入的菜品序号有误,点赞失败!====");
                } else {
                    //在这里输入的序号需要-1,因为数组是从0开始的,所以需要前进一位
                    praiseNums[praiseNum-1]++;
                    System.out.println("点赞成功~====");
                }
                break;                
                
            case 6:
                System.out.println("***********6、退出系统**********");
                isExit = true;
                System.out.println("谢谢惠顾,欢迎下次光临");
                break;
                
            }
            if(isExit = true){   
                System.out.println();            
                System.out.print("输入0返回:");
                num = input.nextInt();
                if(num == 0){
                    
                }else{
                    System.out.println("输入指令错误重新输入");
                    System.out.print("输入0返回:");
                    num = input.nextInt();
                }
                
            }
               
            
        }while(true);
        
        
        
    }

}

java基础“吃货联盟”(纯代码)相关推荐

  1. Java基础 吃货联盟订餐系统

    Java基础 吃货联盟订餐系统 需求分析 系统概述 搭建框架 编写功能 项目总结 需求分析 系统概述 "只要动动手指,就能送餐上门",网上订餐深受现代人青睐,现开发一个网上订餐系统 ...

  2. Java基础——吃货联盟订餐系统

    吃货联盟订餐系统 刚刚学完java基础入门,主要学习Java基本环境搭建,定义变量.选择结构,循环结构.数组等.本阶段结束尝试接触此次吃货联盟订餐系统,第一次敲这么长的代码,后面多见识见识应该就好了, ...

  3. java编程 吃货联盟订餐系统

    最近呢,奥密克绒出现了,疫情防控严格起来了,我的线下Java程序课程暂时改成了线上了,这两天上了面向对象,对于零基础的我来说还是比较难的,唉 只能说这个进程的速度我来不及消化,趁着周五复习一下也是很老 ...

  4. Java面向对象 --- 吃货联盟订餐系统(完整版)

    文章目录 为什么使用面向对象 划分类 代码编写 为什么使用面向对象 Java面向对象版本的吃货联盟订餐系统: 因为基础版本都在一个类中实现的功能,太过于麻烦,不清楚 ,所以说我们利用面向对象制作吃货联 ...

  5. 20200716-java基础吃货联盟项目

    覆盖技能点: - 程序基本概念 变量 数据类型 - 流程控制 顺序 选择 循环 跳转语句 - 数组 项目演示及需求讲解: "只要动动手指,就能送餐上门",网上定餐深受现代人青睐,现 ...

  6. java 案例 吃货联盟

    我要订餐 查看订单 签收订单 删除订单 我要点赞(1) 我要点赞(2) 程序思路 搭建平台 输出欢迎语句 用户输入姓名 创建 Food 类 变量 Food 数组 询问份数和地址等 定义订单项对象数组 ...

  7. Java实现吃货联盟订餐系统

    系统概述 "只要动动手指,就能送餐上门",网上定餐深受现代人青睐,现开发一个网上订餐系统,功能如下 l我要订餐 l查看餐袋 l签收订单 l删除订单 l我要点赞 l退出系统 pack ...

  8. 看完吃货联盟后——自制的购物乐园

    购物乐园是由我作者本人单独完成的一个项目,制作本次项目的目的是考验自己对基础语法的要求是否达到了自己预期的标.下面的代码包含了吃货联盟之前的很多知识点,可以说这是我学到Java到吃货联盟这一章的课程作 ...

  9. Java基础练习——吃货联盟

    Java基础练习--吃货联盟 提示:使用选择.循环以及数组等基础进行编写 文章目录 Java基础练习--吃货联盟 前言 一.使用步骤 1.代码 2.编写思路 总结 前言 提示:这里可以添加本文要记录的 ...

最新文章

  1. mysql create很多table,SQL CREATE TABLE 语句
  2. TI-89T 教你在C程序里调用TI-BASIC程序,看看是否有人对这个感兴趣
  3. UNIX(多线程):23---线程池注意事项和常见问题
  4. html没有插件怎么办,html网页包插件没有插入options.title
  5. 二维教组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且第1个元素的地址为150,则元素A[9][7]的地址为 ( )
  6. gulp之gulp-uglify模块
  7. ❤️大佬都在学什么?Python爬虫分析C站大佬收藏夹,跟着大佬一起学, 你就是下一个大佬❤️!
  8. java生成一条唯一的邀请码_根据用户id生成一个唯一邀请码
  9. (每日一题 day 003 - 二维前缀和+动态规划) 1314. 矩阵区域和
  10. 一个简单的开源PHP爬虫框架『Phpfetcher』
  11. glsl 抗锯齿锯齿_什么是抗锯齿?
  12. Friends 第一季英文学习整理
  13. 光耦参数理解(转载)
  14. linux基础及应用教程第二版课后答案,Linux基础及应用复习题(附加参考答案)
  15. Java用Tessdata做OCR图片文字识别
  16. ctf MISC 放松一下吧
  17. 3ds max 使用cloth修改器制作抱枕
  18. CSS技巧之向下箭头
  19. 微信开发详解scope---snsapi_base和snaspi_userinfo 区别
  20. 编写程序,解决鸡兔同笼问题:一个笼子里关着鸡和兔子。问笼中各有多少只鸡和兔?

热门文章

  1. OPCode详解及汇编与反汇编原理
  2. 计算机毕业设计选题推荐之nodejs+vue校园外卖订餐配送系统
  3. js打印线程id_泥瓦匠聊并发编程:线程与多线程必知必会(基础篇)
  4. 如何用云服务器进行深度学习
  5. 用pip安装django
  6. 任正非创业期间得抑郁症:研发失败我就跳楼
  7. 在BuildConfig中添加自定义字段
  8. php.ini 验证码,PHP-验证码
  9. reporting php,php error_reporting函数怎么用
  10. 你还在纠结用什么库写 Python 命令行程序?看这一篇就够了