zoukankan      html  css  js  c++  java
  • 【0706】综合作业:吃货联盟订餐系统

      1 package com.workprojects;
      2 
      3 /**
      4  * 吃货联盟订餐系统
      5  * 2019-07-07
      6  * @author L
      7  */
      8 import java.util.Scanner;
      9 
     10 public class Eatsystem {
     11     static Scanner sc = new Scanner(System.in);
     12 
     13     public static void main(String[] args) {
     14         // 保存信息
     15         String[] names = new String[4];// 订餐人姓名
     16         int[] foodNums = new int[4];// 保存份数
     17         int[] ids = new int[4];// 订单序号
     18         int[] times = new int[4];// 送餐时间,整点送餐
     19         String[] addresses = new String[4];// 送餐地址
     20         int[] states = new int[4];// 订单状态,0表示已预订(默认状态),1表示已完成
     21         double[] sumPrices = new double[4];// 订单总金额
     22         int[] goodNums = new int[3];// 点赞
     23         int[] foodIds = new int[3];// 菜品序号
     24 
     25         // 菜品信息
     26         String[] foodNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" };// 菜品名称
     27         double foodPrices[] = { 38.0, 20.0, 10.0 };// 菜品单价
     28 
     29         // 初始化第一笔订单
     30         ids[0] = 1;// 序号“1”
     31         names[0] = "张晴";
     32         foodNames[0] = "红烧带鱼";
     33         foodNums[0] = 2;
     34         times[0] = 12;
     35         addresses[0] = "天成路207号";
     36         sumPrices[0] = 76.0;
     37         states[0] = 1;
     38 
     39         // 初始化第二笔订单
     40         ids[1] = 2;
     41         names[1] = "张晴";
     42         foodNames[1] = "鱼香肉丝";
     43         foodNums[1] = 2;
     44         times[1] = 18;
     45         addresses[1] = "天成路207号";
     46         sumPrices[1] = 45.0;
     47         states[1] = 0;
     48 
     49         // 订餐系统
     50         int num = -1;// 用户输入0返回主菜单,否则退出系统
     51         boolean flag = false;// 标志用户是否退出系统,为true时退出系统。
     52         System.out.println("欢迎使用“吃货联盟订餐系统”");// 订餐系统欢迎引导
     53         do {// 先执行初始菜单目录,并循环展示
     54             System.out.println("***********************");
     55             System.out.println("1、我要订餐");
     56             System.out.println("2、查看餐袋");
     57             System.out.println("3、签收订单");
     58             System.out.println("4、删除订单");
     59             System.out.println("5、我要点赞");
     60             System.out.println("6、退出系统");
     61             System.out.println("***********************");
     62 
     63             // 选择菜单
     64             System.out.print("请选择:");
     65             int choose = sc.nextInt();// 功能编号
     66 
     67             switch (choose) {
     68             case 1:
     69                 // 订餐
     70                 System.out.println("***我要订餐***");
     71                 boolean addFood = false;// 判断是否可以订餐
     72                 for (int j = 0; j < names.length; j++) {
     73                     if (names[j] == null) {// 获取订餐人为空的位置
     74                         addFood = true;// 为空则可订餐
     75                         System.out.print("请输入订餐人姓名:");
     76                         String name = sc.next();
     77                         ids[j]=j+1;
     78                         // 展示餐品信息,价格,点赞等相关信息
     79                         System.out.println("序号" + "	" + "菜名" + "	" + "单价" + "	" + "点赞数");// 菜品详情
     80                         for (int i = 0; i < foodNames.length; i++) {
     81                             String goodNum = (goodNums[i]) > 0 ? goodNums[i] + "赞" : "0";
     82                             System.out.println((i + 1) + "	" + foodNames[i] + "	" + foodPrices[i] + "	" + goodNum);
     83                         }
     84                         // 点餐
     85                         System.out.print("请选择您要点的菜品编号:");
     86                         int foodId = sc.nextInt();// 餐品序号
     87                         String foodName = foodNames[foodId - 1];
     88                         System.out.print("请选择您需要的份数:");
     89                         int foodNum = sc.nextInt();// 订餐餐品份数
     90                         double sumPrice = foodPrices[foodId - 1] * foodNum;// 该订单金额
     91                         double fare = (sumPrice >= 50) ? 0 : 5;// 订单总额大于等于50免配送费,低于50需要5元配送费
     92                         System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
     93                         int time = sc.nextInt();
     94                         while (time < 10 || time > 20) {
     95                             System.out.print("您输入有误,请输入10~20间的整数:");
     96                             time = sc.nextInt();
     97                         }
     98                         System.out.print("请输入送餐地址:");
     99                         String address = sc.next();
    100 
    101                         // 下单成功提示!
    102                         System.out.println("订餐成功!");
    103                         System.out.println("您订的是:" + foodName + "	" + foodNum + "份");
    104                         System.out.println("送餐时间:" + time + "点");
    105                         System.out.println("送餐地址:" + address + ",收货人:" + name);
    106                         System.out.println("餐费:" + sumPrice + "元,送餐费:" + fare + "元,总计:" + (sumPrice + fare));
    107 
    108                         // 添加数据
    109                         names[j] = name;
    110                         foodNames[j] = foodName;
    111                         foodNums[j] = foodNum;
    112                         times[j] = time;
    113                         addresses[j] = address;
    114                         sumPrices[j] = sumPrice + fare;
    115                         break;
    116                     }
    117                 }
    118                 if (!addFood) {
    119                     System.out.println("对不起。您的餐袋已满!");
    120                 }
    121                 break;
    122             case 2:
    123                 // 查看餐袋
    124                 System.out.println("***查看餐袋***");
    125                 System.out.println("序号	订餐人	餐品信息	份数	送餐时间		送餐地址		总金额	订单状态");// 订单抬头
    126                 for (int i = 0; i < ids.length; i++) {
    127                     if (names[i] != null) {// 名字不为空
    128                         String state = (states[i] == 0) ? "已预订" : "已完成";// 判断订单状态
    129                         // 输出订单详情
    130                         System.out.println(ids[i] + "	" + names[i] + "	" + foodNames[i] + "	" + foodNums[i] + "份"
    131                                 + "	" + times[i] + "点" + "		" + addresses[i] + "	" + sumPrices[i] + "	" + state
    132                                 + "	");
    133                     }
    134                 }
    135                 break;
    136             case 3:
    137                 // 签收订单
    138                 System.out.println("***签收订单***");
    139                 boolean orderFind = false;// 查找订单
    140                 System.out.print("请选择要签收的订单序号:");
    141                 int orderId = sc.nextInt();
    142                 for (int i = 0; i < names.length; i++) {
    143                     if (names[i] != null && states[i] == 0 && orderId == i + 1) {// 如果订餐人不为空,状态为已预订,订单号+1
    144                         states[i] = 1;// 订单状态转变
    145                         System.out.println("订单签收成功!");
    146                         orderFind = true;
    147                     } else if (names[i] != null && states[i] == 1 && orderId == i + 1) {
    148                         System.out.println("您选择的订单已完成签收,不能再次签收!");
    149                         orderFind = true;
    150                     }
    151                 }
    152                 if (!orderFind) {
    153                     System.out.println("您输入的订单不存在!请重新输入!");
    154                     orderId = sc.nextInt();
    155                 }
    156                 break;
    157             case 4:
    158                 // 删除订单
    159                 System.out.println("***删除订单***");
    160                 boolean delOrder = false;// 查找删除订单
    161                 System.out.print("请输入要删除的订单序号:");
    162                 int delId = sc.nextInt();
    163                 for (int i = 0; i < names.length; i++) {
    164                     if (names[i] != null && states[i] == 1 && delId == i + 1) {
    165                         delOrder = true;// 找到订单
    166                         for (int j = delId - 1; j < names.length - 1; j++) {// 删除元素,该位置后的元素向前进一步,向前一位赋值
    167                             names[j] = names[j + 1];
    168                             //foodNames[j] = foodNames[j + 1];
    169                             foodNums[j] = foodNums[j + 1];
    170                             times[j] = times[j + 1];
    171                             addresses[j] = addresses[j + 1];
    172                             sumPrices[j] = sumPrices[j + 1];
    173                             states[j] = states[j + 1];
    174                         }
    175                         // 赋值完毕后,清空最后一位元素
    176                         names[names.length - 1] = null;
    177                         //foodNames[names.length - 1] = null;
    178                         foodNums[names.length - 1] = 0;
    179                         times[names.length - 1] = 0;
    180                         addresses[names.length - 1] = null;
    181                         sumPrices[names.length - 1] = 0;
    182                         states[names.length - 1] = 0;
    183                         System.out.println("删除订单成功!");
    184                         break;
    185                     } else if (names[i] != null && states[i] == 0 && delId == i + 1) {
    186                         System.out.println("您选择的订单未签收,不能删除!");
    187                         delOrder = true;
    188                     }
    189                 }
    190                 if (!delOrder) {
    191                     System.out.println("您要删除的订单不存在!请重新输入!");
    192                     delId = sc.nextInt();
    193                 }
    194                 break;
    195             case 5:
    196                 // 点赞功能
    197                 System.out.println("***我要点赞***");
    198                 // 显示菜品信息
    199                 System.out.println("序号	菜品	点赞数");// 订单抬头
    200                 for (int i = 0; i < foodNames.length; i++) {
    201                     String goodNum = (goodNums[i]) > 0 ? goodNums[i] + "赞" : "";
    202                     System.out.println((i + 1) + "	" + foodNames[i] + "	" + goodNum);
    203                 }
    204                 System.out.print("请选择您要点赞的菜品序号:");
    205                 int goodNum = sc.nextInt();
    206                 goodNums[goodNum - 1]++;// 点赞+1
    207                 System.out.println("点赞成功!");
    208                 break;
    209             case 6:
    210                 System.out.println("***退出系统***");
    211                 flag = true;
    212                 break;
    213             default:
    214                 flag = true;
    215                 break;
    216             }
    217             if (!flag) {
    218                 System.out.print("输入0返回:");
    219                 num = sc.nextInt();
    220             } else {
    221                 break;
    222             }
    223         } while (num == 0);
    224         System.out.println("已成功退出吃货联盟“订餐系统”!");
    225     }
    226 }

    一、我要订餐 

    二、查看菜袋

    三、签收订单

    四、删除订单

    五、点赞

     六、退出系统

  • 相关阅读:
    免费的mail server
    opensuse 11.2/11.3安装vmware server 1.0.10笔记
    cisco IOS 免费下载的地方
    自动打开最快镜像站
    [ZT]MSSQL清空或者压缩日志的方法
    Cisco路由器的安全配置方案[zt]
    CISCO2821系列路由器恢复密码
    RTorrent User Guide
    Asp.Net发送邮件详解
    C#在线生成网页缩略图
  • 原文地址:https://www.cnblogs.com/yanglanlan/p/11148858.html
Copyright © 2011-2022 走看看