柜台商品类作业

商品类

public class Goods {
    private int id;
    private String goodsName;
    private double price;
    private String desc;

    public Goods(int id, String goodsName, double price, String desc) {
        this.id = id;
        this.goodsName = goodsName;
        this.price = price;
        this.desc = desc;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public double getPrice() {
        return price;
    }

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

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public Goods() {
        //构造器{}内,用来做实例的初始化(给对象的属性赋一些初始值)
        super();
    }

    @Override
    public String toString() {
        return "Goods{" +
                "id=" + id +
                ", goodsName='" + goodsName + '\'' +
                ", price=" + price +
                ", desc='" + desc + '\'' +
                '}';
    }
}

柜台类

import java.util.Scanner;

public class Counter {
    private Goods[]goodses = new Goods[10];
    private int num;

    public Counter() {
        this.goodses[0]=new Goods(1,"巧克力",25,"美味可口,恋爱必备!");
        this.goodses[1]=new Goods(2,"卫龙辣条",1,"隔壁小孩馋哭了!");
        num=2;//相当于两个商品

    }

    public void show(){
        if (this.num==0){
            System.out.println("没有");
            return;
        }
        for (int i = 0; i < this.goodses.length; i++) {
            if (this.goodses[i]!=null){
                System.out.println(this.goodses[i]);
            }
        }

    }

    public void main(){
        while (true){
            System.out.println("----------------------------------");
            System.out.println("----------1.展示商品        2.上架商品");
            System.out.println("----------3.下架商品        4.调整价格");
            System.out.println("----------0.退出            --------");

            //选择功能,控制台输入
            System.out.println("-->请输入功能编号:");
            int key =InputUtils.getNum();
            switch (key){
                case 1:show();break;
                case 2:add();break;
                case 3:delete();break;
                case 4:update();break;
                case 0:System.exit(0);//退出jvm
        }


        }
    }
    private void add() {
        //判断是否有空余位置
        if(this.num==this.goodses.length){
            System.out.println("-->警告:柜台已满,不能再添加商品了");
            return;
        }
        System.out.println("-->请输入商品id:");
        int goodsId =InputUtils.getGoodsId();
        //丰富:ID不能重复
        for (int i = 0; i < this.goodses.length; i++) {
            if (this.goodses[i]!=null && this.goodses[i].getId()==goodsId){
                System.out.println("-->警告:当前编号已存在!!请重新输入");
                add();
                return;//由于重复了,后续不执行
            }
        }

        //程序走到这里,说明id没有重复
        System.out.println("-->提示:商品id可以使用!!");

        System.out.println("-->请输入商品名称:");
        String name=new Scanner(System.in).next();

        System.out.println("-->请输入商品价格:");
        double price=InputUtils.getPrice();

        System.out.println("-->请输入商品描述:");
        String desc=new Scanner(System.in).next();

        //把输入的信息装载到Goods对象
        Goods newGoods=new Goods(goodsId, name, price, desc);

        //把商品对象保存柜台数组中为null的位置
        for (int i = 0; i < this.goodses.length; i++) {
            //如果这个下标没有goods商品对象,null,就把商品放进去
            if (this.goodses[i]==null){
                this.goodses[i]=newGoods;
                this.num ++;//商品数量+1
                System.out.println("提示:商品上架成功!!当前商品数量"+this.num);
                return;
            }
        }

    }
    private void update() {
        System.out.println("-->请输入需要修改的商品id:");
        int goodsId=InputUtils.getGoodsId();
        if (goodsId>10 && goodsId<1){
            System.out.println("-->商品不存在");
            return;
        }else {
            System.out.println("-->请输入新的商品名称:");
            String name=new Scanner(System.in).next();

            System.out.println("-->请输入新的商品价格:");
            double price=InputUtils.getPrice();

            System.out.println("-->请输入新的商品描述:");
            String desc=new Scanner(System.in).next();
            //把输入的信息装载到Goods对象
            Goods newGoods=new Goods(goodsId, name, price, desc);

            for (int i = 0; i < this.goodses.length; i++) {
                if (i== goodsId-1){
                    this.goodses[i]=newGoods;
                    System.out.println("修改成功");
                    return;
                }

            }

        }
    }
    private void delete() {
        System.out.println("-->请输入要下架的商品编号:");
        int goodsId=InputUtils.getGoodsId();
        //第一件事,找到这个商品对应商品ID的商品对象
        for (int i = 0; i < this.goodses.length; i++) {
            //查找对应id的商品
            if (this.goodses[i]!=null && this.goodses[i].getId()==goodsId){
                //找到以后,删除
                this.goodses[i]=null;
                //商品 数量减一
                this.num--;
                System.out.println("提示:下架成功!!当前商品数量"+this.num);
                //还需不需要继续循环
                return;//跳出方法(只有找到商品才执行)
            }
        }
        //如果没找到商品,就会执行到这里
        System.out.println("-->警告:未找到商品!!");
    }

}

输入工具

import java.util.Scanner;

/**
 * 提供一些输入的方法
 */
public class InputUtils {
    /**
     * 获取输入的商品编号
     * @return
     */
    public static int getNum(){
        int n=0;//给一个初始值
        try {
            n = new Scanner(System.in).nextInt();//Ctrl+Alt+T,选择try..catch
        } catch (Exception e) {
            //e.printStackTrace();
            //如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
            System.out.println("-->警告:输入非法数字!!,请重新输入");
            n=getNum();//递归
        }

        //必须是0-4
        if (n<0 || n>4){
            System.out.println("-->警告:输入非法数字!!,请重新输入");
            n=getNum();//递归
        }
        return n;//返回输入的数字
    }

    public static int getGoodsId(){
        int n=0;//给一个初始值
        try {
            n = new Scanner(System.in).nextInt();//Ctrl+Alt+T,选择try..catch
        } catch (Exception e) {
            //e.printStackTrace();
            //如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
            System.out.println("-->警告:输入非法数字!!,请重新输入");
            n=getGoodsId();//递归
        }
        return n;//返回输入的数字
    }

    public static double getPrice(){
        double n=0;//给一个初始值
        try {
            n = new Scanner(System.in).nextDouble();//Ctrl+Alt+T,选择try..catch
        } catch (Exception e) {
            //e.printStackTrace();
            //如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
            System.out.println("-->警告:输入非法数字!!,请重新输入");
            n=getPrice();//递归
        }
        return n;//返回输入的数字
    }

}

测试类

public class CounterTest {
    public static void main(String[] args) {
        Counter cou=new Counter();
        //开启菜单
        cou.main();
    }
}

运行结果

----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
1
Goods{id=1, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=2, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
2
-->请输入商品id:
3
-->提示:商品id可以使用!!
-->请输入商品名称:
萝卜
-->请输入商品价格:
1.3
-->请输入商品描述:
萝卜干
提示:商品上架成功!!当前商品数量3
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
4
-->请输入需要修改的商品id:
3
-->请输入新的商品名称:
胡萝卜
-->请输入新的商品价格:
2.3
-->请输入新的商品描述:
萝卜色
修改成功
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
1
Goods{id=1, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=2, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
Goods{id=3, goodsName='胡萝卜', price=2.3, desc='萝卜色'}
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
3
-->请输入要下架的商品编号:
2
提示:下架成功!!当前商品数量2
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:
1
Goods{id=1, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=3, goodsName='胡萝卜', price=2.3, desc='萝卜色'}
----------------------------------
----------1.展示商品        2.上架商品
----------3.下架商品        4.调整价格
----------0.退出            --------
-->请输入功能编号:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值