1. 程式人生 > >小項目,吃貨聯盟,java初級小項目,源代碼

小項目,吃貨聯盟,java初級小項目,源代碼

元素 image sign main *** sed states tint choose

1:項目的實現效果、功能如圖所示。

技術分享

2:項目的源代碼如下:

  1 import java.util.Scanner;
  2 
  3 /**
  4  * 吃貨聯盟訂餐管理系統
  5  * 
  6  */
  7 public class OrderingMsg {
  8     public static void main(String[] args) {
  9         // 數據主體:一組訂單信息
 10         String[] names = new String[4]; // 訂餐人名稱
 11         String[] dishMegs = new String[4]; //
所選菜品 12 int[] times = new int[4]; // 送餐時間 13 String[] addresses = new String[4]; // 送餐地址 14 int[] states = new int[4]; // 訂單狀態: 0:已預定 1:已完成 15 double[] sumPrices = new double[4]; // 總金額 16 17 //初始化2個訂單信息 18 names[0] = "張晴"; 19 dishMegs[0] = "紅燒帶魚 2份";
20 times[0] = 12; 21 addresses[0] = "天成路207號"; 22 sumPrices[0] = 76.0; 23 states[0] = 1; 24 25 names[1] = "張晴"; 26 dishMegs[1] = "魚香肉絲 2份"; 27 times[1] = 18; 28 addresses[1] = "天成路207號"; 29 sumPrices[1] = 20.0; 30 31
32 // 供選擇的菜品信息 33 String[] dishNames = { "紅燒帶魚", "魚香肉絲", "時令鮮蔬" }; // 菜品名稱 34 double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品單價 35 int[] praiseNums = new int[3]; 36 37 Scanner input = new Scanner(System.in); 38 int num = -1; // 用戶輸入0返回主菜單,否則退出系統 39 boolean isExit = false; // 標誌用戶是否退出系統: true:退出系統 40 41 System.out.println("\n歡迎使用“吃貨聯盟訂餐系統”"); 42 // 循環:顯示菜單,根據用戶選擇的數字執行相應功能 43 do { 44 // 顯示菜單 45 System.out.println("****************************"); 46 System.out.println("1、我要訂餐"); 47 System.out.println("2、查看餐袋"); 48 System.out.println("3、簽收訂單"); 49 System.out.println("4、刪除訂單"); 50 System.out.println("5、我要點贊"); 51 System.out.println("6、退出系統"); 52 System.out.println("****************************"); 53 System.out.print("請選擇:"); 54 int choose = input.nextInt(); // 記錄用戶選擇的功能編號 55 boolean isAdd = false; //記錄是否可以訂餐 56 boolean isSignFind = false; //找到要簽收的訂單 57 boolean isDelFind = false; //找到要刪除的訂單 58 // 根據用戶選擇的功能編號執行相應功能 59 switch (choose) { 60 case 1: 61 // 我要訂餐 62 System.out.println("***我要訂餐***"); 63 for (int j = 0; j < names.length; j++) { 64 if(names[j] == null){ //找到第一個空位置,可以添加訂單信息 65 isAdd = true; //置標誌位,可以訂餐 66 System.out.print("請輸入訂餐人姓名:"); 67 String name = input.next(); 68 // 顯示供選擇的菜品信息 69 System.out.println("序號" + "\t" + "菜名"+"\t"+"單價"); 70 for (int i = 0; i < dishNames.length; i++) { 71 String price = prices[i] + "元"; 72 String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i] 73 + "贊" : ""; 74 75 System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+ priaiseNum); 76 } 77 // 用戶點菜 78 System.out.print("請選擇您要點的菜品編號:"); 79 int chooseDish = input.nextInt(); 80 System.out.print("請選擇您需要的份數:"); 81 int number = input.nextInt(); 82 String dishMeg = dishNames[chooseDish - 1] 83 +" "+ number + "份"; 84 double sumPrice = prices[chooseDish - 1] * number; 85 //餐費滿50元,免送餐費10元 86 double deliCharge = (sumPrice>=50)?0:6; 87 88 System.out.print("請輸入送餐時間(送餐時間是10點至20點間整點送餐):"); 89 int time = input.nextInt(); 90 while (time < 10 || time > 20) { 91 System.out.print("您的輸入有誤,請輸入10~20間的整數!"); 92 time = input.nextInt(); 93 } 94 System.out.print("請輸入送餐地址:"); 95 String address = input.next(); 96 97 //無需添加狀態,默認是0,即已預定狀態。 98 System.out.println("訂餐成功!"); 99 System.out.println("您訂的是:"+dishMeg); 100 System.out.println("送餐時間:"+time+"點"); 101 System.out.println("餐費:"+sumPrice+"元,送餐費"+deliCharge+"元,總計:"+(sumPrice+deliCharge)+"元。"); 102 103 //添加數據 104 names[j] = name; 105 dishMegs[j] = dishMeg; 106 times[j] = time; 107 addresses[j] = address; 108 sumPrices[j] = sumPrice+deliCharge; 109 110 break; 111 } 112 } 113 if(!isAdd){ 114 System.out.println("對不起,您的餐袋已滿!"); 115 } 116 break; 117 case 2: 118 // 查看餐袋 119 System.out.println("***查看餐袋***"); 120 System.out.println("序號\t訂餐人\t餐品信息\t\t送餐日期\t送餐地址\t\t總金額\t訂單狀態"); 121 for(int i=0;i<names.length;i++){ 122 if(names[i]!=null){ 123 String state = (states[i]==0)?"已預定":"已完成"; 124 String date = times[i]+"日"; 125 String sumPrice = sumPrices[i]+"元"; 126 System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+date+"\t"+addresses[i]+"\t"+sumPrice+"\t"+state); 127 } 128 } 129 break; 130 case 3: 131 // 簽收定單 132 System.out.println("***簽收定單***"); 133 System.out.print("請選擇要簽收的訂單序號:"); 134 int signOrderId = input.nextInt(); 135 for(int i=0;i<names.length;i++){ 136 //狀態為已預定,序號為用戶輸入的訂單序號:可簽收 137 //狀態為已完成,序叼為用戶輸入胡訂單序號:不可簽收 138 if(names[i]!=null && states[i]==0 && signOrderId==i+1){ 139 states[i] = 1; //將狀態值置為已完成 140 System.out.println("訂單簽收成功!"); 141 isSignFind = true; 142 }else if(names[i]!=null && states[i]==1 && signOrderId==i+1){ 143 System.out.println("您選擇的訂單已完成簽收,不能再次簽收!"); 144 isSignFind = true; 145 } 146 } 147 //未找到的訂單序號:不可簽收 148 if(!isSignFind){ 149 System.out.println("您選擇的訂單不存在!"); 150 } 151 break; 152 case 4: 153 // 刪除訂單 154 System.out.println("***刪除訂單***"); 155 System.out.print("請輸入要刪除的訂單序號:"); 156 int delId = input.nextInt(); 157 for(int i=0;i<names.length;i++){ 158 //狀態值為已完成 序號值為用戶輸入的序號:可刪除 159 //狀態值為已預定 序號值為用戶輸入的序號:不可刪除 160 if(names[i]!=null && states[i]==1 && delId==i+1){ 161 isDelFind = true; 162 //執行刪除操作:刪除位置後的元素依次前移 163 for(int j=delId-1;j<names.length-1;j++){ 164 names[j] = names[j+1]; 165 dishMegs[j] = dishMegs[j+1]; 166 times[j] = times[j+1]; 167 addresses[j] = addresses[j+1]; 168 states[j] = states[j+1]; 169 } 170 //最後一位清空 171 names[names.length-1] = null; 172 dishMegs[names.length-1] = null; 173 times[names.length-1] = 0; 174 addresses[names.length-1] = null; 175 states[names.length-1] = 0; 176 177 System.out.println("刪除訂單成功!"); 178 break; 179 }else if(names[i]!=null && states[i]==0 && delId==i+1){ 180 System.out.println("您選擇的訂單未簽收,不能刪除!"); 181 isDelFind = true; 182 break; 183 } 184 } 185 186 //未找到該序號的訂單:不能刪除 187 if(!isDelFind){ 188 System.out.println("您要刪除的訂單不存在!"); 189 } 190 break; 191 case 5: 192 // 我要點贊 193 System.out.println("***我要點贊***"); 194 // 顯示菜品信息 195 System.out.println("序號" + "\t" + "菜名"+"\t"+"單價"); 196 for (int i = 0; i < dishNames.length; i++) { 197 String price = prices[i] + "元"; 198 String priaiseNum = (praiseNums[i]) > 0 ? praiseNums[i] 199 + "贊" : "0贊"; 200 201 System.out.println((i + 1) + "\t" + dishNames[i] + "\t" +price+"\t"+ priaiseNum); 202 } 203 System.out.print("請選擇您要點贊的菜品序號:"); 204 int priaiseNum = input.nextInt(); 205 praiseNums[priaiseNum-1]++; //贊數加1 206 System.out.println("點贊成功!"); 207 break; 208 case 6: 209 // 退出系統 210 isExit = true; 211 break; 212 default: 213 //退出系統 214 isExit = true; 215 break; 216 } 217 if (!isExit) { 218 System.out.print("輸入0返回:"); 219 num = input.nextInt(); 220 } else { 221 break; 222 } 223 } while (num == 0); 224 System.out.println("謝謝使用,歡迎下次光臨!"); 225 } 226 }

小項目,吃貨聯盟,java初級小項目,源代碼