Java吃货联盟订餐系统(改进版)数组+对象+方法

知识储备:变量、数据类型、选择结构、循环结构、数组、对象、方法

代码如下:

创建订餐类

public class Order {
    private String names;
    private String dishMegs;
    private int time;
    private  String address;
    private  int states;
    private double sumprice;

    public Order() {
    }

    public Order(String names, String dishMegs, int time, String address, int states, double sumprice) {
        this.names = names;
        this.dishMegs = dishMegs;
        this.time = time;
        this.address = address;
        this.states = states;
        this.sumprice = sumprice;
    }

    /**
     * 获取
     * @return names
     */
    public String getNames() {
        return names;
    }

    /**
     * 设置
     * @param names
     */
    public void setNames(String names) {
        this.names = names;
    }

    /**
     * 获取
     * @return dishMegs
     */
    public String getDishMegs() {
        return dishMegs;
    }

    /**
     * 设置
     * @param dishMegs
     */
    public void setDishMegs(String dishMegs) {
        this.dishMegs = dishMegs;
    }

    /**
     * 获取
     * @return time
     */
    public int getTime() {
        return time;
    }

    /**
     * 设置
     * @param time
     */
    public void setTime(int time) {
        this.time = time;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 获取
     * @return states
     */
    public int getStates() {
        return states;
    }

    /**
     * 设置
     * @param states
     */
    public void setStates(int states) {
        this.states = states;
    }

    /**
     * 获取
     * @return sumprice
     */
    public double getSumprice() {
        return sumprice;
    }

    /**
     * 设置
     * @param sumprice
     */
    public void setSumprice(double sumprice) {
        this.sumprice = sumprice;
    }

    public String toString() {
        return "Order{names = " + names + ", dishMegs = " + dishMegs + ", time = " + time + ", address = " + address + ", states = " + states + ", sumprice = " + sumprice + "}";
    }
}

创建菜单类

public class Dish {
    private String dishname;
    private  double price;
    private  int praiseNums;

    public Dish() {
    }

    public Dish(String dishname, double price, int praiseNums) {
        this.dishname = dishname;
        this.price = price;
        this.praiseNums = praiseNums;
    }

    /**
     * 获取
     * @return dishname
     */
    public String getDishname() {
        return dishname;
    }

    /**
     * 设置
     * @param dishname
     */
    public void setDishname(String dishname) {
        this.dishname = dishname;
    }

    /**
     * 获取
     * @return price
     */
    public double getPrice() {
        return price;
    }

    /**
     * 设置
     * @param price
     */
    public void setPrice(double price) {
        this.price = price;
    }

    /**
     * 获取
     * @return praiseNums
     */
    public int getPraiseNums() {
        return praiseNums;
    }

    /**
     * 设置
     * @param praiseNums
     */
    public void setPraiseNums(int praiseNums) {
        this.praiseNums = praiseNums;
    }

    public String toString() {
        return "Dish{dishname = " + dishname + ", price = " + price + ", praiseNums = " + praiseNums + "}";
    }
}

创建实现

import java.util.Scanner;
public class Demo {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Order[] oreders = new Order[4];
//        存入订餐信息
        Order order = new Order("张晴","红烧带鱼 2份",12,"天成路209号",0,38.0);
        Order order1 = new Order("张晴","鱼香肉丝 1份",12,"天成路209号",0,76.0);
        oreders[0]=order;
        oreders[1]=order1;
        //数据的主体:一组餐品信息
        Dish[] dishes = new Dish[3];
        Dish dish = new Dish("红烧带鱼",38.0,0);
        Dish dish1 = new Dish("鱼香肉丝",18.0,0);
        Dish dish2 = new Dish("时令蔬菜",10.0,0);
        dishes[0]=dish;
        dishes[1]=dish1;
        dishes[2]=dish2;
        //进行主体框架搭建
        int number;
        a:do{
//            调用欢迎
             show();
            int choose = scanner.nextInt();
          //true:记录找到一个为空的位置,可以插入
            switch (choose){
                case 1:
//                    进行点餐
                    boolean order2 = Order(oreders, dishes);
                    if(!order2){
                        System.out.println("对不起,你的餐袋已满");
                    }
                    break;
                case 2:
//                    查看订单
                    Lookorder(oreders);
                    break;
                case 3:
//                     进行签收订单
                    sign(oreders);
                    break;
                case 4:
//                删除订单
                    delete(oreders);
                    break;
                case 5:
//                进行点赞
                    Give(dishes);
                    break;
                case 6:
                    //  退出系统
                    break a;
                default:
                    break a;
            }
            System.out.print("输入0返回:");
            number = scanner.nextInt();
        }while (number==0);
        System.out.println("欢迎下次登录");
    }
//    展示欢迎界面
    public  static void show(){
        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.print("请选择:");
    }
//    进行订餐
    public  static boolean Order(Order[] names,Dish[] dishes){
        //  我要订餐
        System.out.println("*****我要订餐******");
        boolean isAdd=false;
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < names.length; i++) {
            if(names[i]==null){
                isAdd=true;
                System.out.println("序号\t餐品名\t单价\t点赞数");
                for (int j = 0;j< dishes.length; j++) {
                    String prices= dishes[j].getPrice()+"元";
                    String praiseNum=dishes[j].getPraiseNums()+"赞";
                    System.out.println((j+1)+"\t"+dishes[j].getDishname()+"\t"+prices+"\t"+praiseNum);
                }
                //输入所需要的餐品编号以及份数
                System.out.print("请选择所定餐品序号:");
                //选选择的餐品序号
                int id = scanner.nextInt();
                String dishname = dishes[id - 1].getDishname();
                System.out.print("请选择所定份数:");
                //订多少份数
                int numbers = scanner.nextInt();
                //输入订餐人姓名
                System.out.print("请输入订餐人姓名:");
                String name = scanner.next();
                System.out.print("请输入送餐时间(10~20整点送餐):");
                int time = scanner.nextInt();
                //判断输入的送餐时间是否在10点到20点范围
                while (time<10||time>20){
                    System.out.println("对不起,您输入的有误,范围在10~20之间");
                    time = scanner.nextInt();
                }
                //送餐地址
                System.out.print("请输入送餐地址:");
                String addres = scanner.next();
                //计算餐费
                double sumPrice=dishes[id-1].getPrice()*numbers;
                //送餐费,当餐费达到50元时,免掉元配送费
                double deliCharge=sumPrice>=50?0.0:6.0;
                //显示订单信息
                System.out.println("订餐成功!");
                System.out.println("您订的是:"+dishname);
                System.out.println("订餐人:"+name);
                System.out.println("订餐时间为:"+time);
                System.out.println("订餐地址:"+addres);
                System.out.println("餐费:"+sumPrice+"送餐费:"+deliCharge+"总和:"+(sumPrice+deliCharge));
                //保存数据
                Order order = new Order();
                order.setNames(name);
                order.setDishMegs(dishname+numbers+"份");
                order.setTime(time);
                order.setAddress(addres);
                order.setStates(0);
                order.setSumprice(sumPrice+deliCharge);
                names[i]=order;
                return isAdd;
            }
        }
        return isAdd;
    }
//    查看菜单
    public static void Lookorder(Order[] names){
//         进行查看餐袋
                    System.out.println("*****查看餐袋******");
                    System.out.println("序号\t订餐人\t所订餐品信息\t送餐时间\t\t送餐地址\t\t总金额\t状态");
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null){
                         String state;
                            if(names[i].getStates()==0){
                                state="已预定";
                            }else {
                                state="已完成";
                            }
                            System.out.println((i+1)+"\t"+names[i].getNames()+"\t\t"+names[i].getDishMegs()+"\t"+names[i].getTime()+"点"+"\t"+names[i].getAddress()+"\t\t"+names[i].getSumprice()+"元"+"\t"+state);
                        }
                    }
    }
//    签收订单
    public static  void  sign(Order[] names){
            Scanner scanner = new Scanner(System.in);
              System.out.println("*****签收订单******");
                    System.out.print("请输入所要签收订单的序号:");
                    boolean qianshou=false;
                    int id = scanner.nextInt();
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null&&names[i].getStates()==1&&id==i+1){
                            System.out.println("该订单已签收,不能重复签收");
                            qianshou=true;
                            break ;
                        }
                        else if(names[i]!=null&&names[i].getStates()==0&&id==i+1) {
                            names[i].setStates(1);//状态值改为已完成状态
                            System.out.println("订单签收成功");
                            qianshou=true;
                            break ;
                        }
                    }
                    if(!qianshou){
                        System.out.println("该订单不存在");
                    }
    }
//    删除订单
    public  static  void  delete(Order[] names){
        Scanner scanner = new Scanner(System.in);
        System.out.println("*****删除订单******");
                    System.out.print("请输入要删除的订单号:");
                    int deleteid = scanner.nextInt();
                    //删除订单的下标
                    int index=-1;
                    //记录是否找到此订单
                    boolean isDelFind=false;
                    for (int i = 0; i < names.length; i++) {
                        if(names[i]!=null&&names[i].getStates()==1&&deleteid==i+1){
                            index=i;
                            names[index]=null;
                            isDelFind=true;
                            System.out.println("删除成功!");
                            break ;
                        }
                        else if(names[i]!=null&&names[i].getStates()==0&&deleteid==i+1){
                            System.out.println("您选择的订单未签收,不能删除!");
                            isDelFind=true;
                        }
                    }
                    if(!isDelFind){
                        System.out.println("没找到此订单");
                    }
    }
//    进行点赞
    public static void Give(Dish[] dishes){
        Scanner scanner = new Scanner(System.in);
        System.out.println("*****我要点赞******");
                    //输出菜单
                    System.out.println("序号\t餐品名\t单价");
                    for (int j = 0;j< dishes.length; j++) {
                        String prices= dishes[j].getPrice()+"元";
                        System.out.println((j+1)+"\t"+dishes[j].getDishname()+"\t"+prices);
                    }
                    System.out.print("请输入要点赞的订单号:");
                    int dianzan = scanner.nextInt();
                    boolean dian=false;
                    //判断是否存在
                    for (int i = 0; i < dishes.length; i++) {
                        if(dishes[i]!=null&&dianzan==i+1){
                            dian=true;
                            dishes[i].setPraiseNums(dishes[i].getPraiseNums()+1);
                            System.out.println("点赞成功");
                            break ;
                        }
                    }
                    if(!dian){
                        System.out.println("没有找到该点赞菜单");
                    }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值