1. public class OrderMsg {
  2.  
  3. public static void main(String[] args) throws Exception {
  4. /**
  5. * 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额
  6. * 01.创建对应的数组
  7. * 02.数组的初始化
  8. * 03.显示菜单
  9. * 04.根据用户的选择进去指定的模块
  10. */
  11. String[] names = new String[6]; // 订餐人姓名
  12. String[] dishMsgs = new String[6];// 选择菜品
  13. int[] numbers = new int[6];// 菜品份数
  14. Date[] dates = new Date[6]; // 送餐时间
  15. String[] times = new String[6]; // 送餐时间对应的String类型的日期
  16. String[] addresses = new String[6];// 送餐地址
  17. int[] states = new int[6];// 订单状态 0:已经预定 1:已经完成
  18. double[] sumPrices = new double[6];// 总金额
  19.  
  20. // 初始化数据
  21. names[0] = "小黑";
  22. dishMsgs[0] = "八仙过海";
  23. numbers[0] = 3;
  24. dates[0] = new Date();
  25. SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
  26. times[0] = sdf.format(dates[0]);
  27. addresses[0] = "天堂路1号院";
  28. states[0] = 1;
  29. sumPrices[0] = 5000;
  30.  
  31. names[1] = "小白";
  32. dishMsgs[1] = "佛跳墙";
  33. numbers[1] = 5;
  34. dates[1] = new Date();
  35. times[1] = sdf.format(dates[1]);
  36. addresses[1] = "地域路2号院";
  37. states[1] = 1;
  38. sumPrices[1] = 500;
  39.  
  40. // 初始化用户可以选择的菜
  41. String[] dishNames = { "八仙过海", "佛跳墙", "松鼠鱼", "红烧带鱼", "时令蔬菜", "辣土豆丝" };
  42. // 定义每个菜的单价
  43. double[] prices = { 88, 78.8, 58.0, 28.5, 50, 80 };
  44. // 定义点赞 的数组
  45. int[] praiseNums = new int[6];
  46. praiseNums[0] = 5;
  47. praiseNums[1] = 10;
  48.  
  49. System.out.println("***********欢迎进入《吃货联盟》点餐系统***********");
  50. Scanner scanner = new Scanner(System.in);
  51. int num = -1; // 如果用户输入的是0 默认返回主菜单
  52. boolean isExit = false;// 定义一个标记 来标识 用户是否退出系统 true:退出
  53. do {
  54. // 显示菜单供用户选择
  55. System.out.println("当前系统时间是:" + sdf.format(new Date()));
  56. System.out.println("1:我要订餐");
  57. System.out.println("2:查看餐袋");
  58. System.out.println("3:签收订单");
  59. System.out.println("4:删除订单");
  60. System.out.println("5:我要点赞");
  61. System.out.println("6:退出系统");
  62. System.out.println("**********************");
  63. System.out.println("请选择:");
  64. int choose = scanner.nextInt(); // 根据用户的选择执行不同的功能
  65. switch (choose) {
  66. case 1:
  67. System.out.println("************我要订餐************");
  68. // 定义一个标记判断餐带是否已满
  69. boolean addFlag = false;
  70. for (int i = 0; i < names.length; i++) { // 订餐人的集合
  71. if (names[i] == null) {
  72. addFlag = true;
  73. System.out.println("请输入订餐人的姓名:");
  74. names[i] = scanner.next(); // 获取订餐人的姓名
  75. System.out.println("您可以选择下列的菜品:");
  76. System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");
  77. for (int j = 0; j < dishNames.length; j++) { // 遍历菜品
  78. String praiseNum = (praiseNums[j] > 0) ? praiseNums[j]
  79. + "个赞"
  80. : "";
  81. System.out.println(j + 1 + "\t\t\t" + dishNames[j]
  82. + "\t\t\t" + prices[j] + "\t\t\t"
  83. + praiseNum);
  84. }
  85. // 用户开始点菜
  86. System.out.println("请您选择菜品的编号:");
  87. int chooseDishName = scanner.nextInt();
  88. System.out.println("请您输入点餐的份数:");
  89. int number = scanner.nextInt();
  90. System.out.println("请您输入送餐的地址:");
  91. String address = scanner.next();
  92. System.out.println("请您输入送餐的时间:(时:分:秒)");
  93. String time = scanner.next();
  94.  
  95. /**
  96. * 根据用户的餐费 判断是否收取送餐费 大于60免送餐费
  97. * 01.获取用户点的菜的单价
  98. * 02.获取总金额
  99. * 03.判断
  100. */
  101. double sumPrice = prices[chooseDishName - 1] * number;
  102. double price = (sumPrice > 60) ? 0 : 6;
  103. System.out.println("恭喜您订餐成功!");
  104. System.out.println("您定的菜品是:"
  105. + dishNames[chooseDishName - 1] + "\t" + number
  106. + "份");
  107. System.out.print("餐费:" + sumPrice);
  108. System.out.print("\t送餐费:" + price);
  109. System.out.println("\t总费用:" + (price + sumPrice));
  110. // 向数组中增加数据
  111. times[i] = sdf.format(sdf.parse(time)); // 时间
  112. addresses[i] = address; // 地址
  113. sumPrices[i] = (sumPrice + price); // 总金额
  114. dishMsgs[i] = dishNames[chooseDishName - 1]; // 定的菜品
  115. states[i] = 0; // 订餐的状态
  116. numbers[i] = number; // 份数
  117. break;
  118. }
  119. }
  120. if (!addFlag) {// 餐袋已经满了
  121. System.out.println("餐袋已经满了");
  122. }
  123. break;
  124. case 2:
  125. System.out.println("************查看餐袋************");
  126. /**
  127. * 显示
  128. * 编号 订餐人 菜品(份数) 送餐时间 送餐地址 总金额 状态
  129. */
  130. System.out
  131. .println("编号\t\t订餐人\t\t菜品(份数)\t\t送餐时间 \t\t送餐地址\t\t总金额\t\t状态\t\t点赞数量");
  132. for (int i = 0; i < names.length; i++) {
  133. if (names[i] != null) { // 有人订餐 的显示
  134. String state = (states[i] == 0) ? "已经预定" : "已经完成"; // 获取状态
  135. String time = times[i]; // 获取时间
  136. String sumPrice = sumPrices[i] + "元"; // 总金额
  137. String address = addresses[i]; // 地址
  138. String dishMsg = dishMsgs[i]; // 菜品
  139. int count = numbers[i];
  140. System.out.println(i + 1 + "\t\t" + names[i] + "\t\t"
  141. + dishMsg + "(" + count + ")" + "\t\t" + time
  142. + " \t\t" + address + "\t\t" + sumPrice
  143. + "\t\t" + state + "\t\t" + praiseNums[i]);
  144. }
  145. }
  146. break;
  147. case 3:
  148. System.out.println("************签收订单************");
  149. /**
  150. * 01.状态为已经完成!不需要签收
  151. * 02.状态为已经预定!需要签收
  152. * 03.没有指定的订单,不能签收
  153. */
  154. System.out.println("请您输入需要签收的订单编号:");
  155. int sign = scanner.nextInt();
  156. // 定义一个标记 来判断订单是否被签收
  157. int flag = 0;
  158. for (int i = 0; i < names.length; i++) {
  159. if (names[i] != null && states[i] == 0) {// 01.有订单 可以签收
  160. states[i] = 1;// 改变状态
  161. flag = 1;
  162. break; // 必须退出 否则 后续的都会变成签收
  163. } else if (names[i] != null && states[i] == 1) {// 02.有订单
  164. flag = 2;
  165. }
  166. }
  167. if (flag == 1) {
  168. System.out.println("订单已经签收!");
  169. } else if (flag == 2) {
  170. System.out.println("订单不需要重复签收!");
  171. } else {
  172. System.out.println("没有指定的订单!请您核实!");
  173. }
  174.  
  175. break;
  176. case 4:
  177. System.out.println("************删除订单************");
  178. System.out.println("请您输入需要删除的订单编号:");
  179. int delNum = scanner.nextInt();
  180. // 定义一个标记 来判断订单是否被签收以及是否存在
  181. int delFlag = 0;
  182. for (int i = 0; i < names.length; i++) {
  183. if (names[i] != null && states[delNum - 1] == 1) { // 可以删除
  184. // 有指定的订单
  185. // 状态是已经完成
  186. // 删除位置 之后的所有元素 依次前移
  187. for (int j = delNum - 1; j < names.length - 1; j++) {
  188. names[j] = names[j + 1]; // 订餐人
  189. dishMsgs[j] = dishMsgs[j + 1];// 菜品
  190. times[j] = times[j + 1];// 时间
  191. addresses[j] = addresses[j + 1];// 地址
  192. states[j] = states[j + 1];// 状态
  193. numbers[j] = numbers[j + 1];// 份数
  194. }
  195. delFlag = 1;
  196. break;
  197. } else if (names[i] != null && states[i] == 0) { // 订单还没有签收
  198. delFlag = 2;
  199. }
  200. }
  201. if (delFlag == 1) {
  202. System.out.println("订单已经被删除");
  203. } else if (delFlag == 2) {
  204. System.out.println("订单还没有签收 不允许删除!");
  205. } else {
  206. System.out.println("没有找到指定的订单!");
  207. }
  208. break;
  209. case 5:
  210. System.out.println("************我要点赞***************");
  211. System.out.println("编号\t\t\t菜名\t\t\t价格");
  212. for (int i = 0; i < dishNames.length; i++) { // 遍历所有的菜名
  213. String price = prices[i] + "元"; // 获取价格
  214. String name = dishNames[i];
  215. System.out.println(i + 1 + "\t\t\t" + name + "\t\t\t"
  216. + price);
  217. }
  218. System.out.println("请您输入点赞的菜品编号:");
  219. int chooseNum = scanner.nextInt();
  220. praiseNums[chooseNum - 1]++;// 点赞数加+1
  221. System.out.println("谢谢参与!点赞成功!");
  222. break;
  223. case 6:
  224. // 退出系统
  225. isExit = true;
  226. break;
  227. default:
  228. // 退出系统
  229. isExit = true;
  230. break;
  231. }
  232. if (!isExit) { // 默认这是不退出
  233. System.out.println("输入0返回主菜单!");
  234. num = scanner.nextInt();
  235. } else {
  236. break; // 退出系统
  237. }
  238.  
  239. } while (num == 0);
  240. System.out.println("谢谢您的光临!!!!!");
  241. }
  242. }

点餐系统

javase - 点餐系统的更多相关文章

  1. [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)

    Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...

  2. [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)

    Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...

  3. [课程设计]Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计)

    Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团 ...

  4. [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)

    Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...

  5. [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)

    Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...

  6. [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)

    Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...

  7. [课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)

    Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...

  8. [课程设计]Scrum 1.6 多鱼点餐系统开发进度

    [课程设计]Scrum 1.6 多鱼点餐系统开发进度(点餐页面按钮添加&修复) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4. ...

  9. [课程设计]Scrum 1.7 多鱼点餐系统开发进度

    [课程设计]Scrum 1.7 多鱼点餐系统开发进度(点餐菜式内容添加及美化) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...

随机推荐

  1. java学习笔记_BeatBox(GUI部分)

    import java.awt.*; import javax.swing.*; public class BeatBox { JFrame theFrame; JPanel mainPanel; S ...

  2. Android开发问题-真机调试连接

    出现“no debuggable processes”可以: 1)尝试Tools->android->Enable ADB Intergration使之选中: 2)换一根数据线试试. 初次 ...

  3. echarts交叉关系图二

    echarts关系图表,此图是坐标关系图,此图用的随机坐标,此图可以拖拽,更方便整理关系, 引入echarts.js就可以实现 代码: var graph={ //这是数据项目中一般都是获取到的 no ...

  4. java攻城师之路--复习java web之request_respone

    Servlet技术 两条主线1.HTTP协议 2.Servlet生命周期 init() 方法中参数 ServletConfig 对象使用通过ServletConfig 获得 ServletContex ...

  5. oracle sql*loader的使用

    用法: SQLLDR keyword=value [,keyword=value,...] 有效的关键字:     userid -- ORACLE 用户名/口令    control -- 控制文件 ...

  6. 易买网之smartupload实现文件上传

    经过俩个星期的奋斗,易买网项目完工.在之前,实现图片的上传,走过许多弯路,原来是好多基础的知识忘记了,没把smartupload文件包添加组件jar包至WEB-INF/lib包中,在此特别重视,做下文 ...

  7. (转)Hibernate的配置详解

    http://blog.csdn.net/yerenyuan_pku/article/details/65041077 在<Hibernate快速入门>一文中,我有讲到Hibernate的 ...

  8. UICollectionView框架总结

    一.UIcollectionView介绍 1.1.简介 首先看苹果官方文档 UICollectionView Class Reference 的介绍: The UICollectionView cla ...

  9. C# 调用指定打印机 (并不是默认)

    this.printDocument1.PrinterSettings.PrinterName = "Microsoft XPS Document Writer"; this.pr ...

  10. c#中动态创建textbox并且从数据库中获取表中数据添加到textbox中

    private void FormLugOther_Load(object sender, EventArgs e) { foreach (string str in FormLug.FieldLis ...