版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、程序設計綜合實習軟實習報告學 號 姓 名 班 級 指導教師159074210吳師慶軟152潘祥安徽工業(yè)大學2016年9月 i 課程設計題目:個人通訊錄管理系統(tǒng)、需求分析個人通訊錄管理系統(tǒng)的制作,為了實現(xiàn)數(shù)據(jù)的輸入、輸出、修改、刪除、查詢、存、取功能。程序的基本功能為:建立聯(lián)系人信息,包括姓名、電話、地址、QQ TOC o 1-5 h z 添加新的聯(lián)系人信息(通訊錄信息輸入功能);可按姓名、電話、地址、QQ排序輸出顯示通訊錄的所有信息(顯示通訊錄信息功能);按姓名、電話、地址、 QQ查詢某個聯(lián)系人的信息(通訊錄記錄查詢功能);輸入聯(lián)系人姓名以修改某個聯(lián)系人的信息(修改通訊錄信息功能);按姓名刪除
2、某個聯(lián)系人的信息(刪除通訊錄信息功能);7將數(shù)據(jù)以文件的形式存儲在磁盤上(保存通訊錄信息功能)。、總體設計各模塊流程框圖main()開皓*J退程序ireak*Breaksreakp void input(PEOPLE pHead,int x)void search(PEOPLE pHead)其他V調用 name_+j函數(shù)phoney sea irhO調用 3ddres5_ s earch k 困數(shù)衛(wèi)調用*sea-chj函數(shù)*結束int show(PEOPLE pHead)輸入錯誤按g順序顯示按地址順序顯示2 IV按電話順序顯示按姓名順序顯示調用n ame_ sort () 函數(shù)調用 phone
3、_ sort ()函數(shù)調用調用address_QQ_sort ()sort ()函數(shù)函數(shù)輸出所有聯(lián)系人信息結束5. void modify(PEOPLE pHead)6. void delete_name(PEOPLE pHead,int x)void save(PEOPLE pHead)void quit()三、詳細設計新建聯(lián)系人功能主控函數(shù)void input(PEOPLE pHead,int x)實現(xiàn)添加新的聯(lián)系人的功能。void in put(PEOPLE pHead,i nt x)int i=0;PEOPLE p=pHead;while (p!=NULL&ipNext;+i;PEOP
4、LE pNew=(PEOPLE)malloc(sizeof(people);if(pNew=NULL)printf( 動態(tài)分配內存失敗 ! ); exit(-1);printf(n*nn);printf(tt 請創(chuàng)建并添加聯(lián)系人信息 nn);printf(tt 請輸入聯(lián)系人姓名 :); gets(pNew-name);printf(tt 請輸入聯(lián)系人電話 :); gets(pNew-phone);printf(tt 請輸入聯(lián)系人地址 :); gets(pNew-address);printf(tt 請輸入聯(lián)系人 QQ:);gets(pNew-QQ);printf(ntt 成功添加了聯(lián)系人信息
5、!nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);*getchar();PEOPLE q=p-pNext;p-pNext=pNew;pNew-pNext=q;查詢功能主控函數(shù) void search(PEOPLE pHead)實現(xiàn)可按姓名、電話、地址、 QQ 查詢某聯(lián)系人的功能,會分別調用相應的查詢函數(shù)。void search(PEOPLE pHead)int num;printf (n* *nn);printf (ttt1. 按姓名查找 n);printf (ttt2. 按電話查找 n);printf (ttt3. 按地址查找 n);printf (ttt4.
6、 按 QQ 查找 n);printf (ntt 選擇你需要操作的功能號碼 (1-4):);num=getchar(); getchar();switch(num)case 1: name_search(pHead); break;case 2: phone_search(pHead); break;case 3: address_search(pHead); break;case 4: QQ_search(pHead); break;default: printf(ttt 輸入錯誤 !nn); printf( 請按 Enter 鍵繼續(xù) ); printf(n* *n);getchar(); b
7、reak;顯示功能主控函數(shù) int show(PEOPLE pHead) 先調用排序函數(shù),再按相應順序將全部聯(lián)系人的信息顯示到屏幕。 int show(PEOPLE pHead)int num;printfn);printf (ttt1. 按姓名順序顯示 n);printf (ttt2. 按電話順序顯示 n);printf (ttt3. 按地址順序顯示 n);printf (ttt4. 按 QQ 順序顯示 n);printf (ntt 選擇你需要操作的功能號碼 (1-4):); num=getchar();getchar(); switch(num)case 1:name_sort(pHead
8、); break;case 2: phone_sort(pHead); break;case 3: address_sort(pHead); break;case 4:QQ_sort(pHead); break;default:printf(ttt 輸入錯誤 !nn); printf( 請按 Enter 鍵繼續(xù) ); printf(nII);getchar();return 0;int len=number(pHead); PEOPLE p=pHead-pNext;int i;printf(n*II);printf (=T 用戶信息記錄表=);printfif (p!=NULL)for (i=
9、0;ipNext)printf (tt 聯(lián)系人姓名 :%sn,p-name);printf (tt 聯(lián)系人電話號碼 :%sn,p-phone);printf (tt 聯(lián)系人地址 :%sn,p-address); printf (tt 聯(lián)系人 QQ:%sn,p-QQ);printf (n);if (i!=0&(i+1)%5=0)printf (nttt 輸入任意鍵顯示下一頁 n);printf(n* #printf(n* );getchar();printf( 請按 Enter 鍵繼續(xù) );printf(nIIprintf(n*n);printf (=T 用戶信息修改功能);getchar();
10、elseprintf (tt 對不起 ! 沒有任何人的記錄 !nn);printf( 請按 Enter 鍵繼續(xù) );printf(n*n );getchar();return 0;修改功能主控函數(shù) void modify(PEOPLE pHead) 輸入要修改聯(lián)系人的姓名,可顯示該聯(lián)系人信息,并輸入該聯(lián)系人新的信息。void modify(PEOPLE pHead) int i;int mark=0;int len=number(pHead);char name25;PEOPLE p=pHead-pNext;*);printf(n*nn);printf (tt 輸入要修改聯(lián)系人的姓名 :);
11、gets(name);if(p!=NULL)for(i=1;ipNext)if(strcmp(name,p-name)=0)刖*以 下 是 您要修改的用戶信 息 刖*以 下 是 您要修改的用戶信 息 #*nn);printf ( 聯(lián)系人姓名 :%sn, p-name); printf ( 聯(lián)系人電話號碼 :%sn, p-phone);printf ( 聯(lián)系人地址 :%sn, p-address);printf ( 聯(lián)系人 QQ:%sn, p-QQ);printf(n*nn);+mark;break;if(mark0)printf(tt 請輸入修改聯(lián)系人信息 nn); printf(tt 請輸入
12、聯(lián)系人姓名 :); scanf(%s,p-name);printf(tt 請輸入聯(lián)系人電話 :); scanf(%s,p-phone);printf(tt 請輸入聯(lián)系人地址 :); scanf(%s,p-address);printf(tt 請輸入聯(lián)系人 QQ:); scanf(%s,p-QQ);getchar();printf(ntt 成功修改了聯(lián)系人信息 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar(); elseprintf (ntt 對不起 ! 沒有該用戶的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(
13、n*n);getchar(); # printf(n*n);elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );*printf(n*n);getchar();刪除功能主控函數(shù) void delete_name(PEOPLE pHead,int x) 輸入要刪除聯(lián)系人的姓名, 可顯示該聯(lián)系人信息, 并提示是否確認刪除, 確認后會刪除 該聯(lián)系人信息。void delete_name(PEOPLE pHead,int x) int i,pos;int mark=0;int len=number(pHead);char name25;
14、PEOPLE p=pHead-pNext;*printf (”= t 用戶信息刪除功能 J =);printf(n*nn);printf (tt 輸入要刪除聯(lián)系人的姓名 :); gets(name);if(p!=NULL)for(i=1;ipNext)if(strcmp(name,p-name)=0)*printf(*以 下 是 您要刪除的用戶信息*nn);printf (num:%dn, mark+1);printf ( 聯(lián)系人姓名 :%sn, p-name); printf ( 聯(lián)系人電話號碼 :%sn, p-phone);printf ( 聯(lián)系人地址 :%sn, p-address);p
15、rintf ( 聯(lián)系人 QQ:%sn, p-QQ);* * *n);printf(n*n);pos=i;+mark;if(mark0)printf (ntt 是否確定刪除 ?(y/n); if(getchar()=y)getchar();Delete(pHead,pos); / 刪除節(jié)點 printf(ntt 刪除成功 !nn); printf( 請按 Enter 鍵繼續(xù) );*printf(n*n);getchar(); else printf(ntt 已取消 nn); printf( 請按 Enter 鍵繼續(xù) );*printf(n*n);getchar(); elseprintf (nt
16、t 對不起 ! 沒有該用戶的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );*getchar(); elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );*n); getchar();txt 文件查看所有聯(lián)系人信息。保存功能主控函數(shù) void save(PEOPLE pHead) 將所有聯(lián)系人的信息保存為文本文件,用戶可隨時打開void save(PEOPLE pHead) / 保存函數(shù)FILE *fp;PEOPLE p=pHead-pNext;fp=fopen(address_list.txt,w);fprin
17、tf(fp,H*nn);fprintf (fp,= t 用戶信息記錄表 -=n);while(p!=NULL)fprintf(fp,nnn);fprintf(fp, 聯(lián)系人姓名 :%sn, p-name); fprintf(fp, 聯(lián)系人電話號碼 :%sn, p-phone); fprintf(fp, 聯(lián)系人地址 :%sn, p-address); fprintf(fp, 聯(lián)系人 QQ:%sn, p-QQ);p=p-pNext;fprintf(fp,nn*n);fclose(fp);printf(nt 恭喜你 !成功儲存 ,你能在 address_list.txt 找到相應紀錄 n); pri
18、ntf(n 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();7. 退出功能主控函數(shù) void quit()退出通訊錄系統(tǒng)。void quit()printf(ntt 感謝使用個人通訊錄管理系統(tǒng),再見 !nn); exit(0);四、調試與測試顯示函數(shù) int show(PEOPLE pHead) ;原本設計為 void 型函數(shù),但當用戶沒有輸入 任何聯(lián)系人信息時, 程序在顯示“沒有任何人信息后”, 還會繼續(xù)執(zhí)行該函數(shù), 導致該信心 重復輸出。后改為 int 型,用 return 0 ;控制函數(shù)結束運行。刪除函數(shù) void delete_name(PEOPLE pHea
19、d,int x) ;原本沒有 x 參數(shù)。但在 main 函 數(shù)中,定義了 i 來記錄聯(lián)系人個數(shù),調用 void input(PEOPLE pHead,int x) 函數(shù)時,聯(lián)系 人數(shù) i 會加一, 但刪除時并沒有對 i 進行操作, 導致 i 只加不減, 在運行刪除功能后再運行 添加功能程序就會出錯異常退出。 所以在刪除函數(shù)中增加 x 參數(shù)以實現(xiàn)在刪除聯(lián)系人時聯(lián)系 人總數(shù)會減一。顯示功能; 原本是直接顯示所有聯(lián)系人信息, 如果聯(lián)系人過多, 就很難查看前面的聯(lián) 系人的信息,所以設計為每顯示五個聯(lián)系人后就會顯示“輸入 Enter 鍵進入下一頁” ,敲回 車鍵就會換頁。原本在每個功能實現(xiàn)后, 程序會自
20、動跳轉到主功能選擇界面, 導致用戶不容易查看結 果。所以每個功能實現(xiàn)后設計顯示“按 Enter 返回主頁面” ,在用戶敲回車鍵后才會顯示主 頁面,這樣永輝可以更好的查看每個功能的結果。 5. 程序所顯示的界面; 經(jīng)過不斷調試,最 終設計為每實現(xiàn)一個功能就會分頁。五、用戶手冊通訊錄信息輸入功能在主頁面輸入“ 1”進入該功能。根據(jù)提示輸入聯(lián)系人姓名、電話、地址和QQ。輸入完成后顯示“成功添加了聯(lián)系人信息! !”。再根據(jù)提示按 Enter 鍵返回主頁面。顯示通訊錄信息功能在主頁面輸入“ 2”進入該功能。根據(jù)提示選擇按姓名順序顯示、按電話順序顯示、按 地址順序顯示、按 QQ 順序顯示功能。輸入相應數(shù)字
21、進入相應功能。系統(tǒng)會根據(jù)相應選擇按 一定順序顯示所有聯(lián)系人信息。若沒有聯(lián)系人信息,則會顯示“對不起!沒有任何人的記錄!”。再根據(jù)提示按 Enter 鍵返回主頁面。通訊錄記錄查詢功能在主頁面輸入“ 3”進入該功能。根據(jù)提示選擇按姓名查找、按電話查找、按地址查找、按 QQ 查找功能。輸入相應數(shù)字進入相應功能。輸入要查詢用戶的某項信息(如姓名),則可查詢該聯(lián)系人全部信息。若該聯(lián)系人不存在,則會顯示“對不起! !沒有此人的記錄! !”。 再根據(jù)提示按 Enter 鍵返回主頁面。修改通訊錄信息功能在主頁面輸入“ 4”進入該功能。根據(jù)提示輸入要修改聯(lián)系人的姓名,系統(tǒng)會顯示要修 改聯(lián)系人的全部信息, 再跟據(jù)
22、提示輸入該聯(lián)系人新的信息。 當顯示“成功修改了聯(lián)系人信息 時,則修改成功。 ”若該聯(lián)系人不存在,則會顯示“對不起! !沒有該用戶的記錄! !” 。再 根據(jù)提示按 Enter 鍵返回主頁面。刪除通訊錄信息功能在主頁面輸入“ 5”進入該功能。根據(jù)提示輸入要刪除聯(lián)系人的姓名,系統(tǒng)會顯示要刪 除聯(lián)系人的全部信息,并提示是否確定刪除,輸入“y”確定,并顯示成功刪除。輸入其他鍵取消刪除。若該聯(lián)系人不存在,則會顯示“對不起! !沒有該用戶的記錄! !” 。再根據(jù)提示按Enter鍵返回主頁面。保存通訊錄信息功能在主頁面輸入6”進入該功能。顯示恭喜你!成功儲存,你能在address_list.txt找到相應記錄
23、”,則儲存成功,可以打開address_list.txt文件查看通訊錄信息。再根據(jù)提示按Enter鍵返回主頁面。退出通訊錄程序功能在主頁面輸入“ 7”進入該功能。顯示“感謝使用個人通訊錄系統(tǒng),再見”,則已退出該程序。六、附錄運行結果:主頁面:nC:UsersijlrtJDesktop159074210 吳師慶匸程序設計DEbugVaddEJ歡迎使用個人通訊錄管理系統(tǒng)入自亠詢白嘗宣序 瑜一一i亠IE直心囘 忠球親臺錄錄 記訊訊訊訊 杲通錄圃暮匾 迅不訊改除雷選擇你需要操作的功能號碼“-小:1.通訊錄信息輸入功能選B你需曼操作的功能號碼6江成功添加了聯(lián)系人信息轉h七日1-鍵繼續(xù)2.顯示通訊錄信息功
24、能C:UsersVJiBDesktop159074210 吳I師慶V程序設計DEbug3ddn - 口入息詢Baj序 息錄錄錄錄錄錄 信訛記訊觀訊訊 通常通通通 迅不訊改除雷 -fi甩理12 3 4 5 6 7選擇你需要操作的功能號碼1T)示示示 顯顯顯示 渤ilEll順 姓蟲QQ 安安濱安 12 3 4選擇你需要操乍的功能號碼1-小1_C:U se rs!JiB D es Icto p 15 90 74210 吳 i丿帀慶程序設計D亡 bugar-.JJ八 *T*xrlITS請輸入修改聯(lián)系人信息 請輸A聯(lián)系人姓名:* C:U se 開師慶DeEktQ p159074210 吳 i丿帀慶征程序
25、設計De buga dd ress.rf?!1號:1 姓量胛 A AAA n J rT rv?請輸人修改聯(lián)系人信息AAA A ls AAAA 青青青青成於修改了聯(lián)系人信息XC:Use rsWDeskto p159074210 吳 i丿幣慶匚程序設計De buga dd ress. L遁華禰需要操作的功能號碼 W 46.保存通訊錄信息功能X 6.保存通訊錄信息功能X 5.刪除通訊錄信息功能 *用戶信息刪除功能4匚:U5er5lF5Desktop159074210 昊師慶V:程序設計Detxjgddre.-.KK-KKK-H-瀕解南用戶信息2nlh碼:1號:2看址:21AAAAn:系系系系I. r
26、bl.l - - - -11 - -nirr.m.X匚:Userktop159074210 昊師慶程序設計Debug乜ddre盈=f 用戶信息刪除功能 4 =輸入要刪除朕秘戲姓色二亠:屛黑黑覽覽豐豐豐豐豐屈MMMMM以下是您要刪除的1用戶4,. 屈MMMMM : :昇黑弭低覽豐豐覺豐2-碼:1號:2會址:21AAAAIU工農(nóng)求床天是否確定刪除扌c*/n、9C:Useris師慶DEdlaop159074210 昊師慶c程序設計DEbugacldrE刪除咸功?詢息息自斧 查亠 Hill.il.程 錄気矣気聲 記訊訊訊訊 錄通誦通通 訊改除蚤選擇你需要操作的功能號碼亠用戶信息刪除功能*輸人要刪除聯(lián)系
27、人的姓容:丄對不起軻沒有任何人的記錄忙情按Inters繼續(xù) *C:UsersUifJKDes kto pl 59074210 Jrtij5EciSi+Deb ugad d re ss_l is.-歡迎使用個人涌訊錄管理系統(tǒng)入息詢自蕙自岸 S.LI-信=冒倍炷 息錄錄靈 唁壬記-T,-.!,-;, 錄通訊示訊改除巒 12 3 4 5 6 7選擇你壽要操作的功能號碼“-?。?恭喜你* t成功儲存亠你能在 用 戶信息i己錄表 4 =1咼 7!號:1 鑫址:1 WQQ 人人人人 H c -VX. fl.erv.J- F1- -4rI1rIJ-.F.-I刁hklkM MX M H X MM M M H
28、XM HM:X MMXMMKMMMMMMKMMXMMXMMMMMXMMMXMMXMMMHH XMH MM M MX MH X MM M MH X 選擇你需要操作的功能號碼1-7?感謝使用個人通訊錄管理棊航再見tmn卯 ke to cantiniue jj音半:駅迎使用個人誦訊錄管理系統(tǒng)睛按兩如讎堆續(xù)RMM MM: X PTMM ITMX MHM ACM HM X ITMM ITMKKMM JC MM X ITMMMMM MMM MM X ITMM ITMXM MflCM MM X PTM ITMX M7.退出通訊錄程序功能C:XUserjfflDektopl 5074210 臭緬茨c設ttDe
29、bugad d res.lis-X人息詢息白4 耳、廳 信訊記訊itu訊訊 漾翠通醤通 佻龜改除雷 通顯發(fā)12 3 4-567 源代碼:頭文件 */*#include#include #include定義鏈表結點 *typedef struct peoplechar name25;/ 姓名 char phone20;/ 電話char address50; 住址 char QQ20; /QQ struct people *pNext; *PEOPLE;自定義函數(shù)聲明 *PEOPLE creat();void input(PEOPLE pHead,int x);/ 添加聯(lián)系人功能函數(shù) int nu
30、mber(PEOPLE pHead);/ 求鏈表結點數(shù)void name_sort(PEOPLE pHead);/ 按姓名排序函數(shù) void phone_sort(PEOPLE pHead);/ 按電話排序函數(shù) void address_sort(PEOPLE pHead);/ 按地址排序函數(shù) void QQ_sort(PEOPLE pHead);/ 按 QQ 排序函數(shù) int show(PEOPLE pHead);/ 顯示主控函數(shù) int name_search(PEOPLE pHead);/ 按姓名查找函數(shù) int phone_search(PEOPLE pHead);/ 按電話查找函數(shù)
31、int address_search(PEOPLE pHead);/按 地址查找函數(shù) int QQ_search(PEOPLE pHead);/ 按 QQ 查找函數(shù) void search(PEOPLE pHead);/ 查找功能主控函數(shù) void modify(PEOPLE pHead);/ 修改功能函數(shù) void delete_name(PEOPLE pHead,int x);/ 刪除功能主控函數(shù) void Delete(PEOPLE pHead,int pos);/ 刪除鏈表結點函數(shù) void save(PEOPLE pHead);/保存到文件功能函數(shù) void quit();/ 退出系
32、統(tǒng)函數(shù)主函數(shù) *void main()int num;/保存輸入的功能號碼int i=0;PEOPLE pHead=NULL; pHead=creat();while(1)printf (ntt 歡迎使用個人通訊錄管理系統(tǒng) n);printf(n*nn);printf (ttt1. 通訊錄信息輸入 n); printf (ttt2. 顯示通訊錄信息 n); printf (ttt3. 通訊錄記錄查詢 n); printf (ttt4. 修改通訊錄信息 n); printf (ttt5. 刪除通訊錄信息 n); printf (ttt6. 保存通訊錄信息 n); printf (ttt7. 退出
33、通訊錄程序 n);printf(n*nn);printf (tt 選擇你需要操作的功能號碼 (1-7):);num=getchar();getchar(); switch(num) case 1:input(pHead,+i); break;case 2:show(pHead); break;case 3:search(pHead); break;case 4:modify(pHead); break;case 5:delete_name(pHead,-i); break;case 6:save(pHead); break;case 7:quit(); break; default:print
34、f(ttt 輸入錯誤 !n); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar(); continue;自定義函數(shù) *PEOPLE creat()/ 分配了一個不存放有效數(shù)據(jù)的頭結點PEOPLE pHead=(PEOPLE)malloc(sizeof(people); if(pHead=NULL)/ 分配內存失敗,終止程序 printf( 動態(tài)分配內存失敗 ! );exit(-1);pHead-pNext=NULL;return pHead;void input(PEOPLE pHead,int x)/ 添加聯(lián)系人函數(shù)int i=0;PEOPLE p=pH
35、ead;while (p!=NULL&ipNext;+i;PEOPLE pNew=(PEOPLE)malloc(sizeof(people);if(pNew=NULL)/ 動態(tài)分配內存失敗 !printf( 動態(tài)分配內存失敗 ! );exit(-1);printf(n*nn);printf(tt 請創(chuàng)建并添加聯(lián)系人信息 nn);printf(tt 請輸入聯(lián)系人姓名 :);gets(pNew-name);printf(tt 請輸入聯(lián)系人電話 :);gets(pNew-phone);printf(tt 請輸入聯(lián)系人地址 :); gets(pNew-address);printf(tt 請輸入聯(lián)系人
36、 QQ:); gets(pNew-QQ);printf(ntt 成功添加了聯(lián)系人信息 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();/將新的結點存入 p 節(jié)點的后面 PEOPLE q=p-pNext;p-pNext=pNew; pNew-pNext=q;int number(PEOPLE pHead)/ 求鏈表節(jié)點數(shù)量函數(shù)PEOPLE p=pHead-pNext;int x=0;while(p!=NULL)+x;p=p-pNext;return x;void name_sort(PEOPLE pHead)/ 按姓名排序函數(shù)int i,j;
37、int len=number(pHead);char name25;char phone20;char address50;char QQ20;PEOPLE p,q;/冒泡排序 for(i=0,p=pHead-pNext;ipNext) for(j=i+1,q=p-pNext;jpNext) if(strcmp(p-name,q-name)0) /交換姓名strcpy (name,p-name); strcpy (p-name,q-name); strcpy (q-name,name); /交換電話strcpy (phone,p-phone); strcpy (p-phone,q-phone)
38、; strcpy (q-phone,phone); /交換地址strcpy (address,p-address); strcpy (p-address,q-address); int i,j; strcpy (q-address,address); /交換 QQ strcpy (QQ,p-QQ);strcpy (p-QQ,q-QQ); strcpy (q-QQ,QQ);void phone_sort(PEOPLE pHead)/ 按電話排序函數(shù)int i,j;int len=number(pHead);char name25;char phone20;char address50; char
39、 QQ20; PEOPLE p,q;/冒泡排序 for(i=0,p=pHead-pNext;ipNext) for(j=i+1,q=p-pNext;jpNext) if(strcmp(p-phone,q-phone)0) /交換姓名strcpy (name,p-name); strcpy (p-name,q-name); strcpy (q-name,name); /交換電話 strcpy (phone,p-phone); strcpy (p-phone,q-phone); strcpy (q-phone,phone); /交換地址strcpy (address,p-address); str
40、cpy (p-address,q-address); strcpy (q-address,address); /交換 QQstrcpy (QQ,p-QQ); strcpy (p-QQ,q-QQ); strcpy (q-QQ,QQ);void address_sort(PEOPLE pHead)/ 按地址排序函數(shù)int len=number(pHead);char name25;char phone20;char address50;char QQ20;PEOPLE p,q;/冒泡排序for(i=0,p=pHead-pNext;ipNext)for(j=i+1,q=p-pNext;jpNext)
41、 if(strcmp(p-address,q-address)0) /交換姓名strcpy (name,p-name);strcpy (p-name,q-name);strcpy (q-name,name); /交換電話strcpy (phone,p-phone);strcpy (p-phone,q-phone);strcpy (q-phone,phone); /交換地址strcpy (address,p-address); strcpy (p-address,q-address); strcpy (q-address,address); /交換 QQstrcpy (QQ,p-QQ);strc
42、py (p-QQ,q-QQ);strcpy (q-QQ,QQ);void QQ_sort(PEOPLE pHead)/ 按 QQ 排序函數(shù)int i,j;int len=number(pHead);char name25;char phone20;char address50;char QQ20;PEOPLE p,q;/冒泡排序for(i=0,p=pHead-pNext;ipNext)for(j=i+1,q=p-pNext;jpNext) if(strcmp(p-QQ,q-QQ)0) /交換姓名strcpy (name,p-name); strcpy (p-name,q-name); strc
43、py (q-name,name); /交換電話 strcpy (phone,p-phone); strcpy (p-phone,q-phone); strcpy (q-phone,phone); /交換地址 strcpy (address,p-address); strcpy (p-address,q-address); strcpy (q-address,address); /交換 QQ strcpy (QQ,p-QQ);strcpy (p-QQ,q-QQ); strcpy (q-QQ,QQ);int show(PEOPLE pHead)/ 顯示函數(shù) int num;printf (n*nn
44、);printf (ttt1. 按姓名順序顯示 n); printf (ttt2. 按電話順序顯示 n); printf (ttt3. 按地址順序顯示 n);printf (ttt4. 按 QQ 順序顯示 n);printf (ntt 選擇你需要操作的功能號碼 (1-4):);num=getchar();getchar(); switch(num) case 1:name_sort(pHead); break;case 2: phone_sort(pHead); break;case 3: address_sort(pHead); break;case 4:QQ_sort(pHead);bre
45、ak;default:printf(ttt 輸入錯誤 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;/ 為了使輸入其他數(shù)能退出函數(shù),改函數(shù)形void 為 intint len=number(pHead); PEOPLE p=pHead-pNext;int i;printf (n*n););printf (n*nn);printf (if (p!=NULL)for (i=0;ipNext)printf (tt 聯(lián)系人姓名 :%sn,p-name); printf (tt 聯(lián)系人電話號碼 :%sn,p-phone);prin
46、tf (tt 聯(lián)系人地址 :%sn,p-address);printf (tt 聯(lián)系人 QQ:%sn,p-QQ); printf (n);if (i!=0&(i+1)%5=0) / 每頁顯示 5 組信息printf (nttt 輸入任意鍵顯示下一頁 n);printf(n*n);getchar();printf( 請按 Enter 鍵繼續(xù) );printf (n*n);getchar();elseprintf (tt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf (n*n);getchar(); return 0;int name_sea
47、rch(PEOPLE pHead)/ 按姓名查詢函數(shù)PEOPLE p=pHead-pNext; char name25;int x=number(pHead);int i;int mark=0;int a=0;printf (n*n);printf (宀用戶信息查詢功能 J);printf (n*nn);printf (tt 輸入要查找聯(lián)系人的姓名 :);gets(name); if(p!=NULL)for(i=a;ipNext)if(strcmp(name,p-name)=0)printf (n*以下是您查找的用戶信息*nn);if(mark=0)printf (tt 聯(lián)系人姓名 :%sn,
48、p-name); printf (tt 聯(lián)系人電話號碼 :%sn,p-phone); printf (tt 聯(lián)系人地址 :%sn,p-address);printf (tt 聯(lián)系人 QQ:%sn,p-QQ); +mark;printf (ntt 對不起 ! 沒有此人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;printf(n 請按
49、Enter 鍵繼續(xù) );printf (n*getchar();return 0;int phone_search(PEOPLE pHead)/ 按電話查詢函數(shù) PEOPLE p=pHead-pNext; char phone20;int x=number(pHead);int i;int mark=0;int a=0;printf (n*n);printf (宀用戶信息查詢功能 J);printf (n*nn);printf (tt 輸入要查找聯(lián)系人的電話 :);gets(phone);if(p!=NULL)for(i=a;ipNext)if(strcmp(phone,p-phone)=0)
50、*nn);printf (n*以下是您查找的用戶信息printf (tt 聯(lián)系人姓名 :%sn,p-name);printf (tt 聯(lián)系人電話號碼 :%sn,p-phone); printf (tt 聯(lián)系人地址 :%sn,p-address);printf (tt 聯(lián)系人 QQ:%sn,p-QQ);+mark;if(mark=0)printf (ntt 對不起 ! 沒有此人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn);printf( 請按
51、Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;printf(n 請按 Enter 鍵繼續(xù) );printf (n*n);getchar();return 0;int address_search(PEOPLE pHead)/按地址查詢函數(shù) PEOPLE p=pHead-pNext; char address50;int x=number(pHead);int i;int mark=0; int a=0;printf (n*n);printf (宀用戶信息查詢功能 J);printf (n*nn);printf (tt 輸入要查找聯(lián)系人的地址 :);get
52、s(address); if(p!=NULL)for(i=a;ipNext)if(strcmp(address,p-address)=0)printf (n*以下是您查找的用戶信息*nn);printf (tt 聯(lián)系人姓名 :%sn,p-name); printf (tt 聯(lián)系人電話號碼 :%sn,p-phone);printf (tt 聯(lián)系人地址 :%sn,p-address);printf (tt 聯(lián)系人 QQ:%sn,p-QQ); +mark;if(mark=0)printf (ntt 對不起 ! 沒有此人的記錄 !nn);printf( 請按 Enter 鍵繼續(xù) );printf(n*
53、n);getchar();case 3: return 0;elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf *ngetchar();return 0;printf(n 請按 Enter 鍵繼續(xù) );printf (n*n);getchar();return 0;int QQ_search(PEOPLE pHead)/ 按 QQ 查詢函數(shù) PEOPLE p=pHead-pNext; char QQ20;int x=number(pHead);int i;int mark=0;int a=0;printf(n*n
54、);printf(宀用戶信息查詢功能 J);printf(n*nn);printf(tt 輸入要查找聯(lián)系人的 QQ:);gets(QQ);if(p!=NULL)for(i=a;ipNext)if(strcmp(QQ,p-QQ)=0)printf (n*以下是您查找的用戶信息*nn);printf (tt 聯(lián)系人姓名 :%sn,p-name); printf (tt 聯(lián)系人電話號碼 :%sn,p-phone);printf (tt 聯(lián)系人地址 :%sn,p-address);printf (tt 聯(lián)系人 QQ:%sn,p-QQ);+mark;if(mark=0)printf (ntt 對不起 !
55、 沒有此人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;elseprintf (ntt 對不起 ! 沒有任何人的記錄 !nn); printf( 請按 Enter 鍵繼續(xù) );printf(n*n);getchar();return 0;printf(n 請按 Enter 鍵繼續(xù) );printf (n*n);getchar();return 0;void search(PEOPLE pHead)/ 查詢函數(shù) int num;printf (n*nn);printf (ttt1. 按姓名查找 n);printf
56、(ttt2. 按電話查找 n);printf (ttt3. 按地址查找 n);printf (ttt4. 按 QQ 查找 n);printf (ntt 選擇你需要操作的功能號碼 (1-4):);num=getchar(); getchar(); switch(num)case 1:name_search(pHead); break;case 2:phone_search(pHead);break;address_search(pHead); break;case 4:QQ_search(pHead); break;default:printf(ttt 輸入錯誤 !nn); printf( 請按
57、 Enter 鍵繼續(xù) );printf(n*n);getchar();break;void modify(PEOPLE pHead)/ 修改函數(shù) int i;int mark=0;int len=number(pHead);/ 記錄容量的最大值 char name25;PEOPLE p=pHead-pNext;printf(n*n);printf (T用戶信息修改功能);printf(n*nn);printf (tt 輸入要修改聯(lián)系人的姓名 :);gets(name);if(p!=NULL)for(i=1;ipNext)if(strcmp(name,p-name)=0)printf(*以下是您
58、要修 改的用戶信息*nn);printf ( 聯(lián)系人姓名 :%sn, p-name); printf ( 聯(lián)系人電話號碼 :%sn, p-phone); printf ( 聯(lián)系人地址 :%sn, p-address);printf ( 聯(lián)系人 QQ:%sn, p-QQ);printf(n*nn);+mark; break;if(mark0) # printf(tt 請輸入修改聯(lián)系人信息 nn); printf(tt 請輸入聯(lián)系人姓名 :); scanf(%s,p-name);printf(tt 請輸入聯(lián)系人電話 :); scanf(%s,p-phone);printf(tt 請輸入聯(lián)系人地址 :);scanf(%s,p-address);printf(tt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年宜春市事業(yè)單位招聘742人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年宜賓發(fā)展產(chǎn)城投資限公司第三批員工公開招聘管理單位筆試遴選500模擬題附帶答案詳解
- 2025年安徽黃山市徽城投資集團限公司下屬子公司招聘6人管理單位筆試遴選500模擬題附帶答案詳解
- 2025-2030年中國木本油料產(chǎn)業(yè)運行狀況及投資前景趨勢分析報告
- 2025-2030年中國變性淀粉市場發(fā)展規(guī)模及前景趨勢分析報告
- 2025-2030年中國人體管腔內支架行業(yè)運行狀況及發(fā)展趨勢預測報告
- 2024-2030年車輪軋機公司技術改造及擴產(chǎn)項目可行性研究報告
- 2024-2030年組合沖擊試驗機公司技術改造及擴產(chǎn)項目可行性研究報告
- 2024-2030年激光加工設備制造公司技術改造及擴產(chǎn)項目可行性研究報告
- 2024-2030年中藥飲片加工搬遷改造項目可行性研究報告
- 2024-2030年中國鋁汽車緊固件行業(yè)銷售規(guī)模與盈利前景預測報告
- 城市建設苗木吊裝安全方案
- 中醫(yī)院醫(yī)生作風建設工作方案(6篇)
- DIY手工坊創(chuàng)業(yè)項目計劃書
- (高清版)DB21∕T 1795-2021 污水源熱泵系統(tǒng)工程技術規(guī)程
- 2024-2025學年人教版數(shù)學五年級上冊期末檢測試卷(含答案)
- 【MOOC】犯罪心理學-中南財經(jīng)政法大學 中國大學慕課MOOC答案
- 《外盤期貨常識》課件
- 2024江蘇鹽城港控股集團限公司招聘23人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年三支一扶考試基本能力測驗試題及解答參考
- 中華人民共和國統(tǒng)計法
評論
0/150
提交評論