zoukankan      html  css  js  c++  java
  • 浙江大学PAT上机题解析之5-05. QQ帐户的申请与登陆

    实现QQ新帐户申请和老帐户登陆的简化版功能。最大挑战是:据说现在的QQ号码已经有10位数了。

    输入格式说明:

    输入首先给出一个正整数N(<=105),随后给出N行指令。每行指令的格式为:“命令符(空格)QQ号码(空格)密码”。其中命令符为“N”(代表New)时表示要新申请一个QQ号,后面是新帐户的号码和密码;命令符为“L”(代表Login)时表示是老帐户登陆,后面是登陆信息。QQ号码为一个不超过10位、但大于1000(据说QQ老总的号码是1001)的整数。密码为不小于6位、不超过16位、且不包含空格的字符串。

    输出格式说明:

    针对每条指令,给出相应的信息:

    1) 若新申请帐户成功,则输出“New: OK”;
    2) 若新申请的号码已经存在,则输出“ERROR: Exist”;
    3) 若老帐户登陆成功,则输出“Login: OK”;
    4) 若老帐户QQ号码不存在,则输出“ERROR: Not Exist”;
    5) 若老帐户密码错误,则输出“ERROR: Wrong PW”。

    样例输入与输出:

    序号 输入 输出
    1
    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 <iostream>
    #include <string>
    #include <map>
    
    using namespace std;
    
    
    int main()
    {
    	map<long long,string>   m;
    	map<long long,string>::iterator it;
    	int N=0;
    	char  ch;
    	long long  number=0;
    	string psw;
    
    	cin>>N;
    	while(N--)
    	{
    		cin>>ch>>number>>psw;
    		if (ch=='N')
    		{
    		  if (m.find(number)!=m.end())
    		  {
    			  cout<<"ERROR: Exist"<<endl;
    			  continue;
    		  }
    		  else
    		  {
    			  cout<<"New: OK"<<endl;
    			  m.insert(make_pair(number,psw));
    		  }
    
    
    		}
    		else
    		if (ch=='L')
    		{
    			it = m.find(number);
    
    			if (it==m.end())
    			{
    				cout<<"ERROR: Not Exist"<<endl;
    				continue;
    			}
    			else
    			{
    				if (psw!= it->second)
    				{
    					cout<<"ERROR: Wrong PW"<<endl;
    					continue;
    				}
    				else
    				{
    					cout<<"Login: OK"<<endl;
    					continue;
    				}
    			}
    
    		}
    	}
    
    
    	//system("pause");
    	return 0;
    }
    

    //这里有必要注明一下,这道题我提交了很多次,一直是编译错误,但是我在VS2010 和Dev C++上都通过了,后来我把插入语句m.insert(make_pair<long long,string>(number,psw))中的泛型参数去掉了结果就AC了,我不知道是我在泛型这一块理解有问题还是PAT的在线提交系统参数有问题,我希望有明白的人士能够指点一下这是为什么,谢谢!

     

     

  • 相关阅读:
    [改善Java代码]使用构造块精炼程序
    [改善Java代码]若有必要,使用变长数组
    [改善Java代码]警惕数组的浅拷贝
    [改善Java代码]在明确的场景下,为集合指定初始容量
    [改善Java代码] 枚举项数量限定为64个以内
    [改善Java代码]多种最值算法,适时选择
    [改善Java代码]推荐使用枚举定义常量
    [改善Java代码]性能考虑,数组是首选
    [改善Java代码]用偶判断,不用奇判断
    [改善Java代码]break万万不可忘
  • 原文地址:https://www.cnblogs.com/ainima/p/6331242.html
Copyright © 2011-2022 走看看