#include <iostream>
#include <string>
using namespace std;
/* 商品类 */
class Commodity {
public:
Commodity() = default;
Commodity(string name, double price, double num) :name(name), price(price), num(num) {}
void printInfo(){ // 输出该商品的信息:名称、标牌价格、购买数量
cout << name << ", " << price << ", " << num << endl;
}
double getPrice() { //获取商品价格
return price;
}
double getNum() { //获取商品数量
return num;
}
private:
string name;
double price;
double num;
};
/* 购物车类 */
class Cart {
public:
Cart() :totalNum(0) {}
void addItem(Commodity item); // 添加一定数量的商品到购物车
void removeItem(Commodity item); // 移除购物车中的商品
void checkout(); // 对购物车中的商品进行结算
void printInvoice(); // 将商品信息输出到显示器
private:
Commodity iterms[20];
int totalNum; // 购物车中商品总数
};
void Cart::addItem(Commodity item) {
iterms[totalNum] = item;
totalNum++;
}
void removeItem(Commodity item) {
}
void Cart::checkout() {
double totalPrice = 0;
for (int i = 0; i < totalNum; i++) {
totalPrice += iterms[i].getPrice() * iterms[i].getNum();
}
cout << "您需要支付" << totalPrice << "元。" << endl;
}
void Cart::printInvoice() {
for (int i = 0; i < totalNum; i++) {
iterms[i].printInfo();
}
}
int main() {
Commodity tShirt("Tshirt", 79, 2);
Commodity suit("suit", 1099, 1);
Commodity hat("hat", 129, 3);
Commodity tv("tv set", 4899, 1);
Commodity ac("air condition", 5280, 1);
Cart myCart;
myCart.addItem(tShirt);
myCart.addItem(suit);
myCart.addItem(hat);
myCart.addItem(tv);
myCart.addItem(ac);
myCart.checkout();
myCart.printInvoice();
return 0;
}