—恢复内容开始—

  1 import java.util.Scanner;
  2 
  3 /**
  4  * 菜单
  5  * @author 99573
  6  *
  7  */
  8 public class Muen {
    //第一步先实例化两个初始化订餐的对象,以及声明一个成员变量的编号
9 Scanner sc = new Scanner(System.in); 10 OrderingSet a = new OrderingSet(); 11 OrderingUtil b = new OrderingUtil(); 12 int bianhao; 13 /** 14 * 初始化变量 15 */ 16 public void ini(){ 17 a.ini(); 18 b.ini(); 19 } 20 /** 21 * 返回 上一层代码 22 */ 23 public void re(){ 24 System.out.println("输入0返回上一层"); 25 String isfhui = sc.next(); 26 if (isfhui.equals("0")) { 27 initMuen(); 28 } 29 } 30 public void initMuen(){ 31 System.out.println("欢迎使用”吃货联盟订餐系统“"); 32 System.out.println("*********************************"); 33 System.out.println("1、我要订餐"); 34 System.out.println("2、查看餐袋"); 35 System.out.println("3、签收订单"); 36 System.out.println("4、删除订单"); 37 System.out.println("5、我要点赞"); 38 System.out.println("6、退出系统"); 39 System.out.println("*********************************"); 40 System.out.println("选择:"); 41 bianhao = sc.nextInt(); 42 switch (bianhao) { 43 case 1: 44 orderMuen(); 45 break; 46 case 2: 47 show(); 48 re(); 49 break; 50 case 3: 51 State(); 52 break; 53 case 4: 54 delete(); 55 break; 56 case 5: 57 good(); 58 break; 59 case 6: 60 end(); 61 break; 62 63 default: 64 System.out.println("输入错误!"); 65 initMuen(); 66 break; 67 } 68 } 69 /** 70 * 订餐菜单 71 */ 72 public void orderMuen(){ 73 int index =0; 74 for (int j = 0; j < a.order.length; j++) { 75 if (a.order[j].Number == 0) { 76 index = j; 77 break; 78 } 79 } 80 if(index <4){ 81 82 System.out.println("我要订餐:"); 83 System.out.println("输入订餐人名:"); 84 a.order[index].name = sc.next(); 85 System.out.println("编号 菜名 单价 点赞数"); 86 for (int i = 0; i < b.food.length; i++) { 87 System.out.println((i+1)+" "+b.food[i].name+" "+b.food[i].money+" "+b.food[i].goodNum); 88 System.out.println(); 89 } 90 System.out.println("输入你要定的菜的编号:"); 91 int bianhao = sc.nextInt(); 92 a.order[index].Dishes = b.food[bianhao-1].name; 93 System.out.println("输入份数:"); 94 a.order[index].Number = sc.nextInt(); 95 System.out.println("送餐时间:"); 96 a.order[index].Times = sc.next(); 97 System.out.println("送餐地址:"); 98 a.order[index].addresses = sc.next(); 99 a.order[index].sumPrices =(a.order[index].Number*b.food[bianhao-1].money)>50?a.order[index].Number*b.food[bianhao-1].money:a.order[index].Number*b.food[bianhao-1].money+5; 100 System.out.println("订餐成功!本次订餐状态如下:"); 101 System.out.println("订餐人"+" 菜品"+" 份数"+" 送餐时间"+" 送餐地点"+" 送餐总价"); 102 System.out.println(a.order[index].name+" "+a.order[index].Dishes+" "+a.order[index].Number+" "+a.order[index].Times+" "+a.order[index].addresses+" "+a.order[index].sumPrices); 103 }else{ 104 System.out.println("餐袋已满!请删除后在进行订餐"); 105 } 106 re(); 107 } 108 /** 109 * 显示餐袋 110 */ 111 public void show(){ 112 for (int i = 0; i < a.order.length; i++) { 113 if (a.order[i].name!=null) { 114 115 String States = a.order[i].States==1 ? "已签收" : "未签收"; 116 System.out.printf("%10s%10s%10s%10s%10s%10s%10s%10s ",(i+1),a.order[i].name, 117 a.order[i].Dishes,a.order[i].Number,a.order[i].Times, 118 a.order[i].addresses,States,a.order[i].sumPrices); 119 System.out.println(); 120 } else { 121 a.index = i; 122 break; 123 } 124 } 125 } 126 /** 127 * 签收 128 * @param args 129 */ 130 131 public void State(){ 132 show(); 133 System.out.println("输入你要签收的编号:"); 134 bianhao = sc.nextInt(); 135 int index = bianhao-1; 136 if (a.order[index].name!=null) { 137 if (a.order[index].States ==0) { 138 a.order[index].States = 1; 139 System.out.println("签收成功!"); 140 }else{ 141 System.out.println("该订单已签收!请勿重复签收"); 142 } 143 144 } else { 145 System.out.println("该订单不存在"); 146 } 147 re(); 148 } 149 /** 150 * 删除方法 151 */ 152 153 public void delete(){ 154 show(); 155 System.out.println("选择你要删除的订餐编号:"); 156 bianhao = sc.nextInt(); 157 if(a.order[bianhao-1].name!=null){ 158 159 if (a.order[0] != null) { 160 if (a.order[bianhao - 1].States == 1) { 161 for (int i = bianhao - 1; i < a.index; i++) { 162 a.order[i] = a.order[i + 1]; 163 } 164 System.out.println("删除成功!"); 173 } else { 174 System.out.println("只能删除以签收的订单!"); 175 } 176 } else { 177 System.out.println("没有可删除的订单!"); 178 } 179 }else{ 180 System.out.println("未找到要删除的订单!"); 181 } 182 re(); 183 } 184 /** 185 * 点赞 186 */ 187 public void good(){ 188 System.out.println("选择你要点赞的的菜品:"); 189 System.out.println(" 餐名 单价 点赞数"); 190 for (int i = 0; i < b.food.length; i++) { 191 System.out.println((i+1)+" "+b.food[i].name+" "+b.food[i].money+" "+b.food[i].goodNum); 192 } 193 bianhao =sc.nextInt(); 194 if (bianhao==1||bianhao==2||bianhao==3) { 195 int index = bianhao-1; 196 b.food[index].goodNum++; 197 System.out.println("点赞成功"); 198 }else{ 199 System.out.println("不存在该菜品,输入错误点赞失败!"); 200 } 201 re(); 202 } 203 /** 204 * 退出系统类 205 * @param args 206 */ 207 public void end(){ 208 System.out.println("退出系统,再见!"); 209 } 210 public static void main(String[] args) { 211 Muen a = new Muen(); 212 a.ini(); 213 a.initMuen(); 214 } 215 216 }

第一步 :运用ini方法进行数据的初始话,否则,餐袋将无 任何数据(主要就是执行两个初始化信息类的初始化方法)

第二步:运用initMuen 来初始化菜单,将六个子菜单显示出来, 用switch选择结构来接受并跳转到子菜单的方法里。

第三步:设置6个具体方法

订餐方法主要的思路是首先设置了一个局部变量index代表下标 接下来遍历整个订餐信息数组,将下标锁定在数据为空的数组对象上,然后进行判断是否大于4个上限,如果不大于上限就进行下面的订餐信息录用否则的话,就提示餐袋已满 。最后执行re方法,(re方法就是封装在initMuen方法上的一个方法,主要作用就是返回到选择菜单上)。

查看餐袋 很简单就是先遍历数组查看数组的信息,然后 将 信息不为空的数组的对象输出出来。里面115行是一个三元表达式,主要判断是否已签收。

签收订单 这个就是把对象的States属性的值改变 ,0为未签收,1为签收,不过首先要遍历下数组,查看具体信息的个数,和判断订单是否签收。签收过的订单不能重复签收。

删除订单 主要思路 将选到的下标对象的下一个对象往前赋值,将原本数据进行前移。

点赞  主要思路就是找到订餐信息的点赞属性,进行不断的累加

退出  就是结束整个程序

项目需求  :六个功能:订餐 查看餐袋,签收 删除 和退出

订餐不超过4个