1、添加注释
package com.java_2019_1_8;import java.util.Scanner;/** * 吃货联盟订餐系统 * * @author Mr.Zhou 2019-1-8 */public class EatSystem { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("欢迎使用“吃货联盟订餐系统”"); String choose = "";//菜单选择的变量 //初始化数据 int length = 5; String[] names = new String[length];//订餐人 String[] descs = new String[length];//订单餐品信息 int[] dates =new int[length];//送餐日期 String[] addresses = new String[length];//送餐地址 double[] moneys = new double[length];//总价 boolean[] status = new boolean[length];//订餐状态:true:完成;false未完成 int[] nums = new int[length];//订餐数量 double[] prices = new double[10];//单价 String[] foods = new String[10];//菜品信息 int[] zan = new int[10];//点赞数量 zan[0] = 12;zan[2] = 5;zan[4]=25; foods[0] = "黄焖鸡";foods[1] = "东坡肉";foods[2] = "蛋炒饭";foods[3] = "北京烤鸭";foods[4] = "大肘子"; prices[0] = 16.0;prices[1] = 15.5;prices[2] = 8.0;prices[3] = 49.9;prices[4] = 18.8; //初始化两个订单信息 names[0] = "陈明"; descs[0] = "黄焖鸡"; nums[0] = 2; moneys[0] = 32.0; dates[0] = 7; addresses[0] = "北大青鸟"; status[0] = true; names[1] = "刘铭辉"; descs[1] = "东坡肉"; nums[1] = 3; moneys[1] = 46.5; dates[1] = 8; addresses[1] = "机房8"; status[1] = false; do { System.out.println("******************************"); System.out.println("1、我要订餐 2、查看餐袋 3、签收订单 4、删除订单 5、我要点赞 6、退出系统"); System.out.println("请选择:"); choose = sc.next(); switch (choose) { case "1": System.out.println("****我要订餐****"); int index = -1;//定义要添加的位置下标 for(int i = 0 ;imax) {//如果用户选择的菜品编号没有在0到max中间(包含0和max),则提示输入有误,重新进行输入 System.out.println("不存在此编号菜品,请重新输入:"); } } while (id<1||id>max);//因为输入不在0到max中间(包含0和max)中,所以while判断为TRUE,继续循环重新输入 //直到输入正确的选择跳出循环 descs[index] = foods[id-1];//将用户选择的菜品赋给记录订单餐品信息的数组descs[];下标为前面记录的空位置下标index System.out.println("请选择您需要的份数:"); int num = sc.nextInt(); nums[index] = num;//将用户选择的菜品份数赋给记录订单餐品份数的数组nums[];下标为前面记录的空位置下标index System.out.println("请输入送餐时间(送餐时间是10点至20点间整点送餐)"); int date = 0; do {//送餐时间(送餐时间是10点至20点间整点送餐),判断用户输入的时间是否有误 date = sc.nextInt(); if(date<10||date>20) {//如果用户输入的时间没有10到20中间(包含10和20),则返回重新输入 System.out.println("您的输入有误,请输入10~20间的整数!:"); } } while (date<10||date>20); dates[index] = date;//如果用户输入正确的时间,将用户输入的时间赋给记录订单送餐时间的数组dates[];下标为前面记录的空位置下标index System.out.println("请输入送餐地址:"); addresses[index] = sc.next();//将用户输入的地址赋给记录订单送餐地址的数组address[];下标为前面记录的空位置下标index double money = prices[id-1]*num;//计算用户订单菜品的金额 System.out.println("订餐成功:"); System.out.println("您订的是:"+foods[id-1]+" "+num+"份"); System.out.println("送餐时间:"+date+"点"); double song = 0.0;//定义送餐费变量 if(money<20) {//如果订单总额少于20元,则多加3元送餐费 song = 3.0; } moneys[index] = money+song;//计算总金额赋给记录订单总金额的数组moneys[],下标为前面记录的空位置下标index System.out.println("餐费:"+money+"。送餐费:"+song+"元,总计:"+(money+song)+"元"); } break; case "2": System.out.println("****查看餐袋****"); System.out.println("序号\t订餐人\t餐品信息\t\t送餐日期\t\t送餐地址\t\t总金额\t订单状态"); for(int i = 0;i descs.length) {//以订单餐品信息数组的长度先作判断 isTrue = true;//如果不在些数组的长度0到length-1(包含0与length-1),则返回重新输入,如果有在,则进入下一轮判断 }else { if(descs[id-1]==null) {//判断输入的编号订单有没有信息,如果没有,返回重新输入 isTrue = true; }else { isTrue = false;//输入无误则跳出循环判断继续下一步 } } if(isTrue) { System.out.println("不存在此编号的订单信息,请重新输入:"); } } while (isTrue); status[id-1] = true;//将订单中记录状态的status[]数组中的下标为id-1(编号=下标+1)数组重新赋值 System.out.println("签收完成"); break; case "4": System.out.println("****删除订单****"); System.out.println("请输入要删除的订单编号:"); int big = length; for(int i = 0;i big) { System.out.println("不存在此编号菜品,请重新输入:"); } } while (no<1||no>big); if(status[no-1]==false) {//订单编号输入无误后,再判断该 订单是否为已完成状态,如果是则可以进午删除操作 System.out.println("订单未完成,不能删除"); }else { for(int i=no-1;i max) {//判断用户输入的号码+1后有没有在菜单编号在0到max-1中 System.out.println("不存在此编号菜品,请重新输入:"); } } while (bianhao<1||bianhao>max); zan[bianhao-1]++;//如果输入无误,则菜品点赞数组zan(输入的号码-1)的值加1 System.out.println("点赞成功,谢谢您的反馈"); break; case "6": System.out.println("****退出系统****"); System.out.println("谢谢使用"); break; default: System.out.println("选择错误,请重新选择:"); break; } }while(!"6".equals(choose)); }}