zoukankan      html  css  js  c++  java
  • JAVA 吃货联盟

    /**
     * 吃货联盟 订单类
     * @author 张欢
     *
     */
    public class OrderSet {
        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];    //保存订单状态: 0表示已预订,1表示已完成
        double[] sumPrices = new double[4];   //保存订单的总金额

    }

    /**
     * 吃货联盟 订单管理工具类
     * @author 张欢
     *
     */

    public class OrdeUtil {
            String[] disNames={"红烧带鱼","鱼香肉丝","时令蔬菜"};
            double[]prices ={38,20,10};
            int[] praiseNums=new int [3];
            OrderSet oSet =new OrderSet();//创建OrderSet类的对象为oset
            
        //实现初始化
        public void initial(){
            //第一条订单
            oSet.names[0]="张晴";
            oSet.dishMegs [0]="红烧带鱼";
            oSet. times[0]=12;
            oSet.addresses[0]="天成路207";
            oSet.sumPrices[0]=76.0;
            oSet.states[0]=1;
            //第二条订单
            oSet.names[1]="张晴";
            oSet.dishMegs [1]="鱼香肉丝";
            oSet. times[1]=18;
            oSet.addresses[1]="天成路207";
            oSet.sumPrices[1]=80.0;
            oSet.states[1]=0;
        
        }

    public boolean add(){//订餐就是增加订单
            boolean isAdd=false;
            Scanner input=new Scanner(System.in);
            for (int i = 0; i < oSet.names.length; i++) {
                if(oSet.names[i]==null){//找到第一个为空的位置
                    isAdd=true;//可以订餐
                    System.out.println("请输入订餐姓名:");
                    String name=input.next();
                    System.out.println("序号"+" "+"菜名"+" "+"单价"+" "+"点赞数");
                    for (int k = 0; k <disNames.length; k++) {//显示供选择的菜品信息
                        String price=prices[k]+"元";
                        String praiseNum=(praiseNums[k])>0?praiseNums[k]+"赞":"0";
                        System.out.println((k+1)+" "+disNames[k]+" "+price+" "+praiseNum);
                        
                    }
                    System.out.println("请选择您要点的菜品编号:");//用户点菜
                    int chooseDish=input.nextInt();
                    System.out.println("请选择您需要的份数");
                    int number=input.nextInt();
                    String dishMeg=disNames[chooseDish-1]+""+number+"份";
                    double sumprice=prices[chooseDish-1]*number;
                    double deliChaege=(sumprice>=50)?0:5;//餐费满50元,免送餐费
                    System.out.println("请输入送餐时间(送餐时间是10点至20点之间整点送餐)");
                    int time=input.nextInt();
                    while(time<10||time>20){
                        System.out.println("您的输入有误,请输入10-20之间的整数!");
                        time=input.nextInt();
                    }
                    System.out.println("请输入送餐地址");    
                    String address=input.next();    
                    //无需添加状态,默认是0,既已预定状态    
                    System.out.println("订餐成功!");
                    System.out.println("您定的是:"+dishMeg);
                    System.out.println("送餐时间是:"+time+"点");
                    System.out.println("餐费"+sumprice+"元,送餐费"+deliChaege+"元,总计"+(sumprice+deliChaege)+"元");
                    //添加数据
                    oSet.names[i]=name;
                    oSet.dishMegs[i]=dishMeg;
                    oSet.times[i]=time;
                    oSet.addresses[i]=address;
                    oSet.sumPrices[i]=sumprice+deliChaege;
                    isAdd=false;
                    break;
                }//if结束
                
            }//for循环结束
            
            if(isAdd){
                System.out.println("对不起!您的餐带已满。");
                return false;
            }else{
                return true;
            }
        }//add()结束

    //查看餐袋
        public void find(){
            System.out.println("序号 订餐人 餐品信息 送餐时间 送餐地址 总金额 订单状况");
        for (int i = 0; i <oSet.names.length; i++) {
            String state=oSet.states[i]==0 ?"已预定":"已完成";//把0 1的状态改为字符串
            if(oSet.names[i]!=null)
                System.out.println((i+1)+" "+oSet.names[i]+" "+oSet.dishMegs[i]+" "
                            +oSet.times[i]+" "+oSet.addresses[i]+" "+oSet.sumPrices[i]+"元"+" "+state);
            }//for
        }//find
        public void qscd(){//签收订单
            Scanner input=new Scanner(System.in);
            System.out.println("请输入定单序号");
            int orderNo=input.nextInt();
            boolean flag=false;
            for (int i = 0; i <oSet.names.length; i++) {
                if(oSet.names[i]!=null && oSet.states[i]==0 && orderNo==(i+1)){//订单状态为0,改为已签收
                    oSet.states[i]=1;//已经签收
                    System.out.println("订单已经签收成功!");
                    flag=true;
                    }else if(oSet.names[i]!=null && oSet.states[i]==1 && orderNo==(i+1)){//订单状态为1,已经签
                    System.out.println("订单已经是签收状态");    
                    flag=true;
                    }
            }//for
        if(flag){
            System.out.println("已签收");
        }else{
        System.out.println("没有此序号的订单");    
        }
        }//签收订单方法结束

    //删除订单
        public void deletedd(){
            Scanner input=new Scanner(System.in);
            boolean delFlag=false;//标记是否找到要删除的订单
            System.out.println("请输入要删除的订单号");
            int deleteId=input.nextInt();
            for (int i = 0; i <oSet.names.length; i++) {
                if(oSet.names[i]!=null && oSet.states[i]==1 && deleteId==(i+1)){//状态值为已完成,
                delFlag=true;//可以删除已经签收的了
                int index = 0;//从后往前 到要删除的位置 ,移动
                for (int K = deleteId-1; K<oSet.names.length-1; K++) {
                    oSet.names[K]=oSet.names[K+1];
                    oSet.addresses[K]=oSet.addresses[K+1];
                    oSet.dishMegs[K]=oSet.dishMegs[K+1];
                    oSet.states[K]=oSet.states[K+1];
                    oSet.sumPrices[K]=oSet.sumPrices[K+1];
                    oSet.times[K]=oSet.times[K+1];
                    index=K;//记录的最后一次就是有内容的最后一个位置
                }
                //最后储存了内容的一位清空
                oSet.names[index]=null;
                oSet.addresses[index]=null;    
                oSet.dishMegs[index]=null;
                oSet.states[index]=0;
                oSet.sumPrices[index]=0;
                oSet.times[index]=0;
                System.out.println("已经删除完毕");
                break;
                }else if(oSet.names[i]!=null && oSet.states[i]==0 && deleteId==(i+1)){//状态值为已预定
                System.out.println("预定订单的状态不可删除");    //预定订单的状态不可删除
                delFlag=true;
                }
                
            }//for结束
            
            if(delFlag){
                System.out.println("已经执行完毕");
            }else{
                System.out.println("没有要删除的订单号!");
            }

        }//deleteOrder方法结束
        //点赞
        public void praise(){
            Scanner input =new Scanner(System.in);
            //显示菜品信息
            System.out.println("序号"+" "+"菜品"+" "+"单价");
            for (int i = 0; i < disNames.length; i++) {
                String price=prices[i]+"元";
                String praiseNum=(praiseNums[i]>0)?praiseNums[i]+"赞":"";
                System.out.println((i+1)+" "+disNames[i]+" "+price+" "+praiseNum);
            }
            System.out.println("请选择您要点赞的菜品");
            int praiseNum=input.nextInt();
            praiseNums[praiseNum-1]++;//赞数+1
            System.out.println("点赞成功!");
        }
        
    }

    //main方法

    public class Chuolianmeng {
        public static void main(String[] args) {
            
            OrdeUtil  ou=new OrdeUtil();
            boolean flag = false;
            int num = 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("****************************************** ");
                Scanner input=new Scanner(System.in);
                System.out.println("请选择:");
                int xz=input.nextInt();
                switch(xz){
                    case 1:
                         flag = ou.add();
                        break;
                    case 2:
                        ou.find();
                        break;
                    case 3:
                        ou.qscd();
                        break;
                    case 4:
                        ou.deletedd();
                        break;
                    case 5:
                        ou.praise();
                        break;
                    case 6:
                        break;
                }
                if(flag){
                    System.out.println("输出0返回!");
                    num = input.nextInt();
                }
            } while (num == 0);
        }
    }

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/qinxinabc/p/7745023.html
Copyright © 2011-2022 走看看