• 小项目,吃货联盟,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("
    欢迎使用“吃货联盟订餐系统”");
     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("序号" + "	" + "菜名"+"	"+"单价");
     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) + "	" + dishNames[i] + "	"    +price+"	"+ 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("序号	订餐人	餐品信息		送餐日期	送餐地址		总金额	订单状态");
    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)+"	"+names[i]+"	"+dishMegs[i]+"	"+date+"	"+addresses[i]+"	"+sumPrice+"	"+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("序号" + "	" + "菜名"+"	"+"单价");
    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) + "	" + dishNames[i] + "	"    +price+"	"+ 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 }
    志存高远,脚踏实地!
  • 相关阅读:
    算法(Algorithms)第4版 练习 1.3.4
    算法(Algorithms)第4版 练习 1.3.5
    算法(Algorithms)第4版 练习 1.3.6
    微服务迁移步骤建议
    xxxx interview问题解读与总结
    乐观锁与悲观锁——解决并发问题
    编码解码--三种常见字符编码简介:ASCII、Unicode和UTF-8
    编码解码--url编码解码
    分页缓存预加载算法
    Could not initialize class sun.awt.X11FontManager 异常问题
  • 原文地址:https://www.cnblogs.com/benben2013A/p/7084538.html
Copyright © 2020-2023  润新知