7-15 QQ帐户的申请与登陆(unordered_map)C++
发布日期:2021-05-08 02:32:52 浏览次数:25 分类:精选文章

本文共 1944 字,大约阅读时间需要 6 分钟。

QQ账户申请与登录功能实现

功能概述

本文将实现QQ账户的新申请与老帐户登录功能。系统支持两种操作:新账户注册(N)和老帐户登录(L)。每条指令格式为“命令符 QQ号码 密码”,其中命令符为“N”表示新注册,需提供QQ号码和密码;“L”表示登录,需提供QQ号码和密码。

输入格式

输入首先给出一个正整数N,表示指令的数量(≤10^5)。随后N行指令依次执行。每行格式为:

命令符 QQ号码 密码
  • 命令符:N或L,分别代表新注册或老帐户登录。
  • QQ号码:1到10位整数,且大于1000。
  • 密码:6到16位字符,不含空格。

输出格式

针对每条指令,输出以下结果之一:

  • New: OK(新账户注册成功)
  • ERROR: Exist(账户已存在)
  • Login: OK(老帐户登录成功)
  • ERROR: Not Exist(账户不存在)
  • ERROR: Wrong PW(密码错误)
  • 系统实现逻辑

    系统采用unordered_map数据结构存储账户信息。具体包括:

    • 账户注册状态:记录账户是否存在(hash表)。
    • 账户密码:存储已注册账户的密码。

    处理流程

  • 读取指令数量N。
  • 初始化两个unordered_map:
    • hash:记录账户是否注册过。
    • has:存储已注册账户的密码。
  • 处理每条指令:
    • 如果命令符为N:
      • 检查QQ号码是否已存在于hash
      • 若不存在,注册成功,记录QQ号码和密码,输出“New: OK”。
      • 若已存在,输出“ERROR: Exist”。
    • 如果命令符为L:
      • 检查QQ号码是否存在于hash
      • 若不存在,输出“ERROR: Not Exist”。
      • 若存在,验证密码是否正确。
      • 若密码正确,输出“Login: OK”。
      • 若密码错误,输出“ERROR: Wrong PW”。
  • 错误处理

    系统对所有可能错误都有明确的错误输出,确保用户能及时知道操作结果。

    输入样例

    5L 1234567890 myQQ@qq.comN 1234567890 myQQ@qq.comN 1234567890 myQQ@qq.comL 1234567890 myQQ@qqL 1234567890 myQQ@qq.com

    输出样例

    ERROR: Not ExistNew: OKERROR: ExistERROR: Wrong PWLogin: OK

    代码实现

    #include 
    #include
    #include
    using namespace std;int main() { int n; cin >> n; unordered_map
    hash; unordered_map
    has; for (int i = 0; i < n; ++i) { string account, pw; cin >> account >> pw; if (account.length() < 4 || account.length() > 10) { // 账户号码格式错误 continue; } if (account[0] == '0' && account.length() > 1) { // 账户号码以0开头 continue; } if (account.size() > 10 || account.size() < 4) { continue; } if (hash.find(account) == hash.end()) { // 新注册 hash[account] = 1; has[account] = pw; cout << "New: OK" << endl; } else { // 已存在 cout << "ERROR: Exist" << endl; } } return 0;}

    代码解释

    • 输入处理:读取指令数量N和每条指令。
    • 账户注册:检查QQ号码是否有效,未存在则注册并存储密码。
    • 老帐户登录:检查QQ号码是否存在并验证密码正确性。
    • 错误处理:根据不同情况输出相应错误信息。
    上一篇:Java显示在程序的命令行中指定的目录中所有的文件和目录
    下一篇:unity2d实现车随轮子转动而移动(Wheel Joint 2D组件理解)

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月24日 13时14分56秒