基本点餐系统的实现
一、初始化餐品信息
int number = 0;
double totalMoney[] = new double[4];
String []name = new String[4];
int canPinList [] = new int[4];
int fenShu []= new int[4];
int time[] = new int[4];
String address[] = new String[4];
int zhuangTai[] = new int[4];
int i =0;
int []dingDanBianHao = new int [4];
int [] list = new int []{01,02,03,04};
String [] mingCheng = new String []{"素红烧肉","开水白菜","佛跳墙","蜜汁熊掌"};
double [] price = new double[]{18,12,68,88};
int [] dianZan = new int []{50,100,20,12};
二、使用do-while循环实现订餐信息的显示
int backIndex = -1;
boolean outFlag = false;
// 循环展示主菜单
do {
// 主菜单导航
System.out.println("\n欢迎使用“吃货联盟订餐系统”\n");
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("请输入菜单序号(1-6):");
// 定义菜单序号变量
int chooseIndex = input.nextInt();
// 根据用户的选择,切换菜单
switch (chooseIndex) {
case 1:
System.out.println("------我要订餐------");
System.out.print("请输入订餐人姓名:");
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:
System.out.println("------退出系统------");
outFlag = true;
break;
default:
outFlag = true;
break;
}
// 判定是否选择了退出系统
if(outFlag){
break;
} else {
System.out.print("请输入0返回主菜单:");
backIndex = input.nextInt();
}
} while (backIndex == 0);
System.out.println("谢谢使用吃货联盟,欢迎下次光临!!!");
input.close();
注意:此时控制退出的方法是设置一个标志位,如果不满足条件则退出
图片效果:
三、基本功能的实现
1、订餐功能实现
System.out.println("********我要订餐********");
System.out.println("请输入订餐人姓名");
name[i] = input.next();
System.out.println("订餐人姓名是:"+name[i]);
System.out.print("菜品序号:"+" \t");
for(int list1:list){
System.out.print(list1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.print("菜品名称:"+"\t");
for(String mingCheng1:mingCheng){
System.out.print(mingCheng1+"\t"+"\t");
}
System.out.println();
System.out.print("菜品单价:"+"\t ");
for(double price1:price){
System.out.print(price1+"\t"+"\t"+"\t");
}
System.out.println();
System.out.print("菜品点赞:"+" \t");
for(int dianZan1 : dianZan){
System.out.print(dianZan1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.println("请输入要选择的餐品序号和份数");
System.out.println("请输入菜品序号:");
canPinList[i] =input.nextInt();
System.out.println("请输入份数:");
fenShu[i] = input.nextInt();
System.out.println("请输入送餐时间,必须是天10 到 20 点间整点送餐");
if(time[i]>10&&time[i]<20) {
time[i]=input.nextInt();
System.out.println("配送时间为:"+time[i]);
}else {
for(time[i] = input.nextInt();time[i]<10||time[i]>20;time[i] = input.nextInt()){
System.out.println("您好,此段时间不配送:");
System.out.println("输入错误,请重新输入");
System.out.println("请输入送餐时间,必须是天10 到 20 点间整点送餐");
}
}
System.out.println("请输入送餐地址");
address[i] = input.next();
System.out.println("请输入订单状态 0:已预定(默认状态) 1、已完成(订单已签收)");
zhuangTai[i] = input.nextInt();
if(zhuangTai[i] == 0){
System.out.println("已预订");
}else if(zhuangTai[i] ==1){
System.out.println("已完成");
}
System.out.println("总金额");
int peiSongFei = 6;
totalMoney[i] = price[canPinList[i]-1] *fenShu[i];
if(totalMoney[i]>56.0){
peiSongFei = 0;
}
totalMoney[i] = peiSongFei + totalMoney[i];
System.out.println("您订的是:\t"+canPinList[i]+"号菜品"+"\t"+"菜品名称是:"+" "+mingCheng[canPinList[i]-1]+"\t"+"菜品金额是"+price[canPinList[i]-1]
+"\t"+"菜品份数是:"+"\t"+fenShu[i]+"\t"+"总金额是:"+totalMoney[i]);
dingDanBianHao[i] = i+1;
i++;
System.out.println("输入0返回");
number = input.nextInt();
break;
图片效果:
2、查看餐袋功能实现
for(int j=0;j<name.length-1;j++){
if(name[j]!=null) {
System.out.println("餐品订单编号是: "+dingDanBianHao[j]+"\t"+"订餐人姓名: "+name[j]+"\t"+"订餐信息: "+canPinList[i]+"\t"+"菜品名称是: "+"\t"+mingCheng[i]+
"\t"+"份数是: "+fenShu[j]+"\t"+"送餐时间: "+time[j]+"\t"+"送餐地址:"+address[j]+"\t"+"状态是:"+zhuangTai[j]+"\t"+"总金额是: "+totalMoney[j]);
}
}do {
System.out.println("您好当前餐袋为空:");
break;
}while(name==null);
System.out.println("输入0返回");
number = input.nextInt();
break;
图片效果:
3、签收订单功能实现
System.out.println("请输入订单编号");
int num2 =input.nextInt();
zhuangTai[num2-1] =1;
System.out.println("订单状态已完成");
System.out.println("输入0返回");
number = input.nextInt();
break;
4、删除订单功能实现
System.out.println("请输入订单编号");
int num = input.nextInt();
//订单编号是订单数组下标+1
if(zhuangTai[num-1]==1){
System.out.println("可以删除订单");
for(int m=num-1;name[m]!=null;m++){
if(name[m+1]==null){
dingDanBianHao[m] = 0;
name[m] = null;
mingCheng[canPinList[m]-1] = null;
fenShu[m] = 0;
time[m] = 0;
address[m] = null;
zhuangTai[m] = 0;
totalMoney[m] = 0;
break;
}
dingDanBianHao[m] = dingDanBianHao[m+1];
name[m] = name[m+1];
mingCheng[m] = mingCheng[m+1];
fenShu[m] = fenShu[m+1];
time[m] = time[m+1];
address[m] = address[m+1];
zhuangTai[m] = zhuangTai[m+1];
totalMoney[m] = totalMoney[m+1];
}
}else if(name[num-1]!=null){
System.out.println("订单未签收,不能删除!");
}else{
System.out.println("无该订单");
}
System.out.println("输入0返回");
number = input.nextInt();
break;
5、订单点赞功能实现
for(int list1:list){
System.out.print(" ");
System.out.print(list1+"\t\t"+"\t"+"\t");
}
System.out.println();
for(String mingCheng1:mingCheng){
System.out.print(mingCheng1+"\t"+"\t"+"\t");
}
System.out.println();
for(double price1:price){
System.out.print(" ");
System.out.print(price1+"\t\t"+"\t"+"\t");
}
System.out.println();
for(int dianZan1 : dianZan){
System.out.print(" ");
System.out.print(dianZan1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.println("请输入要点赞的菜品序号");
int num1 = input.nextInt();
dianZan[num1-1] += 1;
System.out.println("输入0返回");
number = input.nextInt();
break;
6、退出系统功能
System.out.println("谢谢使用,欢迎下次光临");
break;
四、完整代码
import java.util.Scanner;
/**
* @Author juezhenhong
* @Date 2021/1/13
* @Description
*/
public class MeiEat {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number = 0;
double totalMoney[] = new double[4];
String []name = new String[4];
int canPinList [] = new int[4];
int fenShu []= new int[4];
int time[] = new int[4];
String address[] = new String[4];
int zhuangTai[] = new int[4];
int i =0;
int []dingDanBianHao = new int [4];
int [] list = new int []{01,02,03,04};
String [] mingCheng = new String []{"素红烧肉","开水白菜","佛跳墙","蜜汁熊掌"};
double [] price = new double[]{18,12,68,88};
int [] dianZan = new int []{50,100,20,12};
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.println("请选择菜单序号(1-6):");
number = input.nextInt();
switch (number) {
case 1:
System.out.println("********我要订餐********");
System.out.println("请输入订餐人姓名");
name[i] = input.next();
System.out.println("订餐人姓名是:"+name[i]);
System.out.print("菜品序号:"+" \t");
for(int list1:list){
System.out.print(list1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.print("菜品名称:"+"\t");
for(String mingCheng1:mingCheng){
System.out.print(mingCheng1+"\t"+"\t");
}
System.out.println();
System.out.print("菜品单价:"+"\t ");
for(double price1:price){
System.out.print(price1+"\t"+"\t"+"\t");
}
System.out.println();
System.out.print("菜品点赞:"+" \t");
for(int dianZan1 : dianZan){
System.out.print(dianZan1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.println("请输入要选择的餐品序号和份数");
System.out.println("请输入菜品序号:");
canPinList[i] =input.nextInt();
System.out.println("请输入份数:");
fenShu[i] = input.nextInt();
System.out.println("请输入送餐时间,必须是天10 到 20 点间整点送餐");
if(time[i]>10&&time[i]<20) {
time[i]=input.nextInt();
System.out.println("配送时间为:"+time[i]);
}else {
for(time[i] = input.nextInt();time[i]<10||time[i]>20;time[i] = input.nextInt()){
System.out.println("您好,此段时间不配送:");
System.out.println("输入错误,请重新输入");
System.out.println("请输入送餐时间,必须是天10 到 20 点间整点送餐");
}
}
System.out.println("请输入送餐地址");
address[i] = input.next();
System.out.println("请输入订单状态 0:已预定(默认状态) 1、已完成(订单已签收)");
zhuangTai[i] = input.nextInt();
if(zhuangTai[i] == 0){
System.out.println("已预订");
}else if(zhuangTai[i] ==1){
System.out.println("已完成");
}
System.out.println("总金额");
int peiSongFei = 6;
totalMoney[i] = price[canPinList[i]-1] *fenShu[i];
if(totalMoney[i]>56.0){
peiSongFei = 0;
}
totalMoney[i] = peiSongFei + totalMoney[i];
System.out.println("您订的是:\t"+canPinList[i]+"号菜品"+"\t"+"菜品名称是:"+" "+mingCheng[canPinList[i]-1]+"\t"+"菜品金额是"+price[canPinList[i]-1]
+"\t"+"菜品份数是:"+"\t"+fenShu[i]+"\t"+"总金额是:"+totalMoney[i]);
dingDanBianHao[i] = i+1;
i++;
System.out.println("输入0返回");
number = input.nextInt();
break;
case 2:
for(int j=0;j<name.length-1;j++){
if(name[j]!=null) {
System.out.println("餐品订单编号是: "+dingDanBianHao[j]+"\t"+"订餐人姓名: "+name[j]+"\t"+"订餐信息: "+canPinList[i]+"\t"+"菜品名称是: "+"\t"+mingCheng[i]+
"\t"+"份数是: "+fenShu[j]+"\t"+"送餐时间: "+time[j]+"\t"+"送餐地址:"+address[j]+"\t"+"状态是:"+zhuangTai[j]+"\t"+"总金额是: "+totalMoney[j]);
}
}do {
System.out.println("您好当前餐袋为空:");
break;
}while(name==null);
System.out.println("输入0返回");
number = input.nextInt();
break;
case 3:
System.out.println("请输入订单编号");
int num2 =input.nextInt();
zhuangTai[num2-1] =1;
System.out.println("订单状态已完成");
System.out.println("输入0返回");
number = input.nextInt();
break;
case 4:
System.out.println("请输入订单编号");
int num = input.nextInt();
//订单编号是订单数组下标+1
if(zhuangTai[num-1]==1){
System.out.println("可以删除订单");
for(int m=num-1;name[m]!=null;m++){
if(name[m+1]==null){
dingDanBianHao[m] = 0;
name[m] = null;
mingCheng[canPinList[m]-1] = null;
fenShu[m] = 0;
time[m] = 0;
address[m] = null;
zhuangTai[m] = 0;
totalMoney[m] = 0;
break;
}
dingDanBianHao[m] = dingDanBianHao[m+1];
name[m] = name[m+1];
mingCheng[m] = mingCheng[m+1];
fenShu[m] = fenShu[m+1];
time[m] = time[m+1];
address[m] = address[m+1];
zhuangTai[m] = zhuangTai[m+1];
totalMoney[m] = totalMoney[m+1];
}
}else if(name[num-1]!=null){
System.out.println("订单未签收,不能删除!");
}else{
System.out.println("无该订单");
}
System.out.println("输入0返回");
number = input.nextInt();
break;
case 5:
for(int list1:list){
System.out.print(" ");
System.out.print(list1+"\t\t"+"\t"+"\t");
}
System.out.println();
for(String mingCheng1:mingCheng){
System.out.print(mingCheng1+"\t"+"\t"+"\t");
}
System.out.println();
for(double price1:price){
System.out.print(" ");
System.out.print(price1+"\t\t"+"\t"+"\t");
}
System.out.println();
for(int dianZan1 : dianZan){
System.out.print(" ");
System.out.print(dianZan1+"\t\t"+"\t"+"\t");
}
System.out.println();
System.out.println("请输入要点赞的菜品序号");
int num1 = input.nextInt();
dianZan[num1-1] += 1;
System.out.println("输入0返回");
number = input.nextInt();
break;
case 6:
System.out.println("谢谢使用,欢迎下次光临");
break;
default:
System.out.println("****您的输入有误,请重新输入****");
System.out.println();
break;
}
} while (number >6||number==0);
}
}