<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • java項目開發案例經典(java初學者簡易小程序)


    項目案例–吃貨聯盟

    一、項目準備:

    1.開發環境:

    • JDK1.8
    • IntelliJ IDEA

    2.技術點分析:

    • 能理解程序基本概念 – 程序
    • 會使用變量、數據類型
    • 會使用順序、選擇、循環、跳轉語句編寫程序
    • 會使用數組

    3.任務描述:

    只要動動手指,就能送餐上門”,網上訂餐深受現代人青睞,現開發一個網上訂餐系統,功能如下:

    • 我要訂餐
    JAVA項目案例詳解(帶代碼)
    JAVA項目案例詳解(帶代碼)
    • 查看餐袋
    JAVA項目案例詳解(帶代碼)
    • 簽收訂單
    JAVA項目案例詳解(帶代碼)
    JAVA項目案例詳解(帶代碼)
    JAVA項目案例詳解(帶代碼)
    • 刪除訂單
    JAVA項目案例詳解(帶代碼)
    JAVA項目案例詳解(帶代碼)
    JAVA項目案例詳解(帶代碼)
    • 我要點贊
    JAVA項目案例詳解(帶代碼)
    • 退出系統
    JAVA項目案例詳解(帶代碼)

    二、需求:

    1.需求分析:

    買家:

    買家訂單基本信息-用戶名,時間,地址,數量等

    賣家:

    菜品信息-單價、品種、點贊數

    模塊劃分:

    我要訂餐–添加–insert -C(create) 查看餐袋–查詢–read -R 簽收訂單–修改–update -U 刪除訂單–刪除–delete -D 基本所有的項目都是在對數據進行增刪改查(CRUD) 我要點贊–輔助功能 退出系統–流程控制

    2.編寫要求:

    項目名—Foods 包名–cn.xx.controll 類名–OrderingMsg 項目編寫完成需要制作成運行jar及bat文件

    3.編寫步驟:

    定義變量–測試數據–搭建總框: do…while中嵌套switch,將跳轉切換使用數字進行替換 查看訂單 查看之前–循環之前先判定是否為空 添加訂單 作業:補全是否繼續的功能 添加注意打印小票和數組添加數據的分開操作 簽收訂單: 判定簽收的情況:不存在該訂單/存在不能簽收/簽收 刪除訂單: 將需要刪除的數據之后的所有數據全部前移,然后將最后一條廢數據清空 我要點贊: 顯示菜單,然后將指定的點贊菜品添加1

    三、代碼分析:

    1.定義變量:

    //定義買家變量--數組
    String[] names=new String[4]; ? ? ? ? ? ?//訂餐人姓名
    int[] times=new int[4]; ? ? ? ? ? ? ? ? ?//訂餐時間-整點
    String[] ?addresses=new String[4]; ? ? ? //訂餐地址
    String[] dishMegs=new String[4]; ? ? ? ? //所選菜品信息
    double[] sumPrices=new double[4]; ? ? ? ?//總金額
    int[] states=new int[4]; ? ? ? ? ? ? ? ? //訂單狀態信息
            
    //定義賣家菜品變量--數組
    String[] dishNames={"大肘子","鍋包肉","辣鴨頭","麻辣蝦"}; ? ? //菜品信息
    double[] prices={59,58,48,69};                       ?//菜品單價
    int[] praiseNums={4,5};                              ?//菜品點贊數

    2.框架模塊:

    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("請選擇");
     ? ?num=input.nextInt();
     ? ?switch (num) {
     ? ? ? ?case 1:
     ? ? ? ? ? ?System.out.println("我要訂餐");
     ? ? ? ? ? ?break;
     ? ? ? ?case 2:
     ? ? ? ? ? ?System.out.println("查看餐袋");
     ? ? ? ? ? ?break;
     ? ? ? ?case 3:
     ? ? ? ? ? ?System.out.println("簽收訂單");
     ? ? ? ? ? ?break;
     ? ? ? ?case 4:
     ? ? ? ? ? ?System.out.println("刪除訂單");
     ? ? ? ? ? ?break;
     ? ? ? ?case 5:
     ? ? ? ? ? ?System.out.println("我要點贊");
     ? ? ? ? ? ?break;
     ? ? ? ?case 6:
     ? ? ? ? ? ?System.out.println("退出系統");
     ? ? ? ? ? ?isExit=true;
     ? ? ? ? ? ?break;
     ? ? ? ?default:
     ? ? ? ? ? ?isExit=true;
     ? ? ? ? ? ?break;
     ?  }
    
     ? ?//判定是否回退到一級菜單
     ? ?if(!isExit){
     ? ? ? ?System.out.println("輸入0返回");
     ? ? ? ?num=input.nextInt();
     ?  }else{
     ? ? ? ?break;
     ?  }
    }while(num==0);
    System.out.println("歡迎下次使用!");  

    3.查看餐袋:

    for (int i = 0; i <names.length; i++) {
     ? ?//判定---如果用戶信息為空,該訂單不進行打印
     ? ?if(names[i]!=null){
     ? ? ? ?String state=(states[i]==0)?"已預訂":"已完成";
     ? ? ? ?String ?sumPrice=sumPrices[i]+"元";
     ? ? ? ?String time=times[i]+"時";
     ? ? ? ?System.out.println((i+1)+" tt"+names[i]+" tt"
     ? ? ? ? ? ? ? ? ? ? ? ? ? +dishMegs[i]+" tt"+time
     ? ? ? ? ? ? ? ? ? ? ? ? ? +" tt"+addresses[i]+" tt"+sumPrice+" tt"+state);
     ?  }
    }

    4.我要訂餐:

    for (int i = 0; i < names.length; i++) {
     ? ?//往數組添加內容-需要先獲取數組空的位置-第一個位置--循環結束掉
     ? ?if(names[i]==null){
     ? ? ? ?//進入判定則標志著可以進行數據添加的空位---將標記進行修改
     ? ? ? ?isAdd=true;
     ? ? ? ?//添加訂單
     ? ? ? ?System.out.println("請輸入用戶名"); ?//模擬登陸
     ? ? ? ?String name=input.next();
     ? ? ? ?//打印菜品信息
     ? ? ? ?System.out.println("序號  t菜名 t單價 t點贊數");
     ? ? ? ?for (int j = 0; j < dishNames.length; j++) {
     ? ? ? ? ? ?String ?price=prices[j]+"元";
     ? ? ? ? ? ?String ?praise=(praiseNums[j]>0)?praiseNums[j]+"贊":"";
     ? ? ? ? ? ?System.out.println((j+1)+" t"+dishNames[j]+" t"+price+" t"+praise);
     ? ? ?  }
     ? ? ? ?System.out.println("請輸入你選擇的菜品的序號");
     ? ? ? ?int ?chooseDish=input.nextInt();
     ? ? ? ?System.out.println("請輸入房購買的份數");
     ? ? ? ?int number=input.nextInt();
     ? ? ? ?//處理訂餐信息和訂餐總額
     ? ? ? ?String dishMeg=dishNames[chooseDish-1]+""+number+"份";
     ? ? ? ?double sumPrice=prices[chooseDish-1]*number;
     ? ? ? ?//判定是否需要進行配送費:超過50免配送費
     ? ? ? ?double deliCharge=(sumPrice>=50)?0:5; ? ?//配送費
     ? ? ? ?//配送時間-如果時間輸入不正確需要重復輸入直到輸入正確為止  10  -20
     ? ? ? ?System.out.println("請輸入配送時間(10-20的整點)送餐");
     ? ? ? ?int ?time=input.nextInt();
     ? ? ? ?/*while(!(time>=10&&time<=20)){
                                System.out.println("您輸入的時間不正確,請重新輸入");
                                time=input.nextInt();
                            }*/
     ? ? ? ?while(time<10 ||time>20){
     ? ? ? ? ? ?System.out.println("您輸入的時間不正確,請重新輸入");
     ? ? ? ? ? ?time=input.nextInt();
     ? ? ?  }
     ? ? ? ?System.out.println("請輸入送餐地址");
     ? ? ? ?String address=input.next();
    
     ? ? ? ?//打印小票
     ? ? ? ?System.out.println("訂餐成功!");
     ? ? ? ?System.out.println("您的訂餐是"+dishMeg);
     ? ? ? ?System.out.println("餐費是"+sumPrice+",配送費是"+deliCharge+",總金額是"+(sumPrice+deliCharge));
    
     ? ? ? ?//將數據添加到數組中
     ? ? ? ?names[i]=name;
     ? ? ? ?dishMegs[i]=dishMeg;
     ? ? ? ?times[i]=time;
     ? ? ? ?addresses[i]=address;
     ? ? ? ?sumPrices[i]=sumPrice+deliCharge;
     ? ? ? ?//當將當前循環中添加完成以后直接循環結束
     ? ? ? ?break;
     ?  }
    }
    //如果整個循環結束都沒有找到空位,則表示當前餐袋已滿
    if(!isAdd){
     ? ?System.out.println("對不起,餐袋已滿!");
    }

    5.簽收訂餐:

    for (int i = 0; i <names.length; i++) {
     ? ?//判定---如果用戶信息為空,該訂單不進行打印
     ? ?if(names[i]!=null){
     ? ? ? ?String state=(states[i]==0)?"已預訂":"已完成";
     ? ? ? ?String ?sumPrice=sumPrices[i]+"元";
     ? ? ? ?String time=times[i]+"時";
     ? ? ? ?System.out.println((i+1)+" tt"+names[i]+" tt"+dishMegs[i]+" tt"+time
     ? ? ? ? ? ? ? ? ? ? ? ? ? +" tt"+addresses[i]+" tt"+sumPrice+" tt"+state);
     ?  }
    }

    6.刪除訂單:

    for (int i = 0; i < names.length; i++) {
     ? ?if(names[i]!=null&&states[i]==1&&delId==i+1){
     ? ? ? ?//能找到訂單并可以刪除
     ? ? ? ?isDelFind=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];
     ? ? ?  }
     ? ? ? ?//最后一個數據進行清空還原處理
     ? ? ? ?names[names.length-1]=null;
     ? ? ? ?dishMegs[dishMegs.length-1]=null;
     ? ? ? ?times[times.length-1]=0;
     ? ? ? ?addresses[addresses.length-1]=null;
     ? ? ? ?states[states.length-1]=0;
     ? ? ? ?System.out.println("刪除訂單成功!");
     ? ? ? ?break;
     ?  }else if(names[i]!=null&&states[i]==0&&delId==i+1){
     ? ? ? ?//能找到訂單但是不能刪除
     ? ? ? ?isDelFind=true;
     ? ? ? ?System.out.println("該訂單未簽收,不能被刪除!");
     ? ? ? ?break;
     ?  }
    }
    
    //如果循環結束都沒有找到訂單則表示不存在
    if(!isDelFind){
     ? ?System.out.println("您要刪除的訂單不存在!");
    }

    7.我要點贊:

    for (int i = 0; i < dishNames.length; i++) {
     ? ?String price=prices[i]+"元";
     ? ?String praiseNum=(praiseNums[i]>0)?praiseNums[i]+"贊":"";
     ? ?System.out.println((i+1)+"t "+dishNames[i]+"t "+price+"t "+praiseNum);
    }
    System.out.println("請輸入您需要點贊的菜品序號");
    int praiseId=input.nextInt();
    //將點贊內容進行自增
    praiseNums[praiseId-1]++;
    System.out.println("點贊成功!");

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费