package com.ch02.fx2;
import java.util.Scanner;
/**
* 吃货联盟订餐管理系统 (main 方法版面)
*
* @author
*
*/
public class OrderingMsg {
public static void main(String[] args) {
// 数据主体:一组订单信息
String[] names = new String[4]; // 订餐人名称
String[] dishMegs = 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]; // 总金额
//初始化2个订单信息
names[0] = "张晴";
dishMegs[0] = "红烧带鱼 2份";
times[0] = 12;
addresses[0] = "天成路207号";
sumPrices[0] = 76.0;
states[0] = 1;
names[1] = "张晴";
dishMegs[1] = "鱼香肉丝 2份";
times[1] = 18;
addresses[1] = "天成路207号";
sumPrices[1] = 20.0;
// 供选择的菜品信息
String[] dishNames = { "红烧带鱼", "鱼香肉丝", "时令鲜蔬" }; // 菜品名称
double[] prices = new double[] { 38.0, 20.0, 10.0 }; // 菜品单价
int[] praiseNums = new int[3];
Scanner input = new Scanner(System.in);
int num = -1; // 用户输入0返回主菜单,否则退出系统
boolean isExit = false; // 标志用户是否退出系统: true:退出系统
System.out.println("\n欢迎使用“吃货联盟订餐系统”");
// 循环:显示菜单,根据用户选择的数字执行相应功能
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("请选择:");
int choose = input.nextInt(); // 记录用户选择的功能编号
boolean isAdd = false; //记录是否可以订餐
boolean isSignFind = false; //找到要签收的订单
boolean isDelFind = false; //找到要删除的订单
// 根据用户选择的功能编号执行相应功能
switch (choose) {
case 1:
// 我要订餐
System.out.println("***我要订餐***");
boolean check = false ; //是否订餐
for(int j=0;j<names.length;j++){
// 有空位才输入
if(names[j] == null){
System.out.println("请输入订餐人姓名:");
String name = input.next();//姓名
//显示菜品:
System.out.println("序号 \t菜名\t单价");
for(int i=0;i<dishNames.length;i++){
System.out.print(i+1);
System.out.print("\t\t"+dishNames[i]);
System.out.println("\t"+prices[i]);
}
System.out.println("请选择您要点的菜品编号:");
int no = input.nextInt();
System.out.println("请选择您要点的菜品份数:");
int dishnum = input.nextInt();
// 编号 -1 == 数组的下标
String dishMeg = ""+dishNames[no-1]+" "+dishnum+"份"; //菜品的信息
System.out.println("请输入时间10 -20 :");
int time = input.nextInt();
System.out.println("请输入地址:");
String address = input.next();
//给数组赋值
names[j] = name;
dishMegs[j] = dishMeg;
times[j] = time;
addresses[j] = address;
//状态默认
//价格
sumPrices[j] = dishnum * prices[no-1];
check = true ;// 以订餐
System.out.println("----下单成功.");
System.out.println("你定的是:"+dishMegs[j]);
System.out.println("送餐时间:"+times[j]);
System.out.println("餐费:"+sumPrices[j]);
break; // 保证1次只用1个
}
}
//
if(check==false){
System.out.println("-----已经满了无法下单");
}
break;
case 2:
// 查看餐袋
System.out.println("***查看餐袋***");
System.out.println("序号 订餐人 餐品信息 送餐时间 送餐地址 总金额 订单状态");
for(int i=0;i<names.length;i++){
if(names[i]!=null){ // 为 null 不输出
System.out.print(i+1);
System.out.print("\t"+names[i]);
System.out.print("\t"+dishMegs[i]);
System.out.print("\t"+times[i]);
System.out.print("\t"+addresses[i]);
System.out.print("\t"+sumPrices[i]);
// 状态要判断
if(states[i] == 0){
System.out.print("\t已预定");
}else{
System.out.print("\t已完成");
}
System.out.println();
}
}
break;
case 3:
// 签收定单
System.out.println("***签收定单***");
System.out.println("---请输入订单编号:");
int no = input.nextInt();
if(no>=1 && no <=names.length){ // 1-4之间
// 要有这个订单 ,未签收
if(names[no-1]!=null && states[no-1] == 0){
states[no-1] = 1 ; //签收
System.out.println("----签收成功。");
}else{
System.out.println("-----没有这个订单或订单已签收!!");
}
}else{
System.out.println("-----没有这个订单!!");
}
break;
case 4:
// 删除订单
System.out.println("***删除订单***");
System.out.println("---请输入订单编号:");
int delno = input.nextInt();
if(delno>=1 && delno<=names.length){ // 1-4之间
// 要有这个订单 ,已签收
if(names[delno-1] != null && states[delno-1] == 1){
//删除
if(delno == 4){ // 不能只处理1个数组
// 如果删的是最后1个
names[delno-1] = null;
dishMegs[delno-1] = null;
addresses[delno-1] = null;
times[delno-1] = 0;
states[delno-1] = 0;
sumPrices[delno-1] = 0;
}else{
// 如果不是最后1个要前移
for(int j=delno-1;j<names.length-1;j++){
names[j] = names[j+1];
dishMegs[j] = dishMegs[j+1];
addresses[j] = addresses[j+1];
times[j] = times[j+1];
states[j] = states[j+1];
sumPrices[j] = sumPrices[j+1];
}
// 把最后1个置空
int temp = names.length-1;
names[temp] = null;
dishMegs[temp] = null;
addresses[temp] = null;
times[temp] = 0;
states[temp] = 0;
sumPrices[temp] = 0;
}
System.out.println("------删除订单成功。");
}else{
System.out.println("-----没有这个订单或订单未签收!!");
}
}else{
System.out.println("-----没有这个订单!!");
}
break;
case 5:
// 我要点赞
System.out.println("***我要点赞***");
//显示菜品:
System.out.println("序号 \t菜名\t单价\t点赞");
for(int i=0;i<dishNames.length;i++){
System.out.print(i+1);
System.out.print("\t\t"+dishNames[i]);
System.out.print("\t"+prices[i]);
System.out.println("\t"+praiseNums[i]);
}
System.out.println("----请选择菜品编号:");
int pnum = input.nextInt();
if(pnum >=1 && pnum<=3){
// 点赞
praiseNums[pnum-1]++;
System.out.println("----点赞 成功。");
}else{
System.out.println("-----选择错误,没有这个菜!!!");
}
break;
case 6:
// 退出系统
isExit = true;
break;
default:
//退出系统
isExit = true;
break;
}
if (!isExit) {
System.out.print("输入0返回:");
num = input.nextInt();
} else {
break;
}
} while (num == 0);
System.out.println("谢谢使用,欢迎下次光临!");
}
}