编写购物车结算程序

#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;
}
posted @ 2022-08-30 21:18  catting123  阅读(109)  评论(0)    收藏  举报