2022.4.8练习

功能分析:

import java.util.Scanner;

public class task_27 {
    public static void main(String[] args) {
        //菜名
        String [] dishName = {"红烧肉","炸鸡","宫保鸡丁","烤鸭","糖醋里脊"};
        //单价
        double [] dishPrice = {25,26,18,23,26};
        //点赞
        int [] spot = new int[5];
        //订餐人
        String [] dishPeople = new String[5];
        //菜品信息
        String [] dishMessage = new String[5];
        //送餐时间
        int [] dishTime = new int[5];
        //地址
        String [] address = new String[5];
        //总金额
        double [] totalAmount = new double[5];
        //订单状态
        int [] state = new int[5];
        //创建Scanner
        Scanner input = new Scanner(System.in);

        //初始化信息
        dishPeople[0] = "小红";
        dishMessage[0] = "烤鸭";
        address[0] = "昆山";
        dishTime[0] = 15;
        totalAmount[0] = 28;
        state[0] = 0;



        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.println("请输入选择:");
            //接收用户选择
            int serialNum = input.nextInt();

            switch(serialNum){
                case 1 :
                    //判断数组是否存满
                    if(dishPeople[dishPeople.length-1] != null){
                        System.out.println("餐袋已满!");
                        break;
                    }

                    System.out.println("请输入订餐人姓名:");
                    String name = input.next();
                    System.out.println("序号\t菜名\t单价");
                    //打印菜名
                    for(int i = 0; i < dishName.length; i++){
                        System.out.println((i+1) + "\t" + dishName[i] + "\t" + dishPrice[i]);
                    }
                    //选择餐品
                    System.out.println("请选择您要点的菜品编号:");
                    int dishNo;
                    do {
                        dishNo = input.nextInt();
                        if(dishNo <=0 || dishNo > dishPeople.length){
                            System.out.println("本店没有这个菜品!请重新选择");
                            continue;
                        }
                        break;
                    }while (true);
                    //餐品份数
                    System.out.println("请选择您需要的份数");
                    int dishShare = input.nextInt();
                    //送餐时间
                    System.out.println("请输入送餐时间(送餐时间是10-20点间整点送餐):");
                    int time;
                    do {
                        time = input.nextInt();
                        if(time < 10 || time > 20){
                            System.out.println("您的输入有误!请输入10-20之间的整数:");
                            continue;
                        }
                        break;
                    }while (true);

                    //送餐地址
                    System.out.println("请输入送餐地址:");
                    String address1 = input.next();
                    System.out.println("订单成功!");
                    System.out.println("您定的是:" + dishName[dishNo-1] + dishShare + "份");
                    System.out.println("送餐时间:" + time + "点");
                    //餐费
                    double dishFee = dishPrice[dishNo-1]*dishShare;
                    int carryFee = dishFee > 26 ? 0 : 5;
                    System.out.println("餐费:" + dishFee + "元送餐费:" + carryFee + "元,总计:" + (dishFee+carryFee));

                    //数组添加信息
                    for(int i = 0; i < dishPeople.length; i++){
                        if(dishPeople[i] == null){
                            dishPeople[i] = name;
                            dishMessage[i] = dishName[dishNo-1]+dishShare;
                            dishTime[i] = time;
                            address[i] = address1;
                            totalAmount[i] = dishFee+carryFee;
                            break;
                        }
                    }


                    break;
                case 2 ://显示所有订单信息
                    System.out.println("序号\t订餐人\t菜品信息\t送餐时间\t地址\t总金额\t状态");
                    for(int i = 0; i < dishName.length; i++){
                        if(dishPeople[i] != null) {
                            System.out.println((i + 1) +"\t"+ dishPeople[i]+"\t" + dishMessage[i]+"\t"
                                                + dishTime[i]+"\t" + address[i]+"\t" + totalAmount[i]+"\t"
                                                + (state[i] == 0?"已预定":"已完成"));
                        }
                    }
                    break;
                case 3 ://签收订单
                    //判断订单是否存在
                    System.out.println("请选择要签收的订单序号:");
                    int signFor;
                    a:do {
                        //接收序号
                        signFor = input.nextInt();
                        //判断订单存不存在
                        for(int i = 0; i < dishPeople.length-1; i++){
                            //判断订单存不存在
                            if(signFor == (i+1) && dishPeople[i] != null){
                                //判断是否签收
                                if(state[i] == 1){
                                    System.out.println("订单已签收,不能再次签收!");
                                    break a;
                                }else {
                                    state[i] = 1;
                                    System.out.println("签收成功!");
                                    break a;
                                }
                            }
                        }
                        System.out.println("订单不存在!");
                        break a;
                    } while (true) ;
                    break;

                case 4 ://删除订单
                    System.out.println("请选择要删除的订单序号:");
                    int del;
                    b:do {
                        //接收序号
                        del = input.nextInt();
                        //判断订单存不存在
                        for(int i = 0; i < dishPeople.length; i++){
                            //判断订单存不存在
                            if(del == i+1 && dishPeople[i] != null){
                                //判断是否签收
                                if(state[i] != 1){
                                    System.out.println("订单未签收,不能删除!");
                                    break b;
                                }else {
                                    for(int j = i; j < dishName.length-1; j++){
                                        dishPeople[j] = dishPeople[j+1];
                                        dishMessage[j] = dishMessage[j+1];
                                        dishTime[j] = dishTime[j+1];
                                        address[j] = address[j+1];
                                        totalAmount[j] = totalAmount[j+1];
                                        state[j] = state[j+1];
                                    }
                                    dishPeople[dishPeople.length-1] = null;
                                    dishMessage[dishPeople.length-1] = null;
                                    dishTime[dishPeople.length-1] = 0;
                                    address[dishPeople.length-1] = null;
                                    totalAmount[dishPeople.length-1] = 0;
                                    state[dishPeople.length-1] = 0;


                                    System.out.println("删除成功!");
                                    break b;
                                }
                            }
                        }
                        System.out.println("订单不存在!");
                        break b;
                    } while (true) ;
                    break;


                case 5 ://点赞
                    System.out.println("序号\t菜名\t单价");
                    //打印菜名
                    for(int i = 0; i < dishName.length; i++){
                        System.out.println((i+1) + "\t" + dishName[i] + "\t" + dishPrice[i] + "\t" + (spot[i]>0?spot[i] + "赞":" ") );
                    }

                    System.out.println("请选择您要点赞的菜品序号");
                    int signFor1;
                    c:do {
                        //接收序号
                        signFor1 = input.nextInt();
                        //判断订单存不存在
                            if(signFor1 > 0 && signFor1 <= dishPeople.length){
                                    spot[signFor1-1] += 1;
                                    System.out.println("点赞成功!");
                                    break c;
                            }
                        System.out.println("订单不存在!");
                            break c;
                    }while (true);
                    break;

                case 6 :
                    System.out.println("退出系统");
                    return;
                default:
                    System.out.println("输入错误!请重新输入1-6的整数");
            }
            //输入0返回
            System.out.println("输入0返回,其他退出");
            serialNum = input.nextInt();
            if(serialNum != 0){
                System.out.println("退出系统");
                break;
            }


        }while (true);

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值