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

JAVA学习DAY-8

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

JAVA学习DAY-8

目录

点餐系统的设计

1.设计逻辑

2.菜品类的定义:

3.测试类代码:

 完整正确代码:


点餐系统的设计

1.设计逻辑

 

2.菜品类的定义:
public class Dish {
    private String name;    //名字
    private Double price;   //价格
    private Integer stock;  //库存
    private Integer saleNum;//销售量
    private Integer likeNum;//点赞数

    public void show(){
        System.out.println("*****" + "名称:" + this.name + "*****");
        System.out.println("价格:" + this.price + "t库存" + this.stock + "t已售:" + this.saleNum + "t点赞数" + this.likeNum);
        System.out.println("*******************************");
    }

    //销售量统计方法
    public void saleOut(int n){
        this.saleNum += n;
    }

    //库存变化
    public void stockOut(int n){
        this.stock -= n;
    }

    //点赞功能
    public void like(){
        this.likeNum ++;
    }

    public Dish() {
    }

    public String getName() {
        return name;
    }

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

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Integer getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(Integer saleNum) {
        this.saleNum = saleNum;
    }

    public Integer getLikeNum() {
        return likeNum;
    }

    public void setLikeNum(Integer likeNum) {
        this.likeNum = likeNum;
    }
}

3.测试类代码:

   看下面一段菜品添加代码:

添加一个菜品烤猪蹄:

 

此时点餐刚刚添加的烤猪蹄

有什么问题?

其中代码主要部分:

 

正确代码,加上两段设值0:

调试结果:

 

点赞功能:

 

 完整正确代码:
import java.util.Scanner;

public class Demo01 {
    static Scanner sc = new Scanner(System.in);
    static Dish[] dishArr = new Dish[10];
    static {
        Dish dish1 = new Dish();
        dish1.setName("糖醋排骨");
        dish1.setPrice(50.0);
        dish1.setStock(10);
        dish1.setSaleNum(100);
        dish1.setLikeNum(20);
        dishArr[0] = dish1;

        Dish dish2 = new Dish();
        dish2.setName("波士顿大龙虾");
        dish2.setPrice(2500.0);
        dish2.setStock(0);
        dish2.setSaleNum(10);
        dish2.setLikeNum(5);
        dishArr[1] = dish2;

        Dish dish3 = new Dish();
        dish3.setName("面包诱惑");
        dish3.setPrice(40.0);
        dish3.setStock(5);
        dish3.setSaleNum(100);
        dish3.setLikeNum(66);
        dishArr[2] = dish3;

    }

    public static void main(String[] args) {
        int choice = 0;
        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("7.退出");
            System.out.println("请选择业务:");
            choice = sc.nextInt();
            switch (choice){
                case 1:
                    display();
                    break;
                case 2:
                    addDish();
                    break;
                case 3:
                    deleteDish();
                    break;
                case 4:
                    dilatation();
                    break;
                case 5:
                    saleDish();
                    break;
                case 6:
                    likeDish();
                    break;
            }
        }while(choice != 7);
        System.out.println("下次再来byebye~");
    }


    //1.展示
    private static void display() {
        System.out.println("欢迎进入菜品展示业务!");
        for (int i = 0; i < dishArr.length; i++) {
            System.out.print((i+1) + "号菜品:");
            if(dishArr[i] == null){
                System.out.println("未登记");
            }else {
                dishArr[i].show();
                System.out.println();
            }
        }
    }

    //2.添加
    private static void addDish() {
        if(dishArr[dishArr.length-1] != null){
            System.out.println("菜品已满,请先扩容!");
            return;
        }else {
            System.out.println("*****进入添加菜品业务*****");
            Dish dish = new Dish();
            System.out.println("请输入要添加的菜品名称:");
            dish.setName(sc.next());
            System.out.println("请输入要添加的菜品价格:");
            dish.setPrice(sc.nextDouble());
            System.out.println("请输入该菜品的库存数量:");
            dish.setStock(sc.nextInt());
            for (int i = 0; i < dishArr.length; i++) {
                if(dishArr[i] == null){
                    dishArr[i] = dish;
                    dish.setSaleNum(0);
                    dish.setLikeNum(0);
                    System.out.println("菜品添加成功!");
                    break;
                }
            }
        }
    }

    //3.删除(删除后前移)
    private static void deleteDish() {
        System.out.println("*****欢迎进入删除菜品服务*****");
        display();
        System.out.println("请输入要删除的菜品号:");
        Integer no = sc.nextInt() - 1;
        if(dishArr[no] == null){
            System.out.println("菜品不存在,无法删除!");
            return;
        }else if(dishArr[no].getStock() != 0 ){         //有剩余库存不删除
            System.out.println("仍有库存,无法删除!");
            return;
        }else {
            for (int i = no; i < dishArr.length-1; i++) {
                   dishArr[i] = dishArr[i+1];
            }
            System.out.println("菜品删除成功!");
        }
    }

    //4.扩容
    private static void dilatation() {
        System.out.println("扩容前菜品数组长度:" + dishArr.length);
        Dish[] newDishArr = new Dish[dishArr.length + 10];
        for (int i = 0; i < dishArr.length; i++) {
            newDishArr[i] = dishArr[i];
        }
        dishArr = newDishArr;
        System.out.println("扩容后菜品数组长度:" + dishArr.length);
    }

    //5.点餐
    private static void saleDish() {
        System.out.println("*****欢迎进入点餐业务*****");
        display();
        System.out.println("请输入要点的菜品编号:");
        Integer i = sc.nextInt();
        if(dishArr[i-1] == null){
            System.out.println("不存在该菜品,无法点餐!");
            return;
        }else if(dishArr[i-1].getStock() <= 0){
            System.out.println("菜品数量不足,无法点餐!");
            return;
        }else if(dishArr[i-1].getStock() != 0){
            System.out.println("请输入要点的份数:");
            Integer n = sc.nextInt();
            if(n > dishArr[i-1].getStock()){
                System.out.println("点餐数量超过库存数,无法点餐!");
                return;
            }else if(n <= 0 ) {
                System.out.println("输入有误,无法点餐!");
                return;
            }else {
                Double money = (dishArr[i-1].getPrice()) * n;
                System.out.println("你需要支付费用:" + money);
                System.out.println("请输入缴费金额:");
                if (sc.nextDouble() >= money) {
                    System.out.println("缴费成功,等待用餐!");
                    dishArr[i-1].saleOut(n);            //调用销售量统计方法
                    dishArr[i-1].stockOut(n);           //调用库存变化方法
                } else {
                    System.out.println("金额不足,缴费失败!");
                }
            }
        }
    }

    //6.点赞
    private static void likeDish() {
        System.out.println("*****进入点餐业务*****");
        display();
        System.out.println("请输入你要点赞的菜品:");
        Integer i = sc.nextInt();
        if(dishArr[i-1] == null){
            System.out.println("不存在该菜品,无法点赞!");
            return;
        }else {
            dishArr[i-1].like();
            System.out.println("点赞成功!");
        }
    }
}

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

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

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