用c++写一个用户管理系统,功能包括1.用户添加:增加一个用户到系统中。用户登录:输入用户名和密码登录系统。用户修改:修改用户信息。 用户删除:从系统中删除一个用户的所有信息。
时间: 2024-02-19 11:58:31 浏览: 41
下面是一个简单的用户管理系统的示例代码,它实现了用户添加、登录、修改和删除等功能:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
struct User {
string username;
string password;
string name;
int age;
};
// 定义全局变量 users,用于存储所有用户
vector<User> users;
// 从文件中读取用户信息到 users 中
void loadUsers() {
ifstream file("users.txt");
if (file.is_open()) {
string line;
while (getline(file, line)) {
User user;
user.username = line;
getline(file, user.password);
getline(file, user.name);
file >> user.age;
file.ignore(1, '\n');
users.push_back(user);
}
file.close();
}
}
// 将 users 中的用户信息写入文件
void saveUsers() {
ofstream file("users.txt");
if (file.is_open()) {
for (auto& user : users) {
file << user.username << endl;
file << user.password << endl;
file << user.name << endl;
file << user.age << endl;
}
file.close();
}
}
// 添加一个用户到 users 中
void addUser() {
User user;
cout << "Enter username: ";
getline(cin, user.username);
cout << "Enter password: ";
getline(cin, user.password);
cout << "Enter name: ";
getline(cin, user.name);
cout << "Enter age: ";
cin >> user.age;
cin.ignore(1, '\n');
users.push_back(user);
saveUsers();
cout << "User added successfully." << endl;
}
// 根据用户名和密码查找用户,如果找到返回用户的下标,否则返回 -1
int findUser(const string& username, const string& password) {
for (int i = 0; i < users.size(); ++i) {
if (users[i].username == username && users[i].password == password) {
return i;
}
}
return -1;
}
// 用户登录
void login() {
string username, password;
cout << "Enter username: ";
getline(cin, username);
cout << "Enter password: ";
getline(cin, password);
int index = findUser(username, password);
if (index != -1) {
cout << "Welcome, " << users[index].name << "!" << endl;
} else {
cout << "Invalid username or password." << endl;
}
}
// 修改用户信息
void modifyUser() {
string username, password;
cout << "Enter username: ";
getline(cin, username);
cout << "Enter password: ";
getline(cin, password);
int index = findUser(username, password);
if (index != -1) {
cout << "Enter new name: ";
getline(cin, users[index].name);
cout << "Enter new age: ";
cin >> users[index].age;
cin.ignore(1, '\n');
saveUsers();
cout << "User updated successfully." << endl;
} else {
cout << "Invalid username or password." << endl;
}
}
// 删除用户
void deleteUser() {
string username, password;
cout << "Enter username: ";
getline(cin, username);
cout << "Enter password: ";
getline(cin, password);
int index = findUser(username, password);
if (index != -1) {
users.erase(users.begin() + index);
saveUsers();
cout << "User deleted successfully." << endl;
} else {
cout << "Invalid username or password." << endl;
}
}
// 显示用户列表
void listUsers() {
cout << "Username\tName\tAge" << endl;
for (auto& user : users) {
cout << user.username << "\t" << user.name << "\t" << user.age << endl;
}
}
int main() {
loadUsers();
while (true) {
cout << "1. Add user" << endl;
cout << "2. Login" << endl;
cout << "3. Modify user" << endl;
cout << "4. Delete user" << endl;
cout << "5. List users" << endl;
cout << "6. Exit" << endl;
int choice;
cout << "Enter your choice: ";
cin >> choice;
cin.ignore(1, '\n');
switch (choice) {
case 1:
addUser();
break;
case 2:
login();
break;
case 3:
modifyUser();
break;
case 4:
deleteUser();
break;
case 5:
listUsers();
break;
case 6:
return 0;
default:
cout << "Invalid choice." << endl;
break;
}
}
return 0;
}
```
在该示例中,我们定义了一个 User 结构体来存储用户信息,使用 vector 容器来存储所有用户。我们还定义了一些函数来加载和保存用户信息,添加、登录、修改和删除用户,以及显示用户列表。在主函数中,我们使用一个无限循环来接受用户输入,根据用户的选择调用相应的函数来处理用户管理系统的功能。
请注意,此示例中使用的是文件名字符串,因此您需要确保 users.txt 文件实际存在于您的计算机上,并且位于正确的目录中。另外,此示例中未进行输入验证,您可能需要添加一些输入验证来确保输入的数据是有效的。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)