模擬真實的庫存管理邏輯,完成超市管理系統的日常功能實現。
經過分析,首先需要一個功能菜單,然後輸入所選的功能後,調用序號對應的功能方法,實現想要的操作。
具體的步驟如下:
1.完成超市商品初始化。創建商品,將商品添加到集合
2.顯示來到超市能做的操作,也就是顯示主菜單
3.根據接收到的功能選項,執行對應的功能
3.1.庫存貨物查詢
3.2.添加新貨物
3.3.刪除貨物
3.4.修改貨物
3.5.退出系統,結束main方法的運行
4.循環,回到 2.顯示主菜單
具體的代碼實現步驟爲:
1.每種庫存商品都擁有多項商品信息,爲了方便管理每種商品的信息,對商品信息進行封裝,編寫FruitItem.java文件
public class FruitItem {
// 商品號
int ID;
// 商品名字
String name;
// 單價
double price;
// 數量
int number;
// 總金額
double money;
}
2.編寫Shopp.java,完成如下功能:
①主方法 主要實現集合創建、調用商品初始化、調用菜單方法、調用序號選擇方法。
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: 修改貨物
updateFruit(array);
break;
case 5:
return ;
default:
System.out.println("輸入的序號沒有");
break;
}
}
}
②商品初始化方法。創建方法,將商品添加到集合裏去。
public static void init(ArrayList<FruitItem> array){
//創建出多個FruitItem類型,並且屬性賦值
FruitItem f1 = new FruitItem();
f1.ID = 9527;
f1.name = "少林寺酥餅核桃";
f1.price = 12.7;
FruitItem f2 = new FruitItem();
f2.ID = 9008;
f2.name = "尚康雜糧牡丹餅";
f2.price = 5.6;
FruitItem f3 = new FruitItem();
f3.ID = 9879;
f3.name = "新疆原產哈密瓜";
f3.price = 599.6;
//創建的3個FruitItem類型變量,存儲到集合中
array.add(f1);
array.add(f2);
array.add(f3);
}
③菜單顯示方法,也就是顯示具體能完成哪些操作。
public static void mainMenu(){
System.out.println();
System.out.println("============歡迎光臨ItCast超市============");
System.out.println("1: 貨物 清單 2: 添加貨物 3: 刪除貨物 4: 修改貨物 5: 退出");
System.out.println("請您輸入要操作的功能序號");
}
④序號選擇方法。 根據接收到的功能選項,執行對應的操作。
public static int chooseFunction(){
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
⑤庫存貨物查詢
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 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("商品添加成功");
}
⑦刪除貨物
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("你輸入的編號不存在");
}
⑧修改貨物
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("輸入的編號不存在");
}
至此呢基本上完成了各項功能,大概的運行結果爲:
當輸入5時退出。