當前位置首頁 > 計算機 > 通信/網(wǎng)絡
搜柄,搜必應! 快速導航 | 使用教程

[畢業(yè)設計精品]手機通信錄管理系統(tǒng)的設計

文檔格式:DOC| 32 頁|大小 295.12KB|積分 15|2025-03-16 發(fā)布|文檔ID:253590657
第1頁
第2頁
第3頁
下載文檔到電腦,查找使用更方便 還剩頁未讀,繼續(xù)閱讀>>
1 / 32
此文檔下載收益歸作者所有 下載文檔
  • 版權(quán)提示
  • 文本預覽
  • 常見問題
  • 學生課程設計(論文)題 目: 通信錄管理系統(tǒng)的設計 學生姓名: 學 號:所在院(系): 計算機學院 專 業(yè): 網(wǎng)絡工程 班 級: 09級網(wǎng)絡工程(1)班 指導教師: 職稱: 講 師 2010年6月 25日學生處監(jiān)制本科學生課程設計任務書題 目手機通信錄管理系統(tǒng)的設計1、課程設計的目的本課程設計的目的和任務:(1)鞏固和加深學生對C語言課程的基本知識的理解和掌握;(2)掌握C語言編程和程序調(diào)試的基本技能;(3)利用C語言進行簡單軟件設計的基本思路和方法;(4)提高運用C語言解決實際問題的能力2、課程設計的內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)要求、工作要求等)用C語言設計出模擬手機通信錄管理系統(tǒng),實現(xiàn)對手機中的通信錄進行管理一)功能要求: (1)查看功能:選擇此功能時,列出下列三類選擇A 辦公類 B 個人類 C 商務類 ,當選中某類時,顯示出此類所有數(shù)據(jù)中的姓名和電話號碼) (2)增加功能:能錄入新數(shù)據(jù)(一個結(jié)點包括:姓名、電話號碼、分類(可選項有:A 辦公類 B 個人類 C 商務類)、電子郵件)。

    例如楊春 13589664454 商務類 chuny@當錄入了重復的姓名和電話號碼時,則提示數(shù)據(jù)錄入重復并取消錄入;當通信錄中超過15條信息時,存儲空間已滿,不能再錄入新數(shù)據(jù);錄入的新數(shù)據(jù)能按遞增的順序自動進行條目編號 (3)拔號功能:能顯示出通信錄中所有人的姓名,當選中某個姓名時,屏幕上模擬打字機的效果依次顯示出此人的電話號碼中的各個數(shù)字,并伴隨相應的拔號聲音 (4)修改功能:選中某個人的姓名時,可對此人的相應數(shù)據(jù)進行修改 (5)刪除功能:選中某個人的姓名時,可對此人的相應數(shù)據(jù)進行刪除,并自動調(diào)整后續(xù)條目的編號二)其它要求:(1) 只能使用C/C++語言,源程序要有適當?shù)淖⑨?,使程序容易閱讀(2) 至少采用文本菜單界面(如果能采用圖形菜單界面更好)(3) 建議使用結(jié)構(gòu)和鏈表等數(shù)據(jù)結(jié)構(gòu)(4) 學生可自動增加新功能模塊(視情況可另外加分)(5)寫出課程設計報告,具體要求見相關(guān)說明文檔3、主要參考文獻[1]譚浩強,《C程序設計》,清華大學出版社[2]劉振安,孫忱,劉燕君,《C程序設計課程設計》,機械工業(yè)出版社[3]汪詩林,《數(shù)據(jù)結(jié)構(gòu)算法與應用》,機械工業(yè)出版社4、課程設計工作進度計劃課程設計時間為一周,分四個階段完成:1. 分析設計階段。

    引導學生自主學習和鉆研問題,明確設計要求,找出實現(xiàn)方法,按照需求分析、總體設計、詳細設計這幾個步驟進行這一階段前第1天完成2. 編碼調(diào)試階段:根據(jù)設計分析方案編寫C語言代碼,然后調(diào)試該代碼,實現(xiàn)課題要求的功能這一階段在第2-3天完成3. 總結(jié)報告階段:總結(jié)設計工作,寫出課程設計說明書,要求學生寫出需求分析、總體設計、詳細設計、編碼、測試的步驟和內(nèi)容這一階段在第4天完成4. 考核階段這一階段在第5天完成指導教師(簽字)日期年 月 日教研室意見:年 月 日學生(簽字): 明安坤接受任務時間: 年 月 日課程設計(論文)指導教師成績評定表題目名稱手機通信錄管理系統(tǒng)的設計評分項目分值得分評價內(nèi)涵工作表現(xiàn)20%01學習態(tài)度6遵守各項紀律,工作刻苦努力,具有良好的科學工作態(tài)度02科學實踐、調(diào)研7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設計有關(guān)的材料03課題工作量7按期圓滿完成規(guī)定的任務,工作量飽滿能力水平35%04綜合運用知識的能力10能運用所學知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結(jié)論05應用文獻的能力5能獨立查閱相關(guān)文獻和從事其他調(diào)研;能提出并較好地論述課題的實施方案;有收集、加工各種信息及獲取新知識的能力。

    06設計(實驗)能力,方案的設計能力5能正確設計實驗方案,獨立進行裝置安裝、調(diào)試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整07計算及計算機應用能力5具有較強的數(shù)據(jù)運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設計等08對計算或?qū)嶒灲Y(jié)果的分析能力(綜合分析能力、技術(shù)經(jīng)濟分析能力)10具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力成果質(zhì)量45%09插圖(或圖紙)質(zhì)量、篇幅、設計(論文)規(guī)范化程度5符合本專業(yè)相關(guān)規(guī)范或規(guī)定要求;規(guī)范化符合本文件第五條要求10設計說明書(論文)質(zhì)量30綜述簡練完整,有見解;立論正確,論述充分,結(jié)論嚴謹合理;實驗正確,分析處理科學11創(chuàng)新10對前人工作有改進或突破,或有獨特見解成績指導教師評語指導教師簽名: 年 月 日本科課程設計(論文) 摘要 摘 要手機作為現(xiàn)代生活通訊工具,已經(jīng)與我們的生活、學習、工作密不可分,我們不可能隨時帶上電話本和筆,記錄我們所打電話和所接電話,只要我們手指動幾下,一個新的號碼就可以儲存在電話里面,不需要筆和紙,隨時可以用。

    究竟是什么賦予手機這種功能呢,原來是設計人員在手機里面裝好了“手機通訊錄管理系統(tǒng)”作為計算機專業(yè)的我們,這樣的系統(tǒng)在學習過C語言后完全能夠編寫出來的,利用C語言相關(guān)知識,實現(xiàn)程序設計,控制關(guān)鍵詞: 管理系統(tǒng),switch,遞歸調(diào)用,程序- 25 -本科課程設計(論文) 目錄 目 錄摘 要 I目 錄 II1 緒論 - 1 -1.1課程設計背景 - 1 -1.2課程設計思路 - 1 -2 概要設計 - 2 -2.1 模塊設計 - 2 -2.2 詳細設計 - 3 -2.2.1 信息結(jié)構(gòu)體說明 - 3 -2.2.2 函數(shù)說明 - 4 -2.2.4 詳細設計 - 5 -3 調(diào)試報告 - 7 -3.1 運行中問題及解決 - 7 -4.1 顯示信息 - 11 -4.2 刪除信息 - 11 -4.3 添加信息 - 11 -4.4修改信息 - 11 -4.5撥號功能 - 11 -4.6保存操作并退出系統(tǒng) - 11 -5 設計體會 - 12 -參考文獻 - 13 -附錄:源代碼 - 14 -本科課程設計(論文) 緒論 1 緒論1.1課程設計背景生活中我們經(jīng)常遇見這種問題,就是在外面做事的時候人家有時候會給我們說聯(lián)系號碼,通常情況下我們是拿出手機直接輸入手機,這就為我們節(jié)約了時間,紙張,我們也不必為寫在紙條上的號碼的丟失而感到懊惱。

    雖然說我們的激勵力不錯,但是隨著聯(lián)系人的增加,我們機會是不可能的記住所有聯(lián)系人的號碼,所以,這就得靠手機通訊錄了1.2課程設計思路做通訊錄最主要的就是實用性,要簡單,便于操作程序的界面要方便與用戶之間的交互并結(jié)合實際中遇到的問題,如加入一個信息,修改一個信息,或是刪除一個信息,這些基本的方面一定要考慮到這就大致的確定了程序的幾個模塊然后對每個模塊進行設計,在整合起來,那么一個完善的通訊錄就可以建立起來了本科課程設計(論文) 概要設計 2 概要設計2.1 模塊設計所謂通訊錄,就是對聯(lián)系人的信息進行輸入,修改,刪除,查找等功能,我們按照其功能劃分為幾個模塊,在程序開始后,可以自行選擇,到進入到所需要進入的功能中,所以我們就得設計幾個模塊,以實現(xiàn)不同功能具體的模塊關(guān)系如表2-1:表2-1 基本模塊表模塊輸入刪除保存查找插入排序?qū)崿F(xiàn)功能填入信息去掉信息保存信息具體定位添加信息方便查找程序總體設計 圖1 程序的總體流程圖 圖2:程序所有功能每一個功能都編寫一個函數(shù),多個功能函數(shù)都要用到的子模塊單獨編寫函數(shù),供各個實現(xiàn)功能的函數(shù)調(diào)用。

    在主函數(shù)中設置歡迎界面和菜單處理函數(shù),通過菜單處理函數(shù)調(diào)用各子函數(shù)處理模塊,從而實現(xiàn)整個通訊錄管理系統(tǒng)的功能因為各個函數(shù)之間是并列關(guān)系,所以可以通過switch函數(shù)實現(xiàn)各個功能函數(shù)的調(diào)用2.2 詳細設計2.2.1 信息結(jié)構(gòu)體說明 圖3:信息結(jié)構(gòu)體說明2.2.2 函數(shù)說明2.2.3 主要函數(shù)、結(jié)構(gòu)體和鏈表void creat();/*將文件的信息讀入結(jié)構(gòu)體數(shù)組在轉(zhuǎn)存入鏈表中*/void ShowA();void ShowB();void ShowC();void ShowD();void Show();void Delete();void Input();void Alter();void Dial();void Save();struct persons /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/ { int num; /*編號*/ char name[20]; /*姓名*/ char e_addr[20]; /*電子郵箱*/ char tel_no[15]; /*電話號碼*/ char sim_no; /*縮位號碼*/ char arch; /*分類*/}persons[maxlen]; typedef struct lnode /*通訊錄結(jié)構(gòu)中結(jié)點的定義*/ { int num; char name[20]; char e_addr[20]; char tel_no[15]; char sim_no; char arch; struct lnode *next; }listnode,*linklist;2.2.4 詳細設計(1)、新建通訊錄文件 1.打開通訊錄文件文本;2.如果文件存在,則用尾插法將文件中的數(shù)據(jù)依次存入鏈表中,然后關(guān)閉文件; 3.如果文件為不存在,則新建一個空的通訊錄文件文本,然后關(guān)閉文件。

    2)、顯示信息 1.在提示中界面選擇 顯示通訊錄 ; 2.輸入需要顯示的類別; 3.根據(jù)選擇的類別調(diào)用顯示函數(shù); 4.從第一個節(jié)點開始,判斷鏈表中的節(jié)點是否屬于選擇的類別; 5.如果節(jié)點屬于所選類別,則顯示該節(jié)點中所有信息;6.如果不屬于所選類別,則將所指節(jié)點下移,直至將鏈表中所有屬于該類別的信息全部輸出為止; 7.回到提示界面3)、刪除信息 1.在提示界面中選擇 刪除通訊錄 ; 2.輸入要刪除的姓名; 3.如果通訊錄文件空,則輸出 你選擇的用戶不存在! ; 4.如果通訊錄文件不為空,則從第一個節(jié)點開始比較,若有某一節(jié)點中的姓名與輸入姓名相同時,就釋放該節(jié)點; 5.若節(jié)點中所有姓名都與輸入姓名不相同,則輸出 你選擇的用戶不存在! ; 6.保存剛才的操作,并回到提示界面4)、添加信息 1.在提示界面中選擇 添加通訊錄 ; 2.依次輸入添加的信息 姓名 電話號碼 縮位號碼 電子郵箱 類別 ; 3.保存剛才操作,并回到提示界面 (5)、修改信息 1.在提示界面中選擇 編輯通訊錄 ; 2.輸入所要修改信息中的姓名,再依次輸入信息 姓名 電話號碼 縮位號碼 電子郵箱 類別 ; 3.保存剛才的操作,并回到提示界面。

    (6)、撥號功能 1.在提示界面中選擇 撥號功能 ,進入撥號功能區(qū); 2.若選擇1,則將按姓名撥號,輸入 姓名 ,則輸出與姓名相對應的電話號碼,并回到提示界面;若選擇2,則將按單鍵撥號,輸入 縮位號碼,則輸出與該縮位號碼相對應的姓名和電話號碼,并回到提示界面 (7)、保存操作并退出系統(tǒng) 1.在提示界面中選擇 保存剛才操作并退出 ; 2.調(diào)用保存函數(shù),該函數(shù)將剛才所有的操作存入通訊錄文件,并關(guān)閉文件; 3.退出程序本科課程設計(論文) 調(diào)試報告 3 調(diào)試報告 3.1 運行中問題及解決 3.1.1 問題1:程序運行時只能運行一個函數(shù),就必須保存并退出,否則會造成運行錯誤如Delete函數(shù)的代碼為:void Delete() { system("cls"); /*清屏*/ printf("\n\n\t請輸入要刪除用戶的姓名:"); cin>>name1; /*輸入要刪除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } else { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要刪除的節(jié)點*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<

    代碼為:void Delete() { system("cls"); /*清屏*/ printf("\n\n\t請輸入要刪除用戶的姓名:"); cin>>name1; /*輸入要刪除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } else { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要刪除的節(jié)點*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號碼:"; cin>>s->sim_no; cout<<"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n"); /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!"); free(s); } } if(head==NULL) { head=s; head->next=NULL; } else { r->next=s; r=s; r->next=NULL; } Save();} (4)、問題二解決方法:該問起之時由于丟了一個語句造成的,修改后的代碼為:void Input() { system("cls"); /*清屏*/ s=(linklist)malloc(sizeof(listnode)); /*開辟一個節(jié)點,用于存放新輸入的信息*/ printf("\n\n\t請輸入該用戶的信息:\n"); cout<<"姓名:"; cin>>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號碼:"; cin>>s->sim_no; cout<<"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n"); /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!= 0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!"); free(s); } } if(head==NULL) { head=s; r=head; head->next=NULL; } else { r->next=s; r=s; r->next=NULL; } Save();}本科課程設計(論文) 用戶手冊 4 用戶手冊 4.1 顯示信息 (1).在提示中界面選擇 顯示通訊錄 ; (2).輸入需要顯示的類別。

    4.2 刪除信息 (1).在提示界面中選擇 刪除通訊錄 ; (2).輸入要刪除的姓名 4.3 添加信息 (1).在提示界面中選擇 添加通訊錄 ; (2).依次輸入添加的信息 姓名 電話號碼 縮位號碼 電子郵箱 類別 4.4修改信息 (1).在提示界面中選擇 編輯通訊錄 ; (2).輸入所要修改信息中的姓名,再依次輸入信息 姓名 電話號碼 縮位號碼 電子郵箱 類別 4.5撥號功能 (1).在提示界面中選擇 撥號功能 ,進入撥號功能區(qū); (2).若選擇1,則將按姓名撥號,輸入姓名;若選擇2,則將按單鍵撥號,輸入縮位號碼4.6保存操作并退出系統(tǒng) (1).在提示界面中選擇 保存剛才操作并退出 本科課程設計(論文) 設計體會 5 總 結(jié)由于本課題中的許多知識點都沒有學過都要靠自己到課外的資料中去查找在用的時候難免出現(xiàn)這樣那樣的錯誤如開始設計出來的菜單不是預想的那樣,而是總個窗中出現(xiàn)混亂解決的這個問題的辦法是調(diào)整一個系統(tǒng)的菜單和提示信息非常重要。

    如果沒有這些用戶根本不知道怎么用你設計的這個系統(tǒng)在設計的調(diào)試過程中也無法順利的完成調(diào)試工作有了一個清晰簡單的菜單和一些提示信息這后,調(diào)試過程完成的非常順利回顧起此次課程設計,至今我仍感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,在整整半個月的日子里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體……通過這次課程設計之后,一定把以前所學過的知識本次課程設計結(jié)束了,對于我的影響很大我通過這次實踐學到了許多知識學到了設計一個簡單的系統(tǒng)要注意哪些方面也使我知道自己哪些方面做得還不夠但我出總結(jié)出了一點點的經(jīng)驗如下:1、要對系統(tǒng)的功能和要求做出詳細的分析,并合理分解任務。

    2、把分解出來的子任務,做給一個相對獨立的模塊3、在設計一個模塊之前,要簡單構(gòu)想一下總界面的顯視情況4、針對構(gòu)想出來的界面進行程序的編寫 通過這次課程設計,增加了我對軟件技術(shù)的了解,雖然還不明確軟件技術(shù)包含的具體內(nèi)容,但從學習C語言這門課程開始,已發(fā)現(xiàn)程序設計的好處,他對我們數(shù)學的學習也有很大的幫助在學習C語言的過程中也學到和鞏固了許多計算機應用基礎知識,對計算機的機體也有了一個較為詳細的了解在具體操作中對這學期所學的C語言的理論知識得到鞏固加強,達到實訓的目的,也發(fā)現(xiàn)自己的不足之處,為我問以后的c語言學習奠定了基礎,同時體會到C語言具有的語句簡潔,使用靈活,執(zhí)行效率高等特點發(fā)現(xiàn)上機操作的重要作用,特別是對數(shù)組和循環(huán)有了深刻的理解通過實際操作,學會 C語言程序編程的基本步驟、基本方法,開發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問題、解決問題的能力這不僅是程序設計,更是鍛煉我們處理問題的能力,同時也使我們了解到團隊合作的可貴.編寫程序是件細心活,稍不留神就會出錯,這就必須要求我們對待事情要認真!在編寫程序的過程中,錯誤不斷出現(xiàn),不同的類型(如少寫了一個符號,寫錯了字母,用錯了函數(shù)等等)層出不窮,這考驗我們待事細心,耐心,能不能堅持到底,不能半途而廢。

    三人行必有我?guī)?遇到問題我們一起討論,研究,錯了再寫,寫了在改.經(jīng)過多次的修改,調(diào)試,運行,添加,終于最后在大家的歡呼聲中,完成了我的任務.雖說是累了點,但我也從中找到了自己的快樂,每當完成一個新的函數(shù)時,那心情是激動啊,這畢竟是自己弄出來的,同時也使我感受到了學習的快樂!生活上我們也同樣如此,以這種精神對待生活,對待生命,我想,我們的人生會更美好,路是自己走出來的,也只有經(jīng)過無數(shù)次的磨練,無數(shù)次地堅定我們的信心,鍛煉我們的意志漸漸地使自己才能夠使自己成熟起來,走出一片屬于自己的天空參考文獻本科課程設計(論文) 參考文獻參考文獻[1]譚浩強,《C程序設計》,清華大學出版社[2]劉振安,孫忱,劉燕君,《C程序設計課程設計》,機械工業(yè)出版社[3]汪詩林,《數(shù)據(jù)結(jié)構(gòu)算法與應用》,機械工業(yè)出版社[4] CSDN下載頻道.[5]朱若愚.數(shù)據(jù)結(jié)構(gòu)[M]. 電子工業(yè)出版社[6]晉良潁.數(shù)據(jù)結(jié)構(gòu)[M].人民郵電出版社[7]劉大有.數(shù)據(jù)結(jié)構(gòu)[M]. 高等教育出版社本科課程設計(論文) 源代碼附錄:源代碼1.源程序清單#include #include /*與malloc.h差不多*/ #ionclude #include #define maxlen 100 struct persons /*定義結(jié)構(gòu)體數(shù)組用于緩存數(shù)據(jù)*/ { int num; /*編號*/ char name[20]; /*姓名*/ char e_addr[20]; /*電子郵箱*/ char tel_no[15]; /*電話號碼*/ char sim_no; /*縮位號碼*/ char arch; /*分類*/}persons[maxlen]; typedef struct lnode /*通訊錄結(jié)構(gòu)中結(jié)點的定義*/ { int num; char name[20]; char e_addr[20]; char tel_no[15]; char sim_no; char arch; struct lnode *next; }listnode,*linklist; void Save();linklist head=NULL,r=NULL; /*定義頭指針和尾指針*/ listnode *s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9; int i; char name1[10],ch;char tel_no1[15];char arch1;char sim_no1;char e_addr1[20]; char s1[20]; FILE *fp; /*定義文件指針*/ void creat() /*將文件的信息讀入結(jié)構(gòu)體數(shù)組在轉(zhuǎn)存入鏈表中*/ { int j; long k; fp=fopen("通訊錄文件.txt","r t"); /*打開文件*/ if(fp!=NULL) { for(i=0;i<=maxlen;i++ ) /*當信息數(shù)不大于100條時,文件中的信息可以依次存入鏈表中*/ { j=fgetc(fp); if(j==EOF) return; k=i; fseek(fp,k*sizeof(struct persons),0); /*讀取一個人的信息*/ fread(&persons[i],sizeof(struct persons),1,fp); s=(linklist)malloc(sizeof(listnode)); /*裝存入鏈表中*/ s->num=persons[i].num; strcpy(s->name,persons[i].name); strcpy(s->e_addr,persons[i].e_addr); strcpy(s->tel_no,persons[i].tel_no); s->sim_no=persons[i].sim_no; s->arch=persons[i].arch; if(head==NULL) /*用尾插法將其插入鏈表中*/ { head=s; r=head; head->next=NULL; } else { r->next=s; r=s;r->next=NULL; } } fclose(fp); } else { fp=fopen("通訊錄文件.txt","w"); /*不能打開另開辟一個文件*/ i=1; } }/***********************************//*函數(shù)名:ShowA *//*函數(shù)說明:輸出家庭類所有信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void ShowA() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='A') /*判斷信息是否屬于該類*/ { cout<name<e_addr<tel_no<sim_no<arch<next; continue; } }/***********************************//*函數(shù)名:ShowB *//*函數(shù)說明:輸出朋友類所有信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void ShowB() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='B') /*判斷信息是否屬于該類*/ { cout<name<e_addr<tel_no<sim_no<arch<next; continue; } }/***********************************//*函數(shù)名:ShowC *//*函數(shù)說明:輸出重要人士類所有信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void ShowC() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='C') /*判斷信息是否屬于該類*/ { cout<name<e_addr<tel_no<sim_no<arch<next; continue; } } /***********************************//*函數(shù)名:ShowD *//*函數(shù)說明:輸出其他類所有信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void ShowD() { p1=head; system("cls"); /*清屏*/ while(p1!=NULL) { if(p1->arch=='D') /*判斷信息是否屬于該類*/ { cout<name<e_addr<tel_no<sim_no<arch<next; continue; } }/***********************************//*函數(shù)名:Show *//*函數(shù)說明:輸出已有信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void Show() { char ch1; system("cls"); /*清屏*/ printf("你想輸出哪一類信息?\n"); cout<<"A:家庭類"<<"B:朋友類"<<"C:重要人士類"<<"D:其他"<>ch1; /*輸入選擇類別*/ switch(ch1) /*用單條件多選擇語句實現(xiàn)調(diào)用與循環(huán)*/ { case'A':ShowA();break; case'B':ShowB();break; case'C':ShowC();break; case'D':ShowD();break; default:cout<<"error"<>name1; /*輸入要刪除的姓名*/ p4=head; if(p4==NULL) cout<<"你選擇的用戶不存在!"<name,name1)==0) /*根據(jù)各種情況判斷可能性*/ { p4=p4->next; head=p4; } else { while(strcmp(p4->next->name,name1)!=0)p4=p4->next;/*找到要刪除的節(jié)點*/ if(p4!=NULL) /*若輸入的用戶存在則刪除*/ { p5=p4->next; p4->next=p5->next; free(p5); } else cout<<"你選擇的用戶不存在!"<>s->name; cout<<"電話:"; cin>>s->tel_no; cout<<"縮位號碼:"; cin>>s->sim_no; cout<<"電子郵箱:"; cin>>s->e_addr; cout<<"分類:"; cin>>s->arch; if(head==NULL) printf("\n\n"); /*判斷原通訊錄是否為空*/ else { p8=head; while(p8!=NULL&&strcmp(s->name,p8->name)!=0&&strcmp(s->tel_no,p8->tel_no)!=0) /*判斷輸入的用戶是否已存在*/ p8=p8->next; if(p8!=NULL) { printf("您添加的用戶已存在!"); free(s); } } if(head==NULL) { head=s; r=head; head->next=NULL; } else { r->next=s; r=s; r->next=NULL; } Save();} /***********************************//*函數(shù)名:Alter *//*函數(shù)說明:改變一個人信息 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void Alter() { system("cls"); /*清屏*/ printf("\n\n\t請輸入姓名:"); cin>>name1; p3=head; while(p3!=NULL&&strcmp(name1,p3->name)!=0) p3=p3->next; if(p3==NULL) /*判斷輸入的用戶是否存在*/ printf("\n\n\t您選擇的用戶不存在!"); else { printf("\n\n\t請輸入該用戶的新信息:\n"); /*輸入要改人的新信息*/ cout<<"姓名:"; cin>>name1; cout<<"電話號碼:"; cin>>tel_no1; cout<<"電子郵箱:"; cin>>e_addr1; cout<<"縮位號碼:"; cin>>sim_no1; cout<<"類別:"; cin>>arch1; while(p9!=NULL&&strcmp(name1,p9->name)!=0&&strcmp(tel_no1,p9->tel_no)!=0) /*找尋輸入的用戶*/ p9=p9->next; if(p9==NULL) /*輸入用戶存在,則修改用戶信息*/ { strcpy(p3->name,name1); strcpy(p3->tel_no,tel_no1); strcpy(p3->e_addr,e_addr1); p3->sim_no=sim_no1; p3->arch=arch1; } else printf("您添加的用戶已存在!"); } Save();}/***********************************//*函數(shù)名:Dial *//*函數(shù)說明:模擬撥打一個人的號碼 *//*入口參數(shù):無 *//*出口參數(shù):無 *//***********************************/ void Dial() { int a; char b; system("cls"); /*清屏*/ cout<<"1.撥叫用戶:"<>a; p0=head; if(a==1) { cout<<"請輸入撥叫用戶的姓名:"; cin>>name1; while(strcmp(name1,p0->name)!=0&&p0!=NULL) /*找尋輸入的用戶*/ p0=p0->next; if(p0==NULL) cout<<"您選擇的用戶不存在!"; else { cout<tel_no; cout<>b; while(p0!=NULL&&b!=p0->sim_no) /*找尋輸入的用戶*/ p0=p0->next; if(p0==NULL) cout<<"您輸入的單鍵號碼不存在!"; else { cout<name<tel_no; cout<next)/*將信息裝出入結(jié)構(gòu)體數(shù)組在出入鏈表中,避免地址的出入,造成亂碼文件*/ { strcpy(persons[j].name,p2->name); strcpy(persons[j].e_addr,p2->e_addr); strcpy(persons[j].tel_no,p2->tel_no); persons[j].sim_no=p2->sim_no; persons[j].arch=p2->arch; fwrite(&persons[j],sizeof(struct persons),1,fp); } } vo。

    點擊閱讀更多內(nèi)容
    最新文檔
    傳統(tǒng)文化道德不是高懸的明月而是腳下的星光.pptx
    世界無煙日關(guān)注青少年成長健康無煙為成長護航.pptx
    五四青年節(jié)詩詞贊歌五四青年自強不息.pptx
    XX學校班主任培訓用心管理慧做班主任.pptx
    拒絕熬夜健康養(yǎng)生規(guī)律作息遠離亞健康.pptx
    兒童成長手冊時光里的童真印記.pptx
    幼兒園夏季傳染病預防指南預見夏天健康童行夏季傳染病預防科普.pptx
    高中生心理健康教育主題班會快樂學習高效學習正視壓力學會減壓.pptx
    員工職業(yè)道德與職業(yè)素養(yǎng)培訓遵守職業(yè)道德提高職業(yè)修養(yǎng).pptx
    2025職業(yè)病防治法宣傳周健康守護職防同行.pptx
    XX幼兒園防災減災安全教育臨災不亂安全童行學會保護自己.pptx
    在2025年縣教育工作大會暨高考備考工作推進會上的講話發(fā)言材料.docx
    在2025年縣全面從嚴治黨和黨風廉政會議上的講話發(fā)言材料.docx
    在2025年全市慶祝“五一”暨勞動模范表彰大會上的講話發(fā)言材料多篇.docx
    2025年稅務局青年代表在五四青年座談會上的發(fā)言材料3篇.docx
    在2025年市委全體會議上的主持講話發(fā)言材料.docx
    2025年黨風廉政建設工作要點材料.docx
    在2025年全市青年干部慶祝五四青年節(jié)大會上的講話發(fā)言材料多篇.docx
    在入黨積極分子培訓班上的講話發(fā)言材料.docx
    縣文旅局黨組書記在五一假期及夏季旅游安全生產(chǎn)工作部署會議上的講話發(fā)言材料.docx
    賣家[上傳人]:仙人指路
    資質(zhì):實名認證