目的:为了能深刻体会面向对象。
效果图:
代码如下:
只要学习了java基础的循环,数据类型,变量,数组,循环,条件判断这些基础知识,就可以实现这个简易功能。
//订单信息数组
String[] names = new String[4];//订餐人
String[] dishMegs = new String[4];//餐品信息
String[] times = new String[4];//送餐时间
String [] addresses =new String[4];//送餐地址
int [] states =new int[4];//订单状态
double [] sumPrices =new double[4];//总金额
//存入数据
names[0]="哈哈";
dishMegs[0]="烤鸡10个";
times[0]="12";
addresses[0]="安德门";
states[0] =1;
sumPrices[0] =500.0;
//存入数据
names[1]="嘻嘻";
dishMegs[1]="啤酒20";
times[1]="12";
addresses[1]="天龙寺";
states[1] =0;
sumPrices[1] =1600.0;
//餐品数据
String[] dishNames = {"烤鸡","啤酒","牛肉"};
double [] prices = {50,80,40};
int [] praiseNums = {0,0,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("请选择:");
int choice = new Scanner(System.in).nextInt();
switch (choice) {
case 1:
System.out.println("***我要订餐***");
Boolean isempty = true;
for(int i=0;i<names.length;i++) {
if (names[i]==null) {
isempty=false;
break;
}
}
if(!isempty) {
System.out.print("请输入订餐人姓名:");
String urlname = new Scanner(System.in).next();
System.out.print("序号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数"+"\n");
for(int i =0;i<dishNames.length;i++) {
System.out.println((i+1)+"\t"+dishNames[i]+"\t"+prices[i]+"元\t"+praiseNums[i]+"赞");
}
System.out.print("请选择你要点的菜品编号:");
int cai =new Scanner(System.in).nextInt();
System.out.print("请选择你需要的份数:");
int num =new Scanner(System.in).nextInt();
System.out.print("请输入送餐时间(送餐时间是10点至20点整点送餐):");
int time =new Scanner(System.in).nextInt();
if (time<10||time>20) {
System.out.println("请输入送餐时间(送餐时间是10点至20点整点送餐):");
time =new Scanner(System.in).nextInt();
}
System.out.print("请选择你要配送的地址:");
String address = new Scanner(System.in).next();
System.out.print("订餐成功!");
String yourDishMeg= dishNames[cai-1]+" "+num+"份";
String distime =time+"点";
double price =0.0;//总餐费
double price1 =prices[cai-1]*num;//餐费
double catch1 =0.0;//餐费大于100不收餐费,否则6元
catch1 =price1>100?0.0:6.0;
price =price1+catch1;
System.out.println("订餐成功!");
System.out.println("**********");
System.out.println("订的是"+yourDishMeg);
System.out.println("送餐时间是"+distime);
System.out.println("餐费"+price1+"\t"+"配送费"+catch1+"\t"+"总计"+price);
System.out.println("*******************");
//存入
int insertIndex =names.length-1;
for(int i=0;i<names.length;i++ ) {
if (names[i]==null) {
insertIndex=i;
break;
}
}
//添加新数据
names[insertIndex]=urlname;
dishMegs[insertIndex]=yourDishMeg;
times[insertIndex]=distime;
addresses[insertIndex] =address;
sumPrices[insertIndex]=price;
states[insertIndex]=0;
}
System.out.println("输入0返回");
int ding =new Scanner(System.in).nextInt();
if (ding==0) {
continue;
}
case 2:
System.out.println("***查看餐带***");
System.out.print("序号"+"\t"+"订餐人"+"\t"+"餐品信息"+"\t"+"送餐日期"+"\t"+"送餐地址"+"\t"+"总金额"+"\t"+" "+"订单状态"+"\n");
for(int i =0;i<names.length;i++) {
if (names[i]!=null) {
System.out.println((i+1)+"\t"+names[i]+"\t"+dishMegs[i]+"\t"+times[i]+"点\t"+addresses[i]+"\t"
+sumPrices[i]+"元"+"\t "+(states[i]==1?"已完成":"已预订"));
}
}
System.out.println("输入0返回");
int see =new Scanner(System.in).nextInt();
if (see==0) {
continue;
}
case 3:
System.out.println("***签收订单***");
boolean isf = true;
int liang =0 ;
for (int i = 0; i < names.length; i++) {
if (names[i]==null) {
liang=i;
break;
}
}
while(isf) {
System.out.print("请选择要签收的订单序号:");
int yuhao =new Scanner(System.in).nextInt()-1;
if(yuhao>=0&&yuhao<liang) {
if (states[yuhao]!=1) {
states[yuhao]=1;
System.out.println("订单签收成功!");
isf=false;
} else {
System.out.println("已签收!不可重复签收");
isf=false;
}
}else {
System.out.println("订单不存在");
continue;
}
}
System.out.println("输入0返回");
int qian =new Scanner(System.in).nextInt();
if (qian==0) {
continue;
}
case 4:
System.out.println("***删除订单***");
System.out.println("请输入要删除订单序号");
int delNumber =new Scanner(System.in).nextInt();
boolean isf1 = false;
for (int i = 0; i < names.length; i++) {
if (names[i]!=null&&i==delNumber-1) {
isf1=true;
break;
}
}
if (isf1) {
if(states[delNumber-1]==1) {
System.out.println("订单删除成功!");
int delindex =delNumber-1;
for(int i =delindex;i<names.length-1;i++ ) {
names[i] =names[i+1];
dishMegs[i] =dishMegs[i+1];
times[i]=times[i+1];
sumPrices[i]=sumPrices[i+1];
states[i]=states[i+1];
addresses[i]=addresses[i+1];
}
int lastindex =names.length-1;
names[lastindex] =null;
dishMegs[lastindex] =null;
times[lastindex]=null;
sumPrices[lastindex]=0.0;
states[lastindex]=0;
addresses[lastindex]=null;
}else {
System.out.println("未签收,不能删除");
}}else {
System.out.println("订单不存在请重新输入!");
continue;
}
System.out.println("输入0返回");
int schi =new Scanner(System.in).nextInt();
if (schi==0) {
continue;
}
case 5:
int dianzan =1;
int dianzan1 =1;
int dianzan2 =1;
System.out.println("***我要点赞***");
System.out.println("序号"+"\t"+"菜名"+"\t"+"单价");
for(int i =0;i<dishNames.length;i++) {
System.out.println(i+1+"\t"+dishNames[i]+"\t"+prices[i]);
}
System.out.print("请选择你要点赞的菜品序列:");
int num =new Scanner(System.in).nextInt();
if(num-1<dishNames.length&&num-1>=0) {
if(num==1) {
praiseNums[0]+=dianzan;
}
if(num==2) {
praiseNums[1]+=dianzan1;
}
if(num==3) {
praiseNums[2]+=dianzan2;
}
System.out.println("点赞成功!");
}else {
System.out.println("该菜品不存在重新输入");
continue;
}
System.out.println("输入0返回");
int zan =new Scanner(System.in).nextInt();
if (zan==0) {
continue;
}
case 6:
System.out.println("退出程序!");
break;
default:
System.out.println("请选择正确序号!");
continue;
}
break;
} while (true);