超市管理系统角色系统c++代码
时间: 2023-08-10 13:08:18 浏览: 200
C++ 课程设计 超市管理系统.zip
以下是一个简单的超市管理系统角色系统的 C++ 代码示例:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Role
{
public:
Role(string name, string description)
: m_name(name), m_description(description) {}
virtual ~Role() {}
string getName() const { return m_name; }
string getDescription() const { return m_description; }
virtual void view() = 0;
private:
string m_name;
string m_description;
};
class Manager : public Role
{
public:
Manager(string name, string description)
: Role(name, description) {}
virtual ~Manager() {}
virtual void view()
{
cout << "I am a manager. I can view and modify all the products and orders." << endl;
}
};
class Cashier : public Role
{
public:
Cashier(string name, string description)
: Role(name, description) {}
virtual ~Cashier() {}
virtual void view()
{
cout << "I am a cashier. I can view and modify the orders." << endl;
}
};
class StockClerk : public Role
{
public:
StockClerk(string name, string description)
: Role(name, description) {}
virtual ~StockClerk() {}
virtual void view()
{
cout << "I am a stock clerk. I can view and modify the products." << endl;
}
};
int main()
{
vector<Role*> roles;
roles.push_back(new Manager("John", "The manager of the supermarket."));
roles.push_back(new Cashier("Mary", "The cashier of the supermarket."));
roles.push_back(new StockClerk("Tom", "The stock clerk of the supermarket."));
for (auto r : roles)
{
cout << r->getName() << ": " << r->getDescription() << endl;
r->view();
cout << endl;
}
for (auto r : roles)
delete r;
return 0;
}
```
该代码定义了一个 `Role` 类作为基类,其派生出三个子类 `Manager`、`Cashier` 和 `StockClerk`,分别代表超市的经理、收银员和库存管理员。每个角色都有名称和描述,并实现了 `view` 纯虚函数,用于描述其职责。在 `main` 函数中,创建了三个不同的角色,并通过 `view` 函数输出其职责信息。最后需要释放内存,避免内存泄漏。
这只是一个简单的示例,实际的超市管理系统中,角色系统还需要考虑权限控制、登录验证等方面。
阅读全文