商品类
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.退出 --------
-->请输入功能编号: