栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java第二十三天---对象加数组的运用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java第二十三天---对象加数组的运用

1、订单类Order


    (1)订餐人姓名        name:String;
    (2) 餐品信息        dishMegs:String;
    (3)订单配送时间    times:int;
    (4)订单配送地址    addresses:String;
    (5)订单状态        states:int;
    (6)订单的总金额    sumPrices:doouble;
    


2、菜品类Food


    (1)菜品名称        dishNames:String;
    (2)菜品单价        prices:double;
    (3)菜品点赞数        praiseNums:int;


3、订单管理类OrderMgr


    (1)所有订单--数组:orders  Order[4]    
        所有菜品--集合:foods  Food[4]

    (2)程序整体流程搭建的start()方法
            循环
            分支
    (3)数据初始化的init()方法
            创建2个订单对象,存储在数组orders中
            创建3个菜品对象,存储在数组foods中
    (4)欢迎菜单的menu()方法
            输出欢迎语句和菜单选项
    
    A:点餐
        输入订单信息
            姓名、餐品信息(菜品名称拼接分数的字符串形式)
            订单配送时间
            订单配送地址
            订单状态
            订单的总金额
            将订购成功的订单添加进数组            
    B:查看订单
        输出数组orders中所有订单的信息
    C:签收订单
        订单状态为已预定的订单可签收
        订单状态为已完成的订单不可重复签收
    D:删除订单
        订单状态为已完成的订单可删除
        订单状态为已预定的订单不可删除
    E:点赞
        输出集合foods中的所有菜品信息,选择要点赞的菜,点赞数+1
    F:退出

4、测试类


    订单管理类的调用:
        创建OrderMgr类对象
        调用数据初始化方法init()
        调用启动系统方法start()

5、思想

(1)做事情,是专业的人做专业的事情
写代码,是具体的类做具体的事情(实体类,就只定义属性、方法,添加构造方法和普通方法;业务类专门写业务代码;测试类专门做测试。各个类之间分工明确)

(2)原来的操作思想:获取姓名,存储到姓名数组中,获取订餐信息,存放到订餐信息数组中,获取订餐地址存放到地址数组中,然后6个数组中下标相同的元素组成一条订单

(3)面向对象的思想:先获取姓名、订餐信息、地址、时间等数据(或其一个数据要判断的就进行判断)存储到变量中,然后将获取的数据使用订单类的有参构造方法创建成对象,然后将对象存储到订单类的数组中,接下来要操作的就是这个订单类数组里的订单对象,整体进行操作,不再分开操作6个数组了

6、代码

(1)order类

package com.xuexi.吃货联盟;

public class Order {
    private String name;
    private String dish;
    private  int times;
    private String address;
private  int states;
private double sumPrices;

    public Order() {
    }

    public Order(String name, String dish, int times, String address, int states, double sumPrices) {
        this.name = name;
        this.dish = dish;
        this.times = times;
        this.address = address;
        this.states = states;
        this.sumPrices = sumPrices;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDish() {
        return dish;
    }

    public void setDish(String dish) {
        this.dish = dish;
    }

    public int getTimes() {
        return times;
    }

    public void setTimes(int times) {
        this.times = times;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public int getStates() {
        return states;
    }

    public void setStates(int states) {
        this.states = states;
    }

    public double getSumPrices() {
        return sumPrices;
    }

    public void setSumPrices(double sumPrices) {
        this.sumPrices = sumPrices;
    }
}

(2)food类

package com.xuexi.吃货联盟;

public class Food {
    private String dishNames;
    private double prices;
    private int praiseNums;

    public Food() {
    }

    public Food(String dishNames, double prices, int praiseNums) {
        this.dishNames = dishNames;
        this.prices = prices;
        this.praiseNums = praiseNums;
    }

    public String getDishNames() {
        return dishNames;
    }

    public void setDishNames(String dishNames) {
        this.dishNames = dishNames;
    }

    public double getPrices() {
        return prices;
    }

    public void setPrices(double prices) {
        this.prices = prices;
    }

    public int getPraiseNums() {
        return praiseNums;
    }

    public void setPraiseNums(int praiseNums) {
        this.praiseNums = praiseNums;
    }
}

(3)OrderMgr类

package com.xuexi.吃货联盟;

import java.util.Scanner;

public class OrderMgr {
    Order[] orders = new Order[4];
    Food[] foods = new Food[3];

    public void start(Scanner sc) {
        int sum = -1;
        do {
            menu(sc);
            System.out.println("输入零返回");
            sum = sc.nextInt();
        }
        while (sum == 0);
        {
            System.out.println("谢谢使用,欢迎下次光临!");
        }
    }

    public void init() {
        Order o1 = new Order("王旭", "鱼香肉丝一份", 12, "北大青鸟", 1, 24);
        Order o2 = new Order("蒋若", "红烧带鱼两份", 14, "北大青鸟", 1, 76);
        orders[0] = o1;
        orders[1] = o2;
        Food f1 = new Food("红烧带鱼", 38, 0);
        Food f2 = new Food("鱼香肉丝", 18, 0);
        Food f3 = new Food("时令蔬菜", 10, 0);
        foods[0] = f1;
        foods[1] = f2;
        foods[2] = f3;
    }

    public void menu(Scanner sc) {
        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("***********************************");
        System.out.println("请选择:");
        boolean isAdd = false;
        switch (sc.nextInt()) {
            case 1:
                System.out.println("***我要订餐***");
                for (int i = 0; i < orders.length; i++) {
                    if (orders[i] == null) {
                        isAdd = true;
                        //执行操作
                        System.out.println("序号t餐品名t单价t点餐数");
                        for (int j = 0; j < foods.length; j++) {
                            String price = foods[j].getPrices() + "元";
                            String praise = foods[j].getPraiseNums() + "赞";
                            System.out.println((j + 1) + "t" + foods[j].getDishNames() + "t" + price + "t" + praise);
                        }
                        System.out.println("请选择所定餐品序号:");
                        int chooseDish = sc.nextInt();
                        System.out.println("请选择所定份数:");
                        int number = sc.nextInt();
                        String dishMeg = foods[chooseDish - 1].getDishNames() + "" + number + "份";
                        System.out.println("请输入订餐人姓名:");
                        String name = sc.next();
                        System.out.println("请输入送餐时间(10-20整点送餐)");
                        int time = sc.nextInt();
                        while (time > 20 || time < 10) {
                            System.out.println("对不起,您输入有误,请输入10-20之间的整数:");
                            time = sc.nextInt();
                        }
                        System.out.println("请输入送餐地址:");
                        String address1 = sc.next();
                        double sumPrice = foods[chooseDish - 1].getPrices() * number;
                        double deliChaege = sumPrice >= 50 ? 0.0 : 6.0;
                        System.out.println("订餐成功!");
                        System.out.println("您定的是:" + dishMeg);
                        System.out.println("订餐人:" + name);
                        System.out.println("送餐地址:" + address1);
                        System.out.println("餐费:" + sumPrice + ",送餐费:" + deliChaege + "元");
                        System.out.println("总金额:" + (sumPrice + deliChaege) + "元");
                        Order o = new Order();
                        orders[i] = o;
                        orders[i].setName(name);
                        orders[i].setDish(dishMeg);
                        orders[i].setTimes(time);
                        orders[i].setAddress(address1);
                        orders[i].setSumPrices(sumPrice + deliChaege);

                        break;
                    }
                }
                if (!isAdd) {
                    System.out.println("对不起,您的餐袋已满 ");
                }
                break;
            case 2:
                System.out.println("***查看餐袋***");
                System.out.println("序号t订餐人姓名t所订餐品信息t送餐时间t送餐地址t总金额t状态");
                for (int i = 0; i < orders.length; i++) {
                    if (orders[i] != null) {
                        String time = orders[i].getTimes() + "点";
                        String sumPrice = orders[i].getSumPrices() + "元";
                        String state = orders[i].getStates() == 0 ? "已绑定" : "已完成";
                        System.out.println((i + 1) + "tt" + orders[i].getName() + "tt" + orders[i].getDish() + "t" + time + "t" + orders[i].getTimes() + "t" + orders[i].getSumPrices() + "t" + orders[i].getStates());
                    }
                }
                break;
            case 3:
                System.out.println("***签收订单***");
                System.out.println("选择要签收的订单序号:");
                int signOrderId = sc.nextInt();
                boolean isFind = false;
                for (int i = 0; i < orders.length; i++) {
                    if (orders[i].getName() != null && orders[i].getStates() == 1 && signOrderId == 1 + i) {
                        System.out.println("对不起,你的订单已经完成签收,不能再次签收!");
                        isFind = true;
                        break;
                    } else if (orders[i].getName() != null && orders[i].getStates() == 0 && signOrderId == i + 1) {
                        orders[i].setStates(1);
                        System.out.println("订单签收成功!");
                        isFind = true;
                        break;
                    }
                }
                if (!isFind) {
                    System.out.println("对不起,此订单不存在!");
                }
                System.out.println("");
                break;
            case 4:
                System.out.println("***删除订单***");
                System.out.println("请输入要删除的订单序号:");
                int delId = sc.nextInt();
                int delIndex = -1;
                boolean isDelFind = false;
                for (int i = 0; i < orders.length; i++) {
                    if (orders[i] != null && orders[i].getStates() == 1 && delId == i + 1) {
                        delIndex = i;
                        isDelFind = true;
                        break;
                    } else if (orders[i] != null && orders[i].getStates() == 0 && delId == i + 1) {
                        System.out.println("您选择的订单未签收,不能删除");
                        isDelFind = true;
                        break;
                    }
                }
                if (!isDelFind) {
                    System.out.println("对不起,此条订单不存在");
                }
                if (delIndex != -1) {
                    for (int i = delIndex + 1; i < orders.length - 1; i++) {
                        orders[i - 1] = orders[i];

                    }
                    orders[orders.length - 1] = null;

                }
                break;
            case 5:
                System.out.println("***我要点赞***");
                System.out.println("序号t菜名t单价");
                for (int i = 0; i < foods.length; i++) {
                    String price = foods[i].getPrices() + "元";
                    String praise = foods[i].getPraiseNums() + "赞";
                    System.out.println((i + 1) + "t" + foods[i].getDishNames() + "t" + price + "t" + praise);
                }
                System.out.println("请输入要点赞的餐品序号");
                int dishID = sc.nextInt();
                foods[dishID - 1].setPraiseNums(+1);
                System.out.println("点赞成功");
                System.out.println();
                break;
            case 6:
                System.out.println("***退出系统***");
                break;
            default:
                System.out.println("***退出系统***");
                break;
        }

    }
}

(4)test类

package com.xuexi.吃货联盟;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        OrderMgr test =new OrderMgr();
        Scanner sc =new Scanner(System.in);
        test.init();
        test.start(sc);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1039008.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号