设计并实现一个用户类User,并在主函数中使用和测试这个类。每一个用户有用户名(name),密码(passwd),联系邮箱(email)三个属性。 支持设置用户信息setInfo()。允许设置信息时密码默认为6个1,联系邮箱默认为空串。 支持打印用户信息printInfo()。打印用户名、密码、联系邮箱。其中,密码以6个*方式显示。 支持修改邮箱changeEmail()。支持修改密码changePassword()。在修改密码前,要求先输入旧密码,验证无误后,才允许修改。 如果输入旧密码时,连续三次输入错误,则提示用户稍后再试,暂时退出修改密码程序。 在main()函数中创建User类对象,测试User类的各项操作(设置用户信息,修改邮箱,修改密码,打印用户信息)。
时间: 2023-06-24 21:04:54 浏览: 105
下面是用户类User的实现代码:
```python
#include <iostream>
#include <string>
using namespace std;
class User{
private:
string name;
string passwd;
string email;
int error_count; //记录连续输入错误密码的次数
public:
User(){
name = "";
passwd = "111111";
email = "";
error_count = 0;
}
void setInfo(string name, string passwd="111111", string email=""){
this->name = name;
this->passwd = passwd;
this->email = email;
}
void printInfo(){
cout << "用户名:" << name << endl;
cout << "密码:" << "******" << endl;
cout << "联系邮箱:" << email << endl;
}
void changeEmail(string new_email){
email = new_email;
}
void changePassword(string old_passwd, string new_passwd){
if(old_passwd != passwd){
error_count++;
if(error_count == 3){
cout << "密码输入错误次数过多,请稍后再试!" << endl;
exit(1);
}
cout << "旧密码输入错误,请重新输入!" << endl;
changePassword(old_passwd, new_passwd);
}
else{
passwd = new_passwd;
cout << "密码修改成功!" << endl;
}
}
};
int main(){
User user1;
user1.setInfo("Tom");
user1.printInfo();
user1.changeEmail("tom@gmail.com");
user1.printInfo();
user1.changePassword("111111", "123456");
user1.printInfo();
return 0;
}
```
在主函数中,我们创建一个User类的对象user1,然后调用setInfo()方法设置用户信息,changeEmail()方法修改邮箱,changePassword()方法修改密码,并调用printInfo()方法打印用户信息。
输出结果如下所示:
```
用户名:Tom
密码:******
联系邮箱:
用户名:Tom
密码:******
联系邮箱:tom@gmail.com
旧密码输入错误,请重新输入!
旧密码输入错误,请重新输入!
密码修改成功!
用户名:Tom
密码:******
联系邮箱:tom@gmail.com
```
可以看到,用户类User能够实现我们的要求,支持设置用户信息、打印用户信息、修改邮箱和修改密码,并对输入错误的旧密码进行了处理。
阅读全文