c++写散列表实现qq账户的申请和登录代码

时间: 2024-01-21 21:19:06 浏览: 23
下面是一个简单的散列表实现QQ账户的申请和登录的C++代码: ```c++ #include <iostream> #include <string> using namespace std; const int SIZE = 100; // 散列表的大小 // 定义用户节点 struct User { string username; // 用户名 string password; // 密码 User* next; // 指向下一个节点的指针 }; // 定义散列表 User* hashtable[SIZE] = {NULL}; // 计算散列值 int getHash(string key) { int sum = 0; for (int i = 0; i < key.length(); i++) { sum += key[i]; } return sum % SIZE; } // 添加用户 void addUser(string username, string password) { int index = getHash(username); // 计算散列值 User* newUser = new User; // 创建新用户节点 newUser->username = username; newUser->password = password; newUser->next = NULL; // 如果该位置为空,则直接插入 if (hashtable[index] == NULL) { hashtable[index] = newUser; } // 否则插入到链表头部 else { newUser->next = hashtable[index]; hashtable[index] = newUser; } cout << "添加用户成功!" << endl; } // 验证用户 bool verifyUser(string username, string password) { int index = getHash(username); // 计算散列值 User* user = hashtable[index]; while (user != NULL) { if (user->username == username && user->password == password) { return true; } user = user->next; } return false; } int main() { // 添加用户 addUser("Alice", "123456"); addUser("Bob", "654321"); // 验证用户 string username, password; cout << "请输入用户名:"; cin >> username; cout << "请输入密码:"; cin >> password; if (verifyUser(username, password)) { cout << "登录成功!" << endl; } else { cout << "用户名或密码错误!" << endl; } return 0; } ``` 运行程序后,可以依次输入用户名和密码进行验证,程序会输出登录成功或者用户名密码错误的提示。

相关推荐

最新推荐

recommend-type

c++获取进程信息列表和进程所调用的dll列表

主要介绍了c++获取进程信息列表和进程所调用的dll列表,大家参考使用吧
recommend-type

约瑟夫环问题用C++代码实现

8. 【题目】约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到k... (2)在主函数中输入总人数和报的数,输出最后一个人的编号。
recommend-type

linux系统中c++写日志文件功能分享

主要介绍了linux系统中c++写日志文件功能,简化了glog,只保留了写日志文件的功能,只是改写了linux版本,需要的朋友可以参考下
recommend-type

C++实现图形界面时钟表盘代码

主要介绍了C++实现图形界面时钟表盘代码,涉及坐标函数的应用及图形界面程序设计,需要的朋友可以参考下
recommend-type

C++实现USB HID设备读写代码

C++实现USB HID设备读写代码,通过C++语言来实现读取usb接口设备的数据读写。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

如何用python编写api接口

在Python中编写API接口可以使用多种框架,其中比较流行的有Flask和Django。这里以Flask框架为例,简单介绍如何编写API接口。 1. 安装Flask框架 使用pip命令安装Flask框架: ``` pip install flask ``` 2. 编写API接口 创建一个Python文件,例如app.py,编写以下代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/hello', methods=['GET']) def hello():
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。