freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

設(shè)計哈希表實現(xiàn)電話號碼查詢系統(tǒng)c語言版(課程設(shè)計報告)(已修改)

2025-04-04 12:19 本頁面
 

【正文】 《軟件技術(shù)基礎(chǔ)》課程設(shè)計設(shè)計哈希表實現(xiàn)電話號碼查詢系統(tǒng)一﹑目的 通過課程設(shè)計,鞏固和加深對結(jié)構(gòu)體、文件、哈希表等理論知識的理解;掌握現(xiàn)實復(fù)雜問題的分析建模和解決方法,掌握包括問題描述、系統(tǒng)分析、設(shè)計建模、代碼實現(xiàn)、結(jié)果分析等的方法;提高利用計算機分析解決綜合性實際問題的基本能力;鍛煉個人動手能力,歷練自身素質(zhì)。哈希表實現(xiàn)電話號碼查詢系統(tǒng)是利用哈希表實現(xiàn)電話系統(tǒng)的快速查詢,程序?qū)崿F(xiàn)哈希表建表和查表,并實現(xiàn)對沒有查找到的內(nèi)容進行記錄。掌握哈希表的工作原理,熟悉建立哈希表、對哈希表沖突處理、哈希表查找等功能的實現(xiàn),回顧文件讀取、寫入,回顧隨機函數(shù)的作用。二﹑需求分析數(shù)據(jù)輸入分兩種模式:,由程序讀入;另一種是由程序隨機生成。數(shù)據(jù)的格式為:姓名、電話號碼、家庭住址。用戶使用時顯示菜單,用戶輸入菜單選項完成操作。查找的結(jié)果顯示在屏幕上。在用戶需要時,將哈希表顯示在屏幕上。根據(jù)用戶的選擇,從原有文檔讀入數(shù)據(jù)或隨機生成數(shù)據(jù),分別以姓名和電話號碼做為關(guān)鍵字生成哈希表。生成哈希表后用戶可以根據(jù)相應(yīng)關(guān)鍵字進行數(shù)據(jù)的查找,若查找到對應(yīng)的數(shù)據(jù)則將數(shù)據(jù)輸出到屏幕。在用戶選擇顯示哈希表時,顯示完整的哈希表。程序使用文字菜單的友好界面。在數(shù)據(jù)輸入時對輸入內(nèi)容進行范圍控制。,令程序讀入并分別以姓名和電話號碼做為關(guān)鍵字生成哈希表,查找記錄中原有的記錄,查看輸出數(shù)據(jù),查找記錄中沒有的記錄查看回饋,查看整個哈希表的數(shù)據(jù)。令程序隨機生成記錄,分別以姓名和電話號碼做為關(guān)鍵字生成哈希表,查看整個哈希表的數(shù)據(jù),分別查找原有和沒有的記錄,查看回饋。三﹑概要設(shè)計定義結(jié)構(gòu)體類型存儲每條記錄。struct Data{ char name[sizename]。 char phone[sizephone]。 char address[sizeaddress]。 bool used。}*hash_data。2各種函數(shù)說明:int get_hashkey(char* str,int select)// 獲得關(guān)鍵字void show(int i) // 顯示每條信息void Store(char *str)//在沒有找到時輸出未找到的記錄,void Allshow()//輸出哈希表中的記錄void Auto_file()//隨機生成數(shù)據(jù),void Build_Hash(int HashType)//建立哈希表void FindName()//根據(jù)姓名查找哈希表中的記錄void FindPhone()//根據(jù)電話號碼查找哈希表中的記錄四﹑詳細設(shè)計include include include include struct Data{ string name。// string phone。 string address。}。 Data *hash_data。define sizehash 100define sizename 20define sizephone 15define sizeaddress 40int get_hashkey(char* str,int select) { int Key=0, ReKey,m。 char tmp[10]。 for (int i=0。istrlen(str)。i++) { Key+=str[i]。 } Key%=sizehash。 if (hash_data[Key].used) { m=Key。 Key=1。 if (select==1) { for (i=0。i10。i++) { ReKey=(m+A[i])%sizehash。 if (!hash_data[ReKey].used) { Key=ReKey。 break。 } } }else if (select==2) { ReKey=m。 for (i=0。i100。i++) { ReKey=ReKey+1。 ReKey=ReKey%sizehash。 if (!hash_data[ReKey].used) { Key=ReKey。 break。 } } } } return Key。}void Build_Hash(int HashType) { for (int i=0。isizehash。i++) hash_data[i].used=false。 FILE* reader=fopen(DataFile,r)。 if (reader==NULL) { printf( %s讀取失敗\n,DataFile)。 fclose(reader)。 exit(1)。 } char s[100]。 char seps[]= ,\t。 char *name。char* phone。char* address。 int HashKey。 while (!feof(reader)) { fgets(s,100,reader)。 if (strlen(s)0) { name=strtok(s,seps)。 phone=strtok(NULL,seps)。 address=strtok(NULL,seps)。 if (HashType==1) { HashKey=get_hashkey(name,HashType)。 }else if (HashType==2) { HashKey=get_hashkey(phone,HashType)。 } if (HashKey==1) { printf( 哈希表過小或哈希碰撞過多)。 fclose(reader)。 exit(1)。 }else{ strcpy(hash_data[HashKey].nam
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1