package 吃货联盟订餐系统;
import java.util.Scanner;
public class FoodAlliance {
public static void main(String[] args) {
//定义数组用来存储数据
String[] names=new String[5];//订餐人
String[] dishMegs = new String[5];//can
int[] times =new int[5];//送餐时间
String[] addresses=new String[5];//送餐地址
int[] states=new int[5];//订单状态 0 已预定 1已完成
double[] sumPrices=new double[5];//总净额
//初始化两条订单信息
names[0]="王小明";
dishMegs[0]="鱼香肉丝 1份";
times[0]=12;
addresses[0]="合掌路-228号";
states[0] =1;
sumPrices[0] = 18.0;
names[1]="陈大壮";
dishMegs[1]="红烧带鱼 2份";
times[1]=10;
addresses[1]="明光大道-556";
states[1] =0;
sumPrices[1] = 76.0;
//一堆餐品信息
String[] dishNames = {"凉拌鸡丝","红烧带鱼","鱼香肉丝"};
double[] prices ={11.0,38.0,18.0};//价格
int[] praiseNums =new int[3];//点赞数
Scanner sc=new Scanner(System.in);
int num= 1;
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("请选择(1-6)");
int comy= sc.nextInt();
boolean addding=false;//定义一个信号值用来判断 餐盘是否满了 或者是否可以插入
if (comy>=0&&comy<=6) {
switch (comy) {
case 1:
//我要订餐
//a。找查可以插入 为null的地方
for (int i = 0; i < names.length; i++) {
//找到了这个索引值可以插入数据了
if (names[i]==null){
//addding为true可以插入
addding=true;
System.out.println("序号\t 菜单\t 价格\t 点赞数");
for (int j = 0; j < dishNames.length; j++) {
String price=prices[j]+"元";
String praise=praiseNums[j]+"赞";
System.out.println(" "+(j+1)+"\t"+" "+dishNames[j]+"\t"+price+" \t"+praise+" \t");
}
//输入 编号 份数
System.out.println("请选择你需要那份菜的序号");
int xuhao = sc.nextInt();
while (xuhao<1||xuhao>3){
System.out.println("对不起您的输入有误,请输入10-20的整数");
xuhao= sc.nextInt();
}
System.out.println("请选择你要选择几份");
int number= sc.nextInt();
//汇总
String disMeg= dishNames[xuhao-1]+" "+number;
dishMegs[i]=disMeg;
//输入订餐人的姓名
System.out.println("请输入您的姓名:");
names[i] = sc.next();
//送餐时间
System.out.println("请选择你要送餐的时间10-20点送餐");
int time= sc.nextInt();
while (time<10 || time>20){
System.out.println("对不起您的输入有误,请输入10-20的整数");
time= sc.nextInt();
}
times[i]=time;
//输入送餐地址
System.out.println("请输入你的送餐地址");
addresses[i]= sc.next();
//总金额
double sumPrice = prices[xuhao-1] *number;
sumPrices[i]=sumPrice;
//送餐费 当餐费到达50元 面餐费
double deliCharge =sumPrice>=50?0.0:6.0;
//显示订单信息
System.out.println("订餐成功:");
System.out.println("您的订单是:"+disMeg);
System.out.println("订餐人:"+names[i]);
System.out.println("送餐时间:"+time);
System.out.println("送餐地址:"+addresses[i]);
System.out.println("餐费:"+sumPrice+",送餐费: "+deliCharge+"元");
System.out.println("总金额:"+(sumPrice+deliCharge)+"元");
break;
}
}
if (!addding) {
System.out.println("对不起餐袋已满 非常抱歉~");
}
break;
case 2:
//查看餐袋
printArray(names,dishMegs,times,addresses,states,sumPrices);
break;
case 3:
//签收订单
printArray(names,dishMegs,times,addresses,states,sumPrices);
System.out.println("请输入你要签收的订单编号:");
int xuhao= sc.nextInt();
boolean flag =false;//做一个标识符用来判断是否找到了
for (int i = 0; i < names.length; i++) {
if (names[i]!=null && states[i]==1 && xuhao==i+1){
System.out.println("订单已签收!不能再次签收");
flag=true;
break;
} else if (names[i]!=null && states[i]==0 && xuhao==i+1) {
states[i]=1;//已预定的情况 改成已完成
flag=true;
System.out.println("订单签收完成!!");
break;
}
}
if (!flag){
System.out.println("你输入的订单不存在!");
}
case 4:
//删除订单
printArray(names,dishNames,times,addresses,states,sumPrices);
System.out.println("请选择你要删除的订单序号:");
int deletexuhao =sc.nextInt();
int index=-1;
boolean flag1 =false;//做一个标识符用来判断是否找到了
for (int i = 0; i < names.length; i++) {
if (names[i]!=null && states[i]==1 && deletexuhao==i+1){
index=i;
flag1=true;
break;
} else if (names[i]!=null && states[i]==0 && deletexuhao==i+1) {
flag1=true;
System.out.println("订单没有签收不能删除!!");
break;
}
}
if (!flag1){
System.out.println("你输入的订单不存在!");
}
if (index!=-1) {
for (int i = deletexuhao ; i <= names.length-1; i++) {
names[i - 1] = names[i];
dishMegs[i - 1] = dishMegs[i];
times[i - 1] = times[i];
addresses[i - 1] = addresses[i];
states[i - 1] = states[i];
sumPrices[i - 1] = sumPrices[i];
}
//清空
names[names.length - 1] = null;
dishMegs[names.length - 1] = null;
times[names.length - 1] = 0;
addresses[names.length - 1] = null;
states[names.length - 1] = 0;
sumPrices[names.length - 1] = 0;
System.out.println("删除成功!");
break;
}
case 5:
//我要点赞
//1.显示菜单
System.out.println("序号\t 菜单\t 价格\t 点赞数");
for (int j = 0; j < dishNames.length; j++) {
String price=prices[j]+"元";
String praise=praiseNums[j]+"赞";
System.out.println(" "+(j+1)+"\t"+" "+dishNames[j]+"\t"+price+" \t"+praise+" \t");
}
//输入要点赞谁
System.out.println("请输入你要点赞的商品序号");
int disnumber=sc.nextInt();
praiseNums[disnumber-1]++;
System.out.println("点赞成功!");
break;
case 6:
//退出系统
System.out.println("感谢使用!欢迎下次光临!");
return;
}
}else {
System.out.println("输入错误!!请重新输入");
}
System.out.print("输入0返回:");
num= sc.nextInt();
}while (num==0);
}
private static void printArray(String[] names, String[] dishMegs,int[] times,String[] addresses,int[] states,double[] sumPrices) {
System.out.println("------------------------------------------餐袋余额-----------------------------------");
System.out.println("序号"+"\t\t姓名" + "\t\t菜单 份数" + " \t\t送餐时间 " + "\t\t送餐地址" + "\t\t\t总金额"+"\t\t状态");
for (int i = 0; i < names.length; i++) {
if (names[i]!=null) {
String time=times[i]+"点";
String sumprice=sumPrices[i]+"元";
String state=states[i]==0?"未完成":"已完成";
System.out.print(" "+(i+1)+"\t");
System.out.print(" "+names[i] + "\t\t");
System.out.print(dishMegs[i] + "\t\t");
System.out.print(time + "\t\t");
System.out.print(addresses[i] + "2\t\t");
System.out.print(sumprice + "\t\t");
System.out.println(state + "\t\t");
}
}
}
}
吃货联盟订餐系统(数组+变量)
最新推荐文章于 2025-11-25 22:13:12 发布
本文介绍了使用Java编写的吃货联盟订餐系统,包括订餐流程、查看餐袋、签收与删除订单,以及点赞功能。展示了如何通过命令行交互进行操作,并管理订单状态和支付信息。
1174

被折叠的 条评论
为什么被折叠?



