用cpp实现一个信息管理系统,要求检查每个登录系统的用户(User)的用户名和口 令,系统检查合格以后方可登录系统,通过控制台打印实现用户界面和交互 功能。
时间: 2023-05-26 07:01:04 浏览: 99
A:
实现一个 C++ 信息管理系统,需要实现以下功能:
1. 添加用户信息
2. 修改用户信息
3. 查找用户信息
4. 删除用户信息
5. 用户登录验证
下面是一个简单的实现,其中用户信息包含用户名和密码。我们将用户信息保存在一个 std::map 中,使用用户名作为键,用户信息结构体作为值。
```cpp
#include <iostream>
#include <map>
#include <string>
using namespace std;
struct UserInfo {
string username;
string password;
};
class InfoManager {
public:
void addUserInfo(const string& username, const string& password) {
UserInfo info = { username, password };
users[username] = info;
}
void modifyUserInfo(const string& username, const string& password) {
if (users.find(username) != users.end()) {
UserInfo info = { username, password };
users[username] = info;
cout << "User " << username << " modified." << endl;
} else {
cout << "User " << username << " not found." << endl;
}
}
void deleteUserInfo(const string& username) {
if (users.find(username) != users.end()) {
users.erase(username);
cout << "User " << username << " deleted." << endl;
} else {
cout << "User " << username << " not found." << endl;
}
}
bool checkUser(const string& username, const string& password) const {
auto it = users.find(username);
if (it != users.end() && it->second.password == password) {
return true;
}
return false;
}
void printUsers() const {
cout << "Users:" << endl;
for (const auto& kv : users) {
cout << kv.second.username << endl;
}
}
private:
map<string, UserInfo> users;
};
int main() {
InfoManager manager;
// 添加用户
manager.addUserInfo("Alice", "123456");
manager.addUserInfo("Bob", "654321");
manager.addUserInfo("Charlie", "987654");
// 查找用户
UserInfo info = manager.getUserInfo("Bob");
if (info.username.empty()) {
cout << "User not found." << endl;
} else {
cout << "User " << info.username << " found." << endl;
}
// 修改用户
manager.modifyUserInfo("Charlie", "456789");
// 删除用户
manager.deleteUserInfo("Bob");
// 打印用户列表
manager.printUsers();
// 用户登录
string username, password;
cout << "Enter username and password: " << endl;
cin >> username >> password;
if (manager.checkUser(username, password)) {
cout << "Login successful." << endl;
} else {
cout << "Login failed." << endl;
}
return 0;
}
```
这个例子中我们只是在控制台中输出了一些信息,可以根据需要修改输出内容、格式、颜色等,以实现自己需要的用户界面和交互功能。需要注意的是,这个例子没有对输入数据进行越界处理和错误处理,需要自己根据实际情况添加。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](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)
![](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)