(注:物品类 和测试类不在这里放了 前面的1.0和1.1有这里只显示改动的类)
增加工具类InputUtils来解决输入异常的问题
show();
增加商品数量为0时的提示
不输出null商品
展示柜台商品数量 及存储情况
add();
增加商品数量已满的提示
增加商品编号不能重复的判断
update();
首先展示所有商品
根据商品编号(输入要修改的商品编号)
修改商品的价格
首先是增加的工具类 InputUtils
package counterPro;
import java.util.Scanner;
/**
*
* 提供一些输入的方法
*/
public class InputUils {
/**
* 获取功能序号
*
*
* @return
*/
public static int getNum(){
int n=0;
try {
n = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
//如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
System.out.println("-->警告:输入非法数字!!请重新输入");
n=getNum();//递归(调用自身)
}
if(n<0 || n>4){
System.out.println("-->警告:输入非法命令!!请重新输入");
n=getNum();//调用自身
}
return n;//返回输入的数字
}
/**
*
* @return
*/
public static int getGoodsId(){
int n=0;
try {
n = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
//如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
System.out.println("-->警告:输入非法数字!!请重新输入");
n=getGoodsId();//递归(调用自身)
}
return n;//返回输入的数字
}
public static int getPrice(){
int n=0;
try {
n = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
//如果输入非数字,就会抛出异常,被catch语句捕获,在这里处理异常
System.out.println("-->警告:输入非法数字!!请重新输入");
n=getPrice();//递归(调用自身)
}
return n;//返回输入的数字
}
}
Counter类:
package counterPro;
import java.util.Scanner;
/**
*1.2版本
*
*/
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,"卫龙辣条",2.5,"隔壁小孩馋哭了!");
num=2;
}
//展示柜台所有的商品(不能输出null)
public void show(){
/**
* 显示goodses数组中不为null的元素(商品放在goodses数组中)
*/
for (int i = 0; i < goodses.length; i++) {
if(goodses[i]!=null) {
System.out.println(goodses[i]);
}
}
/**
*
* 统计柜台中商品的数量
*/
for (int i = 0; i < goodses.length; i++) {
if(goodses[i]!=null){
num=i+1;//相当于两个商品
}
}
/**
* 显示柜台中商品的数量
*
*/
if(num==10){
System.out.println("柜台里有"+num+"个商品"+"已满!!!");
}else {
System.out.println("柜台里有" + num + "个商品"+"\t"+"柜台数量状态"+num+"/10");
}
if(num==0){
System.out.println("柜台已缺货!!");
}
}
//菜单方法(柜台功能)
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() {
//首先,先展示商品
for (int i = 0; i < goodses.length; i++) {
if(goodses[i]!=null){
System.out.println(goodses[i]);
}
}
//寻找修改价格商品的ID
System.out.println("-->请输入要修改商品价格的编号:");
int goodsId = InputUils.getGoodsId();
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("修改价格成功!!");