java算法——哈希表 电话号码查询系统
电话号码查询系统功能:
(1)存储联系人(姓名 电话 地址)
(2)删除联系人
(3)根据姓名或者号码查找联系人
import java.util.Scanner;
public class HashTest {public static void main(String[] args) {Scanner in=new Scanner(System.in);Hashtable ht=new Hashtable();String num,name,add;String s;char n;System.out.println("欢迎使用电话号码查询系统! ");System.out.println("输入 “1”:录入 ");System.out.println("输入 “2”:查找 ");System.out.println("输入 “3”:删除 ");System.out.println("输入 “4”:退出系统 ");do {s=in.next();n=s.charAt(0);if(n!='1'&&n!='2'&&n!='3'&&n!='4') {System.out.println("错误!!!请重新输入!");}switch(n) {case '1':ht.in();break;case '2':ht.find();break;case '3':ht.delete();break;}}while(n!='4');System.out.println("欢迎使用本系统,再见!!! ");}
}class Hashtable extends hash{Scanner in=new Scanner(System.in);int i;String num,name,add,jud;hash[] table=new hash[7];public Hashtable(){for(i=0;i<7;i++) {table[i]=new hash();}}public void in() {System.out.print("姓名 ");name=in.next();System.out.print("电话号码 ");num=in.next();System.out.print("地址 ");add=in.next();table[mod(num)].inhash(name,num,add);System.out.println("录入成功!");}public void find() {System.out.println("通过姓名查找:1");System.out.println("通过电话查找:2");jud=in.next();if(jud.equals("1")) {System.out.print("查找人姓名 ");name=in.next();for(i=0;i<7;i++) {if(table[i].findname(name)!=null) {System.out.println("姓名:"+table[i].t.name+" 电话号码:"+table[i].t.num+" 地址:"+table[i].t.add);jud="";}}if(jud.equals("1")) {System.out.println("查无此人!");}}else if(jud.equals("2")) {System.out.print("查找电话 ");num=in.next();i=mod(num);if(table[i].findnum(num)!=null) { System.out.println("姓名:"+table[i].t.name+" 电话号码:"+table[i].t.num+" 地址:"+table[i].t.add);jud="";}if(jud.equals("2")) {System.out.println("查无此人!");}}else {System.out.println("查无此人!");}}public void delete() {System.out.print("删除联系人姓名 ");name=in.next();for(i=0;i<7;i++) {if(table[i].deletehash(name)) {System.out.println("删除成功!");} }if(i==7) {System.out.println("查无此人!");}}public int mod(String num) {int a=0;for(int i=0;i<num.length();i++) {a=Integer.parseInt(num.charAt(i)+"");}return a%7;}}
class hash{int n;node head=new node(null,null,null);node t;public hash() {n=0;head.next=null;}class node{String num,name,add;node next;public node(String name,String num,String add) {this.num=num;this.name=name;this.add=add;next=null;}}public void inhash(String name,String num,String add) {n++;node no=new node(name,num,add);no.next=head.next;head.next=no;}public node findname(String name) {t=head.next;while(t!=null) {if(t.name.equals(name)) {return t;}else {t=t.next;}}return null;}public node findnum(String num) {t=head.next;while(t!=null) {if(t.num.equals(num)) {return t;}else {t=t.next;}}return null;}public boolean deletehash(String name) {node tde=findname(name);if(tde!=null) {t=head;while(t.next!=tde) {t=t.next;}t.next=tde.next;return true;}return false;}
}
java算法——哈希表 电话号码查询系统相关推荐
- 电话号码查询系统(数据结构之哈希表)
哈希表 哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构.通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数. 1. ...
- 哈希表实现电话号码查询系统(c++)
问题描述:设计哈希表实现电话号码查询系统,实现下列功能: (1) 假定每个记录有下列数据项:电话号码.用户名.地址. (2) 一是从数据文件old.txt(自己现行建好)中读入各项记录,二是由系统随机 ...
- 设计散列表实现通讯录查找系统_[源码和文档分享]利用哈希表实现电话号码查询系统...
第一章 需求分析 1.1 问题描述 设计一个电话号码查询系统,为来访的客⼈提供各种信息查询服务. 1.2 基本要求 设计每个记录有下列数据项:电话号码.用户名.地址 从键盘输入个记录,分别以电话号码和 ...
- java编程电话号码查询_java课程设计电话号码查询系统(15页)-原创力文档
山东建筑大学 Java 课程设计报告 设计题目 电话号码查询系统 学生姓名黄瑜 学号 2010121187 专业班级信计101 指导教师 王文 1 1 1.设计目的 1.通过JAVA 课程设计,使大家 ...
- 【数据结构课程设计报告】电话号码查询系统(Java实现)
数据结构课程设计报告 电话号码查询系统 数据结构课程设计报告 一.需求分析 二.系统功能划分及设计 1.存储结构设计 2.系统的功能架构设计 3.模块设计 3.代码实现 一.需求分析 问题描述:路径规 ...
- 《程序设计综合设计》课程设计--电话号码查询系统
2.问题描述 1.设每个记录有下列数据项:电话号码.用户名.地址: 2.从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表: 3.查找并显示给定电话号码的记录: 4.查找并显示给定用户名的记录 ...
- 编写电话号码查询系统
编写电话号码查询系统 一.项目简介 设计一个通讯录管理软件,做到能够增加组.删除组. 修改组.查询好友.加好友.修改好友,删除好友,退出. (1) 通讯录的每一条信息包括姓名,手机,电话,性别,分组: ...
- 散列表应用---电话号码查询系统
问题介绍 设计电话号码查询系统 基本要求 1.设每个记录有下列数据项: 电话号码.用户名.地址: 2.从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表: 3.采用合适的方法解决冲突: 4.查 ...
- C语言电话号码查询系统[2023-01-16]
C语言电话号码查询系统[2023-01-16] 一.课程设计(论文)题目 电话号码查询系统 说明: 设计哈希表,实现电话号码查询系统. 二.本次课程设计(论文)应达到的目的 C语言.面向对象程序设计. ...
- 数据结构个人电话号码查询系统实验报告
实验目的及要求 目的:通过设计一个<个人电话号码查询系统>,进一步熟悉一些二叉树的概念.以及基本知识和技能,利用所学的基本知识和技能解决简单的面向对象的程序设计问题.实现根据用户输入的信息 ...
最新文章
- 送书啦!40本经典书籍任你挑!
- OpenCV图像处理使用笔记(五)——图像边界拓展
- Neo4j简单的样例
- 【bzoj1597- [Usaco2008 Mar]土地购买】斜率优化
- Windows下使用pthread
- NOIP模拟 整数划分(数论,质因数分解,状压DP)
- getopt与getopt_long
- PTA离散数学集合论自测(无答案版)
- 【原】豆瓣电台桌面版插件开发——搜索插件
- mongoose报错Cast to ObjectId failed for value
- android版本内存卡,版本等级繁多 教你如何挑选手机内存卡
- 什么是TorchScript
- element ui 表格头部内容不换行
- 如何让爆满的C盘腾出 10G空间
- SQLServer阻止保存要求重新创建表的更改,sql在一列数据前统一加字符
- 分解质因数 JAVA
- Qt 程序异常结束 并且crashed——解决方法 (动态链接库)
- 华为无线显示未连接到服务器,华为手机的无线显示功能怎么使用
- 耶鲁大学计算机科学专业 录取,杜克大学和耶鲁大学计算机科学专业申请对比...
- 李峋同款会动的爱心Python代码版
热门文章
- 「软件项目管理」一文详解软件项目进度计划
- 《新概念模拟电路》系列电子书下载
- matlab数据变成一列数据,用MATLAB处理EXCEL中一列共100000个数据,请问如何将数据导入并将数据做正态曲线拟合...
- voc2012数据集详解
- 深度学习模型如何查看(hdfview + netron)
- Java用itext工具根据模板生成PDF
- 过来人给Java初学者的建议!
- Skyline软件二次开发初级——7如何在WEB页面中的三维地图上设置颜色
- Android 第三方SDK特征的收集
- 计算机在机械工程中的应用英语作文,机械英语论文范文