java基础“吃货联盟”(纯代码)

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);
        
        
        
    }

}
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱尔斯Jules

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值