C語言個人通訊_錄管理系統(tǒng)優(yōu)秀課程設計報告_第1頁
C語言個人通訊_錄管理系統(tǒng)優(yōu)秀課程設計報告_第2頁
C語言個人通訊_錄管理系統(tǒng)優(yōu)秀課程設計報告_第3頁
C語言個人通訊_錄管理系統(tǒng)優(yōu)秀課程設計報告_第4頁
C語言個人通訊_錄管理系統(tǒng)優(yōu)秀課程設計報告_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、c語言程序設計課程設計報告摘要木次課程設計的題口為個人通訊錄管理系統(tǒng),要求將程序屮所輸入的聯(lián)系人姓名、 電話和地址信息這三個數據以文本方式保存在磁盤中,并且能夠對所儲存的聯(lián)系人信息 進行顯示、查詢、修改、刪除等功能。我編寫的程序從整體上看可分為兩個部分,一部分為文件的建立、讀取和保存,另 一部分為通訊錄功能的實現(xiàn)。在文件部分,我通過readfile()函數和writefile()函數從而實 現(xiàn)了對磁盤上數據的進行寫和讀,通過剛開始的界而提示可以知道文件是否建立,以免 丟失數據,我還為用戶設計了保存退出和不保存退出兩大功能供用戶做選擇。在模塊功 能實現(xiàn)部分,通過scanf從鍵盤上輸入的數字放到s

2、witch() case循環(huán)中來實現(xiàn)調用 zengjia()、shanchu() xiugai()> chazhao()等十五個函數來實現(xiàn)"添加"、"杳詢和顯示"、 “修改”、“刪除”等不同功能。關鍵字:文件、數組、循環(huán)、函數重慶科技學院 課程設計任務書 設計題目:個人通訊錄管理系統(tǒng)學牛姓名xxx課程名稱c語言程序設計課程設計專業(yè)班級電自專2011地點1515起止時間2012 年 12 刀 17 u-12 刀 28u設計內容及要求建立一通訊錄,輸入姓名、電話號碼、住址等信息,然后対通信簿進行顯示、 杏找、添加、修改及刪除。進一步掌握利用c語言進行程

3、序設計的能力;進一步理解和運用結構化程序設 計的思想和方法;初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;學會調試一個較長 程序的基本方法;學會利用流程圖表示算法。根據題目要求,運用所學知識,完成設計和實現(xiàn)工作,并按照書寫規(guī)范,撰寫 課程設計報告。設 計 參 數(1)系統(tǒng)分析、設計正確。(2)結果以圖表方式顯示。(3)界面簡潔、美觀。(4)報告格式規(guī)范。周一:明確設計任務,學習相關基礎知識 周二:熟悉各知識點,進行基礎練習 周三:根據題h要求,進行設計和實現(xiàn) 周四:根據題目要求,進行設計和實現(xiàn) 周五:撰寫報告,進行答辯參考資料1 何欽銘顏暉.c語言程序設計.高等教冇出版社.2008年2 譚浩強張基溫

4、.c語言程序設計教程.高等教育出版社.2006年其 它說 明1 本表應在每次實丿施前一周由負責教師填寫二份,院系審批后交院系辦備案,一份 由負責教師留用。2 .若填寫內容較多可另紙附后。3.題多名學生共用的,在設計內容、參數、要求等方面應有所區(qū)別。教研室主任:指導教師:雷亮2012 年 12 月 10 口目錄第一章軟件需求分析說明書1.1設計軟件的目的分析1.2軟件的界面要求1.3詳細的功能分析1.3.1創(chuàng)建文件1.3.2添加聯(lián)系人1.3.3顯zf和查詢聯(lián)系人1.3.4刪除聯(lián)系人1.3.5修改聯(lián)系人1.3. 6保存退出與不保存退出14設計要求分析1.5軟件的數據結構分析1.5.1軟件的函數1.

5、5.2文件的調用和保存. 第二章系統(tǒng)分析與設計2. 1軟件界面設計2.2軟件的數據(結構)設計2.2.1軟件的文件功能2.2.2文件內部的數據格式2.3軟件的模塊圖2.4軟件的流程圖2.4.1添加聯(lián)系人程序流程圖2.4. 2顯示和查找聯(lián)系人程序流程圖2.4.3刪除聯(lián)系人流程圖2.4.4修改聯(lián)系人流程圖第三章軟件的實現(xiàn)3.1函數聲明3. 2 zhuca i dan ()主菜單函數3. 3 ma i n ()主函數3. 4 readf i le 0讀取文件函數3. 5 wr itef i le()聯(lián)系人寫入文件函數3. 6 zengj i a ()增加聯(lián)系人函數3. 7 shanchu ()刪除函

6、數主界面3. 8 x i ansh i ()顯示和查詢函數3. 9 xianshi 0顯示所有人函數3. 10 chazhao_xingming 0 姓名查詢函數3.11 chazhao3.12 shanchu3.13 shanchu3.14 shanchu3.15 shanchudianhuao按號碼查詢函數dange ()刪除單個聯(lián)系人函數. quanbu ()刪除所有聯(lián)系人函數. xingmingo按姓名刪除聯(lián)系人函數 dianhuao按電話號碼刪除函數 111111111122223333334455688899101112121313141515163. 163. 173. 18 第

7、四章4. 14.24.34.4x i uga i 0修改函數主體界面1920222222222323xiugai_xingming()按姓名修改x i uga i _d i anhua ()按號碼修改聯(lián)系人函數 軟件測試文件導入界面軟件的主界面添加聯(lián)系人模塊4. 4. 1主界面顯示和查找聯(lián)系人界面4. 4. 2無聯(lián)系人的顯示界面234. 4. 3有聯(lián)系人的顯zf界面244. 4.4按姓名查找244. 4.5按電話號碼查找244. 5刪除聯(lián)系人模塊254. 5.1刪除聯(lián)系人主界面254. 5. 2沒有對應聯(lián)系人的刪除界面254.5.3按姓名刪除254.5.4按電話號碼刪除264. 6修改聯(lián)系人模

8、塊264. 6. 1修改聯(lián)系人主菜單264.6.2按姓名修改274.6.3按電話修改274.7退出284.7. 1保存退出284.7.2不保存退出28第五章 總結與體會29致謝30參考文獻31第一章軟件需求分析說明書11設計軟件的目的分析本軟件要求用c語言建立一通訊錄,輸入姓名、電話號碼、住址等信息,然后對通 信錄進行顯示、查找、添加、修改及刪除。12軟件的界面要求本軟件要求軟件的界面簡潔、美觀,讓人一目了然,使用起來方便。于是我設計的 軟件首先提示您是否有通訊錄文件存在,如沒有文件,則口動建立一個,如有文件存在, 則提示導入成功,讓人直觀明白的了解文件的情況。按任意鍵便可以進入主菜單,在主

9、菜單上顯示出軟件的功能,通過輸入數字0到5來進行選擇便可以實現(xiàn)你所需要的功能, 每個模塊進入模塊內部實現(xiàn)軟件的具體功能,實現(xiàn)您所需要的功能。13詳細的功能分析該系統(tǒng)用下面六個功能模塊編寫,每個模塊執(zhí)行不同的功能,體現(xiàn)了模塊化設計的 思想。下面六個模塊都是利用c語言文件,向文件中添加數據、修改數據、查詢數據、 刪除數據和保存數據。1.3. 1創(chuàng)建文件用fopen ()建立一個文木文件,然后向其中輸入數據(例如,向文件中輸入“姓 名”,“地址”,“號碼”等),并對文件進行命名。1.3.2添加聯(lián)系人通過鍵盤輸入通訊錄人員的姓名、電話號碼、地址信息便可實現(xiàn)將信息添加到通訊 錄文件內,添加完畢后,系統(tǒng)會

10、自動詢問你是否繼續(xù)添加,如你想繼續(xù)添加,再通過鍵 盤輸入通訊錄人員的姓名、電話號碼、地址信息即可實現(xiàn)繼續(xù)添加。1.3. 3顯示和查詢聯(lián)系人通過前面第一個模塊打得錄入我們便可以執(zhí)行第二個模塊,通過第二個模塊我們可 以進行對聯(lián)系人進行顯示和查找。我通過調用showall()函數來進行顯示所有的聯(lián)系人,showall()函數可以實現(xiàn)逐個顯 示聯(lián)系人。對于查找聯(lián)系人我則采用了 search()函數來進行查找聯(lián)系人,我提供了兩種查找方 法:按照姓名查找;按照電話號碼查找。1.3.4刪除聯(lián)系人我調用deletecd()函數來實現(xiàn)刪除功能,同樣我也提供給了兩種刪除方法:全部刪 除;單個刪除。其中全部刪除會提

11、示是否全部刪除,以免誤刪。1.3.5修改聯(lián)系人我調用modify。函數來實現(xiàn)修改功能,我同樣提供了兩種修改方法:對姓名進行 修改;對電話號碼進行修改。修改完畢后會提示是否據需修改。1.3.6保存退出與不保存退出你還在為謀添加、誤修改、誤刪除后悔嗎?還想回到以前的數據嗎?這個擔憂在我 的程序中您就不必擔心了,我為程序捉供了兩種退出方式:保存退出;不保存退出。完全解決您的后顧之憂。14設計要求分析 進一步掌握利用c語言進行程序設計的能力; 進一步理解和運用結構化程序設計的思想和方法; 初步掌握開發(fā)一個小型實用系統(tǒng)的基木方法; 學會調試一個較長程序的基本方法; 學會利用流程圖表示算法。 根據題目要求

12、,運用所學知識,完成設計和實現(xiàn)工作,并按照書寫規(guī)范,撰寫課 程設計報告。15軟件的數據結構分析1.5.1軟件的函數本軟件采用了不同的函數來進行定義不同模塊的功能,通過調用不同的函數,可 以實現(xiàn)不同的功能。軟件小采用了五個主體函數來實現(xiàn)添加聯(lián)系人,修改聯(lián)系人,查 找聯(lián)系人,顯示聯(lián)系人,刪除聯(lián)系人的功能。1.5.2文件的調用和保存木軟件通過文木方式對用戶所錄入的信息進行保存。通過保存下來的文木,您可以 在電腦磁盤中找到您存入文件的位置,打開后便可以找到您所錄入的通訊錄信息。第二章系統(tǒng)分析與設計2.1軟件界面設計陸出軟件全部輸入、輸出數據的界面,并對每一個界面進行詳細的操作說明2.2軟件的數據(結構

13、)設計軟件調用不同的函數來實現(xiàn)不同的功能,通過反復調用函數來實現(xiàn)反復輸入。代 碼屮通過scanf從鍵盤上輸入不同的數字選項,然后通過swtich case()來實現(xiàn)對不同函數 的調用。2. 2.1軟件的文件功能軟件采用了文本文檔進行存取,我在c盤建立了一個txl文本文檔用于存取輸入的 信息,打開c盤后就能直接看到您錄入的信息,很方便和快捷。2. 2. 2夬件內部的數據格式我采用了 readfile()函數來讀取文件,使用if(fp=fopen(”c:通訊錄txt”,v)=null) 以只讀方式打開判定文件是否為空,如果不空,則使用fseek(fp,0,2);文件位置指針移動 到文件末尾以來進行

14、寫入數據。使用 writefileow聯(lián)系人寫入文件,用 if (fp=fopen(”c:通訊錄.txt“,”w”)=null) 以只寫的方式來對判定文件是否為空,如果不為空,則從鍵盤上錄入所需要錄入的信息 存到相應的文件中。最后通過fclose(fp)來關閉文件,回到主界而上等待用戶輸入新的操 作。2. 3軟件的模塊圖軟件的模塊圖很直觀的反映出軟件能夠實現(xiàn)的功能,由下面的模塊圖可以很直觀的 看出我設計的通訊錄軟件能夠方便的實現(xiàn)添加聯(lián)系人、顯示聯(lián)系人、刪除聯(lián)系人、修改 聯(lián)系人功能,另外,我設計的軟件還實現(xiàn)了保存退出和不保存退出功能,這個功能很獨 特。 在增加聯(lián)系人部分,我用了三個函數調用來分別

15、實現(xiàn)錄入聯(lián)系人姓名、號碼、地 址。 在顯示和查詢聯(lián)系人部分,我也有三個模塊:逐個顯示聯(lián)系人,按姓名查詢,按 號碼查詢。 在刪除聯(lián)系人部分,我設計了三個界面,可以實現(xiàn)全部刪除,單個刪除,回到主 菜單。、在修改聯(lián)系人模塊,我也設計了三個界面,按姓名修改,按號碼修改,回到主菜 單。最后我設計了保存退出和不保存退出,針對那些修改后卻又后悔修改的用戶需 要。主界面圖2.1軟件的模塊圖2.4軟件的流程圖由于程序流程圖較為復雜,我采用了分塊畫出程序流程圖2. 4.1添加聯(lián)系人程序流程圖由添加聯(lián)系人的程序流程圖可以看出,在添加聯(lián)系人板塊上,我設計了三種信息, 輸入姓名,輸入電話和輸入地址,輸入完成后會提示是否

16、繼續(xù)輸入,如果輸入y后則可 以繼續(xù)輸入,輸入n后返回主菜單。圖2.2添加聯(lián)系人程序流程圖2. 4. 2顯示和查找聯(lián)系人程序流程圖在主菜單上輸入2后便可以進入顯示和查詢聯(lián)系人的主界面,我為您提供了三個選 項,1 .顯示全部2.按姓名查詢3按電話查詢。輸入對應的數字便可以實現(xiàn)對應的功能, 同理,系統(tǒng)會在您查詢完畢后詢問您是否繼續(xù)查詢,操作同上。圖2.3顯示和查找聯(lián)系人程序流程圖2. 4. 3刪除聯(lián)系人流程圖在刪除聯(lián)系人流程圖上,我設計了全部刪除和單個刪除功能,單個刪除設計了按照 姓名刪除和按電話號碼刪除兩種選擇,在刪除時,系統(tǒng)都會詢問您是否刪除,以免誤刪。圖2.4刪除聯(lián)系人流程圖2.4.4修改聯(lián)系

17、人流程圖修改聯(lián)系人界而上我設計了按姓名修改和按號碼修改兩種方式,當選擇時系統(tǒng)會捉 示您是否修改,若不修改則返冋主界面,若選擇是,則系統(tǒng)會該處三個修改項目:修改 姓名,修改電話,修改地址,修改完畢后系統(tǒng)會提示您是否繼續(xù)修改,如不修改,則又 返回主界面等待輸入。圖2.5修改聯(lián)系人流程圖第三章軟件的實現(xiàn)3.1函數聲明void zhucaidan(); /*主菜單函數*/ void zengjia();/*增加聯(lián)系人函數*/void readfile(); /*文件中讀入函數*/ void writefile(); /*文件中寫入函數*/ void xiugai(); /*修改聯(lián)系人函數*/ void

18、 xiugai_xingming(); /*姓名修改*/ void xiugai_dianhua(); /* 電話號碼修改*/ void chazhao();/*查找聯(lián)系人函數*/void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按號碼查找*/ void shanchu();/*刪除聯(lián)系人函數*/void shanchu_quanbu(); /*全部刪除*/ void shanchu_dange(); /*單個刪除*/void xianshi();/*號碼顯示*/3, 2 zhuca i dan ()主菜單函數其源代碼如下

19、:void zhucaidan()char c;system("clsn);printf(nnttl歡迎您使用通訊錄管理系統(tǒng)1 .obeat版-門;printf(nnttl1 添加聯(lián)系人2 查詢和顯不聯(lián)系人nprintf(nnttl3 刪除聯(lián)系人4 修改聯(lián)系人ih);printf(nnttl5 保存退出0 不保存退出in);printf(nnttli”);printf(f,ntt請選擇您所所要的服務:”); c=getch();switch (c) /*對于上邊的選擇項目*/case *r:zengjia();break;case '2':chazhao();brea

20、k;case 3:shanchu();break;case '4*:xiugai();break;case '5 *:writefile();break;case 'of:exit(o);default:zhucaidan(); /*如果沒有則返冋主菜單等待輸入*/較難語句分析: system(” cis”);清除輸入在屏幕上的數據; c=getch();將鍵盤上輸入的數據賦予c; switch (c) case :實現(xiàn)對主菜單上的選項的控制;3. 3 ma i n ()主函數main()函數的源代碼見下:void main() readfileo;while(l)f/

21、*主函數main*/*讀入文件*/*循壞(永遠進行)*/zhucaiidan();/*調用主菜單函數*/main()函數功能分析:main。函數通過調用readfile()函數和循環(huán)mcnu()函數實現(xiàn)對入文件和界而進行控 制。3.4 readfileo讀取文件函數其源代碼如下: void readfileoif(fp=fopen(nc:通訊錄.txtn;'r")=null) /*以只讀方式打開判定文件是否為 空*/printf(hnttt通訊錄文件不存在”);/*判斷結論*/if(fp=fopen("同通訊錄.txtm,hwh)=null) /* 只寫方式判斷 *

22、/*為空結論*/*退出*/elseprintf(hntt 建立失敗”); exit(o);/*不為空則執(zhí)行else*/printf("nt- printf(nnt printf(hnt printf("nt- getch(); return ;歡迎使用通訊錄管理系統(tǒng) 通訊錄文件已建立按任意鍵進入主菜單”);”);”);”);exit(o);fseek(fp,0,2); /*文件位置指針移動到文件末尾*/ if (ftell(fp)>0) /* 文件不為空 */rewind(fp); /*文件位置指針移動到文件開始位置*/for (n=0;!feof(fp) &

23、& fread(&txln,sizeof(struct tongxunlu), 1 ,fp);n+);printf(nnt printf("nt printf("nt printf(hnt getch(); return;歡迎使用通訊錄管理系統(tǒng)1 .obeat版 文件導入成功按任意鍵返回主菜單");”);”);”);printf("nt printf("nt printf("nt printf("nt printf(hnt getch(); return;歡迎使用通訊錄管理系統(tǒng)l.obeat版 文件導入成功通

24、訊錄文件中無任何紀錄按任意鍵返回主菜單”);”);”);”);”);較難語句分析:否if (fp二fopen(c:通訊錄.txt,r)=nl;ll)以貝讀方式打開判定文fscck(fp, 0, 2);文件位置指針移動到文件末尾; ftell(fp):返冋當前文件位置,也就是說返冋file指針當前位置; rewind (fp);文件位置指針移動到文件開始位置;feof(fp)檢測流上的文件結束符;fread (&txln, sizeof (struct tongxunlu), 1, fp) ;n+)從 fp 扌旨向的文件中向txl n中讀入一個(struct tongxunlu)類型的值

25、并輸出后面的內容。若沒有 成功執(zhí)行就不輸出后面的內容。void readfileo®數的功能分析:首先由if(fp=fopen(hc:通訊錄.txtn,nrh)=null)判斷文件是否存在,如果不存 在,則顯示通訊錄文件不存在,如果文件為空,則顯示建立失?。蝗艚⒊晒?,則顯示 通訊錄文件已建立,然后利用fseek(fp,0,2);將文件位置指針移動到文件末尾等待輸入。 3. 5 wr itef i le()聯(lián)系人寫入文件函數函數源程序見2void writefile() /*聯(lián)系人寫入文件*/int i;if (fp=fopen(nc:® 訊錄.txt,;,w")

26、=null)printf(”ntt文件打開失敗”);for (i=0;i<n;i+)if (fwrite(&txli,sizeof(struct tongxunlu),l,fp)!=l)printf(hntt 寫入文件錯誤!n”);fclose(fp); /*關閉文件*/printf(hntj; /*輸岀提示信息*/printf("ntt通訊錄文件已保存");printf(hntt謝謝使用,歡迎再次使用!nn);printf("如果對本軟件有疑問,請到我們官網()提出您的問題,我們將 為您解答.);printf(n我們的軟件有不足之處,歡迎到官網()

27、反映,我們將努力改 正! ”);printf(hntt按任意鍵退出程序nttu);/*輸出完畢*/exit(o);printf(hnt");較難語句分析: fp=fopen(”c:通訊錄txt”,”w”)以只寫的方式打開c:txl.txt文件賦予fp; if (fwrite(&txli,sizeof(struct tongxunlu), 1 ,fp)!= 1)從 fp 指向的文件中向 txln中寫入一個(struct tongxunlu)類型的值并輸出后面的內容。若沒有成功執(zhí)行 就不輸出后面的內容。 fclose(fp);關閉文件wri(efile()聯(lián)系人寫入文件函數的功能

28、分析: 將c:通訊錄.txt文件以只讀方式打開付給fp,如果為空則輸出“文件打開失敗”; 若果成功則執(zhí)彳亍 if (fwrite(&txli,sizeof(struct tongxunlu),l,fp)!=l),如果寫入(struct tongxunlu)成功則關閉文件,若果不成功則輸岀“寫入文件錯誤! ”。3. 6 zengj i a ()增加聯(lián)系人函數其源程序如下:void zengjia() _printf(hntt 請輸入聯(lián)系人彳言,息、n");printf(” ntt輸入聯(lián)系人姓名:”);scanf("%sh,txln.xingming);/* 鍵盤輸入*

29、/printf(hntt輸入聯(lián)系人電話號碼:”); scanf(n%sh,txln.dianhua);printf("ntt輸入聯(lián)系人地址:”);scanf(n %su, txl n .dizhi);n+;/*統(tǒng)計個數*/printf(”ntt是否繼續(xù)添加聯(lián)系人?(y/n):”); /*是否繼續(xù)輸入聯(lián)系人泮/if (getch()=,y,) zengjia();return;功能分析:調用 zengjia()函數后,就可以通ii txln. xingming, txln.dianhua , txln.dizhi 數 組從鍵盤上輸入聯(lián)系人的姓名,電話,地址,輸入完畢后,系統(tǒng)會提示是否繼

30、續(xù)輸入, 輸入“y”后,則再次調用zengjiao;函數,如此循環(huán),直到不輸入聯(lián)系人為止。3. 7 shanchu ()刪除函數主界面原函數代碼:void shanchu()char c;if(n=o)/*如果通訊錄屮沒冇一個記錄輸出以下部分*/printf(nntt對不起,文件中無任何紀錄”);printf("ntt按任意鍵返回主菜單”);getch(); return;system("cls");/* 清屏*/printf(hntt刪除菜單”);printf(nnttl1 刪除所有2刪除單個i”);printf(nnttl3 返回主菜單i");pri

31、ntf(hnttln);printf(,fntt請選擇您所所要的服務:);c=getch();/*輸入的賦予 choice*/switch (c)case t:shanchu_quanbu();break;case ,2,:shanchu_dange();break;case '3':zhucaidan();break;default:zhucaidan();break;函數功能分析:通過界面上的數字選項,調用 shanchu_quanbu()> shanchu_dange();和 zhucaidan()函 數來實現(xiàn)不同的刪除功能。3. 8 xianshi ()顯示和查詢

32、函數函數源程序:void chazhao()char c;system("clsh);printf(hntt 顯示和查詢聯(lián)系人 ”);printf(nnttl1 逐個顯示所有2 按姓名查詢i”);printf(hnttl3 按電話查詢4 返回主菜單i”);printf(hnttl”);printf(hntt請選擇您所所要的服務:”); c=getch();switch (c)case ,2,:chazhao_xingming();break; /*調用按姓名查詢函數*/case 3:chazhao_dianhua();break; /*調用按號碼查詢函數*/case '4&#

33、39;:zhucaidan();break;/*主菜單*/函數功能分析:首先通過getch();從鍵盤上輸入選項,通過switch case ()來調用xianshi()> chazhao_xingming()chazhao_dianhua ()三個函數實現(xiàn)不同的功能。3. 9 xianshi ()顯示所有人函數函數源程序:void xianshi()/顯示所有聯(lián)系人函數int i;system("cls ”);清楚屏幕 if(n!=0)”);printf(”ntt歡迎您查詢通訊錄所有聯(lián)系人信息for (i=0;i<n;i+)/*依次序顯示*/printf(hntt 姓名

34、: printf("ntt 電話: printf(nntt 地址: printf(nntt訐(i+1 vn)%s”,txli.xingming);%s",txli.dianhua);%sn,txli.dizhi);”);printf(nntt”);system(” pause");返冋錯誤信息”);/*無聯(lián)系人*/printf(nnttelseprintf(nntt通訊錄屮無任何紀錄”); printf(nntt按任意鍵返冋主菜單:”); getch();return;功能分析:通過for (i=0;i<n;i+)循環(huán)實現(xiàn)依次序顯示聯(lián)系人。3. 10 cha

35、zhao_xingming0 姓名查詢函數函數源程序:void chazhao_xingming()/按姓名查詢int mark=0; inti;char name20;printf(nntt按姓名查找”);printf(nntt請輸入您要查找的姓名:”); scanf("%sh,name);for(i=0;i<n;i+)if (strcmp(txli .xingming,name)=o)printf(hntt 以下是您查找的聯(lián)系人信息 ”);printf(nntt 姓名:%sh,txli.xingming);printf("ntt 電話:%sn,txli.dianh

36、ua);printf("ntt 地址:%sh,txli.dizhi);printf(nntt”);mark+;getch();return;訐(mark=0)printf("ntt沒有找到聯(lián)系人的信息”); printf(hntt按任意鍵返回主菜單“); getch();return;功能分析:通過scanf(h%sn,name)從鍵盤上輸入的姓名利用if(sh*cmp(txli.xingming,name)=o)進行對比,確認是否有該聯(lián)系人。3. 11 chazhao_d i anhua 0按號碼查詢函數函數源程序:void chazhao_dianhua()int ma

37、rk=0;inti;char phone15; printf(hntt按電話查找”);printf(”ntt請輸入電話號碼:”);scanf(h%s",phone);for(i=0;i<n;i+)if (strcmp(txli.dianhua,phone)=0)/ 對比查找函數printf(nntt 以下是您查找的學生信息 ”);printf(hntt 姓名:%sh,txli.xingming);printf("ntt 電話: %sn,txli .dianhua);printf(nntt 地址:%sn,txli.dizhi);printf(hntt”);printf(

38、”ntt按任意鍵返回主菜單:”); mark+;getch();return;訐(mark=0)printf(hntt沒有找到聯(lián)系人的信息“);printf(hntt按任意鍵返回主菜單”); getch();return;功能分析:通過scanf(h%sh,name)從鍵盤上輸入的電話號碼利用if (strcmp(txli.dianhua,phone)=0)進行對比查找,確認是否有該聯(lián)系人。3. 12 shanchu_dange ()刪除單個聯(lián)系人函數函數源程序:void shanchu_dange()刪除單個聯(lián)系人char c;printf(nnt”);printf("ntt 1

39、按姓名刪除2 按電話刪除”);printf(f,ntt請選擇您所所要的服務:”); printf(hnt ”);c=getch();switch (c)case' 1 ':shanchu_xingming();break;case '2,:shanchu_dianhua();break;函數功能分析:這個函數調用shanchu_xingming()函數和shanchu_dianhua()函數來通過從鍵盤上輸 入的姓名或者電話號碼來實現(xiàn)刪除功能。3. 13 shanchu_quanbu ()刪除所有聯(lián)系人函數函數源程序如下:void shanchu_quanbu()/ff

40、llj除所有聯(lián)系人printf(nntt 確認刪除?(y/n)u); if (getch()=,y,)fclose(fp);if (fp=fopen(uffi 訊錄.txth,nwn)=null)/* 文件空輸 ih */printf(”ntt不能打開文件,刪除失敗”); readfile();n=0;printf("ntt紀錄已刪除,按任意鍵返回主菜單”);getch();return;elsereturn;deleteall()ffl除所有函數功能分析:首先在刪除前系統(tǒng)會提示是否刪除,如果確認刪除,則系統(tǒng)將檢查文件輸出是否為 空,如果為空,則顯示“不能打開文件,刪除失敗”,并且馬

41、上調用函數readfile();重新 讀入文件;如果文件存在,則顯示“紀錄已刪除,按任意鍵返回主菜單”。3, 14 shanchu_xingming()按姓名刪除聯(lián)系人函數函數源程序為:void shanchu_xingming()/按姓名刪除聯(lián)系人int i,m,mark=0,a=0;char name20j;printf(”ntt請輸入要刪除聯(lián)系人姓名:”);scanf(h%sh,name);/* 鍵盤輸入姓名 */for (i=a;i<n;i+)if (strcmp(txli.xingming,name) = 0) /對比字符申杳找到耍刪除的聯(lián)系人 printf(nntt以下是您要

42、刪除的聯(lián)系人紀錄:”);printf(nntt”);printf(”ntt 姓名:%sh,txli.xingming);printf("ntt 電話:%sn,txli.dianhua);printf("ntt 地址:%s",txli.dizhi);printf(nntt”);printf(”ntt 是否刪除?(y/n)u);if (getch()=,yt) /實現(xiàn)刪除功能 for (m=i;m<n-l;m+)txlm=txlm+l;/*將通訊錄的想前移*/n-;mark+;printf(hntt 刪除成功”); printf(”ntt 是否繼續(xù)刪除?(y/n

43、)u);if (getch()=,y,)shanchu_xingming();/*繼續(xù)調用刪除函數*/return;elsereturn;continue;if (mark=0)printf(nntt沒有該聯(lián)系人的紀錄”);printf(nntt 是否繼續(xù)刪除?(y/n)n);if (getch()=y)shanchu_xingming();return;較難語句分析:if (strcmp(txlil.xingming,name) = 0)對比輸入的名字與文件中存在的名字 是否一致。txlj=txlj+l; 將通訊錄信息向前移功能分析:shanchu_xingming ()函數功能分析:首先通

44、過 scanf("%s",name);從鍵盤上輸入姓名,通過 if (strcmp(txli.xingming,name) =0)對比輸入的名字與文件中存在的名字是否一致,如果一致,則顯示出聯(lián)系人信息, 并給出是否修改,輸入y后,則通過txljnxlj+l;將通訊錄后面的數據向前移一個單位。 3. 15 shanchu_d i anhua ()按電話號碼刪除函數函數源程序:void shanchu_dianhua()/按電話號碼刪除聯(lián)系人int i,m,mark=0;/*變量定義*/char phone20j;printf(”ntt請輸入要刪除聯(lián)系人電話號碼:”); sca

45、nf("%s",phone);if(n=0) printf("ntt對不起,文件中無任何紀錄”); printf(”ntt按任意鍵返回主菜單”); getch();return;for (i=0;i<n;i+)if (strcmp(txli.dianhua,phone)=0)printfcfntt以卜是您要刪除的聯(lián)系人紀錄');printf("ntt 姓名:%s",txli.xingming); printf(nntt 電話:%sn,txli.dianhua); printf(”ntt 地址:%sn,txli.dizhi);pri

46、ntf(hntt 是否刪除?(y/n)h);if (getch()=y)for (m=i;m<n-l;m+4-) /遞推替換實現(xiàn)刪除 txlm=txlm+l;n-;mark+; /記錄刪除次數 printf("ntt 刪除成功”); printf(hntt 是否繼續(xù)刪除?(y/n)n);if (getch()=,y,)shanchu_dianhua();return; elsereturn;continue;if (mark=0) printf(hntt沒有該聯(lián)系人的紀錄”); printf(”ntt 是否繼續(xù)刪除?(y/n)u); if (getch()=,y,) retur

47、n ;函數功能分析:首先通過scanf(h%sn, phone);從鍵盤上輸入電話號碼,通過if (strcmp(txli. dianhua, phone) = 0)對比輸入的名字與文件中存在的號碼是否一致,如果一致,則顯示岀聯(lián)系 人信息,并給出是否修改,輸入y后,則通過txljnxlj+l;將通訊錄后面的數據向前移 一個單位。3. 16 x i uga i ()修改函數主體界面函數的源代碼:void xiugai() /*修改函數*/char c;if(n=0)printf(mntt對不起,文件中無任何紀錄”);printf(nntt按任意鍵返回主菜單”); getch();return;s

48、ystem("cls");printf(nntt修改聯(lián)系人菜單”);printf(nnttl1 按姓名修改2 按電話修改printf("nttl任意鍵-按返回主菜單printf("ntt");c=getch(); switch(c)case 11 ':xiugai_xingming();break;case 2:xiugai_dianhua();break;default:zhucaidan();break;功能分析:case來實現(xiàn)對通過c=getch()將鍵盤上輸入的數字賦予c ,通過swtich xiugai_xingming()和

49、 xiugai_dianhua()函數的調用。3. 17 xiugai_xingming()按姓名修改函數源代碼:void xiugai_xingming()char c;int i,mark=0;char name|20|;printf(nntt請輸入要修改的聯(lián)系人姓名:"); scanf(h%sh,name);if(n=0) printf(hntt文件中無任何聯(lián)系人”); printf(”ntt按任意鍵返回主菜單“); getch(); mark+;return; for(i=0;i<n;i+)if(strcmp(txli.xingming,name)=o)printf(n

50、ntt以下是您要修改的聯(lián)系人信息”);printf(hntt 姓名:%sn,txli.xingming);printf(hntt 電話:%s",txli.dianhua); printf(nntt 地址:%sm,txli.dizhi);printf(hntt 是否修改(y/n)”);if(getch()=,y,) printf(nnt請選擇修改信息”);printf("nt1 修改姓名2 修改電話”);”);printf(hnt3 修改地址n);printf(nntprintfcnm請選擇您所所耍的服務:”); scanf("%s'&c);swit

51、ch(c)case t: printf("nt 請輸入新姓名:"); scanf(',%s,txli.xingming);break; case'2,:printf("nt 請輸入新電話:%sh); scanf(" %s u, txl i .dianhua) ;break; case'3':printf(hnt 請輸入新地址:"); scanf(" %sn ,txl i .dizhi) ;break;if(mark=o)printf(mntt沒有找到聯(lián)系人信息”); printf(nnt 是否繼續(xù)修改?

52、 (y/n):”); if(getch()=,y,) xiugai_xingming();return; 功能分析:通過if(strcmp(txlfi.xingming,name)=o)比較是否有該聯(lián)系人,如果有,則系統(tǒng)彈 出修改項目,通過scanf(”s”,&c);錄入的數據來實現(xiàn)對姓名、電話、地址的修改。3. 18 xiugai_dianhua ()按號碼修改聯(lián)系人函數函數源代碼:void xiugai_dianhua()char c,phone15;int i,mark=0;printf("ntt請輸入要修改聯(lián)系人的號碼:"); scanf("%s'phone);if(n=0)printf("ntt文件中無任何聯(lián)系人”);printf("ntt按任意鍵返回主菜單”); getch();mark+4-;return;for(i=0;i<n;i+)if(strcmp(txli.dianhua,phone)=0) printf(”ntt以下是您要修改的聯(lián)系人信息”);printf(nntt 姓名:%s",txli.xingming);printf("ntt 電話:%s",txli.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論