数据结构课程设计登录注册账号用c++编写代码
时间: 2024-03-26 21:35:50 浏览: 14
好的,以下是使用C++来编写数据结构课程设计登录注册账号的示例代码:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm> //用于MD5加密
using namespace std;
//定义用户信息结构体
struct UserInfo {
string username;
string password_md5;
string email;
};
//定义用户信息数组
vector<UserInfo> user_info_list;
//MD5加密函数
string md5(string str) {
//使用C++标准库中的MD5函数对字符串进行加密
//需要在编译时链接openssl库:-lssl -lcrypto
char md5_str[33];
memset(md5_str, 0, sizeof(md5_str));
unsigned char md[16];
MD5((const unsigned char*)str.c_str(), str.length(), md);
for (int i = 0; i < 16; i++) {
sprintf(md5_str, "%s%02x", md5_str, md[i]);
}
return md5_str;
}
//登录函数
bool login() {
string username, password;
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
string password_md5 = md5(password); //对密码进行MD5加密
for (auto& user_info : user_info_list) {
if (user_info.username == username && user_info.password_md5 == password_md5) {
cout << "登录成功!" << endl;
return true;
}
}
cout << "用户名或密码错误!" << endl;
return false;
}
//注册函数
bool register_user() {
string username, password, email;
cout << "请输入用户名:";
cin >> username;
for (auto& user_info : user_info_list) { //检查用户名是否重复
if (user_info.username == username) {
cout << "用户名已存在!" << endl;
return false;
}
}
cout << "请输入密码:";
cin >> password;
cout << "请输入邮箱:";
cin >> email;
string password_md5 = md5(password); //对密码进行MD5加密
UserInfo new_user_info = { username, password_md5, email };
user_info_list.push_back(new_user_info); //将新用户信息添加到用户信息数组中
cout << "注册成功!" << endl;
return true;
}
//主函数
int main() {
while (true) {
int choice;
cout << "请选择操作:1.登录 2.注册 3.退出" << endl;
cin >> choice;
switch (choice) {
case 1:
login();
break;
case 2:
register_user();
break;
case 3:
cout << "程序已退出!" << endl;
return 0;
default:
cout << "无效操作!" << endl;
break;
}
}
return 0;
}
```
以上代码实现了用户信息的存储、用户名和密码的加密存储、登录认证、注册验证等功能。在代码中使用了MD5加密函数和vector容器存储用户信息。程序中的登录、注册过程均由用户交互输入完成。