项目实战——网上订餐系统(Java)

1.使用数组对象保存订单信息

String[] names=new String[4];
       String[] dishMegs=new String[4];
       int[] times=new int [4];
       String[] addresses=new String[4];
       int[] states=new int[4];
       double[] sumPrices=new double[4];

2.数据初始化

String[] dishNames={"红烧带鱼","鱼肉香丝","时令蔬菜"};
       double[] prices=new double[]{38.0,20.0,10.0};
       int[] praiseNums=new int[3];

       names[0]="Au";
       dishMegs[0]="红烧带鱼2份";
       times[0]=12;
       addresses[0]="gzgs31栋";
       sumPrices[0]=76.0;
       states[0]=1;

       names[1]="QJC";
       dishMegs[1]="时令蔬菜2份";
       times[1]=18;
       addresses[1]="gzgs31栋";
       sumPrices[1]=45.0;
       states[1]=0;

3.实现菜单切换

 Scanner input=new Scanner(System.in);
       int num=-1;
       boolean isExit=false;
       System.out.println("\n欢迎使用“网上订餐系统");
       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.printf("请选择:");
           int choose= input.nextInt();
           boolean isAdd=false;
           boolean isSignFind=false;
           boolean isDelFind=false;
           switch (choose){
               case 1:
                   System.out.println("***我要订餐***");
                   break;
               case 2:
                   System.out.println("***查看餐袋***");
                   break;
               case 3:
                   System.out.println("***签收订单***");
                   break;
               case 4:
                   System.out.println("***删除订单***");
                   break;
               case 5:
                   System.out.println("***我要点赞***");
                   break;
               case 6:
                   isExit=true;
                   break;
               default:
                   isExit=true;
                   break;
           }
           if(!isExit){
               System.out.printf("输入0返回:");
               num= input.nextInt();
           }else{
               break;
           }
       }while (num==0);

4.实现”查看餐袋“

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

5.实现“我要订餐”

System.out.println("***我要订餐***");
                   for (int j = 0; j < names.length; j++) {
                       if (names[j]==null){
                           isAdd=true;
                           System.out.printf("请输入订餐人姓名:");
                           String name= input.next();
                           System.out.println("编号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
                           for (int i = 0; i < dishNames.length; i++) {
                               String price=prices[i]+"元";
                               String priaiseNum=(praiseNums[i]>0?praiseNums[i]+"赞":"0");
                               System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"  +price+"\t\t"+priaiseNum);
                           }
                           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;
                           double deliCharge=(sumPrice>=50)?0:5;
                           System.out.printf("请输入送餐时间"+"(送餐时间是10点至20点整点):");
                           int time=input.nextInt();
                           while(time<10||time>20){
                               System.out.printf("您的输入有误,请输入10~20的整数!");
                               time= input.nextInt();
                           }
                           System.out.printf("请输入送餐地址:");
                           String address= input.next();

                           System.out.println("订餐成功!");
                           System.out.println("您订的是:"+dishMeg);
                           System.out.println("送餐时间:"+time+"点");
                           System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");

                           names[j]=name;
                           dishMegs[j]=dishMeg;
                           times[j]=time;
                           addresses[j]=address;
                           sumPrices[j]=sumPrice+deliCharge;
                           break;

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

6.实现“签收订单”

System.out.println("***签收订单***");
                   System.out.print("请选择要签收的订单需序号:");
                   int signOrderId=input.nextInt();
                   for (int i = 0; i < names.length; i++) {
                       if(names[i]!=null && states[i]==0 && signOrderId==i+1){
                           states[i]=1;
                           System.out.println("订单签收成功!");
                           isSignFind=true;
                       } else if (names[i]!=null && states[i]==1 && signOrderId==i+1) {
                           System.out.println("您选择的订单已完成签收,不能再次签收!");
                           isSignFind=true;
                       }
                   }
                   if(!isSignFind){
                       System.out.println("您选择的订单不存在!");
                   }

7.实现”删除订单“

System.out.println("***删除订单***");
                   System.out.print("请输入要删除的订单号:");
                   int delId= input.nextInt();
                   for (int i = 0; i < names.length; i++) {
                       if(names[i]!=null && states[i]==1 && delId==i+1){
                           isDelFind=true;
                           for (int j = delId-1; j < names.length-1; j++) {
                               names[j]=names[j+1];
                               dishMegs[j]=dishMegs[j+1];
                               times[j]=times[j+1];
                               addresses[j]=addresses[j+1];
                               states[j]=states[j+1];
                           }
                           int enIndex= names.length-1;
                           names[enIndex]=null;
                           dishMegs[enIndex]=null;
                           times[enIndex]=0;
                           addresses[enIndex]=null;
                           states[enIndex]=0;
                           sumPrices[enIndex]=0;
                           System.out.println("删除订单成功!");
                           break;
                       } else if (names[i]!=null && states[i]==0 && delId==i+1) {
                           System.out.println("您选择的订单为签收,不能删除!");
                           isDelFind=true;
                           break;
                       }
                   }
                   if(!isDelFind){
                       System.out.println("您要删除的订单不存在!");
                   }

8.实现”我要点赞“

System.out.println("***我要点赞***");
                   System.out.println("编号"+"\t"+"菜名"+"\t"+"单价");
                   for (int i = 0; i < dishNames.length; i++) {
                       String price=prices[i]+"元";
                       String praiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞":"";
                       System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"+price+"\t"+praiseNum);
                   }
                   System.out.printf("请选择您要点赞的菜品编号:");
                   int praiseNum=input.nextInt();
                   praiseNums[praiseNum-1]++;
                   System.out.println("点赞成功!");

完整代码展示

import java.util.Scanner;

public class Qjc {
    public static void main(String[] args) {
       String[] names=new String[4];
       String[] dishMegs=new String[4];
       int[] times=new int [4];
       String[] addresses=new String[4];
       int[] states=new int[4];
       double[] sumPrices=new double[4];

       String[] dishNames={"红烧带鱼","鱼肉香丝","时令蔬菜"};
       double[] prices=new double[]{38.0,20.0,10.0};
       int[] praiseNums=new int[3];

       names[0]="Au";
       dishMegs[0]="红烧带鱼2份";
       times[0]=12;
       addresses[0]="gzgs31栋";
       sumPrices[0]=76.0;
       states[0]=1;

       names[1]="QJC";
       dishMegs[1]="时令蔬菜2份";
       times[1]=18;
       addresses[1]="gzgs31栋";
       sumPrices[1]=45.0;
       states[1]=0;

       Scanner input=new Scanner(System.in);
       int num=-1;
       boolean isExit=false;
       System.out.println("\n欢迎使用“网上订餐系统");
       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.printf("请选择:");
           int choose= input.nextInt();
           boolean isAdd=false;
           boolean isSignFind=false;
           boolean isDelFind=false;
           switch (choose){
               case 1:
                   System.out.println("***我要订餐***");
                   for (int j = 0; j < names.length; j++) {
                       if (names[j]==null){
                           isAdd=true;
                           System.out.printf("请输入订餐人姓名:");
                           String name= input.next();
                           System.out.println("编号"+"\t"+"菜名"+"\t"+"单价"+"\t"+"点赞数");
                           for (int i = 0; i < dishNames.length; i++) {
                               String price=prices[i]+"元";
                               String priaiseNum=(praiseNums[i]>0?praiseNums[i]+"赞":"0");
                               System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"  +price+"\t\t"+priaiseNum);
                           }
                           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;
                           double deliCharge=(sumPrice>=50)?0:5;
                           System.out.printf("请输入送餐时间"+"(送餐时间是10点至20点整点):");
                           int time=input.nextInt();
                           while(time<10||time>20){
                               System.out.printf("您的输入有误,请输入10~20的整数!");
                               time= input.nextInt();
                           }
                           System.out.printf("请输入送餐地址:");
                           String address= input.next();

                           System.out.println("订餐成功!");
                           System.out.println("您订的是:"+dishMeg);
                           System.out.println("送餐时间:"+time+"点");
                           System.out.println("餐费:"+sumPrice+"元,送餐费"+deliCharge+"元,总计:"+(sumPrice+deliCharge)+"元。");

                           names[j]=name;
                           dishMegs[j]=dishMeg;
                           times[j]=time;
                           addresses[j]=address;
                           sumPrices[j]=sumPrice+deliCharge;
                           break;

                       }
                   }
                   if(!isAdd){
                       System.out.println("对不起,您的餐袋已满!");
                   }
                   break;
               case 2:
                   System.out.println("***查看餐袋***");
                   System.out.println("序号\t 订餐人\t 餐品信息\t\t送餐时间" + "\t\t送餐地址\t\t总金额\t订单状态");
                   for (int i = 0; i < names.length ; i++) {
                       if(names[i]!=null){
                           String state=(states[i]==0)?"已预定":"已完成";
                           String date=times[i]+"点";
                           String sumPrice=sumPrices[i]+"元";
                           System.out.println((i+1)+"\t\t"+names[i]+"\t\t"+dishMegs[i]+"\t\t"+date+"\t\t"+addresses[i]+"\t"+sumPrice+"\t"+state);
                       }
                   }
                   break;
               case 3:
                   System.out.println("***签收订单***");
                   System.out.print("请选择要签收的订单需序号:");
                   int signOrderId=input.nextInt();
                   for (int i = 0; i < names.length; i++) {
                       if(names[i]!=null && states[i]==0 && signOrderId==i+1){
                           states[i]=1;
                           System.out.println("订单签收成功!");
                           isSignFind=true;
                       } else if (names[i]!=null && states[i]==1 && signOrderId==i+1) {
                           System.out.println("您选择的订单已完成签收,不能再次签收!");
                           isSignFind=true;
                       }
                   }
                   if(!isSignFind){
                       System.out.println("您选择的订单不存在!");
                   }
                   break;
               case 4:
                   System.out.println("***删除订单***");
                   System.out.print("请输入要删除的订单号:");
                   int delId= input.nextInt();
                   for (int i = 0; i < names.length; i++) {
                       if(names[i]!=null && states[i]==1 && delId==i+1){
                           isDelFind=true;
                           for (int j = delId-1; j < names.length-1; j++) {
                               names[j]=names[j+1];
                               dishMegs[j]=dishMegs[j+1];
                               times[j]=times[j+1];
                               addresses[j]=addresses[j+1];
                               states[j]=states[j+1];
                           }
                           int enIndex= names.length-1;
                           names[enIndex]=null;
                           dishMegs[enIndex]=null;
                           times[enIndex]=0;
                           addresses[enIndex]=null;
                           states[enIndex]=0;
                           sumPrices[enIndex]=0;
                           System.out.println("删除订单成功!");
                           break;
                       } else if (names[i]!=null && states[i]==0 && delId==i+1) {
                           System.out.println("您选择的订单为签收,不能删除!");
                           isDelFind=true;
                           break;
                       }
                   }
                   if(!isDelFind){
                       System.out.println("您要删除的订单不存在!");
                   }
                   break;
               case 5:
                   System.out.println("***我要点赞***");
                   System.out.println("编号"+"\t"+"菜名"+"\t"+"单价");
                   for (int i = 0; i < dishNames.length; i++) {
                       String price=prices[i]+"元";
                       String praiseNum=(praiseNums[i])>0 ? praiseNums[i]+"赞":"";
                       System.out.println((i+1)+"\t"+dishNames[i]+"\t\t"+price+"\t"+praiseNum);
                   }
                   System.out.printf("请选择您要点赞的菜品编号:");
                   int praiseNum=input.nextInt();
                   praiseNums[praiseNum-1]++;
                   System.out.println("点赞成功!");
                   break;
               case 6:
                   isExit=true;
                   break;
               default:
                   isExit=true;
                   break;
           }
           if(!isExit){
               System.out.printf("输入0返回:");
               num= input.nextInt();
           }else{
               break;
           }
       }while (num==0);
    }
}

猜你喜欢

转载自blog.csdn.net/m0_74016429/article/details/133563262