1.使用数组对象保存订单信息
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];
double[] sumPrices=new double[4];
2.数据初始化
String[] dishNames={"红烧带鱼","鱼肉香丝","时令蔬菜"};
double[] prices=new double[]{38.0,20.0,10.0};
int[] praiseNums=new int[3];
names[0]="Au";
dishMegs[0]="红烧带鱼2份";
times[0]=12;
addresses[0]="gzgs31栋";
sumPrices[0]=76.0;
states[0]=1;
names[1]="QJC";
dishMegs[1]="时令蔬菜2份";
times[1]=18;
addresses[1]="gzgs31栋";
sumPrices[1]=45.0;
states[1]=0;
3.实现菜单切换
Scanner input=new Scanner(System.in);
int num=-1;
boolean isExit=false;
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.printf("请选择:");
int choose= input.nextInt();
boolean isAdd=false;
boolean isSignFind=false;
boolean isDelFind=false;
switch (choose){
case 1:
System.out.println("***我要订餐***");
break;
case 2:
System.out.println("***查看餐袋***");
break;
case 3:
System.out.println("***签收订单***");
break;
case 4:
System.out.println("***删除订单***");
break;
case 5:
System.out.println("***我要点赞***");
break;
case 6:
isExit=true;
break;
default:
isExit=true;
break;
}
if(!isExit){
System.out.printf("输入0返回:");
num= input.nextInt();
}else{
break;
}
}while (num==0);
4.实现”查看餐袋“
System.out.println("***查看餐袋***");
System.out.println("序号\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 date=times[i]+"点";
String sumPrice=sumPrices[i]+"元";
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+date+"\t\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
}
}
break;
5.实现“我要订餐”
System.out.println("***我要订餐***");
for (int j = 0; j < names.length; j++) {
if (names[j]==null){
isAdd=true;
System.out.printf("请输入订餐人姓名:");
String name= input.next();
System.out.println("编号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for (int i = 0; i < dishNames.length; i++) {
String price=prices[i]+"元";
String priaiseNum=(praiseNums[i]>0?praiseNums[i]+"赞":"0");
System.out.println((i+1)+"\t"+dishNames[i]+"\t\t" +price+"\t\t"+priaiseNum);
}
System.out.print("请选择您要点的菜品编号:");
int chooseDish= input.nextInt();
System.out.print("请输入您需要的份数:");
int number= input.nextInt();
String dishMeg=dishNames[chooseDish-1]+" "+number+"份";
double sumPrice=prices[chooseDish-1]*number;
double deliCharge=(sumPrice>=50)?0:5;
System.out.printf("请输入送餐时间"+"(送餐时间是10点至20点整点):");
int time=input.nextInt();
while(time<10||time>20){
System.out.printf("您的输入有误,请输入10~20的整数!");
time= input.nextInt();
}
System.out.printf("请输入送餐地址:");
String address= input.next();
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishMeg);
System.out.println("送餐时间:"+time+"点");
System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");
names[j]=name;
dishMegs[j]=dishMeg;
times[j]=time;
addresses[j]=address;
sumPrices[j]=sumPrice+deliCharge;
break;
}
}
if(!isAdd){
System.out.println("对不起,您的餐袋已满!");
}
6.实现“签收订单”
System.out.println("***签收订单***");
System.out.print("请选择要签收的订单需序号:");
int signOrderId=input.nextInt();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null && states[i]==0 && signOrderId==i+1){
states[i]=1;
System.out.println("订单签收成功!");
isSignFind=true;
} else if (names[i]!=null && states[i]==1 && signOrderId==i+1) {
System.out.println("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;
}
}
if(!isSignFind){
System.out.println("您选择的订单不存在!");
}
7.实现”删除订单“
System.out.println("***删除订单***");
System.out.print("请输入要删除的订单号:");
int delId= input.nextInt();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null && states[i]==1 && delId==i+1){
isDelFind=true;
for (int j = delId-1; j < names.length-1; j++) {
names[j]=names[j+1];
dishMegs[j]=dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
states[j]=states[j+1];
}
int enIndex= names.length-1;
names[enIndex]=null;
dishMegs[enIndex]=null;
times[enIndex]=0;
addresses[enIndex]=null;
states[enIndex]=0;
sumPrices[enIndex]=0;
System.out.println("删除订单成功!");
break;
} else if (names[i]!=null && states[i]==0 && delId==i+1) {
System.out.println("您选择的订单为签收,不能删除!");
isDelFind=true;
break;
}
}
if(!isDelFind){
System.out.println("您要删除的订单不存在!");
}
8.实现”我要点赞“
System.out.println("***我要点赞***");
System.out.println("编号"+"\t"+"菜名"+"\t"+"单价");
for (int i = 0; i < dishNames.length; i++) {
String price=prices[i]+"元";
String praiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞":"";
System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"+price+"\t"+praiseNum);
}
System.out.printf("请选择您要点赞的菜品编号:");
int praiseNum=input.nextInt();
praiseNums[praiseNum-1]++;
System.out.println("点赞成功!");
完整代码展示
import java.util.Scanner;
public class Qjc {
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];
double[] sumPrices=new double[4];
String[] dishNames={"红烧带鱼","鱼肉香丝","时令蔬菜"};
double[] prices=new double[]{38.0,20.0,10.0};
int[] praiseNums=new int[3];
names[0]="Au";
dishMegs[0]="红烧带鱼2份";
times[0]=12;
addresses[0]="gzgs31栋";
sumPrices[0]=76.0;
states[0]=1;
names[1]="QJC";
dishMegs[1]="时令蔬菜2份";
times[1]=18;
addresses[1]="gzgs31栋";
sumPrices[1]=45.0;
states[1]=0;
Scanner input=new Scanner(System.in);
int num=-1;
boolean isExit=false;
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.printf("请选择:");
int choose= input.nextInt();
boolean isAdd=false;
boolean isSignFind=false;
boolean isDelFind=false;
switch (choose){
case 1:
System.out.println("***我要订餐***");
for (int j = 0; j < names.length; j++) {
if (names[j]==null){
isAdd=true;
System.out.printf("请输入订餐人姓名:");
String name= input.next();
System.out.println("编号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for (int i = 0; i < dishNames.length; i++) {
String price=prices[i]+"元";
String priaiseNum=(praiseNums[i]>0?praiseNums[i]+"赞":"0");
System.out.println((i+1)+"\t"+dishNames[i]+"\t\t" +price+"\t\t"+priaiseNum);
}
System.out.print("请选择您要点的菜品编号:");
int chooseDish= input.nextInt();
System.out.print("请输入您需要的份数:");
int number= input.nextInt();
String dishMeg=dishNames[chooseDish-1]+" "+number+"份";
double sumPrice=prices[chooseDish-1]*number;
double deliCharge=(sumPrice>=50)?0:5;
System.out.printf("请输入送餐时间"+"(送餐时间是10点至20点整点):");
int time=input.nextInt();
while(time<10||time>20){
System.out.printf("您的输入有误,请输入10~20的整数!");
time= input.nextInt();
}
System.out.printf("请输入送餐地址:");
String address= input.next();
System.out.println("订餐成功!");
System.out.println("您订的是:"+dishMeg);
System.out.println("送餐时间:"+time+"点");
System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");
names[j]=name;
dishMegs[j]=dishMeg;
times[j]=time;
addresses[j]=address;
sumPrices[j]=sumPrice+deliCharge;
break;
}
}
if(!isAdd){
System.out.println("对不起,您的餐袋已满!");
}
break;
case 2:
System.out.println("***查看餐袋***");
System.out.println("序号\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 date=times[i]+"点";
String sumPrice=sumPrices[i]+"元";
System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+date+"\t\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
}
}
break;
case 3:
System.out.println("***签收订单***");
System.out.print("请选择要签收的订单需序号:");
int signOrderId=input.nextInt();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null && states[i]==0 && signOrderId==i+1){
states[i]=1;
System.out.println("订单签收成功!");
isSignFind=true;
} else if (names[i]!=null && states[i]==1 && signOrderId==i+1) {
System.out.println("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;
}
}
if(!isSignFind){
System.out.println("您选择的订单不存在!");
}
break;
case 4:
System.out.println("***删除订单***");
System.out.print("请输入要删除的订单号:");
int delId= input.nextInt();
for (int i = 0; i < names.length; i++) {
if(names[i]!=null && states[i]==1 && delId==i+1){
isDelFind=true;
for (int j = delId-1; j < names.length-1; j++) {
names[j]=names[j+1];
dishMegs[j]=dishMegs[j+1];
times[j]=times[j+1];
addresses[j]=addresses[j+1];
states[j]=states[j+1];
}
int enIndex= names.length-1;
names[enIndex]=null;
dishMegs[enIndex]=null;
times[enIndex]=0;
addresses[enIndex]=null;
states[enIndex]=0;
sumPrices[enIndex]=0;
System.out.println("删除订单成功!");
break;
} else if (names[i]!=null && states[i]==0 && delId==i+1) {
System.out.println("您选择的订单为签收,不能删除!");
isDelFind=true;
break;
}
}
if(!isDelFind){
System.out.println("您要删除的订单不存在!");
}
break;
case 5:
System.out.println("***我要点赞***");
System.out.println("编号"+"\t"+"菜名"+"\t"+"单价");
for (int i = 0; i < dishNames.length; i++) {
String price=prices[i]+"元";
String praiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞":"";
System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"+price+"\t"+praiseNum);
}
System.out.printf("请选择您要点赞的菜品编号:");
int praiseNum=input.nextInt();
praiseNums[praiseNum-1]++;
System.out.println("点赞成功!");
break;
case 6:
isExit=true;
break;
default:
isExit=true;
break;
}
if(!isExit){
System.out.printf("输入0返回:");
num= input.nextInt();
}else{
break;
}
}while (num==0);
}
}