1. 程式人生 > 其它 >java小案例-購物車

java小案例-購物車

需求:對購物車的商品進行增加、檢視、修改及統計金額功能的實現

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);
    }