类模板的运用---智能指针和STL库

发布于:2025-04-08 ⋅ 阅读:(18) ⋅ 点赞:(0)

#include <iostream>
#include <vector>
#include <string>

using namespace std;

// 用户结构体,包含用户名和密码
struct User {
    string username;
    string password;
};

// 注册函数,判断账号是否已存在并添加新用户
bool registerUser(vector<User>& users, const string& username, const string& password) {
    // 检查用户名是否已存在
    for (const auto& user : users) {
        if (user.username == username) {
            cout << "用户名已存在!" << endl;
            return false;  // 用户名已存在,注册失败
        }
    }

    // 如果不存在,添加新用户
    users.push_back({username, password});
    cout << "注册成功!" << endl;
    return true;
}

// 登录函数,验证用户名和密码是否匹配
bool loginUser(const vector<User>& users, const string& username, const string& password) {
    for (const auto& user : users) {
        if (user.username == username && user.password == password) {
            return true;  // 找到匹配的用户名和密码
        }
    }
    return false;  // 登录失败
}

int main() {
    vector<User> users;  // 用于存储用户信息
    int choice;

    while (true) {
        cout << "1. 注册\n";
        cout << "2. 登录\n";
        cout << "3. 退出\n";
        cout << "请输入你的选择: ";
        cin >> choice;

        if (choice == 1) {
            // 注册
            string username, password;
            cout << "请输入用户名: ";
            cin >> username;
            cout << "请输入密码: ";
            cin >> password;
            registerUser(users, username, password);
        }
        else if (choice == 2) {
            // 登录
            string username, password;
            cout << "请输入用户名: ";
            cin >> username;
            cout << "请输入密码: ";
            cin >> password;
            if (loginUser(users, username, password)) {
                cout << "登录成功!" << endl;
            } else {
                cout << "用户名或密码错误!" << endl;
            }
        }
        else if (choice == 3) {
            cout << "退出系统..." << endl;
            break;
        } else {
            cout << "无效的选择,请重新输入!" << endl;
        }
    }

    return 0;
}