一、功能实现要求
- 商品初始化
使用集合的思想,创建自定义集合类型添加物品
- 制作功能菜单
- 选择编号,执行不同的功能(每个功能必须定义单独的方法实现)
- 查看商品
像表格一样输出物品信息,并计算出总金额;
- 添加商品
键盘录入要添加的物品编号,并且判断是否与已有的物品编号重复,如果重复提示无法添加,否则提示物品添加成功;
- 删除商品
键盘录入要删除的物品编号,并且判断是否有此物品,如果不存在提示删除的物品不存在,否则提示删除成功;
- 修改商品
键盘录入要修改的物品编号,并且判断是否有此物品,如果不存在提示无此物品,否则调出键盘录入物品的编号、名称、单价、库存数量;
- 退出
- 其它要求:
- 使用while无限循环功能菜单,直到用户手动终止程序;
- 键盘录入功能序号,使用switch语句执行相应功能;
- 尽量保证打印的物品信息整齐;
二、代码实现
/*
* 自定义类,描述商品信息
*/
public class Goods {
int ID; //商品编号
String name; //商品名称
double price; //商品价格
int number; //商品数量
}
import java.util.ArrayList;
import java.util.Scanner;
public class Shopp {
public static void main(String[] args) {
// 创建ArrayList集合,存储物品类型,存储数据类型Goods类型
ArrayList<Goods> array = new ArrayList<Goods>();
init(array);
while (true) {
mainMenu(); //功能菜单
int key = chooseFunction(); //键盘录入功能编号
switch (key) { //判断执行功能
case 1:
read(array); //查看物品清单
break;
case 2:
addGood(array); //增加物品
break;
case 3:
deleteGood(array); //删除物品
break;
case 4:
update(array); //修改物品
break;
case 5:
return; //退出功能
default:
System.out.println("您需要的功能不存在!");
break;
}
}
}
// 定义方法,实现物品数量的初始化 先将一部分数据,存储集合中 返回值:无 参数:集合 方法名:init
public static void init(ArrayList<Goods> array) {
Goods g1 = new Goods(); //实例物品1,为成员变量赋值
g1.ID = 1001;
g1.name = "铁树树干";
g1.price = 50;
g1.number = 11;
Goods g2 = new Goods(); //实例物品2,为成员变量赋值
g2.ID = 1002;
g2.name = "贵族圆环";
g2.price = 175;
g2.number = 7;
Goods g3 = new Goods(); //实例物品3,为成员变量赋值
g3.ID = 1003;
g3.name = "智力斗篷";
g3.price = 150;
g3.number = 3;
Goods g4 = new Goods(); //实例物品4,为成员变量赋值
g4.ID = 1004;
g4.name = "欢欣之刃";
g4.price = 1000;
g4.number = 7;
Goods g5 = new Goods(); //实例物品5,为成员变量赋值
g5.ID = 1005;
g5.name = "魔力法杖";
g5.price = 1000;
g5.number = 3;
array.add(g1); //添加物品1到集合
array.add(g2); //添加物品2到集合
array.add(g3); //添加物品3到集合
array.add(g4); //添加物品4到集合
array.add(g5); //添加物品5到集合
}
//打印物品清单
public static void read(ArrayList<Goods> array) {
System.out.println("您选择的是物品清单功能");
double sum = 0; //定义变量,存储物品总金额
System.out.println("物品编号 物品名称 物品价格 物品数量 总金额");
for (int i = 0; i < array.size(); i++) { //遍历集合
Goods g = array.get(i);
System.out.println(g.ID + " " + g.name + " " + g.price
+ " " + g.number + " " + g.price * g.number);
sum = sum + g.price * g.number; //累加物品总金额
}
System.out.println("总金额: " + sum); //输出总金额
}
//添加新物品
public static void addGood(ArrayList<Goods> array) {
System.out.println("您选择的是物品添加功能");
Scanner sc = new Scanner(System.in);
System.out.println("请输入物品编号:");
int key = sc.nextInt();
for (int i = 0; i < array.size(); i++) {
Goods g = array.get(i);
if (key == g.ID) { //判断录入物品序号是否已经存在
System.out.println("添加的物品序号与已有序号重复,无法添加!");
return; //如果存在则提示无法添加
}
}
//如果存在,则键盘录入新物品的属性
Goods g = new Goods();
g.ID = key;
System.out.println("请输入物品的名称:");
g.name = sc.next();
System.out.println("请输入物品的单价:");
g.price = sc.nextDouble();
System.out.println("请输入物品的数量:");
g.number = sc.nextInt();
array.add(g);
System.out.println("物品添加成功!");
}
//删除指定的物品
public static void deleteGood(ArrayList<Goods> array) {
System.out.println("您选择的是删除功能");
Scanner sc = new Scanner(System.in);
System.out.println("请输入删除物品的编号");
int key = sc.nextInt();
for (int i = 0; i < array.size(); i++) {
Goods g = array.get(i);
//如果输入的物品编号存在则删除该编号所对应的物品,并提示删除成功
if (key == g.ID) {
array.remove(i);
System.out.println("删除成功!");
return;
}
}
//如果输入的物品编号不存在,则提示删除的物品不存在
System.out.println("删除的物品不存在");
}
//修改物品信息
public static void update(ArrayList<Goods> array) {
System.out.println("您选择的是修改功能");
Scanner sc = new Scanner(System.in);
System.out.println("请输入修改物品所对应的编号");
int key = sc.nextInt();
for (int i = 0; i < array.size(); i++) {
Goods g = array.get(i);
//如果输入的物品编号存在,则键盘录入物品的新属性值,否则提示无此物品
if (g.ID == key) {
System.out.println("请输入修改物品的新编号:");
g.ID = sc.nextInt();
System.out.println("请输入修改物品的新名字:");
g.name = sc.next();
System.out.println("请输入修改物品的新单价:");
g.price = sc.nextDouble();
System.out.println("请输入修改物品的新数量:");
g.number = sc.nextInt();
return;
}
}
System.out.println("无此物品!");
}
//功能菜单
public static void mainMenu() {
System.out.println();
System.out.println("------------ 欢迎光临地下超市 ------------");
System.out.println("1.查看物品 2.添加物品 3.删除物品 4.修改物品 5退出");
System.out.println("请输入功能序号:");
}
//键盘录入功能菜单的编号
public static int chooseFunction() {
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
}
网友评论