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] 71. Simplify Path 简化路径
    [LeetCode] 173. Binary Search Tree Iterator 二叉搜索树迭代器
    [LeetCode] 142. Linked List Cycle II 链表中的环 II
    [LeetCode] 141. Linked List Cycle 链表中的环
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_友元程序集
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_通过ILDasm.exe查看编译器如何将类型及其成员编译成元数据
    tfs强行签入和删除工作区
    需要提升权限才能运行dism
    读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员
    Jquery 获取URL中的参数
  • 原文地址:https://www.cnblogs.com/qinxinabc/p/7745023.html
Copyright © 2011-2022 走看看