C++(类模板的运用)

 C++(类模板的运用)_第1张图片

使用vector实现一个简单的本地注册登录系统 注册:将账号密码存入vector里面,注意防重复判断 登录:判断登录的账号密码是否正确 

#include 
#include 
#include 
#include 
using namespace std;

struct usr {
    string pin;
    string psw;
};

// 读取所有用户信息
vector readUsers(const string& filename) {
    vector users;
    ifstream infile(filename);
    string pin, psw;
    while (infile >> pin >> psw) {
        users.push_back({pin, psw});
    }
    infile.close();
    return users;
}

// 检查账号是否已存在
bool isDuplicate(const vector& users, const string& pin) {
    for (const auto& u : users) {
        if (u.pin == pin) {
            return true;
        }
    }
    return false;
}

// 验证登录
bool loginValid(const vector& users, const string& pin, const string& psw) {
    for (const auto& u : users) {
        if (u.pin == pin && u.psw == psw) {
            return true;
        }
    }
    return false;
}

// 写入新用户到文件
void writeUser(const string& filename, const usr& user) {
    ofstream outfile(filename, ios::app); // 追加写入
    outfile << user.pin << " " << user.psw << endl;
    outfile.close();
}

int main() {
    const string filename = "1.txt";

    while (true) {
        cout << "选择操作:" << endl;
        cout << "1. 注册" << endl;
        cout << "2. 登录" << endl;
        cout << "3. 退出" << endl;

        int choice;
        cin >> choice;

        if (choice == 1) {
            usr user;
            cout << "请输入账号和密码:" << endl;
            cin >> user.pin >> user.psw;

            vector users = readUsers(filename);
            if (isDuplicate(users, user.pin)) {
                cout << "账号已存在,注册失败。" << endl;
            } else {
                writeUser(filename, user);
                cout << "注册成功!" << endl;
            }
        }
        else if (choice == 2) {
            string pin, psw;
            cout << "请输入账号和密码:" << endl;
            cin >> pin >> psw;

            vector users = readUsers(filename);
            if (loginValid(users, pin, psw)) {
                cout << "登录成功,欢迎回来," << pin << "!" << endl;
            } else {
                cout << "登录失败,账号或密码错误。" << endl;
            }
        }
        else if (choice == 3) {
            cout << "程序已退出,再见!" << endl;
            break;
        }
        else {
            cout << "请输入正确选项(1-3)!" << endl;
        }

        cout << endl;
    }

    return 0;
}

C++(类模板的运用)_第2张图片

C++(类模板的运用)_第3张图片 

你可能感兴趣的:(c++,开发语言)