思维导图:
#include <iostream>
#include <vector>
#include <string>
using namespace std;// 用户结构体
struct User {string username;string password;
};vector<User> users; // 存储所有注册用户// 使用迭代器查找用户名是否存在
vector<User>::iterator findUser(const string& username) {auto it = users.begin();for (; it != users.end(); ++it) {if (it->username == username) {return it;}}return users.end(); // 未找到返回结束迭代器
}void registerUser() {User newUser;cout << "请输入用户名: ";cin >> newUser.username;// 使用迭代器查重if (findUser(newUser.username) != users.end()) {cout << "用户名已存在!" << endl;return;}cout << "请输入密码: ";cin >> newUser.password;users.push_back(newUser); // 使用vector的push_back添加元素cout << "注册成功!" << endl;
}void loginUser() {string username, password;cout << "请输入用户名: ";cin >> username;cout << "请输入密码: ";cin >> password;// 使用迭代器遍历验证auto it = users.begin();for (; it != users.end(); ++it) {if (it->username == username && it->password == password) {cout << "登录成功!" << endl;return;}}cout << "用户名或密码错误!" << endl;
}int main() {int choice;do {cout << "\n1. 注册\n2. 登录\n3. 退出\n请选择操作: ";cin >> choice;switch (choice) {case 1:registerUser();break;case 2:loginUser();break;case 3:cout << "系统已退出。" << endl;break;default:cout << "无效选项,请重新输入!" << endl;}} while (choice != 3);return 0;
}