小项目,吃货联盟,java初级小项目,源代码


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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM