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(