吃货联盟订餐系统
该项目采用流程结构,并未涉及面向对象的思想。
初始化订单信息
String dishNames[] = {"红烧带鱼","佛跳墙","时令蔬菜"};
//定义菜品单价
double[] prices = {38.0,20.0,10.0};
//点赞数
int[] praiseNums = new int[3];
String names[] = new String[4]; //订餐人
String dishMsg[] = 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:已完成
int kuCun[] = {10,10,10};
int dianZan[] = new int[4];
//初始化订单信息
names[0] = "张三";
dishMsg[0] = "红烧带鱼 2份";
times[0] = 10;
addresses[0] = "迦勒底223号";
sumPrices[0] = 76;
states[0] = 0;
dianZan[0] = 0;
names[1] = "李四";
dishMsg[1] = "时令蔬菜 2份";
times[1] = 10;
addresses[1] = "休伯利安233号";
sumPrices[1] = 26;
states[1] = 0;
dianZan[1] = 0;
菜单
Scanner input = new Scanner(System.in);
//搭建项目框架
int num = -1; //用户输入0返回时的输入数字,num=0时重复显示主菜单。
System.out.println("欢迎使用||吃货联盟订餐系统||");
//记录用户是否退出系统的状态:退出true 不退出false
boolean flag =false;
//fa 用于判断输入的是否为数字
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.print("请选择:");
boolean fa = true;
int choose = 0;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("请重新输入:");
}else {
choose =input.nextInt();
if(choose>6 || choose<0) {
System.out.print("请重新输入:");
}else {
fa = false;
}
}
}
功能1:订餐
switch(choose) {
case 1:
System.out.println("\n********我要订餐********");
//index 为true可以订餐
boolean index = false;
for(int i =0;i<names.length;i++) {
if(names[i]==null) {
index =true;
System.out.print("请输入订餐人姓名:");
input.nextLine();
String name = input.nextLine();
System.out.println("序号\t菜名\t单价\t赞数\t库存");
for(int j=0;j<dishNames.length;j++) {
String praise =(praiseNums[j]==0)?"":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+praise+"\t"+kuCun[j]);
}
System.out.print("请输入您要点的菜品编号:");
int no = 0;
fa= true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("输入错误,请重新输入:");
}else {
no =input.nextInt();
fa = false;
}
}
while(no <1 || no >dishNames.length) {
System.out.print("本店没有该菜品,请重新点菜:");
no = input.nextInt();
}
System.out.print("请输入您需要的份数:");
int number = 0;
fa = true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("输入错误,请重新输入:");
}else {
number =input.nextInt();
fa = false;
}
}
while(number <1 || no >dishNames.length) {
System.out.print("输入错误,请重新输入:");
number = input.nextInt();
}
int kNumber = kuCun[no -1];
while(number>kuCun[no-1] || kuCun[no -1]==0) {
System.out.print("该菜品库存不够,请重新点菜:");
number = input.nextInt();
}
kuCun[no -1] = kNumber - number;
System.out.print("请输入送餐时间(送餐时间只能是10-20之间的整点):");
int time = 0;
fa = true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("送餐时间输入有误,请重新输入:");
}else {
time =input.nextInt();
if(time>20 || time<10) {
System.out.print("送餐时间输入有误,请重新输入:");
}else {
fa = false;
}
}
}
System.out.print("请输入送餐地址:");
String address = input.next();
System.out.println("订餐成功!");
String dishInfo = dishNames[no-1]+" "+no+"份";
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;
addresses[i] = address;
dishMsg[i] = dishInfo;
times[i] = time;
sumPrices[i] = sumPrice;
//订餐结束,跳出循环
break;
}
}
if(!index) {
System.out.println("对不起,您的订单已满!");
}
break;
功能2 查看餐袋
case 2:
System.out.println("\n********查看餐袋********");
System.out.println("序号\t订餐人\t订餐菜品\t\t配送时间\t配送地址\t\t订餐金额\t订单状态");
for(int i = 0;i<names.length;i++) {
if(names[i]!=null) {
String time = times[i]+"点";
String state=(states[i]==0)?"已预订":"已完成";
System.out.println((i+1)+"\t"+names[i]+"\t"+dishMsg[i]+"\t"+time+"\t"+addresses[i]+"\t"+sumPrices[i]+"\t"+state);
}
}
break;
功能3 签收订单
case 3:
System.out.println("\n********签收订单********");
boolean qiZhi = false;
System.out.print("请输入您要签收订单的编号:");
int dingDangNo =0;
fa = true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("订单号输入有误,请重新输入:");
}else {
dingDangNo =input.nextInt();
if(dingDangNo<0 || dingDangNo>names.length) {
System.out.print("您选择的订单不存在,请重新输入:");
fa = true;
}else {
fa = false;
}
}
}
for(int i =0;i<names.length;i++) {
if(names[i]!=null && states[i]==0 && i ==dingDangNo-1) {
qiZhi = true;
states[i] =1;
System.out.println("订单签收成功!");
break;
}else if(names[i]!=null && states[i]==1 && i ==dingDangNo-1) {
qiZhi = true;
System.out.println("您选择的订单已完成签收,不能再次签收!");
break;
}
}
break;
功能4 删除订单
case 4:
System.out.println("\n********删除订单********");
boolean isDelete = false;
System.out.print("请输入您要删除订单的编号:");
int shanChuNo =0;
fa = true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("订单号输入有误,请重新输入:");
}else {
shanChuNo =input.nextInt();
if(shanChuNo<0 || shanChuNo>names.length) {
System.out.print("您选择的订单不存在,请重新输入:");
fa = true;
}else {
fa = false;
}
}
}
for(int i =0;i<names.length;i++) {
if(names[i]!=null && states[i]==0 && i ==shanChuNo-1) {
isDelete = true;
System.out.println("您选择的订单未签收,不能删除!");
}else if(names[i]!=null && states[i]==1 && i ==shanChuNo-1) {
isDelete = true;
//找到删除订单的位置下标,然后把i后面的元素以此往前移动,最后一个元素置空。
for(int j =i;j<names.length-1;j++) {
names[j] = names[j+1];
dishMsg[j] = dishMsg[j+1];
times[j] = times[j+1];
addresses[j] = addresses[j+1];
sumPrices[j] = sumPrices[j+1];
states[j] = states[j+1];
}
//最后一个元素置空
names[names.length-1] = null;
dishMsg[names.length-1] = null;
times[names.length-1] = 0;
addresses[names.length-1] = null;
sumPrices[names.length-1] = 0;
states[names.length-1] = 0;
System.out.println("删除订单成功!");
}
}
break;
功能5 点赞
case 5:
System.out.println("\n********我要点赞********");
System.out.println("序号\t菜名\t单价");
for(int j=0;j<dishNames.length;j++) {
String praise =(praiseNums[j]==0)?"":praiseNums[j]+"赞";
System.out.println((j+1)+"\t"+dishNames[j]+"\t"+prices[j]+"\t"+praise);
}
System.out.print("请输入姓名:");
String na =input.next();
int qianShou =1;
System.out.print("请输入您要点赞的菜品序号:");
int praiseNo =0;
fa = true;
boolean fa2 =false;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("输入错误,请重新输入:");
}else {
praiseNo =input.nextInt();
fa = false;
}
}
while(praiseNo<1 || praiseNo>dishNames.length) {
System.out.print("本店没有这个菜品,无法点赞,请重新输入菜品序号!");
praiseNo = input.nextInt();
}
if(na.equals(names[praiseNo-1]) && qianShou==(states[praiseNo-1])) {
for(int i =0;i<names.length;i++) {
if(names[i]!=null && dianZan[i]==0 &&i ==praiseNo-1) {
fa2 = true;
System.out.println("点赞成功!");
dianZan[i]=1;
praiseNums[praiseNo-1]++;
break;
}else if(names[i]!=null &&dianZan[i]==1 && i ==praiseNo-1) {
fa2 = true;
System.out.println("您选择的订单已完成点赞,不能再次点赞!");
break;
}
}
}else {
System.out.println("您未签收该菜品,不能点赞!");
}
break;
功能6 退出系统
case 6:
flag = true;
//退出系统
break;
default :
flag = true;
//退出系统
break;
输入0返回
}
if(!flag) { //flag == false
System.out.print("请输入0返回:");
fa = true;
while(fa) {
if(!input.hasNextInt()) {
input = new Scanner(System.in);
System.out.print("输入错误,请重新输入:");
}else {
num =input.nextInt();
fa = false;
}
}
}else {
break;
}
}while(num==0);
System.out.print("谢谢使用,欢迎下次光临!");
}
}