小項目,吃貨聯盟,java初級小項目,源代碼
阿新 • • 發佈:2017-06-27
元素 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初級小項目,源代碼