Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 775 Solved: 298
[Submit][Status]
Description
定义类Accounts,记录若干个用户的用户名和密码,假定所有用户名不重复。判断用户输入的用户名和密码能否登录。
如果用户名不存在,则输出:user name error
如果用户名正确,但是密码错误,则输出:password error
如果用户名、密码均正确,则输出:welcome
Accounts类的addUser方法用于增加新用户,两个参数依次是用户名和密码;login方法用于尝试登录系统,两个参数依次是用户名和密码。
Input
输入分两部分。
第一部分第一行输入一个正整数N,表示后面有N行输入,每行包括两个字符串,分别是用户名和密码,均不含空白符。用于建立账户信息。
第二部分第一行输入一个正整数M,表示后面有M行输入,每行包括两个字符串,分别是用户名和密码,均不含空白符。用于测试能否登录。
Output
输出有M行,与第二部分输入的M行一一对应,输出结果为:
如果用户名不存在,则输出:user name error
如果用户名正确,但是密码错误,则输出:password error
如果用户名、密码均正确,则输出:welcome
Sample Input
4
tom tom
jack tom
mary jack
richar 123
3
tom jack
jack tom
richard 123
Sample Output
password error
welcome
user name error
HINT
Append Code
append.cc,
[Submit][Status]
#include <iostream>
#include <map>
using namespace std;
class Accounts
{
map<string,string>account;
public:
void addUser(string a,string b)
{
account.insert(make_pair(a,b));
}
void login(string a,string b)
{
if(!account.count(a))
{
cout<<"user name error"<<endl;
}
else if(account[a]!=b)
{
cout<<"password error"<<endl;
}
else
{
cout<<"welcome"<<endl;
}
}
};
int main(){
int n, i;
string a, b;
Accounts accounts;
cin>>n;
for(i=0;i<n;i++)
{
cin>>a>>b;
accounts.addUser(a,b);
}
cin>>n;
for(i=0;i<n;i++)
{
cin>>a>>b;
accounts.login(a,b);
}
return 0;
}