JAVA 吃貨聯盟


/**
 * 吃貨聯盟 訂單類
 * @author 張歡
 *
 */
public class OrderSet {
    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];   //保存訂單的總金額

}

/**
 * 吃貨聯盟 訂單管理工具類
 * @author 張歡
 *
 */

public class OrdeUtil {
        String[] disNames={"紅燒帶魚","魚香肉絲","時令蔬菜"};
        double[]prices ={38,20,10};
        int[] praiseNums=new int [3];
        OrderSet oSet =new OrderSet();//創建OrderSet類的對象為oset
        
    //實現初始化
    public void initial(){
        //第一條訂單
        oSet.names[0]="張晴";
        oSet.dishMegs [0]="紅燒帶魚";
        oSet. times[0]=12;
        oSet.addresses[0]="天成路207";
        oSet.sumPrices[0]=76.0;
        oSet.states[0]=1;
        //第二條訂單
        oSet.names[1]="張晴";
        oSet.dishMegs [1]="魚香肉絲";
        oSet. times[1]=18;
        oSet.addresses[1]="天成路207";
        oSet.sumPrices[1]=80.0;
        oSet.states[1]=0;
    
    }

 

public boolean add(){//訂餐就是增加訂單
        boolean isAdd=false;
        Scanner input=new Scanner(System.in);
        for (int i = 0; i < oSet.names.length; i++) {
            if(oSet.names[i]==null){//找到第一個為空的位置
                isAdd=true;//可以訂餐
                System.out.println("請輸入訂餐姓名:");
                String name=input.next();
                System.out.println("序號"+"\t"+"菜名"+"\t"+"單價"+"\t"+"點贊數");
                for (int k = 0; k <disNames.length; k++) {//顯示供選擇的菜品信息
                    String price=prices[k]+"元";
                    String praiseNum=(praiseNums[k])>0?praiseNums[k]+"贊":"0";
                    System.out.println((k+1)+"\t"+disNames[k]+"\t"+price+"\t"+praiseNum);
                    
                }
                System.out.println("請選擇您要點的菜品編號:");//用戶點菜
                int chooseDish=input.nextInt();
                System.out.println("請選擇您需要的份數");
                int number=input.nextInt();
                String dishMeg=disNames[chooseDish-1]+""+number+"份";
                double sumprice=prices[chooseDish-1]*number;
                double deliChaege=(sumprice>=50)?0:5;//餐費滿50元,免送餐費
                System.out.println("請輸入送餐時間(送餐時間是10點至20點之間整點送餐)");
                int time=input.nextInt();
                while(time<10||time>20){
                    System.out.println("您的輸入有誤,請輸入10-20之間的整數!");
                    time=input.nextInt();
                }
                System.out.println("請輸入送餐地址");    
                String address=input.next();    
                //無需添加狀態,默認是0,既已預定狀態    
                System.out.println("訂餐成功!");
                System.out.println("您定的是:"+dishMeg);
                System.out.println("送餐時間是:"+time+"點");
                System.out.println("餐費"+sumprice+"元,送餐費"+deliChaege+"元,總計"+(sumprice+deliChaege)+"元");
                //添加數據
                oSet.names[i]=name;
                oSet.dishMegs[i]=dishMeg;
                oSet.times[i]=time;
                oSet.addresses[i]=address;
                oSet.sumPrices[i]=sumprice+deliChaege;
                isAdd=false;
                break;
            }//if結束
            
        }//for循環結束
        
        if(isAdd){
            System.out.println("對不起!您的餐帶已滿。");
            return false;
        }else{
            return true;
        }
    }//add()結束

//查看餐袋
    public void find(){
        System.out.println("序號\t訂餐人\t餐品信息\t\t送餐時間\t送餐地址\t\t總金額\t訂單狀況");
    for (int i = 0; i <oSet.names.length; i++) {
        String state=oSet.states[i]==0 ?"已預定":"已完成";//把0 1的狀態改為字符串
        if(oSet.names[i]!=null)
            System.out.println((i+1)+"\t"+oSet.names[i]+"\t"+oSet.dishMegs[i]+"\t"
                        +oSet.times[i]+"\t"+oSet.addresses[i]+"\t"+oSet.sumPrices[i]+"元"+"\t"+state);
        }//for
    }//find
    public void qscd(){//簽收訂單
        Scanner input=new Scanner(System.in);
        System.out.println("請輸入定單序號");
        int orderNo=input.nextInt();
        boolean flag=false;
        for (int i = 0; i <oSet.names.length; i++) {
            if(oSet.names[i]!=null && oSet.states[i]==0 && orderNo==(i+1)){//訂單狀態為0,改為已簽收
                oSet.states[i]=1;//已經簽收
                System.out.println("訂單已經簽收成功!");
                flag=true;
                }else if(oSet.names[i]!=null && oSet.states[i]==1 && orderNo==(i+1)){//訂單狀態為1,已經簽
                System.out.println("訂單已經是簽收狀態");    
                flag=true;
                }
        }//for
    if(flag){
        System.out.println("已簽收");
    }else{
    System.out.println("沒有此序號的訂單");    
    }
    }//簽收訂單方法結束

//刪除訂單
    public void deletedd(){
        Scanner input=new Scanner(System.in);
        boolean delFlag=false;//標記是否找到要刪除的訂單
        System.out.println("請輸入要刪除的訂單號");
        int deleteId=input.nextInt();
        for (int i = 0; i <oSet.names.length; i++) {
            if(oSet.names[i]!=null && oSet.states[i]==1 && deleteId==(i+1)){//狀態值為已完成,
            delFlag=true;//可以刪除已經簽收的了
            int index = 0;//從后往前 到要刪除的位置 ,移動
            for (int K = deleteId-1; K<oSet.names.length-1; K++) {
                oSet.names[K]=oSet.names[K+1];
                oSet.addresses[K]=oSet.addresses[K+1];
                oSet.dishMegs[K]=oSet.dishMegs[K+1];
                oSet.states[K]=oSet.states[K+1];
                oSet.sumPrices[K]=oSet.sumPrices[K+1];
                oSet.times[K]=oSet.times[K+1];
                index=K;//記錄的最后一次就是有內容的最后一個位置
            }
            //最后儲存了內容的一位清空
            oSet.names[index]=null;
            oSet.addresses[index]=null;    
            oSet.dishMegs[index]=null;
            oSet.states[index]=0;
            oSet.sumPrices[index]=0;
            oSet.times[index]=0;
            System.out.println("已經刪除完畢");
            break;
            }else if(oSet.names[i]!=null && oSet.states[i]==0 && deleteId==(i+1)){//狀態值為已預定
            System.out.println("預定訂單的狀態不可刪除");    //預定訂單的狀態不可刪除
            delFlag=true;
            }
            
        }//for結束
        
        if(delFlag){
            System.out.println("已經執行完畢");
        }else{
            System.out.println("沒有要刪除的訂單號!");
        }

    }//deleteOrder方法結束
    //點贊
    public void praise(){
        Scanner input =new Scanner(System.in);
        //顯示菜品信息
        System.out.println("序號"+"\t"+"菜品"+"\t"+"單價");
        for (int i = 0; i < disNames.length; i++) {
            String price=prices[i]+"元";
            String praiseNum=(praiseNums[i]>0)?praiseNums[i]+"贊":"";
            System.out.println((i+1)+"\t"+disNames[i]+"\t"+price+"\t"+praiseNum);
        }
        System.out.println("請選擇您要點贊的菜品");
        int praiseNum=input.nextInt();
        praiseNums[praiseNum-1]++;//贊數+1
        System.out.println("點贊成功!");
    }
    
}

 

 

//main方法

public class Chuolianmeng {
    public static void main(String[] args) {
        
        OrdeUtil  ou=new OrdeUtil();
        boolean flag = false;
        int num = 0;
        do {
            System.out.println("歡迎使用“吃貨聯盟訂單系統”");
            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("******************************************\n");
            Scanner input=new Scanner(System.in);
            System.out.println("請選擇:");
            int xz=input.nextInt();
            switch(xz){
                case 1:
                     flag = ou.add();
                    break;
                case 2:
                    ou.find();
                    break;
                case 3:
                    ou.qscd();
                    break;
                case 4:
                    ou.deletedd();
                    break;
                case 5:
                    ou.praise();
                    break;
                case 6:
                    break;
            }
            if(flag){
                System.out.println("輸出0返回!");
                num = input.nextInt();
            }
        } while (num == 0);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM