A代码完善--密码找回

2020年1月17日 996点热度 0人点赞 0条评论

A代码完善--密码找回

时间: 1ms        内存:128M

描述:

小平做的手机app终于上线了,系统运行一段时间后,经常会有用户忘记密码。已知用户的信息存储在当前路径下的文件"password.dic"中,每个用户的信息按照注册顺序保存为三行,第一行为用户名,第二行为密码提示问题,第三行为密码。例如
zhangsan              该行为用户名
my hometown       该行为密码提示问题
123456                  该行为密码
lisi                 
no answer
abcd
为此请你帮助他编写一个密码查询程序,用户只有输入正确的用户名和密码提示问题后才会显示密码。

注:本题只需要提交修改和完善部分的代码,请按照C++方式提交。

#include <string>
#include <iostream>
#include <fstream>
using namespace std;
class User
{
public:
    User(string Username="",string PromptQuestion="",string Password="");
    string GetUsername();
    string GetPromptQuestion();
    string GetPassword();
    void SetUsername(string Username)
    {
        this->Username=Username;
    }
    void SetPromptQuestion(string PromptQuestion)
    {
        this->PromptQuestion=PromptQuestion;
    }
    void SetPassword(string Password)
    {
        this->Password=Password;
    }
    bool CmpUsername(string Username)
    {
        return this->Username==Username;
    }
    bool CmpPromptQuestion(string PromptQuestion)
    {
        return this->PromptQuestion==PromptQuestion;
    }
    string PasswordGet(string Username,string PromptQuestion);
private:
    string Username;
    string PromptQuestion;
    string Password;
};
User::User(string Username,string PromptQuestion,string Password)
{
    SetUsername(Username);
    SetPromptQuestion(PromptQuestion);
    SetPassword(Password);
}

string User::PasswordGet(string Username,string PromptQuestion)
{
    ifstream fin("password.dic",ios::in);
    string tmpUsername,tmpPromptQuestion,tmpPassword;
    /*    修改和完善该部分代码
     while(getline(fin,tmpUsername)&&fin)
        {
            getline(fin,tmpPromptQuestion);
            User user(tmpUsername,tmpPromptQuestion,tmpPassword);
            if(!user.CmpUsername(Username))
            {
                tmpPassword = "错误的用户名";
            }
            if(!user.CmpPromptQuestion(PromptQuestion))
            {
                tmpPassword = "错误的密码提示问题";
            }
        }
    */
    fin.close();
    return tmpPassword;
}
int main()
{
    User user;
    string Username,PromptQuestion,Password;
    getline(cin,Username);
    getline(cin,PromptQuestion);
    Password=user.PasswordGet(Username,PromptQuestion);
    cout<<Password<<endl;
    return 0;
}

输入:

要查询的用户名和密码提示问题

输出:

用户名和密码提示问题正确,输出密码,结束;
用户名错误,输出"错误的用户名",结束;
密码提示问题错误,输出"错误的密码提示问题",结束。

示例输入:

zhangsan
my name

示例输出:

错误的密码提示问题

提示:

参考答案:

解锁文章

没有看到答案?微信扫描二维码可免费解锁文章

微信扫描二维码解锁

使用微信扫描二维码打开广告页面后可以立即关闭,再刷新此页面即可正常浏览此文章

所跳转广告均由第三方提供,并不代表本站观点!

已经扫描此二维码?点此立即跳转

code

这个人很懒,什么都没留下

文章评论