设计散列表实现通讯录查找系统_[源码和文档分享]利用哈希表实现电话号码查询系统...

第一章 需求分析

1.1 问题描述

设计一个电话号码查询系统,为来访的客⼈提供各种信息查询服务。

1.2 基本要求

  • 设计每个记录有下列数据项:电话号码、用户名、地址
  • 从键盘输入个记录,分别以电话号码和用户名为关键字建立不同散列表存储
  • 采用一定的方法解决冲突
  • 查找并显示给定电话号码的记录
  • 查找并显示给定用户名的记录

1.3 实现提示

  • 设计不同的散列函数,尝试不同类型冲突解决方案,考察平均查找长度的变化
  • 记录与散列表分开,达到不同关键字散列表可共享记录

1.4 补充内容

  • 自动读入硬盘中的记录,并可以选择存储更新后的记录
  • 提供信息检测机制,以学号作为唯一关键字,对重复学号的记录不允许插入
  • 提供删除功能
  • 提供空⽩检测机制,输入信息任意一项为空则不允许插入
  • 提供格式检测机制,输入信息的格式不正确则不允许插入(如年龄不允许输入字符或字符串)
  • 采用不同的hash函数构建方法和不同的冲突处理方式
  • 实现用户界面

第二章 系统描述

2.1 开发语言及主要功能实现方法

本程序基于java语言写成,配置java所需环境变量。 本程序中链表和hash函数均未使用java库中已有函数,链表和hash函数都 是使用java语言自⼰编写实现。 Java 语言实现链表和 C 语言类似,但由于 java 没有指针功能,因此可以将 节点作为单独的类,用引用的方法实现链式链接。 Hash函数分别采用除留取余法和伪随机数法,其中伪随机数用于字符串构造 hash函数,可根据不同的字符串生成不同的随机数。 冲突处理分别采用线性探测法、再哈希法和链地址法。

9af755bd8ca70db11b851774d952d2e3.png

3a4ad337c9d26aa171b9a6c439376168.png

参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/1431.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础(1)

【1】简述#include<>和#include" "的区别 答&#xff1a;前者直接从编译器指定的路径处搜索&#xff1b; 后者在程序当前的目录进行搜索&#xff0c;如果没有搜索到再从编译器指定的路径出搜索。 【2】简述##与#在define中的作用 答&#xff1a;1.宏定义中#…

java 存储数据到文件中_本机速度文件支持的“纯” Java大数据存储

java 存储数据到文件中动机 所有这一切始于意识到我买不起足够大的计算机。 音频处理需要大量的内存。 Audacity是一款出色的免费音频处理器&#xff0c;它使用文件支持的存储系统对其进行管理。 这是解决此类问题的常用方法&#xff0c;在这些问题中&#xff0c;我们存储大量信…

mysql每条sql以什么结束_一条 SQL 查询语句是如何执行的?

一条 SQL 查询语句是如何执行的&#xff1f;比如&#xff0c;你有个最简单的表&#xff0c;表里只有一个ID字段&#xff0c;在执行下面这个查询语句时mysql> select from T where ID10;我们只看到一个输入语句&#xff0c;返回一个结果&#xff0c;却不知道这个 SQL 语句在 …

C++基础(2)

【1】静态全局变量 1.通常情况下&#xff0c;静态全局变量的声明和定义放在源文件中&#xff0c;并且不能使用extern关键字将全局静态变量导出&#xff0c;作用域仅限于定义静态全局变量的文件内部。 2.如果头文件中声明静态全局变量&#xff0c;在声明的同时会被初始化&…

ROI区域图像叠加

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2\opencv.hpp> using namespace cv; using namespace std;int main() {//1.加载两幅图片Mat src imread("风景.jpg"…

drill apache_使用Apache Drill REST API通过Node构建ASCII仪表盘

drill apacheApache Drill有一个隐藏的瑰宝&#xff1a;易于使用的REST接口。 该API可用于查询&#xff0c;分析和配置Drill引擎。 在此博客文章中&#xff0c;我将解释如何使用Brilled Contrib使用Drill REST API创建ascii仪表板。 ASCII仪表盘如下所示&#xff1a; 先决条…

mysql 8.0用doc修改密码_MYSQL8.0修改密码流程

MYSQL8.0修改密码流程1.以管理员身份打开cmd2.找到mysql 的安装路径bin文件的路径&#xff0c;3.输入net start mysql4.输入mysql -u root -p5.找到my.ini文件6.在my.ini里面的[mysqld]这一行后面添加 skip -grant-tables,保存文件&#xff0c;注意不是[mysql]7.输入mysqld --s…

颜色空间缩减color space reduction

颜色空间缩减公式 //---------------------------------【头文件、命名空间包含部分】-------------------------- // 描述&#xff1a;包含程序所使用的头文件和命名空间 //---------------------------------------------------------------------------------------…

运动基元_发现大量Java基元集合处理

运动基元在阅读博客文章5减少Java垃圾收集开销的技巧时 &#xff0c;我想起了一个名为Trove的小型Java收集库&#xff0c;该库“为Java提供了高速的常规和原始收集”。 我对将Trove应用到允许原语的集合而不是要求集合中的元素成为完整的引用对象的能力特别感兴趣。 我在这篇文…

python判断奇偶数字符串的拼接_Python字符串拼接方法总结

这篇文章主要介绍了Python字符串拼接的几种方法整理的相关资料,这里提供了五种方法及实现&#xff0c;需要的朋友可以参考下Python字符串拼接的几种方法整理第一种 通过加号()的形式print(第一种方式通过加号形式连接 &#xff1a; lovePython \n)第二种 通过逗号(,)的形式pr…

Split分离通道

#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2\opencv.hpp> using namespace cv; using namespace std;int main() {vector<Mat>cha;Mat b, g, r,dst;//1.加载两幅图片…

上下文异常中的上下文属性_在没有适当上下文的情况下引发异常是一种不良习惯...

上下文异常中的上下文属性Allison Anders等人的《四个房间》&#xff08;1995&#xff09;。 我不断重复同样的错误。 因此&#xff0c;该停止并制定规则以防止这种情况了。 错误不是致命的&#xff0c;但很烦人。 当查看生产日志时&#xff0c;经常会看到类似"File does…

最大公约数简便算法_求最大公约数的4种算法

for(z0; z<10000000; z) 循环只是为了增加程序的运行时间&#xff0c;让我们体会算法的时间复杂度。算法一&#xff1a;短除法想法&#xff0c;采用短除法找出2个数的所有公约数&#xff0c;将这些公因子相乘&#xff0c;结果就是2个数的最大公约数。【找公因子&#xff0c;…

java 编写代码_如果您在2015年编写过Java代码-这是您不容错过的趋势

java 编写代码去年我们有机会遇到的最有趣趋势的实用概述 在这篇文章中&#xff0c;我们回顾了构成我们2015年对话的5个主题和新发展。与其他许多年终总结保持较高水平的不同&#xff0c;我们将做一个更实际的操作不用流行语 。 好吧&#xff0c;没有太多*流行语。 与往常一样…

java自动生成合同_Java 7和Java 8之间的细微自动关闭合同更改

java自动生成合同Java 7的try-with-resources语句和与该语句一起使用的AutoCloseable类型的一个不错的功能是&#xff0c;静态代码分析工具可以检测到资源泄漏。 例如&#xff0c;Eclipse&#xff1a; 当您具有上述配置并尝试运行以下程序时&#xff0c;您将收到三个警告&…

Python学习(1)

1.str字符串操作 len(str) 计算字符串长度 str.replace(xxx,xxxx) 替换指定字符 str.upper()字符串转大写 str.lower()字符串转小写 str.strip()删除左右多余的空格 str.lstrip()删除左边多余的空格 str.rstrip()删除右边的空格 format(a,b,c) 传参显示 2.索引 out hello wo…

opencv求两张图像光流_光流(optical flow)和openCV中实现

转载请注明出处&#xff01;&#xff01;&#xff01;光流(optical flow)和openCV中实现光流的概念&#xff1a;是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度。是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一…

swarm 和 k8s_Wildfly Swarm,朝着成熟和一小部分贡献

swarm 和 k8s我最近关注的项目之一是Wildfly Swarm 。 最终&#xff0c;在今年的JBoss BOF中的Devoxx期间&#xff0c;由于考虑与著名的Docker Swarm发生冲突&#xff0c;我的要求没有考虑更改项目名称。 那么什么是Wildfly Swarm&#xff1f; 简而言之&#xff0c;就是Wildfl…

python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)

本文实例讲述了python socket多线程通讯方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;#!/usr/bin/evn python"""这是一个Socket多进程的例子(聊天服务端)"""import socketimport threading# 处理中文数据用的encoding "GBK…

8进5预警处理

题&#xff1a;在图像处理中&#xff0c;如果发现有危险标为1&#xff0c;否则标为0. 在图像处理中可能出现误报。因此采用8进5的方法&#xff0c;即前8里面有5个预警&#xff0c;我们就返回预警信息. #include <iostream> #include<queue> using namespace std;q…