版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告書</b></p><p><b> 通信錄管理系統(tǒng)設(shè)計</b></p><p> 班 級: 方0953-1 </p><p> 學(xué) 號: 20097251 </p><p> 姓 名: 倪博 </p>&
2、lt;p> 指導(dǎo)教師: 楊子光 </p><p> 石 家 莊 鐵 道 大 學(xué) 四 方 學(xué) 院</p><p> 2010年7月15日</p><p><b> 1.選擇題目</b></p><p> 題目:通信錄管理系統(tǒng)設(shè)計</p><p><b> 2.內(nèi)容摘
3、要</b></p><p><b> 摘要:</b></p><p> 隨著科技的進步和信息產(chǎn)業(yè)的飛速發(fā)展,通訊錄成為了現(xiàn)代生活中一個重要的工具。此通訊錄管理系統(tǒng)為方便管通訊信息,幫助企業(yè)公司職員的聯(lián)系旨在服務(wù)社會。</p><p> 整個系統(tǒng)程序采用c語言來實現(xiàn)。c語言是目前國際上比較流行的計算機高級編程語言之一,因其簡潔、
4、使用方便且具備強大的功能而受到編程人員的普通青睞。它既適合作為系統(tǒng)描述語言,也可用來編寫系統(tǒng)軟件,還可用來編寫應(yīng)用軟件。用C/C++設(shè)計出模擬手機通信錄管理系統(tǒng),實現(xiàn)對手機中的通信錄進行管理。</p><p> 本文介紹課程設(shè)計課題的選題意義,說明了本系統(tǒng)提供的主要功能:查詢,修改,添加,刪除等,并畫出功能框圖,最后給出了作者在小學(xué)期設(shè)計過程的體會。</p><p><b>
5、 3.索引關(guān)鍵字</b></p><p> 關(guān)鍵詞:通訊錄管理,查詢,添加,功能框圖</p><p> 4. 目錄</p><p> 題目要求---------------------------------4</p><p> 設(shè)計思想----------------------
6、-----------4</p><p> 系統(tǒng)完成功能及框圖-----------------------5</p><p> 界面設(shè)計---------------------------------6</p><p> 核心算法及說明---------------------------8</p><p> 結(jié)論--------
7、-----------------------------11</p><p> 后記-------------------------------------11</p><p> 參考資料---------------------------------12</p><p><b> 5.正文</b></p><p
8、> 5.1課程設(shè)計題目要求</p><p><b> 5.1.1實驗?zāi)康?lt;/b></p><p> 培養(yǎng)學(xué)生獨立分析問題、解決問題、查閱資料以及自學(xué)能力,以適應(yīng)信息管理行業(yè)日新月異的發(fā)展形勢;</p><p> 本次實驗是以學(xué)生獨立思考解決問題為主,教師指導(dǎo)為輔,結(jié)合上機操作,完成指定的任務(wù),作出設(shè)計報告。</p>
9、<p><b> 5.1.2設(shè)計要求</b></p><p> ?。ń⑼ㄓ嶄浶畔?,信息至少包含編號、姓名、年齡、電話、通訊地址、電子郵箱等;</p><p> 能夠提供添加、刪除和修改通訊錄信息的功能;</p><p> 能夠提供安不同方式查詢的功能;如按姓名或年齡、電話等查詢;</p><p> 將
10、通訊錄保存在文件中;</p><p> 能夠按表格方式輸出通訊錄信息。</p><p> 設(shè)計一個實用的通訊錄管理系統(tǒng),能以簡便高效的方式對通訊錄進行管理和檢索。</p><p><b> 5.2設(shè)計思想</b></p><p> 1.在設(shè)計時考慮以下幾個方面:</p><p> 操作簡
11、單。該系統(tǒng)要求設(shè)計的界面美觀,操作方便。便于使用人員快速上手。</p><p> 易于維護。一個軟件的好壞,關(guān)鍵在于產(chǎn)品的可靠,穩(wěn)定,便于維護。</p><p> 易于升級。隨著社會的發(fā)展,對系統(tǒng)的要求會越來越高。要求系統(tǒng)具有更高的安全性;更豐富的功能以及更快的操作速度。所以在設(shè)計時要考慮到到以后的升級問題。</p><p> 實用性。注重采用成熟而實用的技術(shù)
12、,使系統(tǒng)建設(shè)的投入產(chǎn)出比最高,</p><p><b> 能產(chǎn)生良好的反應(yīng)。</b></p><p><b> 2.開發(fā)語言的選擇</b></p><p> 本系統(tǒng)的編譯選擇的是C語言,作為一種計算機程序設(shè)計語言,C語言既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作
13、為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應(yīng)用比如單片機以及嵌入式系統(tǒng)開發(fā)。</p><p> C語言具有簡介緊湊、靈活方便、運算符豐富、數(shù)據(jù)結(jié)構(gòu)豐富、語法限制不太嚴格、程序自由度大、程序執(zhí)行效率高、可移植性好等優(yōu)點。它既能用來編寫不依賴計算機硬件的應(yīng)用程序,又能用來編寫各種系統(tǒng)程序,它是一種受歡迎、應(yīng)用廣泛的程序設(shè)計語言
14、。</p><p> 綜上所述,選擇C語言作為本系統(tǒng)的編譯時非常適合的。</p><p> 5.3系統(tǒng)完成功能及功能框圖</p><p> 添加:可以添加通訊錄記錄,依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱后,會提示是否繼續(xù)添加。</p><p> 顯示:可以以表格形式輸出所有通訊錄里的記錄</p><
15、;p> 刪除:輸入欲刪除的那個人的名字后,會自動刪除他(她)的記錄內(nèi)容</p><p> 查詢:可以選擇用姓名、電話、地址三種方式查詢</p><p> 修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改</p><p> 保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件</p>
16、;<p><b> 5.4界面設(shè)計</b></p><p> 本系統(tǒng)針對,信息查詢和修改做了5個界面,下面舉例說明部分界面得設(shè)計。</p><p> 5.4.1建立一個登錄界面</p><p> 建立一個界面做登錄界面,包括信息錄入和信息查詢</p><p> 5.4.2添加通訊錄信息</p
17、><p> 5.4.3保存記錄界面</p><p> 5.5核心算法及說明</p><p> 1、 運用順序程序設(shè)計結(jié)構(gòu),考查getchar,printf,scanf的知識點,例如:</p><p> printf("請輸入便條的數(shù)量:"); </p><p> scanf("
18、%d",&num);</p><p> 2、 運用循環(huán)設(shè)計結(jié)構(gòu),考查for,if……else循環(huán)的知識點,例如:</p><p> for(j=i;j<n-1;j++)</p><p><b> { </b></p><p> strcpy(per[j].num,per[j+1].n
19、um); </p><p> strcpy(per[j].name,per[j+1].name); </p><p> strcpy(per[j].age,per[j+1].age);</p><p> strcpy(per[j].adds,per[j+1].adds);</p><p> strcpy(per[j].email,pe
20、r[j+1].email);</p><p> per[j].score=per[j+1].score; </p><p><b> } </b></p><p><b> 運用數(shù)組知識,</b></p><p><b> 運用函數(shù)知識,</b></p>
21、<p> 運用指針,文件,結(jié)構(gòu)體等知識點。</p><p><b> 核心代碼</b></p><p><b> 通訊錄:</b></p><p> typedef struct </p><p><b> { </b></p><p&g
22、t; char score; /*編號*/</p><p> char name[10]; /*姓名*/ </p><p> char num[15]; /*號碼*/ </p><p> char email[20];/*郵箱*/</p><p> char
23、 age[8];/*年齡*/</p><p> char adds[20];/*住址*/</p><p><b> }Person;</b></p><p> void main() /*主函數(shù)*/ </p><p>&
24、lt;b> { </b></p><p><b> int n=0; </b></p><p><b> for(;;) </b></p><p><b> { </b></p><p> switch(menu_select()) </p&g
25、t;<p><b> { </b></p><p><b> case 1: </b></p><p> printf("\n\t添加記錄到通訊錄\n"); /*添加記錄*/ </p><p> n=Input(pe,n); <
26、/p><p><b> break; </b></p><p><b> case 2: </b></p><p> printf("\n\t\t\t 通訊錄記錄表\n"); /*顯示記錄*/ </p><p> Display
27、(pe,n); </p><p><b> break;</b></p><p><b> case 3: </b></p><p> printf("\n\t從通訊錄中刪除記錄\n"); </p><p> n=Delete_a_record(pe,n);
28、 /*刪除記錄*/ </p><p> printf("\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 4: </b></p>
29、<p> printf("\n\t在通訊錄中查找記錄\n"); </p><p> Query_a_record(pe,n); /*查找記錄*/ </p><p> printf("\t"); </p><p> system("pause"); </p>
30、<p><b> break;</b></p><p><b> case 5: </b></p><p> printf("\n\t修改通訊錄中的記錄\n"); </p><p> Change(pe,n); /*修改數(shù)據(jù)*/ </p><
31、p> printf("\t"); </p><p> system("pause"); </p><p><b> break; </b></p><p><b> case 6: </b></p><p> printf("\n\t
32、保存功能\n"); </p><p> WritetoText(pe,n); /*保存數(shù)據(jù)*/ </p><p> printf("\t"); </p><p> system("pause"); </p><p><b> break; </
33、b></p><p><b> case 0: </b></p><p> printf("\n\t\t謝謝使用,再見!\n"); /*結(jié)束程序*/ </p><p> printf("\n\t\t"); </p><p>
34、; system("pause"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p><b> } </b></p><p><b> }</b></p&g
35、t;<p><b> 5.6結(jié)論</b></p><p> 現(xiàn)在社會人與人之間的交往越來越頻繁,通訊錄成為生活的必須品,對通訊錄進行必要的管理,對通訊錄中的人進行快速查詢記錄提供了極大方便</p><p> 在以往學(xué)習(xí)的知識、參考課外資料和尋求老師的幫助下終于完成了一個簡單的軟件。這個軟件功能非常簡單,因而我想,在實際運用中,還有些不足。因為知識和
36、能力的不足,我們還無法做出滿足實際需求的優(yōu)秀軟件,許多功能還欠缺和不完善,如無法實現(xiàn)快速查詢。</p><p> 由于我的知識淺薄,經(jīng)驗不足及閱歷頗淺,因此,在該系統(tǒng)的設(shè)計方面還有很多不足,比如功能過少,界面不醒目等問題,我會在學(xué)習(xí)的使用過程中,根據(jù)學(xué)習(xí)的具體要求不斷的修改、完善,爭取使系統(tǒng)慢慢趨于完美。在具體操作中對這學(xué)期所學(xué)的C語言的理論知識得到鞏固,達到實訓(xùn)的基本目的,也發(fā)現(xiàn)自己的不足之出,在以后的上機中
37、應(yīng)更加注意,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點。發(fā)現(xiàn)上機實訓(xùn)的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解。 </p><p><b> 6.后記</b></p><p> 這次實踐中我們學(xué)習(xí)到了以前在課本上無法理解和沒有見到過的知識,提高自身的知識面和實踐能力,收獲頗豐。</p><p> 因為我剛接觸編程不久,對
38、于數(shù)據(jù)結(jié)構(gòu)、軟件工程這些專業(yè)名詞知之甚少;甚至對于編程應(yīng)該如何開始都感覺茫然,不知該從哪里下手。但是我知道編寫程序不能急于求成,必須循序漸進。首先在動手以前,必須理解用戶對于程序的要求,從而明確所要編寫程序的功能,倘若不知道所要編的程序目的何在,那么編程時就會失去目標,程序自然編不好,也就是說要先進行“可行性分析”。然后,要明確編程思想,即在編程之前要對程序有一個總體的構(gòu)思、總體的框架;這樣編程時才能條理清晰,不致出現(xiàn)程序結(jié)構(gòu)混亂這樣的
39、大錯誤。完成了總體設(shè)計之后,再進行詳細設(shè)計、模塊設(shè)計,這樣編程時才能心中有數(shù)。我是通過把一些主要的函數(shù)、算法用筆先寫出來,這樣做是為了在真正編寫程序的時候不至于忙東忙西,把思路打斷。否則要是在上機時才進行構(gòu)思,往往只有看著屏幕發(fā)呆的份。設(shè)計大體完工之后,就可以敲上屏幕了。</p><p> 在我們的辛勤努力下,終于做出一個簡單的軟件,雖然這個軟件功能非常簡單,而且有很多不足,離實際應(yīng)用還有很大的距離,但是我們在
40、發(fā)現(xiàn)問題的過程中不斷去完善自己制作的軟件,力求把它作到趨于完美。</p><p> 在我們制作程序的過程中,老師和同學(xué)們都給與了我們很大的幫助,幫助我們查閱資料尋找知識點,指出我們的軟件的錯誤和不足,在我們遇到困難時給我們鼓勵和幫助,在這里,我向這些無私幫助我的人表示由衷的謝意。</p><p><b> 7、參考文獻:</b></p><p&
41、gt; 1.《c語言成語設(shè)計教程》</p><p> 2.王萍. C++面向?qū)ο蟪绦蛟O(shè)計. 北京:清華大學(xué)出版社,2002 </p><p> 3.譚浩強. C程序設(shè)計(第二版). 北京:清華大學(xué)出版社,1999 </p><p><b> 8、附錄</b></p><p> #include <stdi
42、o.h></p><p> #include <string.h></p><p> #include <malloc.h></p><p> #include <windows.h></p><p> int n=0;//定義全局變量 存儲電話聯(lián)系人個數(shù)</p><p&
43、gt; struct phone_info//定義結(jié)構(gòu)體 存儲聯(lián)系人信息</p><p><b> {</b></p><p> char name[20];//姓名</p><p> char phone[20];//電話</p><p> char type;//分類</p><
44、;p> char email[20];//郵箱</p><p> struct phone_info *next;//指向下一個節(jié)點的指針</p><p><b> };</b></p><p> /*-----錯誤函數(shù)-----*/</p><p><b> //所需參數(shù):無</b&
45、gt;</p><p> //函數(shù)功能:顯示錯誤信息</p><p><b> //返回參數(shù):無</b></p><p> void error()</p><p><b> {</b></p><p> printf("代碼錯誤\n\n");&
46、lt;/p><p> system( "pause ");</p><p><b> }</b></p><p> /*-----輸出函數(shù)-----*/</p><p> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:輸出鏈表中的聯(lián)系人信息</p>
47、<p><b> //返回參數(shù):無</b></p><p> void output(struct phone_info *head)</p><p><b> {</b></p><p> struct phone_info *p1=head,*p2;</p><p> s
48、ystem("cls");//清屏</p><p> if(head==NULL)//如果當(dāng)前鏈表頭指針為空</p><p><b> {</b></p><p> printf("當(dāng)前沒有任何聯(lián)系人信息\n\n");</p><p> system( "pa
49、use "); </p><p> return;//返回</p><p><b> }</b></p><p> printf("電話聯(lián)系薄(共%d條信息)\n\n",n);</p><p><b> for(;;)</b></p><p
50、><b> {</b></p><p> p2=p1->next;</p><p> printf("姓名:%s\n",p1->name);</p><p> printf("電話:%s\n",p1->phone);</p><p> if(p1-
51、>type=='A'||p1->type=='a')</p><p> printf("類別:辦公類\n");</p><p> else if(p1->type=='B'||p1->type=='b')</p><p> printf("類別
52、:個人類\n");</p><p><b> else</b></p><p> printf("類別:商務(wù)類\n");</p><p> printf("郵箱:%s\n",p1->email);</p><p> printf("\n"
53、);</p><p> if(p1->next==NULL)//如果當(dāng)前指針所指向的結(jié)構(gòu)體中next指向空則鏈表輸出完畢</p><p> break;//返回</p><p><b> p1=p2;</b></p><p><b> }</b></p><p&
54、gt;<b> }</b></p><p> /*-----新增函數(shù)-----*/</p><p> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:新增聯(lián)系人信息 并自動添加到鏈表末尾</p><p> //返回參數(shù):鏈表頭指針</p><p> struct phone
55、_info *new_info(struct phone_info *head)//新增</p><p><b> {</b></p><p> struct phone_info *p1,*p2,*p;</p><p><b> char c;</b></p><p><b>
56、int flag;</b></p><p> system("cls");//清屏</p><p><b> for(;;)</b></p><p><b> {</b></p><p> if(n==15)//判斷當(dāng)前聯(lián)系人數(shù)目是否超過系統(tǒng)限制</
57、p><p><b> {</b></p><p> printf("存儲空間已滿,不能再錄入新數(shù)據(jù)!\n\n");</p><p> system( "pause");</p><p> return head;</p><p><b> }
58、</b></p><p> if(n==0)//判斷當(dāng)前聯(lián)系人數(shù)目是否為0</p><p><b> {</b></p><p> head=p1=p2=(struct phone_info *)malloc(sizeof(struct phone_info));//新建結(jié)構(gòu)體 并將結(jié)構(gòu)體指針賦予鏈表頭指針</p&g
59、t;<p> p1->next=NULL;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> p1=head;</b></p
60、><p> p2=(struct phone_info *)malloc(sizeof(struct phone_info));//新建結(jié)構(gòu)體</p><p><b> }</b></p><p> printf("請輸入要新增的聯(lián)系人姓名:\n(如果輸入“0”則停止新增,并返回主菜單)\n");</p>
61、<p> scanf("%s",p2->name);</p><p> if(strcmp(p2->name,"0")==0)//判斷輸入的姓名是否為“0”</p><p><b> {</b></p><p> free(p2);//為“0”則釋放新開辟的空間</
62、p><p> return head;//返回</p><p><b> }</b></p><p> printf("\n請輸入聯(lián)系人的電話號碼:\n");</p><p> scanf("%s",p2->phone);</p><p> f
63、or(flag=1,p=head;n!=0&&p!=NULL;)//判斷是否輸入了相同的聯(lián)系人電話</p><p><b> {</b></p><p> if(strcmp(p2->phone,p->phone)==0)</p><p><b> {</b></p>&l
64、t;p> printf("\n錄入了相同的聯(lián)系人電話\n\n");</p><p> system( "pause ");</p><p> flag=0;//標志位賦“0”</p><p><b> free(p2);</b></p><p> system(&
65、quot;cls");</p><p> break;//退出循環(huán)</p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p> if(flag==0)//判斷標志位是否為“
66、0”</p><p> continue;//如果為“0”則進入下一次循環(huán)</p><p> printf("\n請輸入聯(lián)系人的類別:\n(\"A\"為辦公類 \"B\"為個人類 \"C\"為商務(wù)類)\n");</p><p> scanf("%c",&
67、;c);//保存上一次輸入的回車鍵</p><p> scanf("%c",&p2->type);</p><p> printf("\n請輸入聯(lián)系人的電子郵箱:\n");</p><p> scanf("%s",p2->email);</p><p>
68、 while(p1->next!=NULL)</p><p> p1=p1->next;//找到鏈表的尾部</p><p> p1->next=p2;//將鏈表的尾部指向新添加的聯(lián)系人</p><p> p2->next=NULL;//新的鏈表尾部賦結(jié)束標記</p><p> system("
69、cls");</p><p> printf("新增成功\n\n");</p><p> n++;//保存的聯(lián)系人數(shù)目加1</p><p><b> }</b></p><p> return head;</p><p><b> }</
70、b></p><p> /*-----刪除函數(shù)-----*/</p><p> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:在鏈表中刪除指定的聯(lián)系人信息</p><p> //返回參數(shù):鏈表頭指針</p><p> struct phone_info *del(struct phone_i
71、nfo *head)</p><p><b> {</b></p><p> struct phone_info *p1=head,*p2;</p><p> char name[20];</p><p> system("cls");</p><p><b>
72、; for(;;)</b></p><p><b> {</b></p><p> if(n==0)//判斷當(dāng)前聯(lián)系人數(shù)目是否為0</p><p><b> {</b></p><p> printf("當(dāng)前沒有任何聯(lián)系人信息\n\n");</p&
73、gt;<p> system("pause");</p><p> return head;//返回</p><p><b> }</b></p><p> output(head);//調(diào)用輸出函數(shù) 顯示當(dāng)前所有聯(lián)系人的信息</p><p> printf("請
74、輸入要刪除的聯(lián)系人的姓名:\n(如果輸入“0”則停止刪除,并返回主菜單)\n");</p><p> scanf("%s",name);</p><p> if(strcmp(name,"0")==0)//判斷輸入的姓名是否為0</p><p> return head;//返回</p>&l
75、t;p><b> else</b></p><p> if(strcmp(name,head->name)==0)//找到指定的聯(lián)系人所在節(jié)點</p><p> {</p><p> if(head->next==NULL)//判斷指定的聯(lián)系人是否為鏈表中唯一的聯(lián)系人信息</p>
76、<p><b> {</b></p><p> printf("\n刪除成功\n\n");</p><p> printf("當(dāng)前沒有任何學(xué)生信息\n\n");</p><p> system("pause");</p><p> free(
77、head);//釋放頭節(jié)點</p><p> n--;//保存的聯(lián)系人數(shù)目減1</p><p> return NULL;//返回空指針</p><p><b> }</b></p><p> head=p1->next;//指定的聯(lián)系人為鏈表的頭節(jié)點 將下一節(jié)點的地址賦予鏈表頭指針</p&g
78、t;<p> free(p1);//釋放頭節(jié)點</p><p> printf("刪除成功\n\n");</p><p> system("pause");</p><p><b> n--;</b></p><p><b> }</b&g
79、t;</p><p> else//指定的聯(lián)系人不是鏈表的頭節(jié)點</p><p><b> {</b></p><p> p1=p2=head;</p><p> for(;;)//找到指定的聯(lián)系人所在節(jié)點</p><p><b> {</b></p>
80、;<p> if(strcmp(name,p1->name)==0)</p><p><b> {</b></p><p> p2->next=p1->next;</p><p> free(p1);//釋放節(jié)點</p><p> printf("刪除成功\n\n&
81、quot;);</p><p> system("pause");</p><p> n--;//保存的聯(lián)系人數(shù)目減1</p><p> system("cls");//清屏</p><p> break;//退出循環(huán)</p><p><b> }
82、</b></p><p><b> p2=p1;</b></p><p> p1=p1->next;//指向下一節(jié)點</p><p> if(p1==NULL)//節(jié)點為空</p><p><b> {</b></p><p> print
83、f("\n姓名為%s的聯(lián)系人不存在!\n\n",name);</p><p> system("pause");</p><p> system("cls");//清屏</p><p> break;//退出循環(huán)</p><p><b> }</b>
84、</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> return head;//返回</p><p><b> }</b><
85、/p><p> /*-----音樂函數(shù)-----*/</p><p> //所需參數(shù):存儲數(shù)字的字符串指針</p><p> //函數(shù)功能:依次顯示字符串里存儲的數(shù)字并放出指定聲音</p><p><b> //返回參數(shù):無</b></p><p> void music(char *p)&
86、lt;/p><p><b> {</b></p><p> int freq[]={300,400,523,587,659,698,784,880,988,1046};//定義音頻數(shù)組</p><p><b> int i;</b></p><p> printf("\n"
87、);</p><p> for(i=0;*(p+i)!='\0';i++)</p><p><b> {</b></p><p> printf("%c",*(p+i));//顯示數(shù)字</p><p> Beep(freq[*(p+i)-48],500);//調(diào)用揚聲器發(fā)出
88、指定頻率的聲響</p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p> /*-----撥號函數(shù)-----*/</p><p> //所需參數(shù):鏈表頭指針</
89、p><p> //函數(shù)功能:在鏈表中查找指定的聯(lián)系人 并模擬撥號效果</p><p><b> //返回參數(shù):無</b></p><p> void diag(struct phone_info *head)</p><p><b> {</b></p><p> ch
90、ar name[20];</p><p> struct phone_info *p1;</p><p> system("cls");</p><p><b> for(;;)</b></p><p><b> {</b></p><p>
91、 if(n==0)//判斷當(dāng)前聯(lián)系人數(shù)目是否為0</p><p><b> {</b></p><p> printf("當(dāng)前沒有任何聯(lián)系人信息\n\n");</p><p> system("pause");</p><p><b> return;</
92、b></p><p><b> }</b></p><p> system("cls");</p><p> output(head);//調(diào)用輸出函數(shù) 顯示當(dāng)前所有聯(lián)系人的信息</p><p> printf("請輸入要撥號的聯(lián)系人姓名:\n(如果輸入“0”則停止撥號,并返
93、回主菜單)\n");</p><p> scanf("%s",name);</p><p> if(strcmp(name,"0")==0)//判斷輸入的姓名是否為0</p><p> return;//返回</p><p><b> else</b><
94、;/p><p><b> {</b></p><p><b> p1=head;</b></p><p><b> for(;;)</b></p><p><b> {</b></p><p> if(strcmp(name,
95、p1->name)==0)//找到指定聯(lián)系人所在節(jié)點</p><p><b> {</b></p><p> music(p1->phone);</p><p> printf("\n撥號成功\n\n");</p><p> system("pause");&
96、lt;/p><p><b> break;</b></p><p><b> }</b></p><p> p1=p1->next;//找到下一節(jié)點</p><p> if(p1==NULL)//指針為空</p><p><b> {&
97、lt;/b></p><p> printf("\n姓名為%s的聯(lián)系人不存在!\n\n",name);</p><p> system("pause");</p><p><b> break;</b></p><p><b> }</b><
98、;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*-----修改函數(shù)-----*/</p>
99、<p> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:在鏈表中修改指定聯(lián)系人的信息</p><p><b> //返回參數(shù):無</b></p><p> void revise(struct phone_info *head)</p><p><b> {</b>
100、;</p><p><b> int flag;</b></p><p><b> int a;</b></p><p><b> char c;</b></p><p> char name[20];</p><p> struct phon
101、e_info *p1;</p><p> system("cls");</p><p><b> for(;;)</b></p><p><b> {</b></p><p> if(n==0)//判斷當(dāng)前聯(lián)系人數(shù)目是否為0</p><p>&
102、lt;b> {</b></p><p> printf("當(dāng)前沒有任何聯(lián)系人信息\n\n");</p><p> system("pause");</p><p><b> return;</b></p><p><b> }</b>
103、;</p><p> output(head);//調(diào)用輸出函數(shù) 顯示當(dāng)前所有聯(lián)系人的信息</p><p> printf("請輸入要修改的聯(lián)系人姓名:\n(如果輸入“0”則停止修改,并返回主菜單)\n");</p><p> scanf("%s",name);</p><p> if(str
104、cmp(name,"0")==0)//判斷輸入的姓名是否為0</p><p> return;//返回</p><p><b> else</b></p><p><b> {</b></p><p><b> p1=head;</b></
105、p><p><b> for(;;)</b></p><p><b> {</b></p><p> if(strcmp(name,p1->name)==0)//找到指定聯(lián)系人所在節(jié)點</p><p><b> {</b></p><p>
106、 system("cls");</p><p> for(a=0;;)</p><p><b> {</b></p><p> system("cls");</p><p><b> if(a!=0)</b></p><p>
107、 printf("修改成功\n\n");</p><p> printf("姓名為%s的聯(lián)系人信息如下\n",p1->name);</p><p> printf("電話:%s\n",p1->phone);</p><p> if(p1->type=='A'||p1-
108、>type=='a')</p><p> printf("類別:辦公類\n");</p><p> else if(p1->type=='B'||p1->type=='b')</p><p> printf("類別:個人類\n");</p>
109、<p><b> else</b></p><p> printf("類別:商務(wù)類\n");</p><p> printf("郵箱:%s\n",p1->email);</p><p> printf("\n");</p><p> p
110、rintf("1.修改姓名\n");</p><p> printf("2.修改電話\n");</p><p> printf("3.修改類別\n");</p><p> printf("4.修改郵箱\n");</p><p> printf("
111、0.返回\n");</p><p> printf("\n請輸入操作步驟代碼:\n");</p><p> scanf("%d",&flag);</p><p> printf("\n");</p><p> switch(flag)</p>
112、<p><b> {</b></p><p><b> case 1:</b></p><p> printf("請輸入新的姓名:\n");</p><p> scanf("%s",p1->name);</p><p><b>
113、; break;</b></p><p><b> case 2:</b></p><p> printf("請輸入新的電話:\n");</p><p> scanf("%s",p1->phone);</p><p><b> break;&l
114、t;/b></p><p><b> case 3:</b></p><p> printf("請輸入新的類別:\n(\"A\"為辦公類 \"B\"為個人類 \"C\"為商務(wù)類)\n");</p><p> scanf("%c",&a
115、mp;c);//保存上一次輸入的回車</p><p> scanf("%c",&p1->type);</p><p><b> break;</b></p><p><b> case 4:</b></p><p> printf("請輸入新的郵
116、箱:\n");</p><p> scanf("%s",p1->email);</p><p><b> break;</b></p><p><b> case 0:</b></p><p><b> break;</b></
117、p><p><b> default:</b></p><p><b> error();</b></p><p><b> }</b></p><p><b> a=1;</b></p><p> if(flag==0)&l
118、t;/p><p><b> break;</b></p><p><b> }</b></p><p> if(flag==0)</p><p><b> {</b></p><p> system("cls");</p&
119、gt;<p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b><
120、/p><p> p1=p1->next;//找到下一個節(jié)點</p><p> if(p1==NULL)//指針為空</p><p><b> {</b></p><p> printf("\n姓名為%s的聯(lián)系人不存在!\n\n",name);</p><p>
121、system("pause");</p><p> system("cls");</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>
122、<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*-----釋放函數(shù)-----*/</p><p
123、> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:釋放鏈表存儲空間的內(nèi)容</p><p><b> //返回參數(shù):無</b></p><p> void freelist(struct phone_info *head)</p><p><b> {</b></p&
124、gt;<p> struct phone_info *p1=head,*p2;</p><p><b> for(;;)</b></p><p><b> {</b></p><p> if(p1->next==NULL)</p><p><b> {<
125、;/b></p><p><b> free(p1);</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><
126、b> {</b></p><p> p2=p1->next;</p><p><b> free(p1);</b></p><p><b> p1=p2;</b></p><p><b> }</b></p><p>&
127、lt;b> }</b></p><p><b> }</b></p><p> /*-----查看函數(shù)-----*/</p><p> //所需參數(shù):鏈表頭指針</p><p> //函數(shù)功能:顯示指定類別的聯(lián)系人信息</p><p><b> //返回參數(shù)
128、:無</b></p><p> void look(struct phone_info *head)</p><p><b> {</b></p><p> struct phone_info *p;</p><p><b> int c;</b></p><
129、p><b> int flag;</b></p><p> char type;</p><p> system("cls");</p><p> if(n==0)//判斷當(dāng)前聯(lián)系人數(shù)目是否為0</p><p><b> {</b></p><
130、;p> printf("當(dāng)前沒有任何聯(lián)系人信息\n\n");</p><p> system("pause");</p><p> return;//返回</p><p><b> }</b></p><p><b> for(;;)</b>
131、</p><p><b> {</b></p><p> system("cls");</p><p> printf("1.查看辦公類聯(lián)系人\n");</p><p> printf("2.查看個人類聯(lián)系人\n");</p><p&
132、gt; printf("3.查看商務(wù)類聯(lián)系人\n");</p><p> printf("0.返回\n");</p><p> printf("\n請輸入操作步驟的代碼:");</p><p> scanf("%d",&c);</p><p>&l
133、t;b> switch(c)</b></p><p><b> {</b></p><p> case 1:type='a';break;</p><p> case 2:type='b';break;</p><p> case 3:type='c
134、39;;break;</p><p> case 0:return;</p><p> default:error();</p><p><b> }</b></p><p> flag=0;//標志位賦予0</p><p><b> p=head;</b><
135、;/p><p> while(p!=NULL)</p><p><b> {</b></p><p> if(p->type==type||p->type==type-32)</p><p><b> {</b></p><p> if(flag==0)&l
136、t;/p><p><b> {</b></p><p> system("cls");</p><p> if(type=='a')</p><p> printf("--辦公類聯(lián)系人--\n\n");</p><p> else if
137、(type=='b')</p><p> printf("--個人類聯(lián)系人--\n\n");</p><p><b> else</b></p><p> printf("--商務(wù)類聯(lián)系人--\n\n");</p><p><b> }</b
138、></p><p><b> flag=1;</b></p><p> printf("姓名:%s\n",p->name);</p><p> printf("電話:%s\n",p->phone);</p><p> printf("郵箱:%s\
139、n",p->email);</p><p> printf("\n");</p><p><b> }</b></p><p> p=p->next;//找到下一節(jié)點</p><p><b> }</b></p><p&g
140、t; if(flag==0)</p><p> if(type=='a')</p><p> printf("\n當(dāng)前沒有辦公類聯(lián)系人信息\n\n");</p><p> else if(type=='b')</p><p> printf("\n當(dāng)前沒有個人類聯(lián)系人信息
141、\n\n");</p><p><b> else</b></p><p> printf("\n當(dāng)前沒有商務(wù)類聯(lián)系人信息\n\n");</p><p> system("pause");</p><p><b> }</b></p&g
142、t;<p><b> }</b></p><p> /*-----主函數(shù)-----*/</p><p> void main()</p><p><b> {</b></p><p> struct phone_info *head=NULL;</p><
143、p><b> int n;</b></p><p><b> for(;;)</b></p><p><b> {</b></p><p> system("cls");</p><p> printf("---手機通信錄管理系統(tǒng)-
144、--\n\n");</p><p> printf("1.新增聯(lián)系人\n");</p><p> printf("2.撥號聯(lián)系人\n");</p><p> printf("3.刪除聯(lián)系人\n");</p><p> printf("4.修改聯(lián)系人\n&q
145、uot;);</p><p> printf("5.查看聯(lián)系人\n");</p><p> printf("0.退出\n");</p><p> printf("\n請輸入操作步驟的代碼:");</p><p> scanf("%d",&n);&l
146、t;/p><p> printf("\n");</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: head=new_info(head);break;</p><p> ca
147、se 2: diag(head);break;</p><p> case 3: head=del(head);break;</p><p> case 4: revise(head);break;</p><p> case 5: look(head);break;</p><p> case 0: if(head!=NULL)&l
148、t;/p><p> freelist(head);</p><p><b> break;</b></p><p> default :error();break;</p><p><b> }</b></p><p><b> if(n==0)</b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機通信錄管理系統(tǒng)課程設(shè)計
- c課程設(shè)計---通信錄管理系統(tǒng)
- 個人通信錄管理系統(tǒng)課程設(shè)計
- 課程設(shè)計--手機通信錄管理系統(tǒng)
- 手機通信錄管理系統(tǒng)課程設(shè)計2
- 班級通信錄管理系統(tǒng)(匯編課程設(shè)計)
- c語言課程設(shè)計--通信錄管理
- c語言課程設(shè)計--學(xué)生通信錄設(shè)計
- c++課程設(shè)計--通信錄管理程序
- 課程設(shè)計論文---基于c++ 的通信錄管理系統(tǒng)
- 【課程設(shè)計論文】基于c++ 的通信錄管理系統(tǒng)
- c++課程設(shè)計(凌世林組)通信錄管理程序
- c++通信錄設(shè)計
- 校友錄管理系統(tǒng)課程設(shè)計
- 個性通信錄畢業(yè)論文
- 班級通信錄管理系統(tǒng)的方案與實現(xiàn)匯編語言課程實習(xí)報告
- 通信系統(tǒng)課程設(shè)計
- 通信系統(tǒng)課程設(shè)計
- java課程設(shè)計--個人備忘錄管理系統(tǒng)
- 通信課程設(shè)計---pcm通信系統(tǒng)設(shè)計
評論
0/150
提交評論