1. 首先编写一个 Fruitltem 的商品类, 描述 商品的基本信息.
代码如下:
保证详细, 运行的起来, 有什么 问题也可以评论留言.
/*
* 自定义类, 描述商品信息
*
* 商品的属性:
*
* 编号, int
*
* 品名, String
*
* 价格, double
*
* 数量, int
*
* 总价, double
*
* 商品类型, 最终是要 存储到 集和 ArrayList 中去用的.
*/
public class FruitItem {
// 商品的编号
int ID;
// 商品的名字
String name;
// 商品的单价
double price;
// 商品的数量
int number;
// 总金额
double money;
}
2. 其次编写一个 超市管理系统的 主类, 用于 用户的菜单选择,, 实现 商品的初始化 功能, 对 商品 进行 增删改查 的 功能.
import java.util.ArrayList;
import java.util.Scanner;
/*
* 超市管理系统主类,
*
* 实现:
*
* 1. 商品数据的初始化.
*
* 2. 用户的菜单选择
*
* 3. 根据选择执行不同的功能
* 3.1 Read 查看商品
* 3.2 Create 添加商品
* 3.3Delete删除商品
* 3.4Update 修改商品
*
*
* 以上所有功能, 必须定义方法实现
*
* 主方法 main 就一个作用, 调用作用.
*
*/
public class Shop {
public static void main(String[] args) {
// 创建 ArrayList 集合, 存储商品类型, 存储数据类型 FruitItem 类型.
ArrayList array = new ArrayList();
// 调用商品初始化方法, 传递集合.
init(array); // 输出结果: [ ] , 集合中是空的.
// System.out.println(array); // 输出结果: [[email protected], [email protected], [email protected]] 对了!
// mainMenu();
while(true) {
// 调用菜单方法
mainMenu();
// 调用用户选择序号方法
int choose = chooseFunction();
switch (choose) {
case 1:
// 调用1: 货物清单
showFruitList(array);
break;
case 2:
// 调用2: 添加货物
addFruit(array);
System.out.println("添加成功!");
break;
case 3:
// 调用3: 删除货物
deleteFruit(array);
break;
case 4:
// 调用4: 修改货物
UpdateFruit(array);
break;
case 5:
return;
default:
System.out.println("您输入的序号没有");
break;
}
}
}
/*
* 定义方法, 实现商品的修改功能
*
* 返回值: 无
*
* 参数: 集合
*
* 提示用户选择的是修改功能
*
* 提示用户输入需要修改的商品编号
*
* 遍历集合, 获取每个 FruitItem 变量
*
* 变量调用 ID 属性, 属性和用户输入的编号比较,
* 如果相同:
* 修改掉 FruitItem 中的属性值,
* 需要用户的键盘输入
*/
public static void UpdateFruit(ArrayList array) {
System.out.println("您选择的是修改功能!");
System.out.println("请您输入需要修改的商品编号: ");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
// 遍历集合, 获取每个 FruitItem 变量
for(int i = 0; i < array.size(); i++) {
FruitItem item = array.get(i);
// 获取 FruitItem 的属性 ID, 和用户输入的 ID 作比较。
if( item.ID == ID) {
System.out.println("请您输入新的商品编号:");
item.ID = sc.nextInt();
System.out.println("请您输入新的商品名称: ");
item.name = sc.next();
System.out.println("请您输入新的商品单价: ");
item.price = sc.nextDouble();
System.out.println("商品修改成功!");
return;
}
}
System.out.println("您输入的编号不存在!");
}
/*
* 定义方法, 实现商品的删除功能
*
* 返回值: 无
*
* 参数: 集合
*
*
* 删除依靠的是商品的编号
*
* 提示用户选择的是删除功能
*
* 键盘输入商品的编号
*
* 遍历集合, 获取集合中的每个 FruitItem 变量
*
* 变量调用属性 ID, 和用户的输入的编号, 对比, 相同就删除
*
*
*/
public static void deleteFruit(ArrayList array) {
System.out.println("您选择的是删除功能");
System.out.println("请输入商品的编号");
Scanner sc = new Scanner(System.in);
int ID = sc.nextInt();
// 遍历集合
for(int i = 0; i < array.size(); i++) {
// 获取到每个 FruitItem 的变量
FruitItem item = array.get(i);
// 变量, 调用属性 ID, 和用户输入的编号比较
if( item.ID == ID) {
// 如果相等, 移出集合中的元素
// 集合的方法 remove 实现
array.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("您输入的编号不存在!");
}
/*
*
* 定义方法, 实现商品的添加功能
*
* 返回值: 无
*
* 参数: 集合
*
* 1. 提示用户选择的是添加商品的功能
*
* 2. 提示用户输入的是什么?
*
* 创建 FruitItem 变量, 变量调用的属性
* 3. 将输入的每个商品属性进行赋值.
*/
public static void addFruit(ArrayList array) {
System.out.println("您选择的是添加商品功能");
// 创建 Scanner 变量
Scanner sc = new Scanner(System.in);
System.out.println("请输入商品的编号");
// 输入的是商品的编号
int ID = sc.nextInt();
System.out.println("请输入商品的名称");
// 输入的是商品的名称
String name = sc.next();
System.out.println("请输入商品的单价");
// 输入的是商品的单价
double price = sc.nextDouble();
// 创建 FruitItem 类型的变量
FruitItem item = new FruitItem();
// item.属性赋值
item.ID = ID;
item.name = name;
item.price = price;
array.add(item);
}
/*
* 定义方法: 实现显示货物清单的功能.
* 返回值: 无
* 参数: 集合
* 遍历集合, 获取集合中的每个 FruitItem 变量, 再用这个变量调用属性
*/
public static void showFruitList(ArrayList array) {
System.out.println();
System.out.println("======================= 商品库存清单 =======================");
System.out.println("商品编号 商品名称 商品单价");
// 遍历集合
for(int i = 0; i < array.size(); i++) {
// 通过集合的 get 方法, 获取出每个 FruitItem 变量, 可以使用 FruitItem 接收 get 结果.
FruitItem item = array.get(i);
// 变量 item 调用类中属性
System.out.println( item.ID + " " + item.name + " " + item.price);
}
}
/*
* 定义方法, 实现接收用户的键盘输入
*
* 返回编号
*/
public static int chooseFunction() {
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
/*
* 定义方法, 实现主菜单
*
* 提示用户哪些选择 让用户选择序号
*
* 方法名: mainMenu
*
* 方法返回值: 无
*
* 参数: 无
*/
public static void mainMenu() {
System.out.println();
System.out.println("==================== 欢迎光临Itcast超市 ====================");
System.out.println("1: 货物清单 2: 添加货物 3: 删除货物 4: 修改货物 5: 退出");
System.out.println("请您输入要操作的功能序号");
}
/*
* 定义方法, 实现商品数据的初始化
*
* 先将一部分数据, 存储到集合中.
*
* 返回值: 无
*
* 参数: 集合
*
* 方法名: init
*/
public static void init(ArrayList array) {
// 创建出 FruitItem 类型, 并且属性赋值.
FruitItem f1 = new FruitItem();
f1.ID = 9527; // 9527 是谁? 唐伯虎啊?? 哈哈~
f1.name = "少林寺酥饼核桃";
f1.price = 12.7;
FruitItem f2 = new FruitItem();
f2.ID = 9008; // 9527 是谁? 唐伯虎啊?? 哈哈~
f2.name = "尚康杂粮牡丹饼";
f2.price = 5.6;
FruitItem f3 = new FruitItem();
f3.ID = 9879; // 9527 是谁? 唐伯虎啊?? 哈哈~
f3.name = "新疆原产哈密瓜";
f3.price = 599.6;
// 将创建的 3个 FruitItem 类型变量, 存储到集合中.
array.add(f1);
array.add(f2);
array.add(f3);
}
}
原文:https://www.cnblogs.com/CYjiang/p/Yujiang.html