给我写用户注册登录系统基于C==
时间: 2024-05-05 13:22:51 浏览: 6
好的,以下是一个简单的用户注册登录系统的 C++ 代码示例:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 用户信息结构体
struct UserInfo {
string username; // 用户名
string password; // 密码
};
// 存储所有用户信息的容器
vector<UserInfo> userInfos;
// 注册函数
void registerUser() {
UserInfo userInfo;
cout << "请输入用户名:";
cin >> userInfo.username;
// 检查该用户名是否已被注册
for (auto user : userInfos) {
if (user.username == userInfo.username) {
cout << "该用户名已被注册,请重新输入!" << endl;
registerUser(); // 递归调用自己重新注册
return;
}
}
cout << "请输入密码:";
cin >> userInfo.password;
// 将新用户信息添加到用户列表中
userInfos.push_back(userInfo);
cout << "注册成功!" << endl;
}
// 登录函数
void loginUser() {
string username, password;
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
// 检查用户是否存在
bool userFound = false;
for (auto user : userInfos) {
if (user.username == username && user.password == password) {
userFound = true;
break;
}
}
if (userFound) {
cout << "登录成功!" << endl;
} else {
cout << "用户名或密码错误,请重试!" << endl;
loginUser(); // 递归调用自己重新登录
}
}
int main() {
int choice;
while (true) {
cout << "1. 注册账号" << endl;
cout << "2. 登录账号" << endl;
cout << "3. 退出程序" << endl;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
registerUser();
break;
case 2:
loginUser();
break;
case 3:
return 0;
default:
cout << "无效的操作,请重新选择!" << endl;
}
}
return 0;
}
```
本示例中,用户信息使用结构体 `UserInfo` 来表示,包括用户名和密码。所有用户信息存储在一个名为 `userInfos` 的 vector 容器中,其中 `registerUser` 函数用于注册新用户,`loginUser` 函数用于登录已有用户。在注册和登录时,通过遍历 `userInfos` 列表来检查用户名是否已被注册,或者用户名和密码是否匹配。如果用户不存在或者登录信息不匹配,则会提示重新输入,并递归调用自己重新输入。最后,通过一个循环菜单,用户可以选择注册、登录或退出程序。