超市商品管理系统设计c++
时间: 2023-11-03 18:04:46 浏览: 43
超市商品管理系统可以分为以下几个模块:
1. 商品管理:包括商品信息的录入、修改、删除和查询等功能。
2. 库存管理:包括库存信息的录入、修改、删除和查询等功能。
3. 进货管理:包括进货单的录入、修改、删除和查询等功能。
4. 销售管理:包括销售单的录入、修改、删除和查询等功能。
5. 报表管理:包括各种统计报表的生成和查询等功能。
在设计时,可以考虑以下几个类:
1. 商品类:包括商品编号、商品名称、商品价格、商品库存等属性,以及商品信息的录入、修改、删除和查询等方法。
2. 库存类:包括商品编号、商品库存等属性,以及库存信息的录入、修改、删除和查询等方法。
3. 进货单类:包括进货单编号、商品编号、进货数量、进货时间等属性,以及进货单的录入、修改、删除和查询等方法。
4. 销售单类:包括销售单编号、商品编号、销售数量、销售时间等属性,以及销售单的录入、修改、删除和查询等方法。
5. 统计报表类:包括各种统计报表的生成和查询等方法。
下面是一个简单的超市商品管理系统的设计示例:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Product {
public:
Product(string id, string name, double price, int stock) :
id_(id), name_(name), price_(price), stock_(stock) {}
string getId() const { return id_; }
string getName() const { return name_; }
double getPrice() const { return price_; }
int getStock() const { return stock_; }
void setPrice(double price) { price_ = price; }
void setStock(int stock) { stock_ = stock; }
private:
string id_;
string name_;
double price_;
int stock_;
};
class Inventory {
public:
void addProduct(const Product& product) {
products_.push_back(product);
}
void removeProduct(const string& id) {
auto it = findProduct(id);
if (it != products_.end()) {
products_.erase(it);
}
}
void updateProduct(const string& id, double price, int stock) {
auto it = findProduct(id);
if (it != products_.end()) {
it->setPrice(price);
it->setStock(stock);
}
}
Product* getProduct(const string& id) {
auto it = findProduct(id);
if (it != products_.end()) {
return &(*it);
}
return nullptr;
}
vector<Product> getAllProducts() const {
return products_;
}
private:
vector<Product>::iterator findProduct(const string& id) {
auto it = products_.begin();
while (it != products_.end()) {
if (it->getId() == id) {
break;
}
++it;
}
return it;
}
vector<Product> products_;
};
class PurchaseOrder {
public:
PurchaseOrder(string id, string productId, int quantity, string date) :
id_(id), productId_(productId), quantity_(quantity), date_(date) {}
string getId() const { return id_; }
string getProductId() const { return productId_; }
int getQuantity() const { return quantity_; }
string getDate() const { return date_; }
private:
string id_;
string productId_;
int quantity_;
string date_;
};
class PurchaseOrderManager {
public:
void addPurchaseOrder(const PurchaseOrder& purchaseOrder) {
purchaseOrders_.push_back(purchaseOrder);
}
void removePurchaseOrder(const string& id) {
auto it = findPurchaseOrder(id);
if (it != purchaseOrders_.end()) {
purchaseOrders_.erase(it);
}
}
PurchaseOrder* getPurchaseOrder(const string& id) {
auto it = findPurchaseOrder(id);
if (it != purchaseOrders_.end()) {
return &(*it);
}
return nullptr;
}
vector<PurchaseOrder> getAllPurchaseOrders() const {
return purchaseOrders_;
}
private:
vector<PurchaseOrder>::iterator findPurchaseOrder(const string& id) {
auto it = purchaseOrders_.begin();
while (it != purchaseOrders_.end()) {
if (it->getId() == id) {
break;
}
++it;
}
return it;
}
vector<PurchaseOrder> purchaseOrders_;
};
class SalesOrder {
public:
SalesOrder(string id, string productId, int quantity, string date) :
id_(id), productId_(productId), quantity_(quantity), date_(date) {}
string getId() const { return id_; }
string getProductId() const { return productId_; }
int getQuantity() const { return quantity_; }
string getDate() const { return date_; }
private:
string id_;
string productId_;
int quantity_;
string date_;
};
class SalesOrderManager {
public:
void addSalesOrder(const SalesOrder& salesOrder) {
salesOrders_.push_back(salesOrder);
}
void removeSalesOrder(const string& id) {
auto it = findSalesOrder(id);
if (it != salesOrders_.end()) {
salesOrders_.erase(it);
}
}
SalesOrder* getSalesOrder(const string& id) {
auto it = findSalesOrder(id);
if (it != salesOrders_.end()) {
return &(*it);
}
return nullptr;
}
vector<SalesOrder> getAllSalesOrders() const {
return salesOrders_;
}
private:
vector<SalesOrder>::iterator findSalesOrder(const string& id) {
auto it = salesOrders_.begin();
while (it != salesOrders_.end()) {
if (it->getId() == id) {
break;
}
++it;
}
return it;
}
vector<SalesOrder> salesOrders_;
};
class ReportManager {
public:
void generateSalesReport() {
// 生成销售报表
}
void generatePurchaseReport() {
// 生成进货报表
}
void generateInventoryReport() {
// 生成库存报表
}
};
int main() {
Inventory inventory;
PurchaseOrderManager purchaseOrderManager;
SalesOrderManager salesOrderManager;
ReportManager reportManager;
// 添加商品
Product product1("001", "电视机", 2999.0, 100);
Product product2("002", "洗衣机", 1999.0, 200);
inventory.addProduct(product1);
inventory.addProduct(product2);
// 进货
PurchaseOrder purchaseOrder1("PO001", "001", 50, "2022-01-01");
PurchaseOrder purchaseOrder2("PO002", "002", 100, "2022-01-02");
purchaseOrderManager.addPurchaseOrder(purchaseOrder1);
purchaseOrderManager.addPurchaseOrder(purchaseOrder2);
// 销售
SalesOrder salesOrder1("SO001", "001", 10, "2022-01-05");
SalesOrder salesOrder2("SO002", "002", 20, "2022-01-06");
salesOrderManager.addSalesOrder(salesOrder1);
salesOrderManager.addSalesOrder(salesOrder2);
// 修改商品价格和库存
inventory.updateProduct("001", 3499.0, 50);
inventory.updateProduct("002", 2499.0, 150);
// 删除商品
inventory.removeProduct("001");
// 生成报表
reportManager.generateSalesReport();
reportManager.generatePurchaseReport();
reportManager.generateInventoryReport();
return 0;
}
```
以上是一个简单的超市商品管理系统的设计示例,实际应用中还需要考虑更多的细节和不同的功能需求。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)