奉天承运,博主诏曰:
项目需求:
项目拆解:
项目细分:
吃货联盟数据主图分析:
姓名:输入String
餐品信息:序号、餐品名 String、价格 double、点赞数 int 3个一维数组
份数:输入 int 大于0的整数
时间:输入 int 10~20点之间的整数
地址:输入 String
订单信息:
String 二维数组
序号、姓名、餐品名、份数、价格(总价)、地址、时间、状态
签收订单:
改变订单的状态 如果已完成则不能再次签收
删除订单:
不能删除未完成的订单,序号要对应变动
我要点赞:
对应菜品的点赞数++
程序控制分析:
1、欢迎页循环:do-while
2、Scanner控制输入
代码参考:
import java.util.Scanner;
public class Eat {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String[] dishes={
"清蒸鲑鱼","红烧鸡腿","麻婆豆腐","糖醋里脊"};
double[] prices={
45,32,18,22};
int[] honors={
15,66,48,12};
String[][] orders=new String[1024][];
int choose=0;
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("请选择");
choose=sc.nextInt();
switch(choose){
case 1:
System.out.println("*****我要订餐*****");
System.out.print("请输入订餐人姓名");
String name=sc.next();
System.out.println("序号\t菜品\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]+"个赞");
}
int dishNum =0;
do{
System.out.print("请输入需要的菜品编号:");
dishNum =sc.nextInt();
if(dishNum<1 || dishNum>dishes.length){
System.out.println("输入有误,请重新输入!");
}
}while(dishNum<1 || dishNum>dishes.length);
int pcs=0;
do{
System.out.print("请输入份数:");
pcs=sc.nextInt();
if(pcs<1){
System.out.println("请至少选择1份!");
}
}while(pcs<1);
int time=0;
do{
System.out.print("请输入送餐时间(10-20整点):");
time=sc.nextInt();
if(time<10 || time>20){
System.out.print("不在配送时间内!");
}
}while(time<10 || time>20);
System.out.print("请输入配送地址:");
String address=sc.next();
System.out.println("订餐成功!");
System.out.println("您定的是:"+dishes[dishNum-1]+"\t"+pcs+"份");
System.out.println("配送时间是:"+time+"点");
System.out.println("配送地址是:"+address);
double cost=prices[dishNum-1]*pcs;
double sent=cost>50?0:6;
double total=cost+sent;
System.out.println("餐费:"+cost+"元,配送费:"+sent+"元,总价:"+total+"元。");
for (int i = 0; i < orders.length; i++) {
if(orders[i]==null){
orders[i]=new String[3];
orders[i][0]=name+"\t"+dishes[dishNum-1]+"\t"+pcs+"份\t"+time+"点\t"+address+"\t"+total+"元";
orders[i][1]="已预定";
break;
}
}
break;
case 2:
System.out.println("*****查看餐袋*****");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < orders.length; i++) {
if(orders[i]!=null){
System.out.println(i+1+"\t"+orders[i][0]+"\t"+orders[i][1]);
}else{
break;
}
}
break;
case 3:
System.out.println("*****签收订单*****");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < orders.length; i++) {
if(orders[i]!=null){
System.out.println(i+1+"\t"+orders[i][0]+"\t"+orders[i][1]);
}else{
break;
}
}
int num=0;
int end=0;
do{
System.out.println("请选择要签收的订单序号:");
for (int i = 0; i < orders.length; i++) {
if(orders[i]==null){
end=i;
break;
}
}
num=sc.nextInt();
if(num<1 || num>end){
System.out.println("输入有误,请重新输入!");
}else if(!"已预定".equals(orders[num-1][1])){
System.out.println("已完成的订单无需再次签收");
}else{
orders[num-1][1]="已完成";
System.out.println("签收成功!");
break;
}
}while(num<1 || num>end ||!"已预定".equals(orders[num-1][1]));
break;
case 4:
System.out.println("*****删除订单*****");
System.out.println("序号\t订餐人\t餐品信息\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < orders.length; i++) {
if(orders[i]!=null){
System.out.println(i+1+"\t"+orders[i][0]+"\t"+orders[i][1]);
}else{
break;
}
}
int n=0;
int e=0;
do{
for (int i = 0; i < orders.length; i++) {
if(orders[i]==null){
e=i;
break;
}
}
System.out.println("请输入要删除的订单序号:");
n=sc.nextInt();
if(n<1 || n>e){
System.out.println("输入有误,请重新输入!");
}else if(!"已完成".equals(orders[n-1][1])){
System.out.println("未完成的订单不能删除!");
}else {
boolean isDelete=false;
for (int i = n-1; i < orders.length; i++) {
if(i==orders.length){
orders[i]=null;
System.out.println("删除成功!");
isDelete=true;
}else{
orders[i]=orders[i+1];
if(orders[i]==null){
System.out.println("删除成功!");
isDelete=true;
break;
}
}
}
if(isDelete){
break;
}
}
}while(n<1 || n>e || !"已完成".equals(orders[n-1][1]));
break;
case 5:
System.out.println("*****我要点赞*****");
System.out.println("序号\t菜品\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]+"个赞");
}
int num1=0;
do{
System.out.println("请输入你要点赞的菜品");
num1=sc.nextInt();
if(num1<1 || num1>dishes.length){
System.out.println("输入有误,请重新输入:");
num1=sc.nextInt();
}else{
honors[num1-1]++;
System.out.println("点赞成功!");
break;
}
}while(num1<1 || num1>dishes.length);
break;
default:
}
if(choose>0 && choose<6){
System.out.println("请输入0返回:");
choose=sc.nextInt();
}else{
break;
}
}while(choose==0);
System.out.println("谢谢光临,欢迎下次再来");
}
}
功能较多,请自行复制到IDEA中运行查看效果。
钦此。