项目要求:
只要动动手指,就能送餐上门,网上订餐伸手现代人青昧,现在开发一个网上网上订餐系统,功能如下
1、我要订餐
2、查看菜单
3、签收订单
4、删除订单
5、我要点赞
6、退出系统
设计过程:第一步:分析数据主体;
第二步:设计主体框架;
第三步:设计退出功能;
第四步:设计订餐功能
第五步:设计查看菜单功能
第六步:设计删除订单功能;
第七步:设计我要点赞功能
package cn.kgc;
import java.util.Arrays;
import java.util.Scanner;
//@Author 苏斌
//@Date 2021/10/27
//@Description 订餐系统
public class MeiTuan {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String[] dishes = {"宫保鸡丁", "蒸熊掌", "红烧鲍鱼", "佛跳墙", "麻辣豆腐"};
double[] prices = {23, 56, 43, 88, 15}; //菜品对应单价
int[] honors = new int[5]; //点赞数量
final double SEND_PRICE = 6; //派送费
int choice; //选项
String[][] bills = new String[1000][]; //订单
System.out.println("*********欢迎来到吃货联盟**********");
do {
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("****请输入你的选择****");
choice = s.nextInt();
switch (choice) {
case 1:
System.out.println("请输入你的姓名");
String name = s.next();
//显示菜名、单价、数量
System.out.println("序号t菜系t 单价t 点赞数t");
for (int i = 0; i < dishes.length; i++) {
System.out.println(i + 1 + "t" + dishes[i] + "t"
+ prices[i] + "t" + honors[i] + "t");
}
System.out.println("请输入你要点的菜品:");
int num = s.nextInt();
System.out.println("请输入您要购买的份数:");
int pcs = s.nextInt();
System.out.println("请输入送餐时间(10-20点整点送)");
int time = s.nextInt();
System.out.println("请输入送餐地址:");
String address = s.next();
double total = prices[num - 1] * pcs;
total = total > 60 ? total : total + SEND_PRICE;
System.out.println(name + "顾客,恭喜订餐成功 " + dishes[num - 1] + pcs + "份"
+ "总价为:" + total + "," + time + "点送达,您的地址为:" + address);
//将购买的订单加到订单汇总中
for (int i = 0; i < bills.length; i++) {
if (bills[i] == null) {
bills[i] = new String[]{dishes[num - 1] + "t" + pcs
+ "t" + total + "t" + name + "t" + time + "t" + address, "已预定"};
break;
}
}
break;
case 2:
System.out.println("****查看订单****");
System.out.println("序号t菜系tt份数t总价t姓名t时间t送餐地址t状态t");
for (int i = 0; i < bills.length; i++) {
if (bills[i] == null) {
break;
}
System.out.println(i + 1 + "t" + bills[i][0] + "t" + bills[i][1]);
}
break;
case 3:
System.out.println("****确认订单****");
System.out.println("序号t菜系tt份数t总价t姓名t时间t送餐地址t状态t");
for (int i = 0; i < bills.length; i++) {
if (bills[i] == null) {
break;
}
System.out.println(i + 1 + "t" + bills[i][0] + "t" + bills[i][1]);
}
System.out.println("请选择你要确认的订单编号:");
int billNum = s.nextInt();
if (bills[billNum - 1] == null) {
System.out.println("订单不存在");
} else if (bills[billNum - 1][1].equals("已完成")) {
System.out.println("订单已完成,不能重复确认");
} else {
bills[billNum - 1][1] = "已完成";
System.out.println("订单确认完成");
}
break;
case 4:
System.out.println("****删除订单****");
System.out.println("序号t菜系tt份数t总价t姓名t时间t送餐地址t状态t");
for (int i = 0; i < bills.length; i++) {
if (bills[i] == null) {
break;
}
System.out.println(i + 1 + "t" + bills[i][0] + "t" + bills[i][1]);
}
System.out.println("请输入要删除的订单");
int delNum = s.nextInt();
if (bills[delNum - 1] == null) {
System.out.println("订单不存在,删除失败");
} else if (bills[delNum - 1][1].equals("已预订")) {
System.out.println("订单未完成,不能删除");
} else {
for (int i = delNum - 1; i < bills.length; i++) {
bills[i] = Arrays.copyOf(bills[i + 1], 2);
if (bills[i + 1] == null) {
break;
}
}
System.out.println("删除成功");
}
break;
case 5:
System.out.println("****我要点赞****");
System.out.println("序号t菜系t 单价t 点赞数t");
for (int i = 0; i < dishes.length; i++) {
System.out.println(i + 1 + "t" + dishes[i] + "t"
+ prices[i] + "t" + honors[i] + "t");
}
System.out.println("请选择你要点赞的菜品:");
int honorNum = s.nextInt();
honors[honorNum - 1]++;
break;
case 6:
break;
}
} while (choice > 0 && choice < 6);
System.out.println("谢谢惠顾,谢谢下次光临");
}
}



