吃货联盟点餐系统

package cn.c;

 

public class OrderingMgr {

/**
* @param args
*/
public static void main(String[] args) {
OrderingUtil oUtil=new OrderingUtil();

oUtil.startMenu();
}

}

package cn.c;

/**
*订单类
*/
public class OrderingSet {

//数组主体:一组订单信息
String[] names=new String[4]; //保存订餐人名称
String[] disMegs= new String[4]; //保存所选信息,包括菜品名及份数
int[] times=new int[4]; //保存送餐时间
String[] addresses=new String[4]; //保存送餐地址
int[] states=new int[4]; //保存订餐状态 :0表示已预定,1表示已完成
double[] sumPrices=new double[4]; //保存订单的总金额


}

package cn.c;

import java.util.Scanner;

public class OrderingUtil {

//供选择的菜品信息
String[] dishNames={"红烧带鱼","鱼香肉丝","时令蔬菜"}; //菜品名称
double[] prices=new double[]{38.0,20.0,10.0}; //菜品单价
int[] praiseNums=new int[3]; //点赞数

Scanner input=new Scanner(System.in);

/**
* 1.我要订餐
*/
OrderingSet oSet=new OrderingSet();
public boolean add(){
boolean isAdd=false; //记录是否可以订餐

for (int j= 0; j< oSet.names.length; ++j) {
if (oSet.names[j]==null) { //找到一个空位置,可以添加订单信息
isAdd=true; //置标志位,可以订餐
System.out.print("请输入订餐人姓名:");
String name=input.next();

//显示供选择的菜品信息
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
for (int i = 0; i < dishNames.length; i++) {
String price=prices[i]+"元";
String praiseNum=(praiseNums[i]>0 ?praiseNums[i]+"赞":"0");
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+praiseNum);
}

//用户点菜
System.out.print("请选择您要点的菜品的编号:");
int chooseDish=input.nextInt();
System.out.print("请选择您需要的份数:");
int number=input.nextInt();

String dishMeg=dishNames[chooseDish-1]+" "+number+"份";
double sumPrice= prices[chooseDish-1] *number;

//餐满50元,免费送餐费5元
double deliCharge=(sumPrice>=50)?0:5;

System.out.print("请输入送餐时间(送餐时间是10点至20点间整点送餐):");
int time=input.nextInt();


System.out.print("请输入送餐地址:");
String address=input.next();

//无序添加,默认是0,即预定状态
System.out.println("订餐成功!");
System.out.println("您定的是:"+dishMeg);
System.out.println("餐费"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");

//添加数据
oSet.names[j]=name;
oSet.disMegs[j]=dishMeg;
oSet.times[j]=time;
oSet.addresses[j]=address;
oSet.sumPrices[j]=sumPrice+deliCharge;
break;

}


}
if (!isAdd) {
System.out.println("对不起,您的订餐已满!");
return false;

}else {
return true;
}

}

/**
* 2.查看餐袋
*/
public void initial(){


System.out.println("序号\t订餐人\t餐品信息\t\t送餐时间\t送餐地址\t总金额\t订单状态");
for (int i = 0; i < oSet.names.length; i++) {
if (oSet.names[i]!=null) {
String state=(oSet.states[i]==0)?"已预定":"已完成";
String date= oSet.times[i]+"点";
String sumPrice= oSet.sumPrices[i]+"元";
System.out.println((i+1)+"\t"+ oSet.names[i]+"\t"+oSet.disMegs[i]+"\t"+date+"\t"+ oSet.addresses[i]+"\t"+sumPrice+"\t"+state);
}

}
}



/**
*3.签收订单
*/
public void sign(){
boolean isSignFind=false; //找到要签收的订单

System.out.print("请选择要签收的订单:");
int signOrderId=input.nextInt();
for (int i = 0; i < oSet.names.length; i++) {
//状态已预定,序号为用户输入的订单序号减1:可签收
//状态已完成,序号为用户输入的订单序号减1:不可签收
if(oSet.names[i]!=null&&oSet.states[i]==0&&signOrderId==i+1){
oSet.states[i]=1; //将状态值置为已完成
System.out.print("订单签收成功!");
isSignFind=true;//已找到要签收的订单
}else if (oSet.names[i]!=null&&oSet.states[i]==1&&signOrderId==i+1) {
System.out.print("您选择的订单已完成签收,不能再次签收!");
isSignFind=true;//已找到要签收的订单
}

}

//未找到的订单序号:不可签收
if(!isSignFind){
System.out.println("您选择的订单不存在!");
}

}

/**
*4.删除订单
*/
public void delete(){
boolean isDelFind=false;//标记是找到要删除的订单

System.out.println("请输入要删除的订单序号:");
int delId=input.nextInt();
for (int i = 0; i < oSet.names.length; i++) {
//状态已完成,序号值为用户输入的序号减:1 可删除
//状态已预定,序号值为用户输入的序号减:1 不可删除
if (oSet.names[i]!=null&&oSet.states[i]==1&&delId==i+1) {
isDelFind=true; //标记此订单已经找到
//执行删除操作:删除位置后的元素依次前移
for (int j =delId-1; j < oSet.names.length-1; j++) {
oSet.names[j]=oSet.names[j+1];
oSet.disMegs[j]=oSet.disMegs[j+1];
oSet.times[j]=oSet.times[j+1];
oSet.addresses[j]=oSet.addresses[j+1];
oSet.states[j]=oSet.states[j+1];
oSet.sumPrices[j]=oSet.sumPrices[j+1];
}
//最后一位清空
int endIndex=oSet.names.length-1;
oSet.names[endIndex]=null;
oSet.disMegs[endIndex]=null;
oSet.times[endIndex]=0;
oSet.addresses[endIndex]=null;
oSet.sumPrices[endIndex]=0;
oSet.states[endIndex]=0;

System.out.println("删除订单成功");
break;
}else if (oSet.names[i]!=null&&oSet.states[i]==0&&delId==i+1) {

System.out.println("您选择的订单未签收,不能删除!");
isDelFind=true; //标记已找到此订单
break;
}

}
}


/**
*5.我要点赞
*/
public void praise(){
//显示菜品信息
System.out.println("序号"+"\t"+"菜品名"+"\t"+"单价");
for (int i = 0; i <dishNames.length; i++) {
String price=prices[i]+"元";
String priaiseNum=(praiseNums[i]>0 ? praiseNums[i]+"赞":"");

System.out.println((i+1)+"\t"+dishNames[i]+"\t"+price+"\t"+priaiseNum);

}

System.out.print("请选择要点赞的菜品序号:");
int priaiseNum=input.nextInt();
praiseNums[priaiseNum-1]++; //赞数加1
System.out.println("点赞成功");
}




/**
*开始菜单
*/
public void startMenu(){


int num=-1; //用户输入0返回主菜单,否则退出系统
boolean isExit=false; //标志用户是否退出系统:true为退出系统

System.out.println("\n欢迎使用“吃货联盟订餐系统”");

//循环:显示菜单,根据用户选择数字执行相应功能

do{
//显示菜单
System.out.println("*****************************");
System.out.println("1、我要订餐\n2、查看餐袋\n3、签收订单\n4、删除订单\n5、我要点赞\n6、退出系统");
System.out.print("请选择:");
int choose=input.nextInt();
//根据用户输入的功能编号,执行相应的功能
switch (choose) {
case 1:
//我要订餐
System.out.println("****我要订餐****");
add();
break;
case 2:
//查看餐袋
System.out.println("****查看餐袋****");
initial();
break;
case 3:
//签收订单
System.out.println("****签收订单****");
sign();
break;
case 4:
//删除订单
System.out.println("****删除订单****");
delete();
break;
case 5:
//我要点赞
System.out.println("****我要点赞****");
praise();
break;
case 6:
//退出系统
System.out.println("谢谢使用,欢迎下次光临!");
isExit=true;
break;

default:
//退出系统4
isExit=true;
break;
}
if (!isExit) {
System.out.println("输入0返回:");
num=input.nextInt();
}else {

break;
}
}while(num==0);
}




}

猜你喜欢

转载自www.cnblogs.com/BingBing-Deng/p/9352974.html