C++写超市管理系统,分成系统用户角色分为三种:超市管理员(店长/老板)、仓库管理员、销售员。要求实现超市库存管理、销售管理及相关的系统管理功能。
时间: 2023-12-14 10:37:26 浏览: 30
好的,这是一个比较大的项目,需要设计好程序的结构和功能模块。以下是一个简单的示例程序,仅供参考:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 商品类
class Commodity {
public:
Commodity(string id, string name, double price, int num) {
this->id = id;
this->name = name;
this->price = price;
this->num = num;
}
string getId() { return id; }
string getName() { return name; }
double getPrice() { return price; }
int getNum() { return num; }
private:
string id; // 商品编号
string name; // 商品名称
double price; // 商品价格
int num; // 商品数量
};
// 超市管理员类
class MarketManager {
public:
MarketManager(string name) {
this->name = name;
}
void addCommodity(string id, string name, double price, int num) {
// 添加商品
for (int i = 0; i < commodities.size(); i++) {
if (commodities[i]->getId() == id) {
// 商品已存在,直接修改
commodities[i] = new Commodity(id, name, price, num);
return;
}
}
// 商品不存在,新建商品
commodities.push_back(new Commodity(id, name, price, num));
}
void removeCommodity(string id) {
// 删除商品
for (int i = 0; i < commodities.size(); i++) {
if (commodities[i]->getId() == id) {
commodities.erase(commodities.begin() + i);
return;
}
}
}
void printAllCommodities() {
// 显示所有商品信息
for (int i = 0; i < commodities.size(); i++) {
cout << "商品编号:" << commodities[i]->getId() << endl;
cout << "商品名称:" << commodities[i]->getName() << endl;
cout << "商品价格:" << commodities[i]->getPrice() << endl;
cout << "商品数量:" << commodities[i]->getNum() << endl;
cout << endl;
}
}
private:
string name; // 超市管理员姓名
vector<Commodity*> commodities; // 商品列表
};
// 仓库管理员类
class WarehouseManager {
public:
WarehouseManager(string name) {
this->name = name;
}
void addCommodity(string id, int num) {
// 增加商品数量
for (int i = 0; i < commodities.size(); i++) {
if (commodities[i]->getId() == id) {
commodities[i]->num += num;
return;
}
}
// 商品不存在,不能增加数量
cout << "商品不存在!" << endl;
}
void removeCommodity(string id, int num) {
// 减少商品数量
for (int i = 0; i < commodities.size(); i++) {
if (commodities[i]->getId() == id) {
if (commodities[i]->num >= num) {
commodities[i]->num -= num;
return;
}
else {
// 商品数量不足,不能减少数量
cout << "商品数量不足!" << endl;
return;
}
}
}
// 商品不存在,不能减少数量
cout << "商品不存在!" << endl;
}
void printAllCommodities() {
// 显示所有商品信息
for (int i = 0; i < commodities.size(); i++) {
cout << "商品编号:" << commodities[i]->getId() << endl;
cout << "商品数量:" << commodities[i]->getNum() << endl;
cout << endl;
}
}
private:
string name; // 仓库管理员姓名
vector<Commodity*> commodities; // 商品列表
};
// 销售员类
class Salesman {
public:
Salesman(string name) {
this->name = name;
}
void sellCommodity(string id, int num) {
// 减少商品数量
for (int i = 0; i < commodities.size(); i++) {
if (commodities[i]->getId() == id) {
if (commodities[i]->num >= num) {
commodities[i]->num -= num;
return;
}
else {
// 商品数量不足,不能销售
cout << "商品数量不足!" << endl;
return;
}
}
}
// 商品不存在,不能销售
cout << "商品不存在!" << endl;
}
void printAllCommodities() {
// 显示所有商品信息
for (int i = 0; i < commodities.size(); i++) {
cout << "商品编号:" << commodities[i]->getId() << endl;
cout << "商品名称:" << commodities[i]->getName() << endl;
cout << "商品价格:" << commodities[i]->getPrice() << endl;
cout << "商品数量:" << commodities[i]->getNum() << endl;
cout << endl;
}
}
private:
string name; // 销售员姓名
vector<Commodity*> commodities; // 商品列表
};
int main() {
// 创建超市管理员、仓库管理员、销售员
MarketManager mm("张三");
WarehouseManager wm("李四");
Salesman sm("王五");
// 添加商品
mm.addCommodity("001", "可乐", 3.0, 100);
wm.addCommodity("001", 50);
sm.sellCommodity("001", 20);
mm.printAllCommodities();
wm.printAllCommodities();
sm.printAllCommodities();
// 删除商品
mm.removeCommodity("001");
wm.removeCommodity("001");
sm.sellCommodity("001", 10);
mm.printAllCommodities();
wm.printAllCommodities();
sm.printAllCommodities();
return 0;
}
```
该程序使用了面向对象的方法,将超市管理员、仓库管理员、销售员等角色分别封装成类,实现了添加商品、删除商品、增加商品数量、减少商品数量、销售商品等功能。可以根据需要扩展其他功能模块。需要注意的是,该程序还没有实现文件读写功能,需要根据实际情况进行扩展。