-
Notifications
You must be signed in to change notification settings - Fork 0
/
User.h
64 lines (48 loc) · 1.37 KB
/
User.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#pragma once
#include <string>
#include "Language.h"
#include <memory>
using namespace std;
/**
* @author XZH
*/
class User
{
private:
// 用户名
string name;
// 密码
string password;
// 手机号
string phone;
// userLanguage是一个智能指针,用于管理Language类的对象
static shared_ptr<Language> userLanguage;
// 通过第i项内容查询并更新
static void updateUserByI(const string& filename, const string& phone, int i);
public:
// 无参构造函数
User() = default;
// 有参构造函数
User(string na, string pa, string ph);
User(string na, string pa);
// 用于初始化语言的构造函数
User(shared_ptr<Language>& langPtr);
// 成员变量对应的get函数
string getName();
string getPassword();
// 将用户信息保存至文件中
void saveUserToFile(const string& filename);
// 判断用户名和密码是否匹配
bool isPasswordValid(const string& filename);
// ---------------------------static---------------------------
// 判断是否存在该用户名
static bool isUsernameExists(const std::string& username, const std::string& filename);
// 判断是否存在该手机号
static bool isPhoneExists(const std::string& phone, const string& filename);
// 手机号存在时发送验证码
static string findPhoneAndSendVerificationCode(const string& phone, const string& filename);
// 根据手机号更新职工
static void updateUserByPhone(const string& filename, const string& phone);
// 输入密码
static string inputPassword();
};