基本信息
源码名称:北大青鸟s1java第17章
源码大小:9.68KB
文件格式:.zip
开发语言:Java
更新时间:2021-07-12
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍
帮助莘莘学子完成项目,提供思路

package xm;
import java.util.Scanner;

/**
 * 订单操作类
 * @author DELL
 *
 */

public class OrderingUtil {
    //第一个:定义可供选择的菜品            //是用来给用户选择用的
        Dishes[] dishe = new Dishes[3];
        
        //第二个:订单信息类对象,相当于用户餐袋           
        Orderingset oSet = new Orderingset();
        
        /**
         * 初始化方法
         */
        public void init() {
            //初始化菜品
            Dishes ds1 = new Dishes();
            ds1.name = "红烧带鱼";
            ds1.Price = 38.0;
            ds1.Dzs = 0;
            
            Dishes ds2 = new Dishes();
            ds2.name = "鱼香肉丝";
            ds2.Price = 20.0;
            ds2.Dzs = 0;
            
            Dishes ds3 = new Dishes();
            ds3.name = "时令鲜蔬";
            ds3.Price = 10.0;
            ds3.Dzs = 0;
            
            dishe[0] = ds1;
            dishe[1] = ds2;
            dishe[2] = ds3;
            
            
            //先往餐袋里面放两个订单
            //第一个订单
            oSet.names[0] = "张晴";
            oSet.dishMegs[0] = "红烧带鱼2份";
            oSet.times[0] = 3;
            oSet.addresses[0] = "天堂";
            oSet.states[0] = 1;
            oSet.sumPrices[0] = 76.0;
            
            //第二个订单
            oSet.names[1] = "张晴";
            oSet.dishMegs[1] = "鱼香肉丝2份";
            oSet.times[1] = 10;
            oSet.addresses[1] = "天堂";
            oSet.states[1] = 0;
            oSet.sumPrices[1] = 46.0;
        }
        
        /**
         * 系统操作类
         */
        public void Menu() {
            boolean ad=false;
            Scanner input = new Scanner(System.in);
            int num = 0;
            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.print("请选择:");
                int choose = input.nextInt(); // 记录用户选择的功能编号
                
                // 根据用户选择的功能编号执行相应功能
                switch (choose) {
                    case 1:
                        // 我要订餐
                        
                        System.out.println("***我要订餐***");
                        add();
                        //订餐方法
                        break;
                    case 2:
                        // 查看餐袋
                        
                        System.out.println("***查看餐袋***");
                        //查看方法
                        display();
                        break;
                    case 3:
                        // 签收订单
                        System.out.println("***签收订单***");
                        sign();
                        //签收方法
                        break;
                    case 4:
                        // 删除订单
                        System.out.println("***删除订单***");    
                        delete();
                        break;
                    case 5:
                        // 我要点赞
                        System.out.println("***我要点赞***");
                        praise();
                        break;
                    case 6:
                        // 退出系统
                        break;
                    default:
                        //退出系统
                        break;
                }
                if(!ad) {
                    System.out.println("输入0返回:");
                    num=input.nextInt();
                }else {
                    break;
                }
            } while (num == 0);
            
            
            System.out.println("谢谢使用,欢迎下次光临!");
        }
        /**
         * 第一遍查看餐袋方法
         */
        void display(){
            System.out.println("序号\t订餐人\t餐品信息\t\t送餐时间\t送餐地址\t\t总金额\t订单状态");
            for(int i=0;i<oSet.names.length;i ) {
                if(oSet.names[i]!=null) {
                    String state=(oSet.states[i]==0)?"已预订":"已完成";
                    String date=oSet.times[i] "点";
                    String sumPrice=oSet.sumPrices[i] "元";
                    System.out.println((i 1) "\t" oSet.names[i] "\t" oSet.dishMegs[i] "\t\t" date "\t" oSet.addresses[i] "\t\t" sumPrice "\t" state);
                }
            }
        }
        /**
         * 订餐的方法
         */
        void add() {
            //第一步:判断餐袋是否已满。满了就不能预订了。
            //第二步:打印给客户要点的菜。
            //第三步:客户选择,并生成订单成功信息。
            //第四步:把订单信息加到我的餐袋。
            Scanner input = new Scanner(System.in);
            boolean fig = false;            //记录餐袋是否已满
            //第一步
            for (int i = 0; i < oSet.names.length; i ) {
                if(oSet.names[i] == null) {
                    //实行第二步
                    System.out.println("请输入订餐人的姓名:");
                    String name = input.next();
                    System.out.println("序号\t菜名\t单价\t点赞数");
                    //循环打印对象数组
                    for (int j = 0; j < dishe.length; j ) {
                        System.out.println((j 1) "\t" dishe[j].name "\t"
                     dishe[j].Price "\t" dishe[j].Dzs);    
                    }
                    
                    //第三步:胡可选择
                    System.out.println("请选择您要点的菜品编号:");
                    int num = input.nextInt();        //菜品编号
                    System.out.println("请选择您需要的份数:");
                    int fz = input.nextInt();        //份数
                    System.out.println("请输入送餐时间(送餐时间是10点至20点整点送餐):");
                    int time = input.nextInt();
                    while (time < 10 || time > 20) {
                        System.out.println("时间选择错误,请重新选择:");
                        time = input.nextInt();
                    }
                    System.out.println("请输入送餐地址:");
                    String dz = input.next();
                    
                    
                    System.out.println("订餐成功!");
                    String cp = dishe[num-1].name fz "份";    //生成了你的菜品
                    System.out.println("您订的是:" cp);
                    System.out.println("送餐时间:" time);
                    double scf = 0.0;        //送餐费
                    double cf = dishe[num-1].Price * fz;
                    if(cf < 50) {
                        scf = 5.0;
                    }
                    System.out.println("餐费:" cf ",送餐费:" scf ",总计:" (cf scf));
                    
                    //第四步:把客户选择的信息添加到我的餐袋
                    oSet.names[i] = name;
                    oSet.dishMegs[i] = cp;
                    oSet.addresses[i] = dz;
                    oSet.times[i] = time;
                    oSet.sumPrices[i] = (cf scf);
                    oSet.states[i] = 0;        //代表已预订
                    fig = true;
                    break;
                }
                
            }
            if(fig) {
                return;
            } else {
                System.out.println("您的餐袋已满!");
                return;
            }
            
        }
        void sign() {
            Scanner input=new Scanner(System.in);
            boolean isSignFind=false;//找到要签收的订单
            System.out.println("请选择要签收的订单序号:");
            int signOrderId=input.nextInt();
            for(int i=0;i<oSet.names.length;i ) {
                //状态为已预订,序号为用户输入的订单号减1:可签收
                //状态为已完成,序号为用户输入的订单序号减1:不可签收
                if(oSet.names[i]!=null&&oSet.states[i]==0&&signOrderId==i 1) {
                    oSet.states[i]=1;//状态值置为已完成
                    System.out.println("订单签收成功!");
                    isSignFind=true;//已找到此订单
                }else if(oSet.names[i]!=null&&oSet.states[i]==1&&signOrderId==i 1) {
                    System.out.println("您选择的订单已完成签收,不能再次签收!");
                    isSignFind=true;//标记已找到此订单
                }
            }if(!isSignFind) {
                System.out.println("您选择的订单不存在!");
            }
        }
        void delete() {
            Scanner input=new Scanner(System.in);
            boolean isDelFind=false;//标记是否找到要删除的订单
            System.out.println("请输入要删除的订单序号:");
            int delId=input.nextInt();
            for(int i=0;i<oSet.names.length;i ) {
                //状态值为已完成,序号为用户输入的序号减1:可删除
                //状态值为已预定,序号为用户输入的序号减1:不可删除
                if(oSet.names[i]!=null&& oSet.states[i]==1&&delId==i 1) {
                    isDelFind=true;//标识已找到此订单
                    //执行删除操作:删除位置后的元素依次前移
                    for(int j=delId-1;j<oSet.names.length-1;j ) {
                        oSet.names[j]=oSet.names[j 1];
                        oSet.dishMegs[j]=oSet.dishMegs[j 1];
                        oSet.times[j]=oSet.times[j 1];
                        oSet.addresses[j]=oSet.addresses[j 1];
                        oSet.states[j]=oSet.states[j 1];
                        oSet.sumPrices[j]=oSet.sumPrices[j 1];
                    }
                    //最后一位清空
                    int endIndex=oSet.names.length-1;
                    oSet.names[endIndex]=null;
                    oSet.dishMegs[endIndex]=null;
                    oSet.times[endIndex]=0;
                    oSet.addresses[endIndex]=null;
                    oSet.states[endIndex]=0;
                    oSet.sumPrices[endIndex]=0;
                    System.out.println("删除订单成功!");
                    break;
                    
                }else if(oSet.names[i]!=null&&oSet.states[i]==0&&delId==i 1) {
                    System.out.println("您选择的订单未签收,不能删除!");
                    isDelFind=true;//标记已找到此订单
                    break;
                }
            }
            //未找到该序号的订单:不能删除
            if(!isDelFind) {
                System.out.println("您要的订单不存在!");
            }
        }
        void praise() {
            Scanner input=new Scanner(System.in);
            //显示菜品信息
            System.out.println("序号" "\t" "菜名" "\t" "单价");
                
                for (int j = 0; j < dishe.length; j ) {
                    String priaiseNum=(dishe[j].Dzs)>0?dishe[j].Dzs "赞":"";
                    System.out.println((j 1) "\t" dishe[j].name "\t"
                 dishe[j].Price "\t" dishe[j].Dzs);    
                }
            System.out.println("请选择你要点赞商品序号:");
            int priaiseNum=input.nextInt();
            dishe[priaiseNum-1].Dzs ;//点赞加1
            System.out.println("点赞成功!");
        }
}