一.需求分析
该程序需要实现用户的下单,查看菜单,签收订单,删除订单,点赞,退出系统
二.代码实现
1.暂时还只写到签收订单,而且一直有问题。。。。。。。。
import java.util.Scanner;
//吃货联盟订餐系统
public class orderFoodSys{
public static void main(String[] args){
//定义数据主体:菜品
String[] disNames={“红烧排骨”,“空心菜”,“水煮肉片”};//菜单
double[] prices={50,10,38};//价格
int[] praiseNums=new int[3];//点赞数
//定义数据主体:订单-订餐人 餐品信息 送餐时间 送餐地址 总金额 订单状态
String[] names=new String[4];
String[] disMsg=new String[4];
int[] times=new int[4];
String[] addresses=new String[4];
double[] sumPrices=new double[4];
int[] states=new int[4];//0:已预订 1:已完成
Scanner input=new Scanner(System.in);
//初始化2个订单信息
names[0]="张三";
disMsg[0]="红烧排骨两份";
times[0]=15;
addresses[0]="恒宝路15号";
sumPrices[0]=100;
states[0]=0;
names[1]="李四";
disMsg[1]="水煮肉片两份";
times[1]=16;
addresses[1]="金融北路15号";
sumPrices[1]=76;//餐费>50免配送费,不然,配送费6元
states[1]=0;
//记录用户是否退出系统的状态:退出true,不退出false
boolean flag=false;
int num=-1;//用户输入0返回时的输入数字,num=0时重复显示主菜单
System.out.println("欢迎使用\"吃货联盟订餐系统\"");
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 choose=input.nextInt();
switch (choose) {
case 1:
System.out.println("********我要订餐***********");
//判断前提是订单未满,boolean变量来标识订单是否满了的结果,满了flase-不能订单,反之能订单
boolean isAdd=false;
for(int i=0;i<names.length;i++)
{
if(names[i]==null){
isAdd=true;
//订餐
System.out.print("请输入订餐人姓名:");
String name=input.next();
//循环输出菜品信息
System.out.println("序号\t菜名\t单价");
for(int j=0;j<disNames.length;j++){
String praise=(praiseNums[i]==0)?"":praiseNums[i]+"赞";
System.out.println((j+1)+"\t"+disNames[j]+"\t"+prices[j]+"\t"+praise);
}
//菜品编号的输入及判断
System.out.print("请输入您要点的菜的编号:");
int no=input.nextInt();
while(no<1||no>disNames.length){
System.out.println("请重新输入正确的菜品编号");
no=input.nextInt();
}
//点菜份数
System.out.print("请输入您需要的份数:");
int number=input.nextInt();
//送餐时间的输入及判断
System.out.print("请输入送餐时间(送餐时间只能在10点到20点之间的整点:");
int time=input.nextInt();
while(time<10||time>20){
System.out.println("请输入10到20之间的整数:");
time=input.nextInt();
}
//输入送餐地址
System.out.print("请输入送餐地址:");
String address=input.next();
//输出订单信息给用户看,并把订单信息添加到订单信息
System.out.println("订餐成功");
//菜品信息: 菜名名称 份数
String dishInfo=disNames[no-1]+""+number+"份";//用户选择的编号比真正的数组下标小一
System.out.println("您订的是:"+dishInfo);
System.out.println("送餐时间是:"+time+"点");
//餐费,配送费,总计
double dishPrice=prices[no-1]*number;//单价*份数
double peiSong =(dishPrice>50)?0:6;
double sumPrice=dishPrice+peiSong;
System.out.println("餐费"+dishPrice+"元:配送费:"+peiSong+":总计"+sumPrice+"元");
//把订餐信息添加到数组里面去
names[i]=name;
disMsg[i]=dishInfo;
times[i]=time;
addresses[i]=address;
sumPrices[i]=sumPrice;
//本次订餐结束,跳出循环
break;
}
}
if(!isAdd){
System.out.println("对不起,你的餐袋已满!");
}
break;
case 2:
System.out.println("********查看餐袋***********");
System.out.println("序号\t姓名\t订餐人\t\t配送时间\t派送地址\t\t配送金额\t订单状态");
int i=0;
while(names[i]!=null){
String time=times[i]+"点";
String state=(states[i]==0)?"已预订":"未预订";
System.out.println((i+1)+"\t"+names[i]+"\t"+disMsg[i]+"\t"+time+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+state);
i++;
}
break;
case 3:
System.out.println("********签收订单***********");
break;
case 4:
System.out.println("********删除订单***********");
break;
case 5:
System.out.println("********我要点赞***********");
break;
case 6:
flag=true;
//退出系统
break;
default:
flag=true;
//退出系统
break;
}
if(!flag){
System.out.println("请输入0返回");
num=input.nextInt();
}else{
break;
}
input.close();
} while (num==0);
System.out.println("感谢使用吃货联盟订餐系统");
}
}