用c++写一段大约200的简单的超市购物,要用上类和对象这种方法
时间: 2024-04-02 18:32:06 浏览: 8
好的,下面是一段大约200行的C++代码,实现了一个简单的超市购物系统,使用了类和对象:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;
// 商品类
class Item {
public:
Item(const string& name, double price, int quantity) : name(name), price(price), quantity(quantity) {}
string getName() const {
return name;
}
double getPrice() const {
return price;
}
int getQuantity() const {
return quantity;
}
void setQuantity(int quantity) {
this->quantity = quantity;
}
private:
string name; // 商品名称
double price; // 商品价格
int quantity; // 商品库存
};
// 购物车类
class Cart {
public:
void addItem(const Item& item, int quantity) {
if (quantity > 0 && quantity <= item.getQuantity()) {
items.push_back(item);
quantities.push_back(quantity);
total += item.getPrice() * quantity;
item.setQuantity(item.getQuantity() - quantity);
} else {
cout << "加入购物车失败!" << endl;
}
}
void showCart() const {
cout << left << setw(20) << "商品名称" << setw(10) << "价格"
<< setw(10) << "数量" << setw(10) << "小计" << endl;
for (int i = 0; i < items.size(); ++i) {
cout << left << setw(20) << items[i].getName() << setw(10) << items[i].getPrice()
<< setw(10) << quantities[i] << setw(10) << items[i].getPrice() * quantities[i] << endl;
}
cout << "总计:" << total << endl;
}
private:
vector<Item> items; // 所有商品
vector<int> quantities; // 购物车商品数量
double total = 0; // 总价格
};
// 初始化商品
void initItems(vector<Item>& items) {
items.push_back(Item("可乐", 2.5, 10));
items.push_back(Item("薯片", 3.0, 15));
items.push_back(Item("牛奶", 5.0, 8));
items.push_back(Item("面包", 4.0, 12));
}
// 显示所有商品
void showItems(const vector<Item>& items) {
cout << left << setw(10) << "编号" << setw(20) << "商品名称"
<< setw(10) << "价格" << setw(10) << "库存" << endl;
for (int i = 0; i < items.size(); ++i) {
cout << left << setw(10) << i << setw(20) << items[i].getName()
<< setw(10) << items[i].getPrice() << setw(10) << items[i].getQuantity() << endl;
}
}
int main() {
vector<Item> items; // 所有商品
Cart cart; // 购物车
initItems(items);
showItems(items);
while (true) {
int choice;
cout << "请选择商品编号(输入-1结束购物):";
cin >> choice;
if (choice == -1) {
break;
} else if (choice < 0 || choice >= items.size()) {
cout << "请输入正确的商品编号!" << endl;
continue;
}
int quantity;
cout << "请输入购买数量:";
cin >> quantity;
cart.addItem(items[choice], quantity);
cart.showCart();
}
return 0;
}
```
以上代码实现了一个简单的超市购物系统,使用了类和对象,包含了以下功能:
1. 初始化商品
2. 显示所有商品
3. 加入购物车
4. 显示购物车
5. 结束购物
你可以根据自己的需求进行修改和扩展。