功能分析:
![](https://i-blog.csdnimg.cn/blog_migrate/5ee89bad333eee28c02d8a939beccdec.png)
import java.util.Scanner;
public class task_27 {
public static void main(String[] args) {
//菜名
String [] dishName = {"红烧肉","炸鸡","宫保鸡丁","烤鸭","糖醋里脊"};
//单价
double [] dishPrice = {25,26,18,23,26};
//点赞
int [] spot = new int[5];
//订餐人
String [] dishPeople = new String[5];
//菜品信息
String [] dishMessage = new String[5];
//送餐时间
int [] dishTime = new int[5];
//地址
String [] address = new String[5];
//总金额
double [] totalAmount = new double[5];
//订单状态
int [] state = new int[5];
//创建Scanner
Scanner input = new Scanner(System.in);
//初始化信息
dishPeople[0] = "小红";
dishMessage[0] = "烤鸭";
address[0] = "昆山";
dishTime[0] = 15;
totalAmount[0] = 28;
state[0] = 0;
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("请输入选择:");
//接收用户选择
int serialNum = input.nextInt();
switch(serialNum){
case 1 :
//判断数组是否存满
if(dishPeople[dishPeople.length-1] != null){
System.out.println("餐袋已满!");
break;
}
System.out.println("请输入订餐人姓名:");
String name = input.next();
System.out.println("序号\t菜名\t单价");
//打印菜名
for(int i = 0; i < dishName.length; i++){
System.out.println((i+1) + "\t" + dishName[i] + "\t" + dishPrice[i]);
}
//选择餐品
System.out.println("请选择您要点的菜品编号:");
int dishNo;
do {
dishNo = input.nextInt();
if(dishNo <=0 || dishNo > dishPeople.length){
System.out.println("本店没有这个菜品!请重新选择");
continue;
}
break;
}while (true);
//餐品份数
System.out.println("请选择您需要的份数");
int dishShare = input.nextInt();
//送餐时间
System.out.println("请输入送餐时间(送餐时间是10-20点间整点送餐):");
int time;
do {
time = input.nextInt();
if(time < 10 || time > 20){
System.out.println("您的输入有误!请输入10-20之间的整数:");
continue;
}
break;
}while (true);
//送餐地址
System.out.println("请输入送餐地址:");
String address1 = input.next();
System.out.println("订单成功!");
System.out.println("您定的是:" + dishName[dishNo-1] + dishShare + "份");
System.out.println("送餐时间:" + time + "点");
//餐费
double dishFee = dishPrice[dishNo-1]*dishShare;
int carryFee = dishFee > 26 ? 0 : 5;
System.out.println("餐费:" + dishFee + "元送餐费:" + carryFee + "元,总计:" + (dishFee+carryFee));
//数组添加信息
for(int i = 0; i < dishPeople.length; i++){
if(dishPeople[i] == null){
dishPeople[i] = name;
dishMessage[i] = dishName[dishNo-1]+dishShare;
dishTime[i] = time;
address[i] = address1;
totalAmount[i] = dishFee+carryFee;
break;
}
}
break;
case 2 ://显示所有订单信息
System.out.println("序号\t订餐人\t菜品信息\t送餐时间\t地址\t总金额\t状态");
for(int i = 0; i < dishName.length; i++){
if(dishPeople[i] != null) {
System.out.println((i + 1) +"\t"+ dishPeople[i]+"\t" + dishMessage[i]+"\t"
+ dishTime[i]+"\t" + address[i]+"\t" + totalAmount[i]+"\t"
+ (state[i] == 0?"已预定":"已完成"));
}
}
break;
case 3 ://签收订单
//判断订单是否存在
System.out.println("请选择要签收的订单序号:");
int signFor;
a:do {
//接收序号
signFor = input.nextInt();
//判断订单存不存在
for(int i = 0; i < dishPeople.length-1; i++){
//判断订单存不存在
if(signFor == (i+1) && dishPeople[i] != null){
//判断是否签收
if(state[i] == 1){
System.out.println("订单已签收,不能再次签收!");
break a;
}else {
state[i] = 1;
System.out.println("签收成功!");
break a;
}
}
}
System.out.println("订单不存在!");
break a;
} while (true) ;
break;
case 4 ://删除订单
System.out.println("请选择要删除的订单序号:");
int del;
b:do {
//接收序号
del = input.nextInt();
//判断订单存不存在
for(int i = 0; i < dishPeople.length; i++){
//判断订单存不存在
if(del == i+1 && dishPeople[i] != null){
//判断是否签收
if(state[i] != 1){
System.out.println("订单未签收,不能删除!");
break b;
}else {
for(int j = i; j < dishName.length-1; j++){
dishPeople[j] = dishPeople[j+1];
dishMessage[j] = dishMessage[j+1];
dishTime[j] = dishTime[j+1];
address[j] = address[j+1];
totalAmount[j] = totalAmount[j+1];
state[j] = state[j+1];
}
dishPeople[dishPeople.length-1] = null;
dishMessage[dishPeople.length-1] = null;
dishTime[dishPeople.length-1] = 0;
address[dishPeople.length-1] = null;
totalAmount[dishPeople.length-1] = 0;
state[dishPeople.length-1] = 0;
System.out.println("删除成功!");
break b;
}
}
}
System.out.println("订单不存在!");
break b;
} while (true) ;
break;
case 5 ://点赞
System.out.println("序号\t菜名\t单价");
//打印菜名
for(int i = 0; i < dishName.length; i++){
System.out.println((i+1) + "\t" + dishName[i] + "\t" + dishPrice[i] + "\t" + (spot[i]>0?spot[i] + "赞":" ") );
}
System.out.println("请选择您要点赞的菜品序号");
int signFor1;
c:do {
//接收序号
signFor1 = input.nextInt();
//判断订单存不存在
if(signFor1 > 0 && signFor1 <= dishPeople.length){
spot[signFor1-1] += 1;
System.out.println("点赞成功!");
break c;
}
System.out.println("订单不存在!");
break c;
}while (true);
break;
case 6 :
System.out.println("退出系统");
return;
default:
System.out.println("输入错误!请重新输入1-6的整数");
}
//输入0返回
System.out.println("输入0返回,其他退出");
serialNum = input.nextInt();
if(serialNum != 0){
System.out.println("退出系统");
break;
}
}while (true);
}
}