#include <iostream>
#include <cstring>
#include <cstdlib>
#include <unistd.h>
#include <sstream>
#include <vector>
#include <memory>
using namespace std;
class Stu {
private:
public:
};
// 自定义 vector 类,重载 << 运算符方便添加元素
template <class T>
class myVector : public vector<T> {
public:
myVector& operator<<(const T& val) {
this->push_back(val);
return *this;
}
};
// 选择登录还是注册功能
int choose() {
int num;
cout << "请选择登录或注册功能(登录输入 1,注册输入 2,退出输入 3)" << endl;
cin >> num;
return num;
}
// 注册函数
bool registerAccount(myVector<string>& accounts, const string& username, const string& password) {
for (size_t i = 0; i < accounts.size(); i += 2) {
if (accounts[i] == username) {
cout << "该账号已存在,请重新选择操作!" << endl;
return false;
}
}
accounts << username << password;
cout << "注册成功!" << endl;
return true;
}
// 登录函数
bool loginAccount(const myVector<string>& accounts, const string& username, const string& password) {
for (size_t i = 0; i < accounts.size(); i += 2) {
if (accounts[i] == username && accounts[i + 1] == password) {
cout << "登录成功!" << endl;
return true;
}
}
cout << "账号或密码错误,请重新选择操作!" << endl;
return false;
}
int main(int argc, const char** argv) {
myVector<string> accounts;
int choice;
string username, password;
while (true) {
choice = choose();
switch (choice) {
case 1: {
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
loginAccount(accounts, username, password);
break;
}
case 2: {
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
registerAccount(accounts, username, password);
break;
}
case 3:
cout << "退出系统!" << endl;
return 0;
default:
cout << "无效的选择,请重新输入!" << endl;
}
}
return 0;
}