JAVA学习阶段知识点小练习,当时所想到的思路,可能存在累赘与不足的地方!欢迎大家讨论并指出其中的不足点和更好的思路及方法!!!共同进步、共同学习!!!!
使用HashMap存储商品信息
包 含:商品编号id、商品名称name、商品单价price、单位unit、库存数量num。
要 求:键是商品编号,值是商品。
功能需求:查看商品列表、添加商品、商品入库、商品出库、修改商品、删除商品。
1、定义商品类(Product)
package code13集合.map.商品管理系统;
public class Product {
private Integer id; //商品编号
private String name; //商品名称
private Double price; //商品单价
private String unit; //商品单位
private Integer num; //库存数量
//无参的构造方法
public Product() {
super();
}
//带参的构造方法
public Product(Integer id, String name, Double price, String unit, Integer num) {
super();
this.id = id;
this.name = name;
this.price = price;
this.unit = unit;
this.num = num;
}
//get、set方法
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
}
2、测试类(ProductTest)
package code13集合.map.商品管理系统;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class ProductTest {
static Scanner input = new Scanner(System.in);
static Map<Integer, Product> stus = new HashMap<Integer, Product>(); // 创建一个HashMap集合,用于存储键key值value对数据
public static void main(String[] args) {
System.out.println("------------------------欢迎来到商品管理系统-----------------------");
show();
}
/*
* 系统主菜单
*/
public static void show() {
System.out.println("1. 查看商品列表、2.添加商品、3.商品入库、4.商品出库、5.修改商品、6.删除商品");
System.out.print("请选择:");
int option = input.nextInt();
switch (option) {
case 1:
query();
break;
case 2:
increase();
break;
case 3:
plus();
break;
case 4:
reduce();
break;
case 5:
amend();
break;
case 6:
delete();
break;
}
}
/*
* 查看商品列表
*/
private static void query() {
//循环操作(遍历所有的key)
System.out.println("商品编号\t\t" + "商品名称\t\t" + "商品单价\t\t" + "单位\t\t" + "数量\t\t");
Set<Integer> keys = stus.keySet(); //根据keySet()方法来获取所有key的集合。
for (Integer key : keys) { //for-each循环
Product s = stus.get(key);
System.out.println(s.getId() + "\t\t" + s.getName() + "\t\t" + s.getPrice() + "\t\t" + s.getUnit() + "\t\t"
+ s.getNum());
}
System.out.println("-------------------------------------------------------------------");
show(); //返回系统主菜单
}
/*
* 添加商品
*/
private static void increase() {
Product p = new Product();
System.out.print("请输入商品编号:");
int id = input.nextInt();
p.setId(id);
System.out.print("请输入商品名称:");
p.setName(input.next());
System.out.print("请输入商品单价:");
p.setPrice(input.nextDouble());
System.out.print("请输入商品单位:");
p.setUnit(input.next());
System.out.print("请输入商品数量:");
p.setNum(input.nextInt());
stus.put(id, p);
System.out.println("新增成功!");
System.out.println("------------------------------------------------------------------");
show(); //返回系统主菜单
}
/*
* 商品入库
*/
private static void plus() {
System.out.print("请输入商品编号:");
int id = input.nextInt();
if (stus.containsKey(id) == true) { //根据HashMap的containsKey()方法来判断是否包含指定的key、从而来实现判断此商品是否已存在的功能需求。
System.out.print("请输入商品入库数量:");
int num1 = input.nextInt();
stus.get(id).setNum(num1 + stus.get(id).getNum());
System.out.println("入库成功!");
} else {
System.out.println("商品编号不存在!");
}
System.out.println("------------------------------------------------------------------");
show(); //返回系统主菜单
}
/*
* 商品出库
*/
private static void reduce() {
System.out.print("请输入商品编号:");
int id = input.nextInt();
if (stus.containsKey(id) == true) {
System.out.print("请输入商品出库数量:");
int num1 = input.nextInt();
stus.get(id).setNum(stus.get(id).getNum() - num1);
System.out.println("出库成功!");
} else {
System.out.println("商品编号不存在!");
}
System.out.println("------------------------------------------------------------------");
show(); //返回系统主菜单
}
/*
* 修改商品
*/
private static void amend() {
System.out.print("请输入商品编号:");
int id = input.nextInt();
if (stus.containsKey(id) == true) {
System.out.println("1、商品名称\t\t" + "2、商品单价\t\t"+"3、单位\t\t");
System.out.println("---------------------------------------------");
System.out.print("请选择:");
int option = input.nextInt();
switch (option) {
case 1:
System.out.print("输入你要修改后的商品名称:");
stus.get(id).setName(input.next());
break;
case 2:
System.out.print("输入你要修改后的商品单价:");
stus.get(id).setPrice(input.nextDouble());
break;
case 3:
System.out.print("输入你要修改后的商品单位:");
stus.get(id).setUnit(input.next());
break;
}
System.out.println("修改成功!");
} else {
System.out.println("商品编号不存在!");
}
System.out.println("------------------------------------------------------------------");
show(); //返回系统主菜单
}
/*
* 删除商品
*/
private static void delete() {
System.out.print("请输入商品编号:");
int id = input.nextInt();
if (stus.containsKey(id) == true) { //根据HashMap中的containsKey()方法
stus.remove(id); //根据HashMap中的remove()方法来实现删除功能。
System.out.println("删除成功!");
} else {
System.out.println("商品编号不存在!");
}
System.out.println("------------------------------------------------------------------");
show(); //返回系统主菜单
}
}
3、实现效果
- 添加商品并查看商品列表
- 商品入库实现效果
- 商品出库实现效果
- 修改商品实现效果
- 删除商品实现效果