public class Dingdan {
DingDanxinxi d = new DingDanxinxi();
Scanner input = new Scanner(System.in);
//提供菜品信息
String[] disNames = new String[]{"青椒肉丝", "水煮鱼", "丸子拼盘"};//菜品名称
double[] prices = new double[]{38.0, 20.0, 10.0};//菜品价格
int[] praiseNum = new int[3];//点赞数
public void Caidan() {
int num = -1;
boolean a = false;//标识是否退出系统,退出则true
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 choise = input.nextInt();
switch (choise) {
case 1:
System.out.println("***我要订餐***");
ding();
break;
case 2:
System.out.println("***查看餐袋***");
cha();
break;
case 3:
System.out.println("***签收订单***");
qian();
break;
case 4:
System.out.println("***删除订单***");
shan();
break;
case 5:
System.out.println("***我要点赞***");
zan();
break;
case 6:
a = true;
if (a){
System.out.println("谢谢使用");
}
break;
}
if (!a) {
System.out.println("输出0返回:");
num=input.nextInt();
}else {
break;
}
} while (num == 0);
}
private void zan() {
//显示菜品信息
System.out.println("序号\t菜名\t单价");
for (int i = 0; i <disNames.length ; i++) {
String price=prices[i]+"元";
String priaiseNum=(praiseNum[i]>0)?praiseNum[i]+"赞":"";
System.out.println((i+1)+"\t"+disNames[i]+"\t"+price+"\t"+priaiseNum);
}
System.out.println("请选择您要点赞的菜品序号:");
int priaiseNum=input.nextInt();
praiseNum[priaiseNum-1]++;
System.out.println("点赞成功!");
}
public void cha() {
System.out.println("序号\t订餐的人\t餐品的信息\t送餐的时间\t送餐的地址\t总的费用\t订单的状态");
for (int i = 0; i < d.names.length; i++) {
if (d.names[i]!=null) {//订餐人的名称不等于空时
String state = (d.states[i] == 0) ?"已预订" : "已完成";
String date = d.times[i] + "点";
String sumPrice = d.sumPrice[i] + "元";
System.out.println((i + 1) + "\t" + d.names[i] + "\t\t" + d.dishMegs[i] + "\t\t" + date + "\t\t" + d.eddresses[i] + "\t\t" + sumPrice + "\t\t" + state);
}
}
}
public boolean ding() {
boolean isAdd = false;//判断能否订餐
for (int i = 0; i < d.names.length; i++) {
if (d.names[i] == null) {//找到第一个空的位置
isAdd = true;//可以订餐
System.out.println("请输入姓名:");
String name = input.next();
//显示供的菜品信息
System.out.println("序号" + "\t" + "菜名" + "\t" + "单价" + "\t" + "点赞数");
for (int j = 0; j < disNames.length; j++) {
String price = prices[j] + "元";
String praiseNums = (praiseNum[i] > 0) ? praiseNum[i] + "赞" : "0";
System.out.println((j + 1) + "\t" + disNames[j] + "\t" + price + "\t" + praiseNums);
}
//用户点餐
System.out.println("请你选泽要点的菜品编号:");
int chooseDish = input.nextInt();
System.out.println("请选择你要点的份数:");
int number = input.nextInt();
String dishMeg = disNames[chooseDish - 1] + " " + number + "份";
double sumPrice = prices[chooseDish - 1] * number;
//餐满50元,免送餐费5元
double deliCharge = (sumPrice >= 50) ? 0 : 5;
System.out.println("请输入送餐时间(送餐时间10点到20整点送餐):");
int time = input.nextInt();
while (time < 10 || time > 20) {
System.out.println("你输出有误,请输入10~20间整数:");
time = input.nextInt();
}
System.out.println("请输入送餐地址:");
String address = input.next();
//无需添加状态,默认是0,即已预订状态
System.out.println("订餐成功");
System.out.println("你定的是:" + dishMeg);
System.out.println("送餐时间:" + time + "点");
System.out.println("餐费:" + sumPrice + "元,送餐费" + deliCharge + "元,总计" + (sumPrice + deliCharge) + "元");
//添加数据
d.names[i] = name;
d.dishMegs[i] = dishMeg;
d.times[i] = time;
d.eddresses[i] = address;
d.sumPrice[i] = sumPrice + deliCharge;
break;
}
}
if (!isAdd){
System.out.println("对不起,你的餐袋已满");
return false;
}else {
return true;
}
}
public void qian(){
boolean isSignFind=false;
System.out.println("请选择要签收的订单号:");
int signOrderId=input.nextInt();
for (int i = 0; i <d.names.length ; i++) {
//状态已预订,序号为用户输入的订单序号减1;可签收
//状态已完成,序号为影虎输入的订单序号减1;不可签收
if (d.names[i]!=null&&d.states[i]==0&&signOrderId==i+1){
d.states[i]=1;//将状态值置为已完成
System.out.println("订单签收成功!");
isSignFind=true;//标记已找到此订单
}else if (d.names[i]!=null&&d.states[i]==1&&signOrderId==i+1){
System.out.println("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;//标记已找到此订单
}
}
//未找到的订单序号:不可签收
if (!isSignFind){
System.out.println("您选择的订单不存在!");
}
}
public void shan(){
boolean isDelFind=false;//标记是否找到要删除的订单
System.out.println("请输入要删除的订单序号:");
int delId=input.nextInt();
for (int i = 0; i <d.names.length ; i++) {
//状态值为已完成,序号值为用户输入的序号减1:可删除
//状态值为已预订,序号值为用户输入的序号减1:不可删除
if (d.names[i]!=null&&d.states[i]==1&&delId==i+1){
isDelFind=true;//标记已找到此订单
//执行删除操作:删除位置后的元素依次前移
for (int j = delId-1; j <d.names.length-1; j++) {
d.names[j]=d.names[j+1];
d.dishMegs[j]=d.dishMegs[j+1];
d.times[j]=d.times[j+1];
d.eddresses[j]=d.eddresses[j+1];
d.states[j]=d.states[j+1];
d.sumPrice[j]=d.sumPrice[j+1];
}
//最后一位清空
int endIndex=d.names.length-1;
d.names[endIndex]=null;
d.dishMegs[endIndex]=null;
d.times[endIndex]=0;
d.eddresses[endIndex]=null;
d.states[endIndex]=0;
d.sumPrice[endIndex]=0;
System.out.println("删除订单成功!");
break;
}else if (d.names[i]!=null&&d.states[i]==0&&delId==i+1){
System.out.println("您选择的订单未签收,不能删除");
isDelFind=true;//标记已找到此订单
break;
}
}
//未找到该序号的订单:不能删除
if (!isDelFind){
System.out.println("您要删除的订单不存在!");
}
}
}
public class DingDanxinxi {
//数据主体;一组订单信息
String[] names=new String[4];//保存订餐人数
String[] dishMegs=new String[4];//保存所选信息,包括菜名及份数
int [] times=new int[4];//保存送餐时间
String[]eddresses=new String[4];//保存送餐地址
int [] states=new int[4];//保存订单状态;0表示已预订,1表示已完成
double[] sumPrice=new double[4];//保存订单的总额
int[] zan=new int[4];
}
05-31
496
05-31
1117
07-03
282
03-15
337