吃货大联盟

import java.util.Scanner;

public class xitong1吃货联盟 {
    public static void main(String[] args) {/*
    一 数据主体:一订单一组数据,人名,菜品,时间,地址,状态,金额;
             二点赞一组数组,菜名,单价,点赞数;
    二 整体框架:循环(外围do-while 内switch分支结构)
               操作:显示主菜单
               提示用户输入编号,执行功能
               输入0返回
               条件:
    三 退出系统
               1.输入1-5以外的数据
               2.执行功能后输入0时输入非0数据
               3.输入6
    四 订餐
                1.找到信息插入的数组的位置
                循环先找人名数组空的位置,插入,没找到则提示餐袋已满。等等
                2.执行添加订餐数据,显示餐品信息
                输入餐品信息,进行下单
                输入个人信息
                  输入姓名
                  送餐时间(10-20整点之间)
                  输入有误,重复输入
                  地址
                计算价格
                  订单金额=单价*份数
                  送餐费;当金额到50可免6元
                  总金额=送餐费+订单金额
               3.订单信息
                餐品信息
                订单人
                时间
                地址
                金额
               4.保存到找到的空的数组位置
    五 查看餐袋(显示订单信息)就是遍历数组
             序号  餐品信息  人名  时间  地址  状态(0预定,1完成)  总价
    六 签收订单
    输入订单序号找到订单(遍历)
                1.找到,完成的
                2.找到,没完成,签收
                3.没找到
     七 删除订单
            输入订单序号找到订单
            1.状态完成的删除,序号后面的元素前移一个完成删除,最后一位清空,(所有的数组)
            2.状态未完成的不能删
            3.没找到
     八 点赞
            1.显示可以点赞的餐品列表
            2.输入要点赞的序号
            3.点赞数加1
            4.显示 */
   //数据主体   ;一订单一组数据,人名,菜品,时间,地址,状态,金额;
        String name[]=new String[4];
        String dishMegs[]=new String[4];//菜品
        int time[]=new int[4];
        String address[]=new String[4];//地址
        int states[]=new int[4];//状态;0预定,1完成
        double sumprices[]=new double[4];//总金额
        // 初始化订单信息
        // 第一条
        name[0]="张三";
        dishMegs[0]="臭豆腐";
        time[0]=12;
        address[0]="天上人间88号";
        states[0]=0;
        sumprices[0]=18;
       //第二条
        name[1]="李四";
        dishMegs[1]="螺蛳粉 3份";
        time[1]=12;
        address[1]="天上人间66号";
        states[1]=1;
        sumprices[1]=60;
//数据主题;点赞一组数组,菜名,单价,点赞数;
        String dishName[]={"臭豆腐","螺蛳粉","狗不理"};
        double  prices[]={12.0,20.0,5.0};
        int praiseNum[]={100,200,500};
        //循环开始      二 整体框架:循环(外围do-while 内switch分支结构)
        //   操作:显示主菜单
        //   提示用户输入编号,执行功能
        //   输入0返回
        //   循环条件
        Scanner sc=new Scanner(System.in);
        int num=-1;//记录用户输入的数字
        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 choose= sc.nextInt();
            boolean isadd=false;//为true时找到位置
         //功能编号分支switch
switch(choose){
    case 1:
        //我要订餐
        //  1.找到信息插入的数组的位置
        //   循环先找人名数组空的位置,插入,没找到则提示餐袋已满。等等
        //  2.执行添加订餐数据,显示餐品信息
        //    输入餐品信息,进行下单
        //     输入个人信息 输入姓名
        //       送餐时间(10-20整点之间)
        //      输入有误,重复输入
        //       地址
        //      计算价格 订单金额=单价*份数  送餐费;当金额到50可免6元    总金额=送餐费+订单金额
        //  3.订单信息
        //    餐品信息 订单人 时间 地址 金额
        //   4.保存到找到的空的数组位置
        System.out.println("我要订餐");
        for(int i=0;i< name.length;i++){
        //空位置记录下来
          if(name[i]==null){
              isadd =true;//找到位置
              //插入数据,显示可以选择的餐品信息
              System.out.println("序号\t餐品名\t单价\t点赞数");
              for(int j=0;j< dishName.length;j++){
                  String dishNames=dishName[j];
                  String price=prices[j]+"元";
                  String praise =praiseNum[j]+"赞";
                  System.out.println((j+1)+"\t"+dishNames+"\t"+price+"\t"+praise);
              }
           //输入餐品信息,进行下单
              System.out.println("你选择的餐品序号:");
              int xuhao= sc.nextInt();
              System.out.println("你选择几份:");
              int  fen= sc.nextInt();
              //定的餐名和份数
              String canMing=dishName[xuhao-1]+" "+fen+"份";
              System.out.println("");
              //输入个人信息
              System.out.println("请输入姓名");
              String mingZi=sc.next();
              System.out.println("请输入时间(10-20之间整点):");
              int shiJian = sc.nextInt();
              //输错时间,重新输
              if(shiJian<10||shiJian>20){
                  System.out.println("对不起,该时间不送,请输入时间(10-20之间整点):");
                  shiJian = sc.nextInt();
              }
              System.out.println("请输入地址:");
              String diZhi= sc.next();
             //计算价格

              double jiaGe=prices[xuhao-1]*fen;
//送餐费:double jiaGe=prices[xuhao-1]*fen;
              double song=  jiaGe>=50?   0.0:6.0;
              double zongJia = jiaGe+song;

              System.out.println("订餐成功");
              System.out.println("你订的是"+canMing);
              System.out.println("订单人"+mingZi);
              System.out.println("送餐时间"+shiJian);
              System.out.println("送餐地址"+diZhi);
              System.out.println("订单价格"+jiaGe+"元,送餐费"+song);
              System.out.println("总价"+zongJia+"元" );
    // 保存到找到的空的数组位置
             name[i]=mingZi;
             dishMegs[i] =canMing;
             time[i]=shiJian;
             address[i]=diZhi;
             sumprices[i]=zongJia;
              break;
          }
        }//没找到,提示信息
        if(!isadd){
            System.out.println("餐袋满了");
        }
        break;
    case 2:
        //查看餐袋显示订单信息)就是遍历数组
        // 序号  餐品信息  人名  时间  地址  状态(0预定,1完成)  总价
        System.out.println("查看餐袋");
        System.out.println("序号\t订单人\t餐品信息\t时间\t地址\t总价\t状态");
//遍历数组
        for(int i=0;i< name.length;i++){
            if(name[i]!=null){
              String shiJian =time[i]+"点";
              String zongJia =sumprices[i]+"元";
              String state=states[i]==0?"已预订":"已完成";
                System.out.println((i+1)+"\t"+name[i]+"\t"+dishMegs[i]+"\t"+shiJian+"\t"+address[i]+"\t"+zongJia+"\t"+state);
            }
        }
        break;
    case 3:
        // 签收订单
        // 输入订单序号找到订单(遍历)
        //  1.找到,完成的
        //  2.找到,没完成,签收
        //  3.没找到

        System.out.println("签收订单");
        System.out.println("输入订单号:");
        int danHao= sc.nextInt();
        boolean find=false;//标志找到还是没找到,true未找到
        for(int i=0;i< name.length;i++){
            if(name[i]!=null&&states[i]==1&&danHao==i+1){//找到订单,完成的
                System.out.println("你的订单已签签收");
                find=true;
                break;
            } else if (name[i]!=null&&states[i]==0&&danHao==i+1) {//找到订单,没完成,签收
                states[i]=1;
                find=true;
                break;
            }}
        if(!find){
        System.out.println("该订单不存在");}
        break;
    case 4:
        // 删除订单  输入订单序号找到订单
        //  1.状态完成的删除,序号后面的元素前移一个完成删除,最后一位清空,(所有的数组)
        //  2.状态未完成的不能删
        //  3.没找到
        System.out.println("删除订单");
        System.out.println("输入序号");
        int del= sc.nextInt();
        int delIndex=-1;
        boolean delFind=false;
        for(int i=0;i< name.length;i++){
             if(name[i]!=null&&states[i]==1&&del==i+1){
                 delIndex=i;
                 delFind=true;
                break;
             } else if (name[i]!=null&&states[i]==1&&del==i+1) {
                 System.out.println("订单未签收");
                 delFind=true;
                 break;
             }
             }if(!delFind){
           System.out.println("未找到该订单");
    }
        //序号后面的元素前移一个完成删除
        if( delIndex!=-1){
          for(int i=delIndex+1;i< name.length-1;i++){
           name[i-1]=name[i];
           dishMegs[i-1]=dishMegs[i];
           time[i-1]=time[i];
           address[i-1]= address[i];
           states[i-1]=states[i];
              sumprices[i-1]=sumprices[i];
          }//最后一位清空
          name[name.length-1]=null;
        dishMegs[dishMegs.length-1]=null;
        time[time.length-1]=0;
        address[address.length-1]= null;
        states[states.length-1]=0;
        sumprices[sumprices.length-1]=0;
        System.out.println("已删除订单");
    }
        break;
    case 5:
        // 我要点赞
        // 1.显示可以点赞的餐品列表
        // 2.输入要点赞的序号
        // 3.点赞数加1
        // 4.显示
        System.out.println("我要点赞");
        System.out.println("序号\t餐品名\t单价\t点赞数");
        for(int j=0;j< dishName.length;j++){
            String dishNames=dishName[j];
            String price=prices[j]+"元";
            String praise =praiseNum[j]+"赞";
            System.out.println((j+1)+"\t"+dishNames+"\t"+price+"\t"+praise);
        }
        System.out.println("输入要点赞的序号");
         int dianZan=sc.nextInt();
        praiseNum[dianZan-1]++;
        System.out.println("点赞成功");
        System.out.println(dishName[dianZan-1]+" "+praiseNum[dianZan-1]+"赞 ");
        break;
    case 6:
        // 退出系统
        break;
    default:
        break;
}
//当用户输入1-5以外的数据,退出,否则提示输入0返回
            if(choose<1||choose>5){
break;
            }else{
System.out.println("输入0返回:");
num=sc.nextInt();
            }
        }while(num==0);
        System.out.println("谢谢使用,欢迎下次光临");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值