public class OrderMsg {

    public static void main(String[] args) throws Exception {
/**
* 订餐人姓名、选择菜品、送餐时间、送餐地址、订单状态、总金额
* 01.创建对应的数组
* 02.数组的初始化
* 03.显示菜单
* 04.根据用户的选择进去指定的模块
*/
String[] names = new String[6]; // 订餐人姓名
String[] dishMsgs = new String[6];// 选择菜品
int[] numbers = new int[6];// 菜品份数
Date[] dates = new Date[6]; // 送餐时间
String[] times = new String[6]; // 送餐时间对应的String类型的日期
String[] addresses = new String[6];// 送餐地址
int[] states = new int[6];// 订单状态 0:已经预定 1:已经完成
double[] sumPrices = new double[6];// 总金额 // 初始化数据
names[0] = "小黑";
dishMsgs[0] = "八仙过海";
numbers[0] = 3;
dates[0] = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
times[0] = sdf.format(dates[0]);
addresses[0] = "天堂路1号院";
states[0] = 1;
sumPrices[0] = 5000; names[1] = "小白";
dishMsgs[1] = "佛跳墙";
numbers[1] = 5;
dates[1] = new Date();
times[1] = sdf.format(dates[1]);
addresses[1] = "地域路2号院";
states[1] = 1;
sumPrices[1] = 500; // 初始化用户可以选择的菜
String[] dishNames = { "八仙过海", "佛跳墙", "松鼠鱼", "红烧带鱼", "时令蔬菜", "辣土豆丝" };
// 定义每个菜的单价
double[] prices = { 88, 78.8, 58.0, 28.5, 50, 80 };
// 定义点赞 的数组
int[] praiseNums = new int[6];
praiseNums[0] = 5;
praiseNums[1] = 10; System.out.println("***********欢迎进入《吃货联盟》点餐系统***********");
Scanner scanner = new Scanner(System.in);
int num = -1; // 如果用户输入的是0 默认返回主菜单
boolean isExit = false;// 定义一个标记 来标识 用户是否退出系统 true:退出
do {
// 显示菜单供用户选择
System.out.println("当前系统时间是:" + sdf.format(new Date()));
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.println("请选择:");
int choose = scanner.nextInt(); // 根据用户的选择执行不同的功能
switch (choose) {
case 1:
System.out.println("************我要订餐************");
// 定义一个标记判断餐带是否已满
boolean addFlag = false;
for (int i = 0; i < names.length; i++) { // 订餐人的集合
if (names[i] == null) {
addFlag = true;
System.out.println("请输入订餐人的姓名:");
names[i] = scanner.next(); // 获取订餐人的姓名
System.out.println("您可以选择下列的菜品:");
System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");
for (int j = 0; j < dishNames.length; j++) { // 遍历菜品
String praiseNum = (praiseNums[j] > 0) ? praiseNums[j]
+ "个赞"
: "";
System.out.println(j + 1 + "\t\t\t" + dishNames[j]
+ "\t\t\t" + prices[j] + "\t\t\t"
+ praiseNum);
}
// 用户开始点菜
System.out.println("请您选择菜品的编号:");
int chooseDishName = scanner.nextInt();
System.out.println("请您输入点餐的份数:");
int number = scanner.nextInt();
System.out.println("请您输入送餐的地址:");
String address = scanner.next();
System.out.println("请您输入送餐的时间:(时:分:秒)");
String time = scanner.next(); /**
* 根据用户的餐费 判断是否收取送餐费 大于60免送餐费
* 01.获取用户点的菜的单价
* 02.获取总金额
* 03.判断
*/
double sumPrice = prices[chooseDishName - 1] * number;
double price = (sumPrice > 60) ? 0 : 6;
System.out.println("恭喜您订餐成功!");
System.out.println("您定的菜品是:"
+ dishNames[chooseDishName - 1] + "\t" + number
+ "份");
System.out.print("餐费:" + sumPrice);
System.out.print("\t送餐费:" + price);
System.out.println("\t总费用:" + (price + sumPrice));
// 向数组中增加数据
times[i] = sdf.format(sdf.parse(time)); // 时间
addresses[i] = address; // 地址
sumPrices[i] = (sumPrice + price); // 总金额
dishMsgs[i] = dishNames[chooseDishName - 1]; // 定的菜品
states[i] = 0; // 订餐的状态
numbers[i] = number; // 份数
break;
}
}
if (!addFlag) {// 餐袋已经满了
System.out.println("餐袋已经满了");
}
break;
case 2:
System.out.println("************查看餐袋************");
/**
* 显示
* 编号 订餐人 菜品(份数) 送餐时间 送餐地址 总金额 状态
*/
System.out
.println("编号\t\t订餐人\t\t菜品(份数)\t\t送餐时间 \t\t送餐地址\t\t总金额\t\t状态\t\t点赞数量");
for (int i = 0; i < names.length; i++) {
if (names[i] != null) { // 有人订餐 的显示
String state = (states[i] == 0) ? "已经预定" : "已经完成"; // 获取状态
String time = times[i]; // 获取时间
String sumPrice = sumPrices[i] + "元"; // 总金额
String address = addresses[i]; // 地址
String dishMsg = dishMsgs[i]; // 菜品
int count = numbers[i];
System.out.println(i + 1 + "\t\t" + names[i] + "\t\t"
+ dishMsg + "(" + count + ")" + "\t\t" + time
+ " \t\t" + address + "\t\t" + sumPrice
+ "\t\t" + state + "\t\t" + praiseNums[i]);
}
}
break;
case 3:
System.out.println("************签收订单************");
/**
* 01.状态为已经完成!不需要签收
* 02.状态为已经预定!需要签收
* 03.没有指定的订单,不能签收
*/
System.out.println("请您输入需要签收的订单编号:");
int sign = scanner.nextInt();
// 定义一个标记 来判断订单是否被签收
int flag = 0;
for (int i = 0; i < names.length; i++) {
if (names[i] != null && states[i] == 0) {// 01.有订单 可以签收
states[i] = 1;// 改变状态
flag = 1;
break; // 必须退出 否则 后续的都会变成签收
} else if (names[i] != null && states[i] == 1) {// 02.有订单
flag = 2;
}
}
if (flag == 1) {
System.out.println("订单已经签收!");
} else if (flag == 2) {
System.out.println("订单不需要重复签收!");
} else {
System.out.println("没有指定的订单!请您核实!");
} break;
case 4:
System.out.println("************删除订单************");
System.out.println("请您输入需要删除的订单编号:");
int delNum = scanner.nextInt();
// 定义一个标记 来判断订单是否被签收以及是否存在
int delFlag = 0;
for (int i = 0; i < names.length; i++) {
if (names[i] != null && states[delNum - 1] == 1) { // 可以删除
// 有指定的订单
// 状态是已经完成
// 删除位置 之后的所有元素 依次前移
for (int j = delNum - 1; j < names.length - 1; j++) {
names[j] = names[j + 1]; // 订餐人
dishMsgs[j] = dishMsgs[j + 1];// 菜品
times[j] = times[j + 1];// 时间
addresses[j] = addresses[j + 1];// 地址
states[j] = states[j + 1];// 状态
numbers[j] = numbers[j + 1];// 份数
}
delFlag = 1;
break;
} else if (names[i] != null && states[i] == 0) { // 订单还没有签收
delFlag = 2;
}
}
if (delFlag == 1) {
System.out.println("订单已经被删除");
} else if (delFlag == 2) {
System.out.println("订单还没有签收 不允许删除!");
} else {
System.out.println("没有找到指定的订单!");
}
break;
case 5:
System.out.println("************我要点赞***************");
System.out.println("编号\t\t\t菜名\t\t\t价格");
for (int i = 0; i < dishNames.length; i++) { // 遍历所有的菜名
String price = prices[i] + "元"; // 获取价格
String name = dishNames[i];
System.out.println(i + 1 + "\t\t\t" + name + "\t\t\t"
+ price);
}
System.out.println("请您输入点赞的菜品编号:");
int chooseNum = scanner.nextInt();
praiseNums[chooseNum - 1]++;// 点赞数加+1
System.out.println("谢谢参与!点赞成功!");
break;
case 6:
// 退出系统
isExit = true;
break;
default:
// 退出系统
isExit = true;
break;
}
if (!isExit) { // 默认这是不退出
System.out.println("输入0返回主菜单!");
num = scanner.nextInt();
} else {
break; // 退出系统
} } while (num == 0);
System.out.println("谢谢您的光临!!!!!");
}
}

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

  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.团队选题 ...

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

    1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB 5.Sprint 1时间:11.14-11.23 重案 ...

随机推荐

  1. Linux上free命令的输出及其他

    一.明确概念 A buffer is something that has yet to be "written" to disk.  A cache is something t ...

  2. python中math常用函数

    python中math的使用 import math #先导入math包 1 三角函数 print math.pi #打印pi的值 3.14159265359 print math.radians(1 ...

  3. python16_day09【Select多路复用】

    一.select多路复用 句柄列表11, 句柄列表22, 句柄列表33 = select.select(句柄序列1, 句柄序列2, 句柄序列3, 超时时间) 参数: 可接受四个参数(前三个必须) 返回 ...

  4. Nodejs学习计划

    此文章已经发表于本人博客. 由于公司要求这段时间在学习Nodejs,基本靠自摸一路走来踩了很多坑浪费很多时间,今天就来这里说下,顺便计划一下接下来的学习计划,目前自己做个博客,项目过程中学习了js类以 ...

  5. 微信小程序组件text

    基础内容text:官方文档 Demo Code var initData = 'this is first line\nthis is second line' var extraLine = []; ...

  6. Java Web架构总结

    转载至:http://www.cnblogs.com/wuxl360/p/7489763.html 初始搭建 开始的开始,就是各种框架一搭,然后扔到Tomcat容器中跑就是了,这时候我们的文件,数据库 ...

  7. GUI自动测试化工具 Ranorex Studio 使用介绍

    之前用的VS自带的测试工具进行Winform的测试.但是有一个第三方的插件,没有被更好的支持. 提示消息: 测试方法 EnformentUITestProject.CodedUITest1.Coded ...

  8. a4纸尺寸像素大小

    A4纸尺寸:210mm*297mm,也就是21.0cm*29.7cm,而1英寸=2.54cm.如果在PS中新建为72像素/英寸的画布,大小为A4尺寸,经过换算就是:(72px/2.54cm) = 28 ...

  9. SVN使用—概念及生命周期

    一.SVN简介 Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Ap ...

  10. ubuntu 刚更改默认python3版本后更新包等

    一般来说ubuntu 刚更改为python3为默认版本后要进行一下更新包等等的内容(当然不更新一下也是可以的,最好更新一下,第一次更新较慢) 使用下面两行代码: sudo apt-get update ...