1.初步设计
package co.hp.lx;
public class Lxgoods {
//商品属性,私有,相对安全
private int id;
private String goodsName;
private double price;
private String desc;
//提供get set方法,来调用被private修饰的属性
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 Lxgoods() {
}
public Lxgoods(int id, String goodsName, double price, String desc) {
this.id = id;
this.goodsName = goodsName;
this.price = price;
this.desc = desc;
}
//重写tostring方法,可以直接显示数据
@Override
public String toString() {
return "Lxgoods{" +
"id=" + id +
", goodsName='" + goodsName + '\'' +
", price=" + price +
", desc='" + desc + '\'' +
'}';
}
}
package co.hp.lx;
import java.util.Scanner;
public class CounterLx {
//柜台商品列表,固定10个商品位置
private Lxgoods[] lxgoods = new Lxgoods[10];
private int num;
//无参构造器初始化2个商品
public CounterLx() {
this.lxgoods[0] = new Lxgoods(1001,"巧克力",25,"美味可口,恋爱必备!");
this.lxgoods[1] = new Lxgoods(1002,"卫龙辣条",1,"隔壁小孩馋哭了!");
num = 2;
}
//展示柜台所有的商品(不能输出null)
private void show(){
System.out.println("-->商品货架信息");
for (int i = 0; i < this.lxgoods.length; i++) {
if (this.lxgoods[i] != null){
System.out.println(this.lxgoods[i]);
}
}
}
//修改商品价格
private void updata() {
System.out.println("updata");
}
//上架商品
private void add() {
System.out.println("add");
}
//下架商品
private void delete() {
System.out.println("delete");
}
public void main(){
while (true){
System.out.println("-->欢迎使用商品管理系统");
System.out.println("-->输入1显示所有商品信息");
System.out.println("-->输入2下架商品");
System.out.println("-->输入3上架商品");
System.out.println("-->输入4修改商品价格");
System.out.println("-->输入0退出商品货架");
System.out.println("-->请输入热键:");
int i = new Scanner(System.in).nextInt();
switch (i){
case 1:show();
break;
case 2:delete();
break;
case 3:add();
break;
case 4:updata();
break;
case 0:System.exit(0);//退出jvm
}
}
}
}
初步运行结果
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
1
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Lxgoods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
2
delete
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
3
add
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
4
updata
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
0
2.健壮性调整
显示所有商品信息
//展示柜台所有的商品(不能输出null)
private void show(){
//因为要考虑没有商品的时候
if (this.num == 0){
System.out.println("货架上没有商品了");
}
System.out.println("-->商品货架信息");
for (int i = 0; i < this.lxgoods.length; i++) {
if (this.lxgoods[i] != null){
System.out.println(this.lxgoods[i]);
}
}
System.out.println("货架目前商品数量"+num);
}
运行结果
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
1
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Lxgoods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
货架目前商品数量2
下架商品
//下架商品
private void delete() {
System.out.println("请输入要删除的商品编号:");
int id = 0;
try {
id = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
System.out.println("请输入正确的格式如:1001...");
}
for (int i = 0; i < this.lxgoods.length; i++) {
if(this.lxgoods[i] != null && this.lxgoods[i].getId() == id) {
this.lxgoods[i] = null;
num--;
//System.out.println("货架目前商品数量" + num);
show();
return;
}
}
System.out.println("商品不存在");
delete();
}
运行结果
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
2
请输入要删除的商品编号:
kndls
请输入正确的格式如:1001...
商品不存在
请输入要删除的商品编号:
1002
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
货架目前商品数量1
上架商品
//上架商品
private void add() {
// System.out.println("add");
//判断货架是否还有空位,有空位才可以添加
if (this.lxgoods.length == num) {
System.out.println("糟糕!商品没位置放了");
return;
}
System.out.println("请输入要添加的商品编号:");
int id = 0;
try {
id = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
System.out.println("请输入正确的格式如:1001...");
add();
return;
}
for (int i = 0; i < this.lxgoods.length; i++) {
//判断商品编号是否存在
if (this.lxgoods[i] != null && this.lxgoods[i].getId() == id) {
System.out.println("商品编号已存在");
add();
}
}
System.out.println("请输入要添加的商品名称:");
String name = new Scanner(System.in).next();
System.out.println("请输入要添加的商品价格:");
double price = 0;
try {
price = new Scanner(System.in).nextDouble();
} catch (Exception e) {
//e.printStackTrace();
System.out.println("请输入正确的格式如:10.1...");
price = new Scanner(System.in).nextDouble();
}
System.out.println("请输入要添加的商品描述:");
String desc = new Scanner(System.in).next();
//调用构造器,初始化商品信息
Lxgoods lxgoods = new Lxgoods(id, name, price, desc);
for (int i = 0; i < this.lxgoods.length; i++) {
//把初始化的商品放入null的位置
if (this.lxgoods[i] == null) {
this.lxgoods[i] = lxgoods;
System.out.println("商品添加成功");
num++;
show();
return;
}
}
}
运行结果
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
3
请输入要添加的商品编号:
kj
请输入正确的格式如:1001...
请输入要添加的商品编号:
1003
请输入要添加的商品名称:
饼干
请输入要添加的商品价格:
草莓味的,酥酥脆脆人人爱
请输入正确的格式如:10.1...
5.0
请输入要添加的商品描述:
草莓味的,酥酥脆脆人人爱
商品添加成功
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Lxgoods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
Lxgoods{id=1003, goodsName='饼干', price=5.0, desc='草莓味的,酥酥脆脆人人爱'}
货架目前商品数量3
修改商品价格
//修改商品价格
private void updata() {
//System.out.println("updata");
show();
System.out.println("请输入要修改的商品编号:");
int id = 0;
try {
id = new Scanner(System.in).nextInt();
} catch (Exception e) {
//e.printStackTrace();
System.out.println("请输入正确的格式如:1001...");
updata();
return;
}
for (int i = 0; i < this.lxgoods.length; i++) {
if(this.lxgoods[i] != null && this.lxgoods[i].getId() == id) {
System.out.println("商品的原价为" + this.lxgoods[i].getPrice());
System.out.println("请输入要修改的商品价格:");
double price = 0;
try {
price = new Scanner(System.in).nextDouble();
} catch (Exception e) {
//e.printStackTrace();
System.out.println("请输入正确的格式如:10.1...");
price = new Scanner(System.in).nextDouble();
}
//把改的价格初始化到原来的价格中
Lxgoods lxgoods = new Lxgoods(this.lxgoods[i].getId(), this.lxgoods[i].getGoodsName(), price, this.lxgoods[i].getDesc());
//最后再把新的商品信息放回到原来的位置
this.lxgoods[i] = lxgoods;
show();
return;
}
}
}
运行结果
-->欢迎使用商品管理系统
-->输入1显示所有商品信息
-->输入2下架商品
-->输入3上架商品
-->输入4修改商品价格
-->输入0退出商品货架
-->请输入热键:
4
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=25.0, desc='美味可口,恋爱必备!'}
Lxgoods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
货架目前商品数量2
请输入要修改的商品编号:
1001
商品的原价为25.0
请输入要修改的商品价格:
80.8
-->商品货架信息
Lxgoods{id=1001, goodsName='巧克力', price=80.8, desc='美味可口,恋爱必备!'}
Lxgoods{id=1002, goodsName='卫龙辣条', price=1.0, desc='隔壁小孩馋哭了!'}
货架目前商品数量2