Java 实现一个 能够 进行简单的增删改查的 超市管理系统

 

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.3	Delete	删除商品
 * 			3.4	Update  修改商品
 * 
 * 
 * 	以上所有功能, 必须定义方法实现
 * 
 * 		主方法 main 就一个作用, 调用作用.
 * 			
 */
public class Shop {	public static void main(String[] args) {

		// 创建 ArrayList 集合, 存储商品类型,  存储数据类型 FruitItem 类型.

		ArrayList<FruitItem> array = new ArrayList<FruitItem>();

			// 调用商品初始化方法, 传递集合.
		 init(array);  // 输出结果: [ ] , 集合中是空的.

		// System.out.println(array); // 输出结果: [FruitItem@9e89d68, FruitItem@3b192d32, FruitItem@16f65612] 对了!

		// 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<FruitItem> 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<FruitItem> 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<FruitItem> 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<FruitItem> 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<FruitItem> 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);

	}}