第一个项目,订餐系统

import jdk.internal.org.objectweb.asm.tree.IntInsnNode;
import jdk.internal.util.xml.impl.Input;
import jdk.management.resource.internal.inst.SocketOutputStreamRMHooks;
import sun.security.util.AuthResources_zh_CN;

import java.util.Scanner;

public class Test8 {
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];//保存订单的总金额
names[0] = "张晴";
names[1] = "张晴";
dishMegs[0] = "红烧带鱼 2份";
dishMegs[1] = "鱼香肉丝 2份";
times[0] = 12;
times[1] = 18;
addresses[0] = "天成路207号";
addresses[1] = "天成路207号";
states[0] = 1;
states[1] = 0;
sumPrices[0] = 76.0;
sumPrices[1] = 45.0;
//提供的菜品信息
String[] dishMegs1 = {"红烧带鱼", "鱼香肉丝", "时令鲜疏"};//菜品名字
double[] money = {38.0, 20.0, 10.0};//单价
int[] nums = new int[3]; //点赞
//初始化赋值
Scanner input = new Scanner(System.in);
int num = 1;
boolean p = false;
do {
System.out.println("唤醒使用”吃货订单系统“");
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 number = input.nextInt();
switch (number) {
case 1:
System.out.println("
我要订餐
");
boolean bj = false;//做一个标记看names里是否有空位置
for (int i1 = 0; i1 < names.length; i1++) {
if (names[i1] == null) {//如过names为true那么就可以继续订餐
bj = true;
System.out.print("请输入订餐人姓名:");
String name = input.next();//填写订餐人姓名
System.out.println("序号\t\t菜名\t\t\t单价\t\t\t点赞数");
for (int i = 0; i < dishMegs1.length; i++) {
System.out.println((i + 1) + "\t\t" + dishMegs1[i] + "\t\t\t" + money[i] + "元" + "\t\t\t" + nums[i] + "赞");
}//输出序号菜名单价和点赞数
System.out.print("请选择您要点的菜品编号:");
int dishMegs2 = input.nextInt();//填写要点菜的编号
while (dishMegs2 < 0 || dishMegs2 > 3) {
System.out.println("请输入正确的菜品编号");
dishMegs2 = input.nextInt();
}
System.out.print("请选择您需要的份数");
int num1 = input.nextInt();//填写所需要的份数
System.out.print("请输入送餐时间(送餐时间是10点到20点整送餐):");
int time = input.nextInt();//填写送餐时间
while (time < 10 || time > 20) {
System.out.print("对不起该时间不进行配送,请重新选择配送时间:");
time = input.nextInt();
}
System.out.print("请输入送餐地址:");
String addresses1 = input.next();//填写送餐地址
System.out.print("订餐成功");
System.out.println("您定的是:" + dishMegs1[dishMegs2 - 1] + "\t" + num1 + "份");
System.out.println("送餐时间:" + time + "点");
double z = money[dishMegs2 - 1] * num1;//餐费
double sc = (z < 50) ? 5 : 0;//配送费
double zj = z + sc;//餐费总计
System.out.println("餐费:" + z + ",\t" + "送餐费:" + sc + ",总计:" + zj);
//把信息赋值到餐袋里面
names[i1] = name;
dishMegs[i1] = dishMegs1[dishMegs2 - 1] + " " + num1 + "份";
times[i1] = time;
addresses[i1] = addresses1;
sumPrices[i1] = zj;
break;
}
}
if (!bj) {//不为true则输出对不起您的餐袋已满
System.out.println("对不起您的餐袋已满");
}
break;
case 2:
System.out.println("
查看餐袋
");

System.out.println("序号\t订餐人\t 餐品信息\t 送餐时间\t 送餐地址\t总金额 订单状态");
for (int i = 0; i < names.length; i++) {
if (names[i] != null) {//订单人名字不会为空则输出
System.out.println((i + 1) + "\t" + names[i] + "\t\t" + dishMegs[i] + "\t\t" + times[i] + "点" + "\t"
+ addresses[i] + "\t" + sumPrices[i] + "元" + "\t" + (states[i] == 1 ? "已完成" : "已预定"));
}//输出序号 订餐人姓名 餐品信息 送餐时间 送餐地址 总金额 和订单状态
}
break;
case 3:
System.out.println("签收订单");
System.out.print("请选择要签收的序号:");
int qs = input.nextInt();//签收订单的序号
if ((qs < 1 || qs > 4) || names[qs - 1] == null) {//判断编号是否存在 或者 数组为是否为空
System.out.println("对不起此订单不存在");
} else if (states[qs - 1] == 1) { //判断订单是否被签收
states[qs - 1] = 1;
System.out.println("该订单已被签收请不要重复签收");
} else {
states[qs - 1] = 1;
System.out.println("订单签收成功");
}
break;
case 4:
System.out.println("删除订单");
System.out.print("请输入要删除的订单编号:");
int sc = input.nextInt();//订单序号
if ((sc < 1 || sc > 4) || names[sc - 1] == null){//判断订单是否存在
System.out.println("对不起您要删除的订单不存在!");
}else if (states[sc-1]==0){
System.out.println("对不起您选择的订单未签收,不能删除!");//判断订单是否签收
}else {
for (int i = sc - 1; i < names.length - 1; i++) {//删除数组:做循环用后面的把前面的覆盖
names[i] = names[i + 1];
dishMegs[i] = dishMegs[i + 1];
times[i] = times[i+1];
addresses[i]=addresses[i+1];
sumPrices[i]=sumPrices[i+1];
states[i]=states[i+1];
//用后面的值覆盖前面的值
names[names.length-1]=null;
dishMegs[dishMegs.length-1]=null;
times[times.length-1]=0;
addresses[addresses.length-1]=null;
sumPrices[sumPrices.length-1]=0;
states[states.length-1]=0;
//最后一个值手动赋值为0或为null
}
System.out.println("删除成功!");
}
break;
case 5:
System.out.println("我要点赞");
System.out.println("序号\t\t菜名\t\t\t单价\t\t\t点赞数");//菜单栏
for (int i = 0; i < dishMegs1.length; i++) {
System.out.println((i + 1) + "\t\t" + dishMegs1[i] + "\t\t" + money[i] + "元" + "\t\t" + nums[i] + "赞");
}
System.out.print("请选择你要点赞的菜品序号:");
int dz = input.nextInt();
if (dz<1||dz>3){
System.out.println("请输入正确的菜品序号!");//判断餐品序号是否合法
}else {
nums[dz-1]+=1;
System.out.println("点赞成功!");
}
break;
case 6:
System.out.println("退出系统");
p = true;
break;
default:
System.out.println("请输入正确序号!");
break;
}
if (!p) {
System.out.print("输入0返回:");//输入0返回到菜单
num = input.nextInt();
} else {
break;
}
}
while (num == 0);
System.out.println("谢谢使用,唤醒下次光临!");
}
}

posted @ 2021-12-27 17:47  赎梦  阅读(69)  评论(0)    收藏  举报