吃货联盟订餐系统

package cn.bdqn.demo01;
import java.util.Scanner;
public class demo01 {

    public static void main(String[] args) {
        //定义数据主体:菜品
        String[] menus={"红烧带鱼","鱼香肉丝","时令蔬菜"};//菜名    
        double[] prices={38.0,20.0,10.0};//单价
        int[] praiseNums=new int[3];//点赞数
        
        //定义数据主体:订单-订餐人     餐品信息      送餐时间      送餐地址      总金额       订单状态
        String[] name=new String[4];
        String[] mealsMes=new String[4];//菜品名称+份数
        int[] time=new int[4];
        String[] address=new String[4];
        double[] total=new double[4];
        int[] states=new int[4];//0,已预订;1,已完成
        
        //初始化两个订单信息
        name[0]="张三";
        mealsMes[0]="红烧带鱼  2份";
        time[0]=8;
        address[0]="蒙城路";
        total[0]=76.0;//餐费>50免配送费,否则,加6元    
        states[0]=0;
        
        name[1]="李四";
        mealsMes[1]="鱼香肉丝  2份";
        time[1]=10;
        address[1]="亳州路";
        total[1]=40.0;//餐费>50免配送费,否则,加6元    
        states[1]=1;
        
        Scanner sc = new Scanner(System.in);
        
        int num=-1;//用户输入0时返回时的输入数字,num=0,重复显示主菜单    
        System.out.println("欢迎使用吃“货联盟订餐系统”");//里面的引号用中文状态
         //System.out.println("欢迎使用吃\"货联盟订餐系统\"");第二种
        
        //记录用户是否退出系统的状态.退出true    不退出false.
        boolean flag=false;
        
        //不知道循环次数,采用do-while循环,先运行,在判断.
        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("请选择:");
            
            int choose=sc.nextInt();
            switch(choose){
            
            case 1:
                System.out.println("*********我要订餐*********");
                
                boolean isAdd=false;
                for(int i=0;i<name.length;i++){
                    if(name[i]==null){//订餐未满,可以订餐    
                        isAdd=true;
                        //订餐
                        System.out.print("请输入订餐人姓名:");
                        String name1=sc.next();
                        
                        //循环输出菜品信息
                        System.out.println("序号\t菜名\t单价");
                        for(int j=0;j<menus.length;j++){
                            String praise=(praiseNums[j]==0)?"":praiseNums[j]+"赞";
                            System.out.println((j+1)+"\t"+menus[j]+"\t"+prices[j]+"\t"+praise);
                        }
                        
                        //菜品编号的输入及判断
                        System.out.print("请输入您要点的菜品编号:");
                        int num2=sc.nextInt();
                        while(num2<1||num2>menus.length){
                            System.out.print("本店没有这个菜品,请重新选择");
                            num2=sc.nextInt();
                        }
                        
                        //点菜份数
                        System.out.print("请输入您要点的份数:");
                        int num3=sc.nextInt();
                        
                        //送餐时间的输入及判断        
                        System.out.print("请输入送餐时间(送餐时间只能是10-20的整点):");
                        int times =sc.nextInt();
                        while(times<10||times>20){
                            System.out.print("您的输入有误,请重新输入");
                            times=sc.nextInt();
                        }
                        //送餐地址
                        System.out.print("请输入送餐地址:");
                        String addresses=sc.next();
                        //添加到订单信息
                        System.out.println("订餐成功!");
                        //菜品信息:菜名名称   份数
                        String menuInfo=menus[num2-1]+""+num3+"份";
                        System.out.println("您订的是:"+menuInfo);
                        System.out.println("送餐时间:"+times+"点");
                        //餐费 配送费 总计
                        double dishPrice=prices[num2-1]*num3;
                        double peiSong=(dishPrice>50)?0:6;
                        double totals=dishPrice+peiSong;
                        System.out.println("餐费:"+dishPrice+"元 ;配送费:"+peiSong+"元;总计:"+totals+"元");
                        
                        name[i]=name1;
                        mealsMes[i]=menuInfo;
                        time[i]=times;
                        address[i]=addresses;
                        total[i]=totals;
                        break;
                    }
                }
                break;
            
            case 2:
                System.out.println("*********查看餐带*********");
                
                System.out.println("序号\t订餐人\t菜名\t\t时间\t地址\t总金额\t状态");
                for(int i=0;i<name.length;i++){
                    if(name[i]!=null){
                        String times=time[i]+"点";
                        String state=(states[i]==0)?"已预订":"已完成";//三目运算符
                        
                        System.out.println(i+1+"\t"+name[i]+"\t"+mealsMes[i]+"\t"+times+"\t"+address[i]+"\t"+total[i]+"\t"+state);
                    }
                }
                break;
            
            case 3:
                System.out.println("*********签收订单*********");
                boolean isSign=false;
                System.out.println("请输入您要签收的订单编号");
                int sign=sc.nextInt();
                for(int i=0;i<4;i++){
                    if(name[i]!=null&&states[i]==0&&i==sign-1){
                        isSign=true;
                        states[i]=1;
                        System.out.println("订单签收成功");
                        }else if(name[i]!=null&&states[i]==1&&i==sign-1){
                            isSign=true;
                            System.out.println("您选择的订单已完成签收,不能再次签收!");
                        }
                    }
                if(!isSign){
                    System.out.println("您的订单不存在");
                }
                
                break;
            
            case 4:
                System.out.println("*********删除订单*********");
                //删除之前,判断订单是否存在,boolean
                //false-不存在,不能删除;true-存在,且预定状态,不能删除;存在,完成状态,删除
                boolean delete=false;
                System.out.println("请输入您要删除的订单编号");
    
                int delete1=sc.nextInt();
                for(int i=0;i<4;i++){
                    if(name[i]!=null&&states[i]==0&&i==delete1-1){
                        delete=true;
                        System.out.println("您选择的订单未接收,不能删除!");
                        }else if(name[i]!=null&&states[i]==1&&i==delete1-1){
                            delete=true;
        
                        }
                    }
                if(!delete){
                    System.out.println("您选择的订单不存在");
                }
                for(int j=0;j<name.length;j++){
                    name[j]=name[j+1];
                    mealsMes[j]=mealsMes[j+1];
                    time[j]=time[j+1];
                    address[j]=address[j+1];
                    total[j]=total[j+1];
                    states[j]=states[j+1];
                }
                name[name.length-1]=null;
                mealsMes[mealsMes.length-1]=null;
                time[time.length-1]=0;
                address[address.length-1]=null;
                total[total.length-1]=0;
                states[states.length-1]=0;
                
                break;
            
            case 5:
                System.out.println("*********我要点赞*********");
                System.out.println("序号\t菜名\t单价");
                for(int j=0;j<menus.length;j++){
                    String praise=(praiseNums[j]==0)?"":praiseNums[j]+"赞";
                    System.out.println((j+1)+"\t"+menus[j]+"\t"+prices[j]+"\t"+praise);
                }
                
                System.out.println("请输入您要点赞的菜品序号");
                int praiseNo=sc.nextInt();
                while(praiseNo<1||praiseNo>4){
                    System.out.println("本店没有这个菜品,无法点赞,请重新输入一个菜品序号");
                    praiseNo=sc.nextInt();
                }
                praiseNums[praiseNo]++;
                
                
                break;
            case 6:
                flag=true;
                System.out.println("*********退出系统*********");
                break;
            default:
                flag=true;
                break;
            }
            if(!flag){
                System.out.println("请输入0返回");
                num=sc.nextInt();
                }else{
                    break;
                }
            
            }while(num==0);
         System.out.println("谢谢使用,欢迎下次光临");
        }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值