資源簡介
資源包括:源代碼,可執行文件。
1.問題描述 設計散列表實現電話號碼查找系統。
2.基本要求
1)設每個記錄有下列數據項:用戶姓名、地址、電話號碼;
2)從文件輸入各記錄,分別以電話號碼和用戶名為關鍵字建立散列表;(假
設人名為中國人姓名的漢語拼音形式 zhoukunxiao)
3)采用一定的方法解決沖突;(哈希函數可以用數字分析法和除留余數法構
造,用線性探測再散列法或鏈地址法處理沖突)
4)查找并顯示給定電話號碼的記錄;(顯示比較次數)
5)查找并顯示給定用戶姓名的記錄;(顯示比較次數)
6)輸出相應的哈希表,計算平均查找長度;
7)設計一個菜單,上述操作要求都作為菜單中的主要菜單項。
3.測試數據
取所在班級的 n(n>=20)個同學記錄。

代碼片段和文件信息
#include
#include“hash_data.h“
void?menu(){
HashTable?*ht;
int?num;
//Initiate(ht);
ht=(HashTable*)malloc(sizeof(HashTable));
for(int?i=0;i ht->item[i]=NULL;
ht->nowsize=0;
HashItem?hi[Maxsize];
readmessage(hi);
//show(hi);
//printf(“ok“);
int?choose=0;
while(1){
printf(“\n┌─────────────────────────────────────┐“);
printf(“\n│??????????電話號碼查找系統???????????│“);
printf(“\n│??????????1-建立Hash_name哈希表??????│“);
printf(“\n│??????????2-建立Hash_phone哈希表?????│“);
printf(“\n│??????????3-通過姓名查找?????????????│“);
printf(“\n│??????????4-通過電話號碼查找?????????│“);
printf(“\n│??????????5-顯示Hash_name????????????│“);
printf(“\n│??????????6-顯示Hash_phone???????????│“);
printf(“\n│??????????7-退出?????????????????????│“);
printf(“\n└─────────────────────────────────────┘“);
printf(“\n輸入選項:“);
scanf(“%d“&choose);
switch(choose){
case?1:system(“cls“);?createHash_name(hthi);break;
case?2:system(“cls“);?createHash_phone(hthi);break;
case?3:system(“cls“);?searchHash_name(htnum);break;
case?4:system(“cls“);?searchHash_phone(htnum);break;
case?5:system(“cls“);?showHashTable(ht);break;
case?6:system(“cls“);?showHashTable(ht);break;
case?7:exit(0);
default:system(“cls“);printf(“輸入錯誤,請重新輸入!\n“);break;
????}
}
}
int?main(){
printf(“運行程序前請確認數據文本的存在!?繼續--Enter??退出--Esc“);
if(getch()==27)?exit(0);
system(“cls“);
menu();
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????733??2019-05-19?14:26??message.txt
?????目錄???????????0??2019-06-13?20:35??源\
?????文件????????4657??2019-05-27?12:51??源\hash_data.h
?????文件????????1596??2019-05-19?17:22??源\main.cpp
?????文件???????34816??2019-05-27?12:45??HashTable?for?Tel.exe
評論
共有 條評論