Java案例———超市购物系统(类的封装)

一、任务描述:

购物时,如果购物者需要购买的商品在超市里有,则提示购物者买到了某商品

               如果没有所需的商品,则提示白跑了一趟

 

 

二、运行结果:

 

 

三、实现思路

1.包含了超市,商品,购物者三个对象

2.定义商品类,有自己的名称属性

3.定义超市类,有名称、

                          仓库,仓库里会有很多商品,因此用数组;

                         卖货的方法

4.购物者是人,需要定义一个Person对象,有名称属性,购物的方法

5.编写测试类,在main方法中,需要创建商品对象,超市对象,人,  并使用对象中的方法来实现购物程序

 

 

四、实现代码:

/**
 *@Title Product.java
 *@time 2019年5月28日 下午9:57:28
 *@author wangyue
 *@version 1.0
 *@description 
 *商品类:
 *商品名称
 */
package cn.ch03.task01;

public class Product {
	private String proName; // 商品名字 一般成员变量是private

	public String getProName() {
		return proName;
	}

	public void setProName(String proName) {
		this.proName = proName; // this表示成员变量

	}

}

 

/**
 *@Title Market.java
 *@time 2019年5月28日 下午10:03:18
 *@author wangyue
 *@version 1.0
 *@description 
 *超市类:
 *超市名称
 *仓库
 *卖货的方法
 */
package cn.ch03.task01;

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

	public String getMarketName() {
		return marketName;

	}

	public void setMarketName(String marketName) {
		this.marketName = marketName;

	}

	public Product[] getMarketArr() {
		return marketArr;

	}

	public void setMarketArr(Product[] marketArr) {  
		this.marketArr = marketArr;

	}
	
	
	//重要!!!  为什么是保护类型?
	Product sellProduct(String name) { 			  //超市卖货的方法 ,指定货物名
		for(int i=0;i<marketArr.length;i++)
		{
			if(marketArr[i].getProName()==name){
				return marketArr[i];                //将该商品返回!
			} 
			
		}
		return null;
		
	}
}

 

 

/**
 *@Title Person.java
 *@time 2019年5月28日 下午10:14:21
 *@author wangyue
 *@version 1.0
 *@description TODO
 *购物者类:
 *人名
 *购物方法
 */
package cn.ch03.task01;
public class Person {
	private String personName;      //人名
	public String getPersonName() {
		return personName;
		
	}
	public void setPersonName(String personName) {
		this.personName=personName;
		
	}
	
	//为什么是保护类型???
	Product shopping(Market market,String name) {    //购物方法 指定超市和货物
		return market.sellProduct(name);
		
	}
	
}
/**
 *@Title Shopping.java
 *@time 2019年5月28日 下午10:19:11
 *@author wangyue
 *@version 1.0
 *@description 
 *购物主函数
 */
package cn.ch03.task01;

public class Shopping {

	public static void main(String[] args) {
		// 创建商品对象,初始化
		Product p1 = new Product();
		Product p2 = new Product();
		Product p3 = new Product();
		p1.setProName("西瓜");
		p2.setProName("油桃");
		p3.setProName("香蕉");

		// 创建超市对象
		Market market = new Market();
		market.setMarketName("大润发");
		market.setMarketArr(new Product[] { p1, p2, p3 }); // 创建的同时 实例化

		// 创建人
		Person person = new Person();
		person.setPersonName("苏大强");
		
		//调用购物方法
		Product res = person.shopping(market,"哈哈");
		if (res != null) {
			System.out.println(person.getPersonName() + " 在 "+ market.getMarketName() + " 买到了 " + p1.getProName());

		} else {
			System.out.println(person.getPersonName() + " 在 " + market.getMarketName() + " 什么也没买到");

		}

	}

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值