通过我们对柜台中商品的操作我们需要编写一些功能方便管理柜台中的商品
上次只是展示了一下柜台中方的商品
这次新增了一些功能
- 菜单系统
- 展示商品
- 上架商品
- 下架商品
- 调整价格
- 退出系统
一、创建物品类
封装属性、提供get和set方法、创建有参无参构造器、重写toString()方法
package zuoye.d0708;
public class Goods {
private Integer id;// 商品编号
private String goodsName; //商品名称
private double price; //商品价格
private String desc; //商品描述
@Override
public String toString() {
return "Goods{" +
"id=" + id +
", goodsName='" + goodsName + '\'' +
", price=" + price +
", desc='" + desc + '\'' +
'}';
}
public Goods(Integer id, String goodsName, double price, String desc) {
this.id = id;
this.goodsName = goodsName;
this.price = price;
this.desc = desc;
}
public Goods() {
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
}
二、创建Counter类
所有的需求功能都在Counter类中编写
package zuoye.d0708;
import counterPro.InputUils;
import java.util.Scanner;
/**
*1.0版本
*
*/
public class Counter {
private Integer num;
Goods[] goodses=new Goods[10];
Scanner scanner = new Scanner(System.in);
//初始化2个商品
public Counter() {
this.goodses[0]=new Goods(1001,"巧克力",25,"美味可口,恋爱必备!");
this.goodses[1]=new Goods(1002,"卫龙辣条",1,"隔壁小孩馋哭了!");
num=2;
}
//展示柜台所有的商品
public void show(){
/**
* 显示goodses数组中不为null的元素(商品放在goodses数组中)
*/
for (int i = 0; i < goodses.length; i++) {
System.out.println(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 = InputUils.getNum();
switch (key){
case 1:show();break;
case 2:add();break;
case 3:delete();break;
case 4:update();break;
case 0:System.exit(0);
}
}
}
/**
* 调整价格
*
*/
private void update() {
//寻找修改价格商品的ID
System.out.println("-->请输入要修改商品价格的编号:");
int goodsId = scanner.nextInt();
for (int i = 0; i < goodses.length; i++) {
if(goodses[i]!=null && goodses[i].getId()==goodsId){
System.out.println("请输入修改的价格");
goodses[i].setPrice(new Scanner(System.in).nextDouble());
System.out.println("修改价格成功!!");
return;
}
}
System.out.println("警告!!未找到商品...");
update();
}
/**
* 下架商品
*/
private void delete() {
System.out.println("-->请输入要下架商品的编号:");
int goodsId = scanner.nextInt();
//第一件事 找到这个对应商品ID的商品对象
for (int i = 0; i < goodses.length; i++) {
//查找对应的商品
if(this.goodses[i]!=null && this.goodses[i].getId()==goodsId){
//找到后赋值为null
this.goodses[i]=null;
//商品数量减一
this.num--;
System.out.println("-->提示:下架成功!!当前商品数量"+this.num);
//还需不需要继续循环
return;//结束循环
}
}
System.out.println("-->警告!!未找到商品...");
delete();
}
/**
* 上架商品
*/
private void add() {
System.out.println("-->请输入商品编号");
int goodsId = scanner.nextInt();
//丰富: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 = InputUils.getPrice();
System.out.println("-->请输入商品描述");
String desc = new Scanner(System.in).next();
//把输入的信息
Goods newGoods = new Goods(goodsId,name,price,desc);
for (int i = 0; i < goodses.length; i++) {
if(goodses[i]==null){
goodses[i]=newGoods;
//商品加一
this.num++;
System.out.println("商品ID为"+goodsId+"\n"+"上架成功!!当前商品数量"+this.num);
break;
}
}
}
}
测试类:CounterTest
程序入口main方法中,创建柜台对象,调用Counter类中的main方法进入管理系统
package counterPro;
public class CounterTest {
public static void main(String[] args) {
//new 柜台类
Counter counter=new Counter();
//调用柜台类 show方法
//counter.show();
counter.main();
}
}
1.展示商品效果
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
1
Goods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
Goods{id=5, goodsName='5', price=5.0, desc='5'}
null
null
null
null
null
null
null
2.上架商品效果
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
2
-->请输入商品编号
11
-->提示:商品id可以使用!!
-->请输入商品名称
1
-->请输入商品价格
1
-->请输入商品描述
1
商品ID为11
上架成功!!当前商品数量4*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
1
Goods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}Goods{id=11, goodsName='1', price=1.0, desc='1'}
null
null
null
null
null
null
null
3.下架商品效果
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
3
-->请输入要下架商品的编号:
11
-->提示:下架成功!!当前商品数量3
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
1
Goods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Goods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}null
null
null
null
null
null
nullnull
4.调整价格效果
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
4
-->请输入要修改商品价格的编号:
1001
请输入修改的价格
1000
修改价格成功!!
*************柜台商品系统管理***************
----------1.展示商品 2.上架商品 ------------
----------3.下架商品 4.调整价格 ------------
************ 0.退出系统 ******************
-->请输入功能序号
1
Goods{id=1001, goodsName='巧克力', price=1000.0, desc='美味可口,恋爱必备!'}
Goods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
null
null
null
null
null
null
null
null