java基础练习0719:订单系统 (使用集合与对象)

订单系统:(使用集合与对象)

Java代码

Dishes.java

package exercise1;

public class Dishes {
    //无参构建方法
    private String dishmegs;
    private double prices;
    private int loveNum;
    public Dishes() {
    }
    //有参构建方法
    public Dishes(String dishmegs,double prices,int loveNum ) {
        this.dishmegs = dishmegs;
        this.prices = prices;
        this.loveNum = loveNum;
    }

    public String getDishmegs() {
        return dishmegs;
    }

    public void setDishmegs(String dishmegs) {
        this.dishmegs = dishmegs;
    }

    public double getPrices() {
        return prices;
    }

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

    public int getLoveNum() {
        return loveNum;
    }

    public void setLoveNum(int loveNum) {
        this.loveNum = loveNum;
    }
}

Order.java

package exercise1;

public class Order {
    //无参构建方法
    private String orderNames ;
    //订餐信息
    private String orderDish;
    //订餐份数
    private int num;
    //送餐日期
    private String orderTimes;
    //送餐地址
    private String orderAddress;
    //总金额
    private double sumPrice ;
    //订单状态 默认值0:代表已预订  1:已完成
    private int states ;

    public Order() {
    }
    public Order(String orderNames,String orderDish, int num,String orderTimes,String orderAddress,double sumPrice,int states) {
    this.orderNames = orderNames;
    this.orderDish = orderDish;
    this.orderTimes = orderTimes;
    this.orderAddress= orderAddress;
    this.sumPrice = sumPrice;
    this.states = states;
    this.num = num;
    }

    public String getOrderNames() {
        return orderNames;
    }

    public void setOrderNames(String orderNames) {
        this.orderNames = orderNames;
    }

    public String getOrderDish() {
        return orderDish;
    }

    public void setOrderDish(String orderDish) {
        this.orderDish = orderDish;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getOrderTimes() {
        return orderTimes;
    }

    public void setOrderTimes(String orderTimes) {
        this.orderTimes = orderTimes;
    }

    public String getOrderAddress() {
        return orderAddress;
    }

    public void setOrderAddress(String orderAddress) {
        this.orderAddress = orderAddress;
    }

    public double getSumPrice() {
        return sumPrice;
    }

    public void setSumPrice(double sumPrice) {
        this.sumPrice = sumPrice;
    }

//
    public int getStates() {//getStates():返回的时states的值
//        if(states == 0){
//            return "已预定";   //因为返回值时String,所以getStates()函数的类型是String
//        }else{
//            return "已完成";
 //       }
      return states;
    }

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

TestFunction.java

package exercise1;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class TestFunction {
    // 创建 订单集合 保存 多个订单对象
    List<Order> orderList = new ArrayList<>();
    // 创建 菜品集合
    List<Dishes> dishesList = new ArrayList<>();
    /**
     * 创建初始化方法 初始化 订单集合  与 菜品集合
     */
    public void initialize(){
        System.out.println("*************开始初始化************");
        orderList.add(new Order("张青1","红烧带鱼 ",1, "2021-07-18 12:30", "测试地址1", 38, 0));
        orderList.add(new Order("张青2","鱼香肉丝 ", 1,"2021-07-18 12:30", "测试地址2", 20, 0));
        orderList.add(new Order("张青3","红烧带鱼 ",1, "2021-07-18 12:30", "测试地址3", 38, 0));

        dishesList.add(new Dishes("红烧带鱼", 38.0, 10));
        dishesList.add(new Dishes("鱼香肉丝", 20.0, 20));
        dishesList.add(new Dishes("时令鲜蔬", 10.0, 5));

        System.out.println("*************初始化完成******************");
    }
    public int menu(Scanner input){

        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("请选择:");
        return input.nextInt();
    }
   /**
    * 新增订单信息
    */

   public void insertOrder(String ordername,int dishmegsIndex,int num,String ordertime,String orderAddess){

       orderList.add(new Order(ordername,dishesList.get(dishmegsIndex-1).getDishmegs(),
               num,ordertime,orderAddess,num*dishesList.get(dishmegsIndex-1).getPrices(),0));
       System.out.println("订餐成功!");
       System.out.println("您订的是:"+dishesList.get(dishmegsIndex-1).getDishmegs()+"\t\t"+num+"份");
       System.out.println("送餐时间:"+ordertime+"点");
       System.out.println("餐费:"+num*dishesList.get(dishmegsIndex-1).getPrices()+",送餐费0.0元,总计:"+num*dishesList.get(dishmegsIndex-1).getPrices()+"元");


   }
   public void showOrder(){

       int size = orderList.size();
       for (int i = 0; i < orderList.size(); i++) {
           int dishIndex = 0;
           if (orderList.get(i).getOrderNames() != null) {

               for (int j = 0; j < 3; j++) {
                   if (dishesList.get(j).getDishmegs() == orderList.get(i).getOrderNames()) {
                       dishIndex = j;
                       break;
                   }
               }
           }

               System.out.println((i + 1) + "\t\t" + orderList.get(i).getOrderNames() + "\t\t" +
                       orderList.get(i).getOrderDish() + "\t\t" + orderList.get(i).getOrderTimes() + "\t\t" +
                       orderList.get(i).getOrderAddress() + "\t\t" + orderList.get(i).getSumPrice() + "\t\t" +
                       (orderList.get(i).getStates() == 0 ? "已预定" : "已完成") + "\t\t" + dishesList.get(dishIndex).getLoveNum());
           }
       }
       public void upState(Scanner input){

           int toReceiveNum = input.nextInt();
           orderList.get(toReceiveNum-1).setStates(1) ;
           System.out.println("订单签收成功!!");
           System.out.println("输入0返回:");
       }
       public void deleteOrder(Scanner input){

           int toDeleteNum = input.nextInt();//toDeleteNum:要删除的订单编号

           orderList.remove(toDeleteNum-1);

       }
       public void showDishesList(){
           System.out.println("序号\t\t\t菜名\t\t\t单价\t\t\t点赞数");
           for (int i = 0; i < dishesList.size(); i++) {
               System.out.println((i+1)+"\t\t"+dishesList.get(i).getDishmegs()+"\t\t"+dishesList.get(i).getPrices()+"\t\t"+dishesList.get(i).getLoveNum());

           }
       }
       public void AddLoveNum(Scanner input) {
           int AddLoveNum = input.nextInt()-1; //input.nextInt()为什么不能直接给get()中,dishesList.get(input.nextInt()-1)
           dishesList.get(AddLoveNum).setLoveNum(dishesList.get(AddLoveNum).getLoveNum()+1);
           System.out.println("点赞完成");
       }

}

OperatePanel.java

package exercise1;

import java.util.Scanner;

public class OperatePanel {
    public static void main(String[] args) {
        TestFunction testFunction = new TestFunction();
        testFunction.initialize();
        int existsignal = 1;
        Scanner input = new Scanner(System.in);

        do{
            System.out.println("请输入选项:");
            switch(testFunction.menu(input)) {
                case 1:

                    System.out.println("请输入订餐人姓名:");
                    String ordername = input.next();

                    System.out.println("请选择您要点的菜品编号:");
                    int dishmegsIndex = input.nextInt();

                    System.out.println("请选择您需要的份数");
                    int num = input.nextInt();//存放点餐份数

                    System.out.println("请输入送餐时间(送餐时间是10点到20点间整点送餐):");
                    String ordertime = input.next();

                    System.out.println("请输入送餐地址:");
                    String orderAddess = input.next();

                    testFunction.insertOrder(ordername, dishmegsIndex, num, ordertime, orderAddess);
                    System.out.println("输入0返回:");
                    if (input.nextInt() == 0) {   //如果input.nextInt(自动出现的红色数字),删去它
                        break;
                    }
                case 2:
                    System.out.println("***查看餐袋***");
                    System.out.println("序号" + "\t\t" + "订餐人" + "\t\t" + "餐品信息" + "\t\t" + "送餐日期" + "\t\t" + "送餐地址" + "\t\t" + "总金额" + "\t\t" + "订单状态" + "\t\t" + "点赞数");
                    testFunction.showOrder();


                    System.out.println("输入0返回:");
                    if (input.nextInt() == 0) {
                        break;
                    }
                case 3:
                    System.out.println("***签收订单***");
                    System.out.println("请选择要签收的订单编号:");
                    testFunction.upState(input);
                    if(input.nextInt() == 0){
                        break;
                    }
                case 4:
                    System.out.println("***删除订单***");
                    System.out.println("请输入要删除的订单编号:");
                    testFunction.deleteOrder(input);
                    System.out.println("输入0返回:");
                    if(input.nextInt() == 0){
                        break;
                    }
                case 5:
                    System.out.println("***我要点赞***");
                    testFunction.showDishesList();
                    System.out.println("请选择您要点赞的菜品编号:");
                    //disheslist并不在主函数中存在
                    testFunction.AddLoveNum(input);
                    testFunction.showDishesList();
                    System.out.println("输入0返回:");
                    if(input.nextInt() == 0){
                        break;
                    }

                case 6:
                    System.out.println("谢谢使用,欢迎下次");
                    existsignal = 0;
                    
            }

        }while(true);

    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值