超市库存管理系统(练习)

/*
 * 下述代码中,对商品信息(编号,名称,单价)进行封装
 * 这样做到好处在于以后只要找到这个商品,就能够知道该商品的每项信息
 */
public class FruitItem01 {
	//商品的ID
	int ID;
	
	//商品的名称
	String name;
	
	//商品的单价
	double price;
}
import java.util.ArrayList;
import java.util.Scanner;

/*
 * 超市管理系统主程序:
 * 实现步骤:
 * 		1.商品数据的初始化
 * 		2.用户的菜单选择
 * 		3.根据选择不同执行不同的功能
 * 			3.1 Read	查看商品
 * 			3.2	Create	添加商品
 * 			3.3 Delete	删除商品
 * 			3.4 Update  修改商品
 */
public class Shopp01 {
	public static void main(String[] args) {
		//1.创建ArrayList集合,存储商品类型,存储数据类型FruitItem类型
		//让集合成为公共,方便下面方法进行参数传递
		ArrayList<FruitItem01> array = new ArrayList<FruitItem01>();
		//2.调用商品初始化方法,传递集合
		init(array);
		//打印集合中,三个地址,bingo
		//[FruitItem01@3ef810, FruitItem01@100363, FruitItem01@14e8cee]
		//System.out.println(array);//可以用来测试成功初始化商品清单
		//3.进入死循环,运行系统
		while(true){
			//3.1调用主菜单
			mainMenu();
			//3.2调用用户选择序号的方法
			int choose = chooseFunction();
			//3.3进入功能选择
			switch (choose) {
			case 1:
					//4.1.调用1:货物清单
					showFruitItem(array);
				break;
				
			case 2:
					//4.2.调用2:添加货物
					addFruitItem(array);
				break;	
				
			case 3:
					//4.3.调用3:删除货物
					deleteFruitItem(array);
				break;	
			
			case 4:
					//4.4.调用4:修改货物
					updateFruitItem(array);
				break;	
			
			case 5:
					//4.5.调用5.退出系统
					System.out.println("退出超市系统");
				return;	
				
			default:
					System.out.println("没有此项功能");
				break;
			}
		}
	}
	/*
	 * 定义方法,实现商品数据的初始化
	 * 先将一部分数据,存储在集合中
	 * 返回值:void
	 * 参数:共享的数据集合
	 */
	public static void init(ArrayList<FruitItem01> array) {
		//创建多个FruitItem类型,并且属性赋值
		FruitItem01 f1 = new FruitItem01();
		f1.ID = 9527;
		f1.name = "少林寺酥饼核桃";
		f1.price = 12.7;
		
		FruitItem01 f2 = new FruitItem01();
		f2.ID = 9005;
		f2.name = "少林寺酥饼核桃露";
		f2.price = 122.7;
		
		FruitItem01 f3 = new FruitItem01();
		f3.ID = 9225;
		f3.name = "嵩山大饼";
		f3.price = 152.7;
		
		//创建的三个FruitItem类型变量,存储到集合中
		array.add(f1);
		array.add(f2);
		array.add(f3);
	}
	/*
	 * 定义方法,实现主菜单
	 * 提示用户哪些选择,让选择序号
	 * 返回值:void
	 * 参数:void
	 */
	public static void mainMenu() {
		System.out.println();
		System.out.println("==========欢迎光临ItCast超市==========");
		System.out.println("1:货物清单 2:添加货物 3:删除货物 4:修改货物 5:退出");
		System.out.println("请输入要操作的功能序号");		
	}
	/*
	 * 定义方法,实现接受用户的键盘输入
	 * 返回值:int
	 * 参数:无
	*/
	public static int chooseFunction(){
		Scanner sc = new Scanner(System.in);
		return sc.nextInt();
	}
	/*1:货物清单
	 * 	定义方法,实现显示货物清单功能
	 * 	返回值:void
	 * 	参数:共享数据的集合
	 * 	遍历集合,获取集合中的每个FruitItem变量,变量,调用属性
	 */
	public static void 	showFruitItem(ArrayList<FruitItem01> array){
		System.out.println();
		System.out.println("================商品库存清单================");
		System.out.println("商品编号" + "      " + "商品名称" + "           " + "商品单价");
		//遍历集合
		for (int i = 0; i < array.size(); i++) {
			//利用集合中get方法,获取出每个FruitItem变量,可以使用FruitItem变量获取相应的属性
			FruitItem01 item = array.get(i);
			//变量item调用类中属性
			System.out.println(item.ID + "\t" + item.name + "\t" + item.price);
		}
	}	
	/*2:添加货物
	 * 定义方法,实现商品的添加功能
	 * 返回值:void
	 * 参数:共享数据的集合
	 * 提示用户选择的是添加商品的功能
	 * 
	 * 创建FruitItem变量,变量调用的属性
	 * 将输入的每个商品属性进行赋值
	 */
	public static void addFruitItem(ArrayList<FruitItem01> array){
		System.out.println("恭喜哦,选择的是添加商品的功能");
		//创建Scanner变量
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入商品的ID编号:");
		//输入商品的ID编号
		int ID = sc.nextInt();
		//输入商品的名称
		System.out.println("请输入商品的名称:");
		String name = sc.next();
		//输入商品的单价
		System.out.println("请输入商品的单价:");
		double price = sc.nextDouble();
		//创建FruitItem变量
		FruitItem01 item = new FruitItem01();
		//item.属性赋值
		item.ID = ID;
		item.name = name;
		item.price = price;
		//将集合元素装配好,放入集合容器中
		array.add(item);
		System.out.println("添加商品成功哦!");
	}
	/*3.删除货物
	 * 定义方法,实现商品的删除功能
	 * 返回值:void
	 * 参数:共享的数据集合容器
	 * 
	 * 删除靠的是商品的编号
	 * 提示用户选择的是删除功能
	 * 键盘输入商品的编号
	 * 遍历集合,获取集合中的每个FruitItem变量
	 * 变量调用属性ID,和用户输入的ID编号,对比相同,就删除
	 */
	public static void deleteFruitItem(ArrayList<FruitItem01> array){
		System.out.println("选择的是删除功能");
		System.out.println("请输入商品的ID编号:");
		Scanner sc = new Scanner(System.in);
		int ID = sc.nextInt();
		//遍历集合
		for (int i = 0; i < array.size(); i++) {
			//获取到每个FruitItem变量
			FruitItem01 item = array.get(i);
			//变量,调用属性ID,和用户输入的ID编号进行匹配
			if(item.ID == ID){
				//移除集合中的元素
				array.remove(i);
				System.out.println("删除成功!");
				//当遍历到需要删除的ID的时候,就不需要在往下遍历
				//采用break,确实能结束这个循环,但是会继续执行for循环体后面的输出语句
				//当时采用return,结束的就是这个方法,不会在执行for循环体后面的输出语句
				return;
			}
		}
		System.out.println("您输入的ID编号不存在!");
	}
	/*4.修改货物
	 * 定义方法,实现商品的修改功能
	 * 返回值:void
	 * 参数:共享数据的集合容器
	 * 
	 * 提示用户选择的是修改功能
	 * 提示用户输入需要修改的商品编号
	 * 遍历集合,获取每个FruitItem变量
	 * 变量调用ID属性,属性和用户输入的ID编号进行比较
	 * 如果相同:
	 * 			修改调FruitItem中的属性值
	 * 			键盘输入
	 * 
	 */
	public static void updateFruitItem(ArrayList<FruitItem01> array){
		System.out.println("选择的是修改功能");
		System.out.println("请输入您要修改的商品的ID编号:");
		
		Scanner sc = new Scanner(System.in);
		int ID = sc.nextInt();
		//遍历集合,获取每个FruitItem变量
		for (int i = 0; i < array.size(); i++) {
			FruitItem01 item = array.get(i);
			//获取FruitItem的属性ID,和用户输入的比较
			if(item.ID == ID){
				System.out.println("请输入新的ID编号:");
				item.ID = sc.nextInt();
				
				System.out.println("请输入新的商品名称");
				item.name = sc.next();
				
				System.out.println("请输入商品的单价");
				item.price = sc.nextDouble();
				
				System.out.println("修改成功");
				//当遍历到需要修改的ID的时候,就不需要在往下遍历
				//采用break,确实能结束这个循环,但是会继续执行for循环体后面的输出语句
				//当时采用return,结束的就是这个方法,不会在执行for循环体后面的输出语句
				return;
			}
		}
		System.out.println("您输入需要修改的ID编号不存在!");
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40807247/article/details/83239401