java小案例-購物車
阿新 • • 發佈:2022-04-08
需求:對購物車的商品進行增加、檢視、修改及統計金額功能的實現
1.建立商品類
定義商品的成員屬性
String name; int id; double price; int buyNumber; //購買數量
2.定義購物車物件,並用陣列個數表示購物車商品的數量
Goods2[] shopCar =new Goods2[100];/
3.利用死迴圈搭建構架,通過輸入命令實現功能、
while (true) { System.out.println("請您選擇如下操作命令:"); System.out.println("新增商品到購物車:add"); System.out.println("在購物車查詢展示商品:query"); System.out.println("修改商品購買數量:update"); System.out.println("結算金額:pay"); Scanner sc =new Scanner(System.in); System.out.println("請你輸入命令:"); String command = sc.next();switch (command){ case "add": //新增商品到購物車 addGoods(shopCar,sc); break; case "query": //查詢購物車商品展示 queryGoods(shopCar); break; case "update"://修改商品購買數量 updateGoods(shopCar, sc); break; case "pay": //結算金額 payGoods(shopCar); break; default: System.out.println("沒有該命令,請重新輸入"); } }
4.完善使用者新增商品資訊的功能
4.1錄入使用者輸入購買商品的資訊,
public static void addGoods(Goods2[] shopCar ,Scanner sc){ //錄入使用者輸入的購買商品的資訊 System.out.println("請您輸入購買商品的編號(不重複)"); int id = sc.nextInt(); System.out.println("請您輸入購買商品的名稱:"); String name = sc.next(); System.out.println("請您輸入購買商品的數量:"); int buyNumber= sc.nextInt(); System.out.println("請您輸入購買商品的價格:"); double price= sc.nextDouble();
}
4.2將錄入的商品資訊進行封裝,成為一個商品物件
Goods2 g= new Goods2(); g.id=id; g.name=name; g.buyNumber=buyNumber; g.price=price;
4.3通過遍歷把封裝好的商品物件新增陣列中
//把這個 商品物件新增到購物車陣列中去 for (int i = 0; i < shopCar.length; i++) { if (shopCar[i] == null){ //說明沒有商品新增 shopCar[i]=g; break;//結束,因為商品已經錄入成功 } } System.out.println("您的商品"+g.name+ "新增購物車成功"); }
5.查詢購物車中的商品資訊 通過遍歷
public static void queryGoods(Goods2[] shopCar){ System.out.println("==========查詢購物車資訊如下====="); System.out.println("編號\t\t名稱\t\t價格\t購買數量"); for (int i = 0; i < shopCar.length; i++) { Goods2 g =shopCar[i]; if (g !=null){ //展示這個商品物件 System.out.println(g.id+"\t\t"+g.name+"\t\t\t"+g.price+"\t\t\t"+ g.buyNumber); }else { break; } } }
6.完善使用者的修改資訊的功能
6.1使用者通過查詢商品id,對商品資訊進行修改,因此先定義一個商品id查詢的方法
public static Goods2 getGoods2ById(Goods2[] shopCar,int id){ for (int i = 0; i < shopCar.length; i++) { Goods2 g =shopCar[i]; if (g !=null){ //判斷這個id是不是我們要找的 if(g.id ==id){ return g; } }else { return null; } } return null; }
6.2通過迴圈判斷使用者輸入的資訊是否與存在的資訊相符合,若符合,則進行修改
public static void updateGoods(Goods2[] shopCar ,Scanner sc){ //讓使用者輸入要修改的商品id,根據id查詢出要更改的商品物件 while (true){ System.out.println("請您輸入要修改的商品id:"); int id = sc.nextInt(); Goods2 g=getGoods2ById(shopCar,id); if (g == null){ //沒有該商品資訊 System.out.println("對不起,沒有購買商品"); }else { //有商品資訊,可以進行修改 System.out.println("請您輸入:"+g.name+"的最新購買數量"); int buyNumber = sc.nextInt(); g.buyNumber=buyNumber; System.out.println("修改完成!!"); queryGoods(shopCar); break; } } }
7.對計算購買商品的總金額功能的完善
先定義一個變數,儲存金額,然後通過遍歷陣列,計算出總金額。
public static void payGoods(Goods2[] shopCar){ queryGoods(shopCar); //定義一個變數 double money =0; for (int i = 0; i < shopCar.length; i++) { Goods2 g= shopCar[i]; if (g!=null){ money+=(g.price*g.buyNumber); }else { break; } } System.out.println("訂單總金額:"+money); }