?思維導圖:
?
#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;
}