版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
年4月19日C語言課程設(shè)計(jì)通訊錄管理系統(tǒng)文檔僅供參考***科技大學(xué)本科生課程設(shè)計(jì)說明書題目:C語言課程設(shè)計(jì)——通訊錄管理系統(tǒng)學(xué)生姓名:**學(xué)號:***專業(yè):軟件工程班級:1指導(dǎo)教師:**內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書課程名稱C語言課程設(shè)計(jì)設(shè)計(jì)題目通訊錄管理系統(tǒng)指導(dǎo)教師***時間.12.31——.1.4一、教學(xué)要求1.鞏固和加深學(xué)生對C語言課程的基本知識的理解和掌握
2.掌握C語言編程和程序調(diào)試的基本技能
3.利用C語言進(jìn)行基本的軟件設(shè)計(jì)
4.掌握書寫程序設(shè)計(jì)說明文檔的能力
5.提高運(yùn)用C語言解決實(shí)際問題的能力二、設(shè)計(jì)資料及參數(shù)每個學(xué)生在教師提供的課程設(shè)計(jì)題目中任意選擇一題,獨(dú)立完成,題目選定后不可更換。通訊錄管理系統(tǒng)現(xiàn)有一批通訊錄的數(shù)椐,要求輸入計(jì)算機(jī)并存放在內(nèi)存中,然后增加若干個新通訊錄的記錄,并可輸出通訊錄清單,實(shí)現(xiàn)文件存盤和讀入文件進(jìn)行修改的功能。通訊錄的基本信息包括編號,姓名,電話號碼,QQ號碼,電子郵件,通訊地址。要求設(shè)計(jì)菜單來調(diào)用其各功能模塊:新建文件、打開文件、保存信息到文件輸入記錄、輸出記錄查詢記錄(至少具有兩種查詢方式,例如以姓名查詢和以電話號碼查詢)修改、插入和刪除記錄三、設(shè)計(jì)要求及成果1.分析課程設(shè)計(jì)題目的功能需求(可選用數(shù)組或鏈表實(shí)現(xiàn),可多人(最多3人)協(xié)作完成一個題目)
2.寫出詳細(xì)設(shè)計(jì)說明(至少包括功能實(shí)現(xiàn)分析和模塊流程圖)
3.編寫程序代碼,調(diào)試程序使其能正確運(yùn)行(代碼書寫要規(guī)范,標(biāo)示符要見名知意,要有必要的注釋,每人至少3個函數(shù),每人至少200行代碼,不包括注釋和花括號)
4.設(shè)計(jì)完成的軟件要便于操作和使用
5.設(shè)計(jì)完成后提交課程設(shè)計(jì)報(bào)告(請嚴(yán)格按照模板進(jìn)行排版)四、進(jìn)度安排第一天
選擇課程設(shè)計(jì)題目,分析課題的要求
第二天
編程
第三天
編程及調(diào)試
第四天
寫課程設(shè)計(jì)報(bào)告
第五天
提交課程設(shè)計(jì)報(bào)告(打印稿及電子稿)五、評分標(biāo)準(zhǔn)1.根據(jù)平時上機(jī)考勤、表現(xiàn)和進(jìn)度,教師將每天點(diǎn)名和檢查2.根據(jù)課程設(shè)計(jì)完成情況,必須有可運(yùn)行的軟件。
3.根據(jù)課程設(shè)計(jì)報(bào)告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1.《C語言程序設(shè)計(jì)》,譚浩強(qiáng),清華大學(xué)出版社2.《C語言程序設(shè)計(jì)課程設(shè)計(jì)》,劉振安,機(jī)械工業(yè)出版社。目錄內(nèi)蒙古科技大學(xué)課程設(shè)計(jì)任務(wù)書 I目錄 III第一章需求分析 31.1 引言 31.2 任務(wù)概述 31.3 數(shù)據(jù)描述 31.4 功能需求 31.5 性能需求 41.6 運(yùn)行需求 41.7 任務(wù)計(jì)劃 4第二章 概要設(shè)計(jì) 112.1 總體設(shè)計(jì) 112.2 數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)) 112.3 接口設(shè)計(jì) 122.4 運(yùn)行界面設(shè)計(jì) 12第三章 詳細(xì)設(shè)計(jì) 173.1 輸入模塊設(shè)計(jì) 173.2 輸出模塊設(shè)計(jì) 183.3 查找模塊設(shè)計(jì) 193.4 刪除模塊設(shè)計(jì) 243.5 保存及讀取模塊設(shè)計(jì) 25第四章 測試分析 374.1 測試程序執(zhí)行情況 374.2 出現(xiàn)的問題和解決的方法 54第五章 課程設(shè)計(jì)總結(jié) 56附錄:程序代碼 57參考文獻(xiàn) 86致謝 87第一章需求分析引言經(jīng)過程序設(shè)計(jì),達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,提高對信息管理系統(tǒng)的分析能力,能夠根據(jù)實(shí)際應(yīng)用,初步實(shí)現(xiàn)系統(tǒng)功能模塊及算法的設(shè)計(jì),經(jīng)過編程基本實(shí)現(xiàn)信息管理系統(tǒng)。任務(wù)概述采用結(jié)構(gòu)體的形式對數(shù)據(jù)進(jìn)行輸入輸出。能夠?qū)νㄓ嶄涍M(jìn)行簡單的排序,篩選,刪除。能夠?qū)θ我庑畔⒕托行薷摹D軌虬褦?shù)據(jù)已文件的形式輸入輸出。任意瀏覽信息。數(shù)據(jù)描述以所示的文本數(shù)據(jù)位初始數(shù)據(jù)進(jìn)行簡單操作,也可另行添加。功能需求實(shí)現(xiàn)以上功能需求。性能需求能夠進(jìn)行簡單的數(shù)據(jù)處理。具有對新信息處理打印打能力。運(yùn)行需求輸入個人信息時以例如按照“編號、姓名、年齡、電話號碼、通訊地址、電子郵箱”的順序輸入。輸入時編號年齡、電話號碼、通訊地址、電子郵箱以數(shù)字格式輸入,輸入姓名以文字輸入。以(Y/N)形式判斷時,僅限N或者n為否,其它字符真。進(jìn)入排序功能后,要想見排序信息,到主菜單下見瀏覽信息功能。任務(wù)計(jì)劃1.樣例輸入和輸出2.本通訊錄管理程序,能夠?qū)?shù)據(jù)進(jìn)行輸入輸出,集排序,修改,打印,刪除等功能。下面以上述數(shù)據(jù)描述的數(shù)據(jù)為測試數(shù)據(jù)進(jìn)行簡單輸入輸出?!?.未排序前的信息4).刪除界面:刪除后,通訊錄里的顯示記錄:5).查詢界面:以姓名查詢方式為例:6).修改界面:修改后,通訊錄里的顯示記錄:7).保存界面:tongxunlu.txt文件截圖:概要設(shè)計(jì)總體設(shè)計(jì)添加:能夠添加通訊錄記錄,依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱后,會提示是否繼續(xù)添加。顯示:能夠以表格形式輸出所有通訊錄里的記錄刪除:輸入欲刪除的那個人的名字后,會自動刪除她(她)的記錄內(nèi)容查詢:能夠選擇用姓名、電話、地址三種方式查詢修改:輸入欲修改的那個人的名字后,再依次輸入編號、姓名、年齡、電話號碼、通訊地址、電子郵箱即可完成修改保存:,輸入文件名(帶后綴名)后,即可將通訊錄信息保存到文件數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))typedefstruct { charscore;/*編號*/ charname[10];/*姓名*/ charnum[15];/*號碼*/ charemail[20]; /*郵箱*/ charage[8]; /*年齡*/ charadds[20]; /*住址*/ }Person;以結(jié)構(gòu)體數(shù)組類型輸入數(shù)據(jù)。 接口設(shè)計(jì)表2.1:函數(shù)列表函數(shù)名函數(shù)首部函數(shù)功能intmenu_select()void運(yùn)行界面intInput(Personper[],intn)int輸入函數(shù)voidDisplay(Personper[],intn)Void輸出函數(shù)intDelete_a_record(Personper[],intn)int刪除數(shù)據(jù)voidQuery_a_record(Personper[],intn)void查詢數(shù)據(jù)voidChange(Personper[],intn)void更改數(shù)據(jù)voidWritetoText(Personper[],intn)void把數(shù)據(jù)寫到文件運(yùn)行界面設(shè)計(jì)voidmain()/*主函數(shù)*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加記錄到通訊錄\n");/*添加記錄*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通訊錄記錄表\n");/*顯示記錄*/ Display(pe,n); break; case3: printf("\n\t從通訊錄中刪除記錄\n"); n=Delete_a_record(pe,n); /*刪除記錄*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通訊錄中查找記錄\n"); Query_a_record(pe,n); /*查找記錄*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通訊錄中的記錄\n"); Change(pe,n); /*修改數(shù)據(jù)*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存數(shù)據(jù)*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t謝謝使用,再見!\n");/*結(jié)束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}以switch為關(guān)鍵控制選著要調(diào)用函數(shù)的開關(guān),然后以主菜單為主界面,其它功能為擴(kuò)展界面來運(yùn)行通訊錄管理系統(tǒng)。主菜單代碼為:intmenu_select() { charc; do{ system("cls"); printf("\t\t*****通訊錄*****\n"); printf("\t\t||\n"); printf("\t\t│1.添加記錄│\n"); printf("\t\t│2.顯示記錄│\n"); printf("\t\t│3.刪除記錄│\n"); printf("\t\t│4.查詢記錄│\n"); printf("\t\t│5.修改記錄│\n"); printf("\t\t│6.保存記錄│\n"); printf("\t\t│0.退出程序│\n"); printf("\t\t\||n"); printf("\t\t請您選擇(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }如圖所示為主要運(yùn)行界面:詳細(xì)設(shè)計(jì)輸入模塊設(shè)計(jì)intInput(Personper[],intn){ inti=0; charsign,x[10]; while(sign!='n'&&sign!='N') { printf("\t編號:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年齡:"); scanf("\t%s",per[n+i].age); printf("\t電話號碼:"); scanf("\t%s",per[n+i].num); printf("\t通訊住址:"); scanf("\t%s",per[n+i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否繼續(xù)添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}輸出模塊設(shè)計(jì)voidDisplay(Personper[],intn){ inti; printf("\n");/*格式*/ printf("編號姓名年齡電話號碼通訊地址電子郵箱\n"); printf("\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t\n"); printf("\t"); system("pause"); printf("\t\n"); } } printf("\n"); system("pause");}查找模塊設(shè)計(jì)voidQuery_a_record(Personper[],intn){ intm; printf("\t\n請選擇查詢方式:\n");printf("\t┌──────┐\n");printf("\t│1姓名│\n");printf("\t│2電話│\n");printf("\t│3地址│\n");printf("\t│4返回│\n");printf("\t└──────┘\n");printf("請選擇:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){ printf("輸入錯誤,請重新選擇:"); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t請輸入想查詢的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人年齡:%s\n",per[i].age); printf("\t電話號碼:%s\n",per[i].num); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t請輸入想查詢的電話:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t請輸入想查詢的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t電話號碼:%s\n",per[i].num); printf("\t電子郵箱:%s\n",per[i].email); };}刪除模塊設(shè)計(jì)intDelete_a_record(Personper[],intn){ chars[20]; inti=0,j; printf("\t請輸入想刪除記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已經(jīng)成功刪除!\n"); return(n-1);}更改模塊設(shè)計(jì)voidChange(Personper[],intn){ chars[20]; inti=0; printf("\t請輸入想修改的記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t編號:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年齡:"); scanf("\t%s",per[i].age); printf("\t電話號碼:"); scanf("\t%s",per[i].num); printf("\t通訊住址:"); scanf("\t%s",per[i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}3.6保存模塊設(shè)計(jì)voidWritetoText(Personper[],intn){ inti=0; FILE*fp;/*定義文件指針*/ charfilename[20];/*定義文件名*/ printf("\t保存到文件\n");/*輸入文件名*/ printf("\t請輸入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("\t無法打開文件\n"); system("pause"); return; } fprintf(fp,"******************************************通訊錄******************************************\n"); fprintf(fp,"編號姓名年齡電話號碼通訊地址電子郵箱\n"); fprintf(fp,"\n"); while(i<n) { fprintf(fp,"%-3d\t%-6s\t%-3s\t%-13s\t%-20s\t%-20s\n",per[i].score,per[i].name,per[i].age,per[i].num,per[i].adds,per[i].email); i++; } fprintf(fp,"\n"); fprintf(fp,"***************************************共有%d條記錄****************************************\n",n); fclose(fp);/*關(guān)閉文件*/ printf("保存成功!\n");}voidmain()/*主函數(shù)*/{ intn=0; for(;;) { switch(menu_select()) { case1: printf("\n\t添加記錄到通訊錄\n");/*添加記錄*/ n=Input(pe,n); break; case2: printf("\n\t\t\t通訊錄記錄表\n");/*顯示記錄*/ Display(pe,n); break; case3: printf("\n\t從通訊錄中刪除記錄\n"); n=Delete_a_record(pe,n); /*刪除記錄*/ printf("\t"); system("pause"); break; case4: printf("\n\t在通訊錄中查找記錄\n"); Query_a_record(pe,n); /*查找記錄*/ printf("\t"); system("pause"); break; case5: printf("\n\t修改通訊錄中的記錄\n"); Change(pe,n); /*修改數(shù)據(jù)*/ printf("\t"); system("pause"); break; case6: printf("\n\t保存功能\n"); WritetoText(pe,n); /*保存數(shù)據(jù)*/ printf("\t"); system("pause"); break; case0: printf("\n\t\t謝謝使用,再見!\n");/*結(jié)束程序*/ printf("\n\t\t"); system("pause"); exit(0); } }}測試分析測試程序執(zhí)行情況1).顯示的主菜單界面2).添加界面:3).顯示界面:4).刪除界面:刪除后,通訊錄里的顯示記錄:5).查詢界面:以姓名查詢方式為例:6).修改界面:修改后,通訊錄里的顯示記錄:7).保存界面:大部分功能以按上面圖文描述,有不足的地方請老師批評指正。您的建議將幫我走得更好。出現(xiàn)的問題和解決的方法1.當(dāng)我在進(jìn)行刪除、查詢、修改、保存等功能時,以查詢?yōu)槔?,輸入名字按回車后,雖然會顯示該人的所有記錄,可是顯示后,它馬上自動消失了,還沒來得及等我看內(nèi)容。因此,向別人請教后,在一些地方加入了system("pause");這個語言,用來對某項(xiàng)操作完成后進(jìn)行暫停。課程設(shè)計(jì)總結(jié)這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對我們進(jìn)入大學(xué)以來學(xué)習(xí)程序設(shè)計(jì)語言結(jié)果的一次大檢驗(yàn)。自己動手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時沒有掌握好的知識在這次實(shí)驗(yàn)中徹底暴露出來,經(jīng)過不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問題,當(dāng)然還存在一些問題沒有解決。我相信在以后的學(xué)習(xí)能夠解決好它們??墒牵斋@還是不小的,我不但對C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書寫風(fēng)格及其注釋的格式。當(dāng)我選擇通訊錄這個題目時,一開始想運(yùn)用大量鏈表及指針來完成,可是在慢慢琢磨之后,覺得這個不一定要用鏈表,于是改變了編程思路。當(dāng)然還有不少文件的讀寫問題,不過還是經(jīng)過不斷測試之后順利解決了。另外一點(diǎn)要說的就是這個程序用了很多的循環(huán),因此對于循環(huán)的控制要十分小心,有時while和do-while的區(qū)別也是十分重要的。還有一點(diǎn)體會就是,書上和老師教的內(nèi)容是有限的,我們需要不斷地靠自己去學(xué)習(xí),向她人請教,了解和掌握更多的知識,這樣我們才能編出更好的C程序??傮w來說,這次C語言程序設(shè)計(jì)實(shí)驗(yàn)還是比較成功的,雖然最終程序還存在一些不足,但能取得這樣的成績我還是比較高興的。最后,要感謝學(xué)校為我們提供這次實(shí)驗(yàn)機(jī)會,也要感謝老師的教導(dǎo)和好心人對我的幫助與支持。附錄:程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstruct { charscore;/*編號*/ charname[10];/*姓名*/ charnum[15];/*號碼*/ charemail[20]; /*郵箱*/ charage[8]; /*年齡*/ charadds[20]; /*住址*/ }Person;Personpe[80];intmenu_select() { charc; do{ system("cls"); printf("\t\t*****通訊錄*****\n"); printf("\t\t||\n"); printf("\t\t│1.添加記錄│\n"); printf("\t\t│2.顯示記錄│\n"); printf("\t\t│3.刪除記錄│\n"); printf("\t\t│4.查詢記錄│\n"); printf("\t\t│5.修改記錄│\n"); printf("\t\t│6.保存記錄│\n"); printf("\t\t│0.退出程序│\n"); printf("\t\t\||n"); printf("\t\t請您選擇(0-6):"); c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); }intInput(Personper[],intn){ inti=0; charsign,x[10]; while(sign!='n'&&sign!='N') { printf("\t編號:"); scanf("\t%d",&per[n+i].score); printf("\t姓名:"); scanf("\t%s",per[n+i].name); printf("\t年齡:"); scanf("\t%s",per[n+i].age); printf("\t電話號碼:"); scanf("\t%s",per[n+i].num); printf("\t通訊住址:"); scanf("\t%s",per[n+i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[n+i].email); gets(x); printf("\n\t是否繼續(xù)添加?(Y/N)"); scanf("\t%c",&sign); i++; } return(n+i);}voidDisplay(Personper[],intn){ inti; printf("\n");/*格式*/ printf("編號姓名年齡電話號碼通訊地址電子郵箱\n"); printf("\n"); for(i=1;i<n+1;i++) { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t\n"); printf("\t"); system("pause"); printf("\t\n"); } } printf("\n"); system("pause");}intDelete_a_record(Personper[],intn){ chars[20]; inti=0,j; printf("\t請輸入想刪除記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已經(jīng)成功刪除!\n"); return(n-1);}voidQuery_a_record(Personper[],intn){ intm; printf("\t\n請選擇查詢方式:\n");printf("\t┌──────┐\n");printf("\t│1姓名│\n");printf("\t│2電話│\n");printf("\t│3地址│\n");printf("\t│4返回│\n");printf("\t└──────┘\n");printf("請選擇:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3&&m!=4){ printf("輸入錯誤,請重新選擇:"); scanf("%d",&m); } if(m==1) { chars[20]; inti=0; printf("\t請輸入想查詢的姓名:"); scanf("\t%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人年齡:%s\n",per[i].age); printf("\t電話號碼:%s\n",per[i].num); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==2) { chars[20]; inti=0; printf("\t請輸入想查詢的電話:"); scanf("\t%s",s); while(strcmp(per[i].num,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t通訊地址:%s\n",per[i].adds); printf("\t電子郵箱:%s\n",per[i].email); }; if(m==3) { chars[20]; inti=0; printf("\t請輸入想查詢的地址:"); scanf("\t%s",s); while(strcmp(per[i].adds,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t此人編號:%d\n",per[i].score); printf("\t此人姓名:%s\n",per[i].name); printf("\t此人年齡:%s\n",per[i].age); printf("\t電話號碼:%s\n",per[i].num); printf("\t電子郵箱:%s\n",per[i].email); };}voidChange(Personper[],intn){ chars[20]; inti=0; printf("\t請輸入想修改的記錄中的名字:"); scanf("%s",s); while(strcmp(per[i].name,s)!=0&&i<n)i++; if(i==n) { printf("\t通訊錄中沒有此人!\n"); return; } printf("\t編號:"); scanf("\t%d",&per[i].score); printf("\t姓名:"); scanf("\t%s",per[i].name); printf("\t年齡:"); scanf("\t%s",per[i].age); printf("\t電話號碼:"); scanf("\t%s",per[i].num); printf("\t通訊住址:"); scanf("\t%s",per[i].adds); printf("\t電子郵箱:"); scanf("\t%s",per[i].email); printf("\t修改成功!");}voidWritetoText(Personper[],intn){ inti=0; FILE*fp;/*定義文件指針*/ charfilename[20];/*定義文件名*/ printf("\t保存到文件\n");/*輸入文件名*/ printf("\t請輸入所保存的文件名:"); scanf("\t%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025公路施工勞務(wù)承包合同
- 2025企業(yè)管理資料員工訴企業(yè)“乘人之?!焙炗喰薷膭趧雍贤趺崔k文檔范本
- 2025合同模板合作辦幼兒園合同范本
- 2025國際銷售代表合同
- 胎兒保護(hù)科學(xué)指導(dǎo)下的孕婦藥物選擇
- 結(jié)合現(xiàn)代科技的自然體驗(yàn)課程設(shè)計(jì)探討
- 2024年拉米夫定項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2024年O型圈項(xiàng)目投資申請報(bào)告代可行性研究報(bào)告
- 生態(tài)農(nóng)業(yè)科技發(fā)展現(xiàn)狀與前景展望
- 二零二五年度新能源發(fā)電項(xiàng)目電氣設(shè)備安裝調(diào)試合同4篇
- 2024-2025學(xué)年山東省濰坊市高一上冊1月期末考試數(shù)學(xué)檢測試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 記錄片21世紀(jì)禁愛指南
- 腰椎間盤的診斷證明書
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)七 裂變傳播
- 單級倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
- 齲病的治療 深齲的治療
評論
0/150
提交評論