吃货商场
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 | import java.util.Scanner; public class eattingShop { public static void main(String[] args) { Scanner input = new Scanner(System.in); //-------------------------------------------------------------------------------------------------------------- //订餐人 String names[]= new String[ 4 ]; //订餐信息 String dishMegs[] = new String[ 4 ]; //时间 int times[] = new int [ 4 ]; //地址 String address[] = new String[ 4 ]; //状态 int status[] = new int [ 4 ]; //0:完成 1:预定 //价格 double prices[] = new double [ 4 ]; //-------------------------------------------------------------------------------------------------------------- //给数组一个初始值 names[ 0 ] = "张三" ; dishMegs[ 0 ] = "鱼香肉丝" ; times[ 0 ] = 12 ; address[ 0 ] = "半圆" ; status[ 0 ] = 1 ; prices[ 0 ] = 13 ; names[ 1 ] = "李四" ; dishMegs[ 1 ] = "西红柿炒鸡蛋" ; times[ 1 ] = 12 ; address[ 1 ] = "教室" ; status[ 1 ] = 0 ; prices[ 1 ] = 15 ; //-------------------------------------------------------------------------------------------------------------- //声明菜单数组 //菜名 String dishMeg[] = { "红烧带鱼" , "西红柿炒蛋" , "剁椒鱼头" }; //价格 double price[] = { 38 , 22 , 56 }; //点赞数量 int zan[] = new int [ 4 ]; //-------------------------------------------------------------------------------------------------------------- boolean isExit = false ; int m; System.out.println( "欢迎使用吃货商场系统" ); do { System.out.println( "*****************" ); System.out.println( "1、我要订餐" ); System.out.println( "2、查看餐代" ); System.out.println( "3、签收订单" ); System.out.println( "4、删除订单" ); System.out.println( "5、我要点赞" ); System.out.println( "6、退出系统" ); System.out.println( "****************" ); System.out.print( "请选择:" ); m= 1 ; //isMan代表菜单是否满了,我们给他的默认值是没有。 boolean isMan = false ; //定义一个名为isFind的布尔值,默认为false就是找不到编号,如果for中找到了合适的值;则将其赋值ture boolean isFind = false ; //定义布尔值,用来判断case4中如果找不到用户输入数据的情况。 boolean isDel = false ; int choose = input.nextInt(); switch (choose){ //------------------------------------------------------------------------------------------------------ case 1 : System.out.println( "**我要订餐**" ); for ( int i= 0 ;i<names.length;i++){ //这里需要判断name数组里的满足有没有溢出,如果没有才可以继续 if (names[i]== null ){ isMan = true ; System.out.print( "请输入订餐人姓名:" ); String name = input.next(); //遍历菜单 System.out.println( "序号\t菜品\t单价(元)\t点赞数" ); for ( int j= 0 ;j<dishMeg.length;j++){ //输出菜单 System.out.println((j+ 1 )+ "\t" +dishMeg[j]+ "\t" +price[j]+ "\t" +zan[j]); } System.out.print( "请选择菜品编号:" ); int caiBianHao = input.nextInt(); //dish为菜名字 String dish = dishMeg[caiBianHao- 1 ]; //填写份数 System.out.print( "份数:" ); int fenShu = input.nextInt(); //计算价格有两个1:菜价2:运输费 double pri = price[caiBianHao- 1 ]; double p = pri> 50 ? 0 : 5 ; //送餐时间 System.out.println( "送餐时间(10~20点)" ); int time = input.nextInt(); while (time< 10 || time> 20 ){ System.out.println( "sorry,不在送餐时间内,重新输入:" ); //重新输入 time = input.nextInt(); } //地址的输入 System.out.println( "地址:" ); String addre = input.next(); System.out.println( "订餐成功" ); //输出填写的菜单信息 System.out.println( "您定的是:" +dish+fenShu+ "份" ); System.out.println( "送餐时间是:" +time+ "时" ); System.out.println( "总费用为:" +pri+ "快递费为:" +p+ "总计:" +(pri+p)+ "元" ); //将点单信息添加到餐代数组中 names[i] = name; dishMegs[i] = dish; times[i] = time; //默认给1为已预定 status[i] = 1 ; address[i] = addre; prices[i] = pri+p; break ; } } //判断如果满了,这里isMan的默认值为false 则取反 if (!isMan){ System.out.println( "不好意思,餐袋已满" ); } break ; //------------------------------------------------------------------------------------------------------ case 2 : System.out.println( "**查看餐代**" ); System.out.println( "序号\t订餐人\t餐品信息\t送餐日期\t地址\t总金额\t状态" ); //遍历names数组 for ( int i= 0 ;i<names.length;i++){ if (names[i]!= null ){ //打印餐代内容 String time = times[i]+ "时" ; String pric = prices[i]+ "时" ; String sta = status[i]== 0 ? "已完成" : "已预定" ; System.out.println((i+ 1 )+ "\t" +names[i]+ "\t" +dishMegs[i]+ "\t" +time+ "\t" +address[i]+ "\t" +pric+ "\t" +sta+ "\t" ); } } break ; //------------------------------------------------------------------------------------------------------ case 3 : System.out.println( "**签收订单**" ); System.out.println( "请输入需要签收的订单序号:" ); int qianShou = input.nextInt(); //遍历names数组找到所有订单的信息判断订单状态输出相应语句 for ( int i= 0 ;i<names.length;i++){ //判断name不为空,且状态是预约状态,并且和输入的签收单号一致 if (names[i]!= null && status[i]== 1 && qianShou == i+ 1 ){ isFind = true ; System.out.println( "签收完成" ); //else if用来判断订单状态为已签收 } else if (names[i]!= null && status[i]== 0 && qianShou == i+ 1 ){ isFind = true ; System.out.println( "已经签收不可重复签收" ); } } if (!isFind){ System.out.println( "不好意思 没找到您需要签收的订单" ); } break ; //------------------------------------------------------------------------------------------------------ case 4 : System.out.println( "**删除订单**" ); System.out.println( "请输入删除订单的序号:" ); int del = input.nextInt(); //遍历数组的内容 for ( int i = 0 ;i<names.length;i++){ //判断删除条件,必须是有值,且状态为未完成,且下标要和输入的del-1相对应! if (names[i]!= null && status[i]== 0 && del==i+ 1 ){ //进入if循环就代表已经找到数据了则将isdel赋值为true isDel = true ; //删除:从输入的del-1的下标开始到末尾结束length-1 for ( int j=del- 1 ;j<names.length- 1 ;j++){ //将被删除数据的下一个数据挪到被删除数据的下标空间中 names[j]=names[j+ 1 ]; dishMegs[j]=dishMegs[j+ 1 ]; times[j]=times[j+ 1 ]; address[j]=address[j+ 1 ]; status[j]=status[j+ 1 ]; prices[j]=prices[j+ 1 ]; } //数据转移结束后,出现倒数第二和倒数第一个数据是一样的,则需要将最后一个数据赋值为空。 names[names.length- 1 ]= null ; dishMegs[names.length- 1 ]= null ; times[names.length- 1 ]= 0 ; address[names.length- 1 ]= null ; status[names.length- 1 ]= 0 ; prices[names.length- 1 ]= 0 ; System.out.println( "删除成功!" ); break ; //在else if 中需要判断数据状态为未完成时的情况 } else if (names[i]!= null && status[i]== 1 && del==i+ 1 ){ isDel = true ; System.out.println( "订单还未完成!不能删除!" ); break ; } } //判断如果没有找到则输出不存在 if (!isDel){ System.out.println( "您需要删除的订单不存在" ); } break ; //------------------------------------------------------------------------------------------------------ case 5 : System.out.println( "**我要点赞**" ); System.out.println( "序号\t菜品\t单价(¥)\t点赞数\t" ); for ( int j= 0 ;j<dishMeg.length;j++){ System.out.println((j+ 1 )+ "\t" +dishMeg[j]+ "\t" +price[j]+ "\t" +zan[j]+ "\t" ); } System.out.println( "请选择需要点赞商品的编号:" ); int n = input.nextInt(); zan[n- 1 ]++; System.out.println( "点赞成功!!" ); break ; //------------------------------------------------------------------------------------------------------ case 6 : System.out.println( "**退出系统**" ); isExit = true ; break ; //------------------------------------------------------------------------------------------------------ default : System.out.println( "**退出系统**" ); isExit = true ; break ; } //---------------------------------------------------------------------------------------------------------- if (!isExit){ System.out.print( "输入0返回(若输入其他数则结束系统):" ); m = input.nextInt(); } } while (m == 0 ); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)