用c++写一个银行员工权限管理系统包含user,Role,Login,Sysmenu,rolemenu五个类
时间: 2023-11-27 08:54:44 浏览: 61
好的,下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 用户类
class User {
public:
User(int id, string name, string password) : m_id(id), m_name(name), m_password(password) {}
int getId() { return m_id; }
string getName() { return m_name; }
string getPassword() { return m_password; }
private:
int m_id;
string m_name;
string m_password;
};
// 角色类
class Role {
public:
Role(int id, string name, vector<int> menuIds) : m_id(id), m_name(name), m_menuIds(menuIds) {}
int getId() { return m_id; }
string getName() { return m_name; }
vector<int> getMenuIds() { return m_menuIds; }
private:
int m_id;
string m_name;
vector<int> m_menuIds;
};
// 登录类
class Login {
public:
bool checkLogin(int userId, string password) {
// 在实际开发中,这里应该连接数据库,验证用户名和密码是否正确
if (userId == 123 && password == "123456") {
return true;
}
return false;
}
};
// 系统菜单类
class Sysmenu {
public:
Sysmenu(int id, string name) : m_id(id), m_name(name) {}
int getId() { return m_id; }
string getName() { return m_name; }
};
// 角色菜单类
class RoleMenu {
public:
RoleMenu(int roleId, int menuId) : m_roleId(roleId), m_menuId(menuId) {}
int getRoleId() { return m_roleId; }
int getMenuId() { return m_menuId; }
private:
int m_roleId;
int m_menuId;
};
int main() {
// 创建用户
User u1(123, "John", "123456");
User u2(456, "Tom", "654321");
// 创建角色
Role r1(1, "Admin", {1, 2, 3});
Role r2(2, "Guest", {1, 2});
// 创建系统菜单
Sysmenu m1(1, "Menu1");
Sysmenu m2(2, "Menu2");
Sysmenu m3(3, "Menu3");
// 创建角色菜单
RoleMenu rm1(1, 1);
RoleMenu rm2(1, 2);
RoleMenu rm3(1, 3);
RoleMenu rm4(2, 1);
RoleMenu rm5(2, 2);
// 登录验证
Login login;
if (login.checkLogin(u1.getId(), u1.getPassword())) {
// 获取用户的角色
Role userRole = r1; // 假设用户角色为Admin
// 获取角色的菜单
vector<int> menuIds = userRole.getMenuIds();
// 输出菜单
cout << "Menu:" << endl;
for (int i = 0; i < menuIds.size(); i++) {
switch (menuIds[i]) {
case 1:
cout << m1.getName() << endl;
break;
case 2:
cout << m2.getName() << endl;
break;
case 3:
cout << m3.getName() << endl;
break;
}
}
}
else {
cout << "Login failed." << endl;
}
return 0;
}
```
以上代码只是一个简单的示例,实际的银行员工权限管理系统需要更加复杂和完善。同时,需要连接数据库存储用户、角色、菜单等信息,以实现数据持久化。
阅读全文