📜  购物清单 c++ chegg - C++ (1)

📅  最后修改于: 2023-12-03 15:28:13.244000             🧑  作者: Mango

购物清单 C++ Chegg

本程序是基于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++来实现简单的功能。我们也可以通过改进该程序,增加更多的功能,比如支持商品搜索、修改、购买等。