版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/83832712
实现QQ新帐户申请和老帐户登陆的简化版功能最大挑战是:据说现在的QQ号码已经有10位数了。
输入首先给出一个正整数N(≤105105),随后给出Ñ行指令每行指令的格式为:“命令符(空格)QQ号码(空格)密码”其中命令符为“N”(代表新)时表示要新申请一个QQ号,后面是新帐户的号码和密码;命令符为“L”(代表登录)时表示是老帐户登陆,后面是登陆信息。QQ号码为一个不超过10位密码为不小于6位,不,但大于1000(据说QQ老总的号码是1001)的整数。超过16位,且不包含空格的字符串。
针对每条指令,给出相应的信息:
1) 若新申请帐户成功,则输出“New: OK”; 2) 若新申请的号码已经存在,则输出“ERROR: Exist”; 3) 若老帐户登陆成功,则输出“Login: OK”; 4) 若老帐户QQ号码不存在,则输出“ERROR: Not Exist”; 5) 若老帐户密码错误,则输出“ERROR: Wrong PW”。
5
L 1234567890 myQQ@qq.com
N 1234567890 myQQ@qq.com
N 1234567890 myQQ@qq.com
L 1234567890 myQQ@qq
L 1234567890 myQQ@qq.com
ERROR: Not Exist
New: OK
ERROR: Exist
ERROR: Wrong PW
Login: OK
#include <bits/stdc++.h>
using namespace std;
struct instruction
{
char ch;
string qq,code; //QQ号码和密码
};
int main()
{
int n;
cin >> n;
instruction s[n];
map<string,string> QQ; //用来存放账号和密码
for(int i=0;i<n;i++)
{
cin >> s[i].ch >> s[i].qq >> s[i].code;
switch(s[i].ch)
{
case 'N': //'N'表示要新申请一个QQ号
if(QQ.find(s[i].qq)==QQ.end()) //若账号不存在
{
QQ[s[i].qq] = s[i].code; //QQ存放用户的账户密码
cout << "New: OK" << endl; //若新申请帐户成功,则输出"New: OK"
}
else //若账号已存在
{
cout << "ERROR: Exist" << endl; //若新申请的号码已经存在,则输出"ERROR: Exist"
}
break;
case 'L': //'L'表示是老用户登陆
if(QQ.find(s[i].qq)==QQ.end())
{
cout << "ERROR: Not Exist" << endl; //若老帐户QQ号码不存在,则输出"ERROR: Not Exist"
}
else
{
if(QQ[s[i].qq]==s[i].code) //判断老账户输入的密码是否正确
{
cout << "Login: OK" << endl; //若老帐户登陆成功,则输出"Login: OK"
}
else
{
cout << "ERROR: Wrong PW" << endl; //若老帐户密码错误,则输出"ERROR: Wrong PW"
}
}
break;
default: break;
}
}
return 0;
}