C++实现用户登录功能 要求第一次使用时需要进行用户名和密码的注册 用户名和密码需要保存在本地的数据库中,后续登录输入密码和用户名需要通过和本地mysql中提前注册的进行校验,成功后输出good
时间: 2023-09-08 10:10:44 浏览: 519
基于C++实现的登录系统项目源码+代码注释(实现日志功能和账号管理功能).zip
要实现这个功能,需要以下步骤:
1. 安装 MySQL 数据库,并创建一个名为 user 的数据库和一个名为 user_info 的表,用于存储用户名和密码信息。
2. 在 C++ 中使用 MySQL Connector/C++ 库来连接数据库并进行数据操作。
3. 编写程序实现用户注册和登录功能。
下面是一个简单的示例程序,可以实现用户注册和登录功能:
```c++
#include <iostream>
#include <string>
#include <mysql_connection.h>
#include <mysql_driver.h>
#include <cppconn/exception.h>
#include <cppconn/prepared_statement.h>
using namespace std;
using namespace sql;
// 数据库连接信息
const string db_host = "localhost";
const string db_user = "root";
const string db_password = "123456";
const string db_name = "user";
// 注册用户函数
void registerUser() {
string username, password;
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
try {
// 连接数据库
mysql::MySQL_Driver *driver = mysql::get_driver_instance();
Connection *con = driver->connect(db_host, db_user, db_password);
con->setSchema(db_name);
// 插入数据
PreparedStatement *stmt = con->prepareStatement("INSERT INTO `user_info` (`username`, `password`) VALUES (?, ?)");
stmt->setString(1, username);
stmt->setString(2, password);
stmt->executeUpdate();
cout << "注册成功!" << endl;
delete stmt;
delete con;
} catch (SQLException &e) {
cerr << "注册失败:" << e.what() << endl;
}
}
// 用户登录函数
void loginUser() {
string username, password;
cout << "请输入用户名:";
cin >> username;
cout << "请输入密码:";
cin >> password;
try {
// 连接数据库
mysql::MySQL_Driver *driver = mysql::get_driver_instance();
Connection *con = driver->connect(db_host, db_user, db_password);
con->setSchema(db_name);
// 查询数据
PreparedStatement *stmt = con->prepareStatement("SELECT COUNT(*) FROM `user_info` WHERE `username` = ? AND `password` = ?");
stmt->setString(1, username);
stmt->setString(2, password);
ResultSet *rs = stmt->executeQuery();
if (rs->next() && rs->getInt(1) == 1) {
cout << "登录成功!" << endl;
} else {
cout << "用户名或密码错误!" << endl;
}
delete rs;
delete stmt;
delete con;
} catch (SQLException &e) {
cerr << "登录失败:" << e.what() << endl;
}
}
int main() {
int choice;
while (true) {
cout << "请选择操作:1.注册 2.登录 3.退出" << endl;
cin >> choice;
switch (choice) {
case 1:
registerUser();
break;
case 2:
loginUser();
break;
case 3:
return 0;
default:
cout << "无效的操作!" << endl;
break;
}
}
}
```
在该程序中,用户可以选择注册、登录或退出操作。当用户选择注册操作时,程序会要求输入用户名和密码,并将其插入到数据库中。当用户选择登录操作时,程序会要求输入用户名和密码,并在数据库中查询是否存在该用户,并校验密码是否正确。如果验证通过,则登录成功,否则登录失败。如果用户选择退出操作,则程序结束运行。
阅读全文