import java.util.Scanner;
public class VersionAlliance {
public static void main(String[] args) {
//定义数据主体-客户
String[]names=new String[4];//保存姓名
String[]dishMegs=new String[4];//保存菜品和数量
int[]time=new int[4];//保存送餐时间
String[]ads=new String[4];//保存送餐地址
int[]states=new int[4];//保存订单状态
double[]sumPrice=new double[4];//保存订单总金额
int[] praiseNums=new int[3];//点赞数
//定义数据主体--菜品
String[]dishNames={"红烧茄子","糖醋排骨","剁椒鱼头"};
double[]prices={20.0,12.0,88.0};
int[]like=new int[4];
//初始化订单信息
names[0]="王二麻";
dishMegs[0]="红烧茄子 2份";
time[0]=10;
ads[0]="南山大道2号";
states[0]=1;
sumPrice[0]=80.0;
//搭建整体流程框架
Scanner input =new Scanner(System.in);
int num=-1;//用户是否输入0返回,num=0重复主菜单,
System.out.println("欢迎使用“吃货联盟订餐系统”");
boolean flag=false;//记录退出系统
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();
switch (choose) {
case 1:
System.out.println("\n****************我要订餐***************");
boolean isAdd=false;//检查餐袋是否已满
for(int i=0;i<names.length;i++){
if(names[i]==null){
isAdd=true;
System.out.print("请输入订餐人姓名");
String name = input.next();
System.out.println("序号\t菜名\t单价");
for(int j=0;j<dishNames.length;j++){
String praise =(praiseNums[j]==0)?"":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+praise);
}
System.out.print("请输入您要点的菜品编号:");
int no=input.nextInt();
while (no<1||no>dishNames.length){
System.out.print("本店没有这个菜品,请重新选择");
no = input.nextInt();
}
//点菜份分数
System.out.print("请输入您需要的份数:");
int number = input.nextInt();
//送餐时间判断
System.out.println("请输入送餐时间(送餐时间只能是10-20之间的整点):");
int times=input.nextInt();
while (times<10||times>20){
System.out.println("您的输入有误,请输入10-20之间的整数");
times = input.nextInt();
}
//送餐地址
System.out.print("请输入送餐地址:");
String add = input.next();
//添加到订单信息
String dishInfo = dishNames[no-1]+""+number+"份";
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishInfo);//下标-1
System.out.print("送餐时间:"+times+"点");
//餐费,配送费,总金额
double dishPrice =prices[no-1]*number;
double peiSong = dishPrice>50?0:6;
double sumPrices = dishPrice+peiSong;
System.out.println("\n餐费:"+dishPrice+"元:配送费"+peiSong+"元:总计:"+sumPrices+"元");
//信息添加到数组,
names[i] = name;
dishMegs[i] = dishInfo;
time[i] = times;
ads[i]=add;
sumPrice[i]=sumPrices;
break;//订餐结束,跳出循环
}
}
if(!isAdd){
System.out.println("对不起,您的餐袋已满!");
}
break;
case 2:
System.out.println("\n****************查看餐袋***************");
System.out.println("序号\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)?"已预定":"已完成";
System.out.println((i+1)+"\t"+names[i] + "\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state);
}
}
break;
case 3:
System.out.println("\n****************签收订单***************");
System.out.println("序号\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)?"已预定":"已完成";
System.out.println((i+1)+"\t"+names[i] + "\t\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state);
}
}
//条件判断精准
boolean isSign = false;
System.out.print("请输入您要签收的订单编号:");
int signNo = input.nextInt();
for(int i = 0;i<names.length;i++){
if(names[i]!=null && states[i] == 0 && i==signNo-1){
isSign = true;
//条件满足,能签收
states[i]=1;
System.out.println("订单签收成功");
}else if(names[i]!=null && states[i] ==1 && i ==signNo-1){
//订单存在,状态完成。不可签收
isSign = true;
System.out.println("您选择的订单已经完成签收,不能再次签收!");
}
}
if(!isSign){
System.out.println("您选择的订单不存在!");
}
break;
case 4:
System.out.println("\n****************删除订单***************");
System.out.println("序号\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)?"已预定":"已完成";
System.out.println((i+1)+"\t"+names[i] + "\t\t" + dishMegs[i] + "\t" + time[i]+"点" + "\t" + ads[i] + "\t" + sumPrice[i] + "\t" + state);
}
}
//条件
boolean delete = false;
System.out.print("请输入您要删除的订单编号:");
int deleteNo = input.nextInt();
for(int i = 0;i<names.length;i++){
if(names[i]!=null && states[i] == 0 && i==deleteNo-1){
delete = true;
//订单存在,状态未完成。不可删除
System.out.println("您选择的订单未完成,不能删除");
}else if(names[i]!=null && states[i] ==1 && i ==deleteNo-1){
//条件满足,能删除
delete = true;
//数组下标提前1,最后元素设为空,为空可以下新订单,给数组重新赋值
for (int j=0;j<names.length-1;j++){
names[j] = names[j+1];
dishMegs[j] = dishMegs[j+1];
time[j] = time[j+1];
ads[j] = ads[j+1];
sumPrice[j] = sumPrice[j+1];
states[j] = states[j+1];
}
//最后一个元素设为空
names[names.length-1] = null;
dishMegs[names.length-1] = null;
time[names.length-1] = 0;
ads[names.length-1] = null;
sumPrice[names.length-1] = 0;
states[names.length-1] = 0;
System.out.println("删除订单成功!");
}
}
if(!delete){
System.out.println("您选择的订单不存在!");
}
break;
case 5:
System.out.println("\n****************我要点赞***************");
//菜品输出
System.out.println("序号\t菜名\t单价");
for(int j=0;j<dishNames.length;j++) {
String praise = (praiseNums[j] == 0) ? "" : praiseNums[j] + "赞";
System.out.println((j + 1) + "\t" + dishNames[j] + "\t" + prices[j] + "\t" + praise);
}
//点赞
System.out.print("请输入您要点赞的菜品编号:");
int praiseNo=input.nextInt();
while (praiseNo<1||praiseNo>dishNames.length){
System.out.print("本店没有这个菜品,无法点赞!请重新输入菜品序号");
praiseNo = input.nextInt();
}
//*
praiseNums[praiseNo-1]++;
break;
case 6:
System.out.println("感谢使用,欢迎再次光临");
break;
default:
flag = true;
break;
}
if(!flag) {//!flag等同于flag==false
System.out.print("请输入0返回:");
num = input.nextInt();
}else {
break;
}
}while (num==6);
System.out.println("谢谢使用,欢迎下次光临");
}
}
java课后练习---吃货联盟订餐系统
最新推荐文章于 2023-05-31 16:53:48 发布