java基础练习2

编写一个超市购物程序,实现超市购物功能。
超市、商品、仓库、购物者等之间存在的联系,在编程时可以按照符合人类思维习惯的编程思想来实现
类分析:
·超市类:包含超市名称、仓库以及商品销售活动在这里插入图片描述

package Girl.bilibili;

public class Market {
    //超市名称
    private String marketName;
    //超市仓库
    private Product[] productArr;

    public Market(String marketName, Product[] productArr) {
        this.marketName = marketName;
        this.productArr = productArr;
    }
    //用于其他类得到本类的超市名称
    public String getMarketName() {
        return marketName;
    }
    //用于其他类修改本类的超市名称
    public void setMarketName(String marketName) {
        this.marketName = marketName;
    }
    //用于其他类得到本类的超市仓库货物
    public Product[] getProductArr() {
        return productArr;
    }
    //用于其他类修改本类的超市仓库货物
    public void setProductArr(Product[] productArr) {
        this.productArr = productArr;
    }
    //按照指定商品卖货
    public Product sell(String name) {
        for (int i = 0; i < productArr.length; i++) {
            if (productArr[i] != null && name.equals(productArr[i].getProName())) {
                return productArr[i];
            }
        }
        return null;
    }
}

·
商品类:包含商品名称
在这里插入图片描述

package Girl.bilibili;

public class Product {
    private String proName;

    public Product(String proName) {
        this.proName = proName;
    }

    public String getProName() {
        return proName;
    }

    public void setProName(String proName) {
        this.proName = proName;
    }
}

·购物者类:包含姓名及购物活动
在这里插入图片描述

package Girl.bilibili;

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

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

    public Product shopping(Market market,String name) {
       //返回一个Product对象
        //需要从仓库中删除他
        //仓库中有可能没有回返回null应该考虑到防止空指针异常
        if (market.sell(name) == null) {
            System.out.println("未找到该物品");
            return null;
        } else {
            //此处可以用下面方法来进行仓库里面东西删除
//            Product a = market.sell(name);
            Product a = market.sell(name);
            System.out.println(a.getProName());
            return market.sell(name);
        }
    }

}

·测试类:在其main方法中,需要创建商品对象、超市对象以及人, 并使用这些对象中定义的方法实现购物程序。

 package Girl.bilibili;

public class Main {
    public static void main(String[] args) {
        //创建物品数组,为之后创建对象使用

        Product[] products = new Product[]{
                new Product("卫龙辣条"),
                new Product("小浣熊干脆面"),
                new Product("彩虹糖")
        };

        //创建超市
        Market market = new Market("didi",products);
        Person person = new Person("月月");
        person.shopping(market,"卫龙辣条");
    }
}
基于JAVA超市自助购物系统的设计与实现 资料包里包含完整源码+软件环境(也就是安装包都有)+视频(代码调试、运行、讲解视频) 基于RFID的自动识别技术,通过无线射频方式实时获得磁卡对超市物品的电子标签进行读取,然后将数据通过网络传输至服务器,在应用层开发一个管理系统,对超市物品信息、店内消费等各种行为进行管理和显示。系统需有登录注册功能商品的信息管理,付款等功能。 拟解决的主要问题 本课题拟解决主要问题如下: (1)使用RFID自动识别技术,对超市商品信息进行读取 (2) 将接受到的数据传输给服务器 (3)在应用层管理系统中对信息进行管理 (4) 管理员对整个后台系统的商品进行管理 整个系统的设计: (1). (管理员操作)超市每上架一个新产品时,就在软件端进行入库注册、注册时填入商品的名称、编号(可以使用UUID动态生成)、数量、价格、图片、数据都保存在软件端的数据库里。 (2). (管理员操作)开卡-入库: 上架的新产品入库注册之后,需要为这个产品办理一张电子标签卡,这个卡里存放着产品的编号;这个卡就放在产品货架上(与产品对应),如果后面这个产品的信息如果查询,就读取电子标签里的编号,到数据库里查询。 (3). (管理员操作)开卡和查询的数据传输: 设备端与软件端采用 TCP网络方式进行通信;设备端当做TCP客户端,软件端当做TCP服务器;当设备端查询产品的电子标签时,设备端读取编号之后,会通过约定的数据格式通过网络传递给软件端。 当软件端开卡注册时,也会用约定好的数据格式传递给设备端,如果设备端收到数据,开发板上的LED会点亮;这时把IC拿到RC522射频模块上刷一下即可;如果成功写入LED灯就会关闭。 (4). 软件端的设计: 有注册界面、登录界面; 主界面上显示店内有所有登记入库的商品信息,每个产品有图片进行显示、图片下面就显示产品的数量与价格; 管理员界面: 可以进行商品添加、设计价格、修改信息等。 查询页面: 输入产品的信息,可以查询产品的所有详细信息。 顾客可以选择购买的商品进行,然后点击支付。
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值