完善用户的注册登录代码,可以参考以下示例:
```c++
#include
#include
#include
#include "FileUtil.h"
using namespace std;
class User {
private:
string username;
string password;
double balance;
bool loggedIn;
public:
User(string username, string password, double balance) {
this->username = username;
this->password = password;
this->balance = balance;
this->loggedIn = false;
}
string getUsername() const {
return username;
}
string getPassword() const {
return password;
}
double getBalance() const {
return balance;
}
void setBalance(double balance) {
this->balance = balance;
}
bool isLoggedIn() const {
return loggedIn;
}
void login() {
loggedIn = true;
}
void logout() {
loggedIn = false;
}
};
bool registerUser() {
// 获取用户名和密码
cout << "Enter a username: ";
string username;
cin >> username;
cout << "Enter a password: ";
string password;
cin >> password;
// 检查用户名是否已存在
vector users = FileUtil::readUsersFromFile("users.txt");
for (auto& user : users) {
if (user.getUsername() == username) {
cout << "Sorry, the username is already taken." << endl;
return false;
}
}
// 创建新用户并保存到文件
User newUser(username, password, 0.0);
users.push_back(newUser);
FileUtil::writeUsersToFile(users, "users.txt");
cout << "User registered successfully!" << endl;
return true;
}
bool loginUser(User& currentUser) {
// 获取用户名和密码
cout << "Enter your username: ";
string username;
cin >> username;
cout << "Enter your password: ";
string password;
cin >> password;
// 查找用户并检查密码是否正确
vector users = FileUtil::readUsersFromFile("users.txt");
for (auto& user : users) {
if (user.getUsername() == username && user.getPassword() == password) {
currentUser = user;
currentUser.login();
cout << "Login successful!" << endl;
return true;