吃货联盟订餐系统

package java52_20180607;


import java.util.Scanner;


/**
 * @author lele
 * @time 2018-6-7
 * @吃货联盟项目
 *
 */
public class Chihuolianmeng {
private static Scanner sc = new Scanner(System.in);


public static void main(String[] args) {
// 1.准备存储数据的主体:数组
String names[] = new String[4];// 保存订餐人姓名的数组
String dishMsgs[] = new String[4];// 保存订餐人的详细信息的数组
int[] times = new int[4];// 保存送餐时间
String[] addresses = new String[4];// 保存送餐地址
int[] states = new int[4];// 保存订餐状态:0表示已预订,1表示已完成
double sumPrices[] = new double[4];// 保存订单的总金额
int prize[] = { 30, 50, 45 };// 保存点赞的数组
String dishes[] = { "火锅", "香锅", "扣肉" };// 保存菜品的数组
double price[] = { 45.0, 75.5, 25.8 };


// 2.对数据主体定义和初始化
names[0] = "jack";
dishMsgs[0] = dishes[0] + "2份";
times[0] = 18;
sumPrices[0] = 90.0;
addresses[0] = "工大南区304";
states[0] = 0;


names[1] = "tom";
dishMsgs[1] = dishes[2] + "1份";
times[1] = 19;
sumPrices[1] = 18.9;
addresses[1] = "工大南区306";
states[1] = 1;


// 3.主体框架do-while循环
to: do {
System.out.println("**************************");
System.out.println("\t1.我要订餐");
System.out.println("\t2.查看餐袋");
System.out.println("\t3.签收订单");
System.out.println("\t4.删除订单");
System.out.println("\t5.我要点赞");
System.out.println("\t6.退出系统");
System.out.println("**************************");
System.out.print("请选择(1-5):");
while (!sc.hasNextInt()) {


String s = sc.next();
System.out.print("请输入1-5的整数");
}
int ch = sc.nextInt();
go: switch (ch) {
case 1: {
System.out.println("*******************我要订餐********************");
// 先判断餐袋是否满
boolean flag = false;
for (String name : names) {
if (name == null) {
flag = true;
break;
}
}
if (!flag) {
System.out.println("餐袋已满,请选择其他操作!");
break;// 跳出switch
}
// 先要显示所有菜品和单价
System.out.println("序号\t菜品名称\t单价(元)\t点赞数");
for (int i = 0; i < dishes.length; i++) {
System.out.println((i + 1) + "\t" + dishes[i] + "\t" + price[i] + "\t" + prize[i]);
}
System.out.print("请选择菜品序号:");
int n = sc.nextInt();// 只能选择制定的序号,没做判断!
System.out.print("输入订餐人姓名:");
String name = sc.next();
System.out.print("输入订餐数量:");
int num = sc.nextInt();// 只能输入正整数,没做判断!
int time = 0;// 送餐时间
do {
System.out.print("输入送餐时间(10-20的整数):");
while (!sc.hasNext()) {
String st = sc.next();
System.out.print("输入10-20的整数:");
}
time = sc.nextInt();
if (time > 20 || time < 10) {
System.out.println("送餐时间必须是10-20的整数!");
}
} while (time > 20 || time < 10);
System.out.print("送餐地址:");
String address = sc.next();
// 订餐总价
double sumPrice = (price[n - 1] * num < 50) ? (price[n - 1] * num + 6) : (price[n - 1] * num);
// 订餐信息
String msg = dishes[n - 1] + " " + num + "份";
// 保存订单信息到数组中
for (int i = 0; i < names.length; i++) {
if (names[i] == null) {
names[i] = name;
addresses[i] = address;
times[i] = time;
sumPrices[i] = sumPrice;
dishMsgs[i] = msg;
System.out.println("订餐成功!");
break;
}
}
break;
}
case 2: {
System.out.println("*******************查看订单********************");
System.out.println("序号\t姓名\t订餐信息\t总价(元)\t送餐时间" + "\t送餐地址\t\t订单状态");
for (int i = 0; i < names.length; i++) {
String st = "已签收";
if (states[i] == 0) {
st = "未签收";
}
if (names[i] != null) {
System.out.println((i + 1) + "\t" + names[i] + "\t" + dishMsgs[i] + "\t" + sumPrices[i] + "\t"
+ times[i] + "\t" + addresses[i] + "\t" + st);
}
}
break;
}
case 3: {
System.out.println("*******************签收订单********************");
System.out.println("输入要签收的订单编号:");
int num = sc.nextInt();
// 判断是否存在此订单编号
boolean isFind = false;
for (int i = 0; i < names.length; i++) {
if (names[i] != null && states[i] == 1 && num == i + 1) {
System.out.println("此订单已签收! 不能重复签收");
isFind = true;
break;
} else if (names[i] != null && states[i] == 0 && num == i + 1) {
states[i] = 1;
System.out.println("签收成功!");
isFind = true;
break;
}
}
if (!isFind) {
System.out.println("没有此订单的信息");
}
break;
}
case 4: {
System.out.println("*******************删除订单********************");
System.out.println("输入要删除的订单编号:");
int num = sc.nextInt();
// 判断是否存在此订单编号
boolean isFind = false;
int index = 0;
for (int i = 0; i < names.length; i++) {
if (names[i] != null && states[i] == 1 && num == i + 1) {
System.out.println("此订单已签收!");
isFind = true;
break;
} else if (names[i] != null && states[i] == 0 && num == i + 1) {
System.out.println("此订单未签收,不可删除!");
break go;
}
}
if (isFind) {
for (int i = 0; i < names.length - 1; i++) {
names[i] = names[i + 1];
dishMsgs[i] = dishMsgs[i + 1];
times[i] = times[i + 1];
sumPrices[i] = sumPrices[i + 1];
addresses[i] = addresses[i + 1];
states[i] = states[i + 1];
}
names[names.length - 1] = null;
dishMsgs[dishMsgs.length - 1] = null;
times[times.length - 1] = 0;
sumPrices[sumPrices.length - 1] = 0;
addresses[addresses.length - 1] = null;
states[states.length - 1] = 0;
System.out.println("删除成功!");
} else {
System.out.println("没有此订单!");
}
break;
}


case 5: {
System.out.println("*******************我要点赞********************");
System.out.println("序号\t菜品名称\t单价");
for (int i = 0; i < dishes.length; i++) {
String price1 = price[i] + "元";
String prizeNum = (prize[i] > 0 ? prize[i] + "赞" : " ");
System.out.println((i + 1) + "\t" + dishes[i] + "\t" + price[i]);
}
System.out.println("请选择您要点赞的菜品编号:");
int prizeNum = sc.nextInt();
prize[prizeNum - 1]++;// 点赞数+1
System.out.println("点赞成功!");
break;
}
default: {
break to;
}
}
} while (true);
System.out.println("退出系统");
}


}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值