📅  最后修改于: 2023-12-03 15:28:13.244000             🧑  作者: Mango
本程序是基于C++的购物清单管理系统,用户可以通过添加或删除清单中的商品来进行管理。此程序旨在帮助程序员学习如何使用C++实现简单的功能。
本购物清单程序实现了以下功能:
以下是主要代码片段的说明:
class Item {
private:
string name;
double price;
int quantity;
public:
// 构造函数
Item(string name = "", double price = 0.0, int quantity = 0)
: name(name), price(price), quantity(quantity) {}
// 展示商品信息
void display() const {
cout << name << "\t" << price << "\t" << quantity << endl;
}
// 计算商品总价
double getTotalPrice() const {
return price * quantity;
}
// 获取商品名称
string getName() const {
return name;
}
// 设置商品名称
void setName(string name) {
this->name = name;
}
// 获取商品价格
double getPrice() const {
return price;
}
// 设置商品价格
void setPrice(double price) {
this->price = price;
}
// 获取商品数量
int getQuantity() const {
return quantity;
}
// 设置商品数量
void setQuantity(int quantity) {
this->quantity = quantity;
}
};
在此代码片段中,我们定义了一个Item
类。商品具有名称,价格和数量属性。display()
方法用于展示商品信息,getTotalPrice()
方法用于计算商品总价,getName()
和setName()
方法用于获取和设置商品名称,getPrice()
和setPrice()
方法用于获取和设置商品价格,getQuantity()
和setQuantity()
方法用于获取和设置商品数量。
class ItemList {
private:
vector<Item> items;
public:
// 添加商品
void addItem(const Item& item) {
items.push_back(item);
}
// 删除指定的商品
void removeItem(const string& name) {
for (auto it = items.begin(); it != items.end(); ++it) {
if (it->getName() == name) {
items.erase(it);
break;
}
}
}
// 显示商品列表
void display() const {
cout << "Name\tPrice\tQuantity\tTotal Price" << endl;
double totalPrice = 0.0;
for (auto item : items) {
item.display();
totalPrice += item.getTotalPrice();
}
cout << "Total Price: " << totalPrice << endl;
}
// 保存商品列表到磁盘
void saveToFile(const string& fileName) const {
ofstream ofs(fileName);
if (ofs.good()) {
for (auto item : items) {
ofs << item.getName() << "," << item.getPrice() << "," << item.getQuantity() << endl;
}
cout << "Items saved to " << fileName << endl;
} else {
cout << "Could not save items to file " << fileName << endl;
}
}
// 从磁盘加载商品列表
void loadFromFile(const string& fileName) {
ifstream ifs(fileName);
if (ifs.good()) {
string line;
while (getline(ifs, line)) {
istringstream iss(line);
string name;
double price;
int quantity;
if (getline(iss, name, ',') && iss >> price && iss.ignore() && iss >> quantity) {
Item item(name, price, quantity);
addItem(item);
} else {
cout << "Error parsing line: " << line << endl;
}
}
cout << "Items loaded from " << fileName << endl;
} else {
cout << "Could not load items from file " << fileName << endl;
}
}
};
在此代码片段中,我们定义了一个ItemList
类。商品清单具有一个vector
类型的items
属性,它包含所有的商品对象。addItem()
方法用于添加新的商品到清单中,removeItem()
方法用于删除指定名称的商品,display()
方法用于展示商品列表和总价,saveToFile()
方法用于保存商品列表到磁盘,loadFromFile()
方法用于从磁盘加载商品列表。
本购物清单程序通过实现商品和商品清单两个类,对商品进行管理和展示,实现了基本的购物清单管理系统功能。它可以帮助程序员学习使用C++来实现简单的功能。我们也可以通过改进该程序,增加更多的功能,比如支持商品搜索、修改、购买等。