电话号码查询系统功能:
(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;
}
}