1. 程式人生 > >Java 案例七 超市管理系統(商品清單,商品新增,商品刪除,修改庫存)

Java 案例七 超市管理系統(商品清單,商品新增,商品刪除,修改庫存)

import java.util.ArrayList;
import java.util.Scanner;

/*
 * 超市管理系統
 * 實現的功能:
 * 		1.商品資料的初始化
 * 		2.使用者的選單選擇
 * 		3.根據選擇執行不同的功能
 * 			3.1	read	檢視商品
 * 			3.2 Create	新增商品
 * 			3.3 Delete	刪除商品
 * 			3.4 Update	修改商品
 * 			3.5 Exit  	退出系統
 * 		4迴圈回到2顯示主選單
 * 
 * 		所有功能,必須定義方法實現
 * 		主方法main 呼叫作用
 * 
 */
public class Shopp {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//建立一個Arraylist集合,儲存商品型別,儲存資料型別FruitItem型別
		ArrayList<FruitItem> array = new ArrayList<FruitItem>();
		//呼叫商品初始化方法,傳遞集合
		init(array);
		while(true){
			//呼叫選單方法
			mainMenu();
			//呼叫使用者選擇序號方法
			int choose = chooseFunction();
			switch(choose){
			case 1:
				//呼叫1:貨物清單
				showFruitList(array);
				break;
				
			case 2:
				//呼叫2:新增貨物
				addFruit(array);
				break;
			
			case 3:
				//呼叫3:刪除貨物
				deleteFruit(array);
				break;
				
			case 4:
				//呼叫4:修改貨物
				updataFruit(array);
				break;
				
			case 5:
				//呼叫5:退出
				return;
				
			default:
				System.out.println("沒有此功能");
				break;
			}
		}
		
	}
	
	/*
	 * 定義方法,實現商品的刪除功能
	 * 返回值:無
	 * 引數:集合
	 * 
	 * 提示使用者選擇的是修改功能
	 * 提示使用者輸入需要修改的商品編號
	 * 遍歷集合,獲取每個FruitItem變數
	 * 變數呼叫的ID屬性,屬性和使用者輸入的屬性值
	 * 如果相同
	 * 		修改FruitItem中的屬性值
	 * 		鍵盤輸入
	 * 
	 */
	public static void  updataFruit(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);
			if(item.ID == ID){
				//移除集合找那個的元素
				//集合的方法remove實現
				array.remove(i);
				System.out.println("刪除成功");
				return;
			}
		}
		System.out.println("您輸入的編號不存在");
		
	}
	
	/*
	 * 定義方法,實現商品的新增功能
	 * 返回值:無
	 * 引數:集合
	 * 提示使用者你選擇的是新增商品的功能
	 * 
	 * 提示使用者輸入的是什麼
	 * 
	 * 建立FruitItem變數,變數呼叫的屬性
	 * 將輸入的每個商品屬性進行賦值
	 */
	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);
		System.out.println("新增成功");
	}
	
	
	/*
	 * 定義方法,實現顯示貨物清單
	 * 返回值:無
	 * 引數:集合
	 * 遍歷集合,獲取集合中的每個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);
			System.out.println(item.ID+"  "+item.name+"  "+item.price);
		}
	}
	
	/*
	 * 定義方法,實現接受使用者的鍵盤輸入
	 * 返回編號
	 */
	public static int chooseFunction(){
		Scanner sc = new Scanner(System.in);
		return sc.nextInt();	
	}

	/*
	 * 定義方法,實現主選單
	 * 提示使用者哪些選擇哪個序號
	 * 返回值:無
	 */
	public static void mainMenu(){
		System.out.println("----------------歡迎光臨ItCast超市----------------");
		System.out.println("1.貨物清單 2.新增貨物 3.刪除貨物 4.修改貨物 5.退出");
		System.out.println("請輸入您要操作的功能序號:");
	}
	
	
	/*
	 * 定義一個方法,實現商品資料的初始化
	 * 將一部分資料存集合中
	 * 返回值:無
	 * 方法名 :init
	 */
	private static void init(ArrayList<FruitItem> array) {
		//創建出多個FruitItem型別,並且屬性賦值
		FruitItem f1 = new FruitItem();
		FruitItem f2 = new FruitItem();
		FruitItem f3 = new FruitItem();
		
		f1.name = "武當山核桃酥";
		f1.ID	=  9001;
		f1.price = 120;
		
		f2.name = "上刊雜糧牡丹餅";
		f2.ID	= 9002;
		f2.price = 20;
		
		f3.name = "新疆原產哈密瓜";
		f3.ID	= 9003;
		f3.price = 99;
		
		//建立的3個FruitItem型別變數,儲存到集合中
		array.add(f1);
		array.add(f2);
		array.add(f3);
				
	}
	

}

還有個類:

/*
 * 新建一個水果類:
 * 	這個類包含的屬性有:
 * 商品編號 	int
 * 商品名稱	String
 * 商品單價	double
 * 庫存量		int 
 * 總價		double
 * 	
 */
public class FruitItem {
	//商品編號
	int ID;
	//	商品名字
	String name;
	//商品價格
	double price;
	//商品數量
	int number;
	//總價
	double mount;
}

執行結果