版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-1-高級(jí)語言程序設(shè)計(jì)通訊錄管理系統(tǒng)1、引言隨著信息社會(huì)的高速發(fā)展,人與人之間的聯(lián)系越來越頻繁,通訊方式越來越多樣化,如何保證與朋友、同學(xué)、同事、領(lǐng)導(dǎo)、親戚等之間的聯(lián)系,并能方便快捷的查找、記錄、修改其相關(guān)通訊信息。僅靠以前單獨(dú)的手工記錄已遠(yuǎn)遠(yuǎn)不能滿足當(dāng)前的需要。開發(fā)一個(gè)通訊錄管理系統(tǒng),借助計(jì)算機(jī)可以方便、快捷、靈活的管理個(gè)人的朋友及相關(guān)人員的通訊信息,了解友人相關(guān)信息,幫助與友人保持聯(lián)絡(luò)。所以設(shè)計(jì)一個(gè)通訊錄管理系統(tǒng)管理各人的通訊信息是是非必要的。2、系統(tǒng)設(shè)計(jì)2、1設(shè)計(jì)目的設(shè)計(jì)“通訊錄管理系統(tǒng)”使其具有數(shù)據(jù)插入、修改、刪除、顯示和查詢等功能。使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒?。使學(xué)生掌握軟件設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)方法,并培養(yǎng)學(xué)生進(jìn)行規(guī)范化軟件設(shè)計(jì)的能力。使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生進(jìn)行程序設(shè)計(jì)的基本能力。其功能包括以下各項(xiàng):1)數(shù)據(jù)包括:人名、工作單位、電話號(hào)碼和E-mail地址。2)可對(duì)記錄中的姓名和電話號(hào)碼進(jìn)行修改。3)可增加或刪除記錄。4)可顯示所有保存的記錄。5)可按人名或電話號(hào)碼進(jìn)行查詢。2.2模塊設(shè)計(jì)根據(jù)要求,電話簿數(shù)據(jù)以文本文件存放在文件中,故需要提供文件的輸入、輸出等操作;還需要保存記錄以進(jìn)行修改,刪除,查找等操作;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。系統(tǒng)功能模塊圖如下:通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)建立通訊錄修改記錄刪除記錄添加記錄查找記錄退出系統(tǒng)系統(tǒng)功能模塊圖2.3詳細(xì)設(shè)計(jì)函數(shù)設(shè)計(jì)要求簡(jiǎn)潔,只提供部分提示語和函數(shù)的調(diào)用。函數(shù)簡(jiǎn)單流程如下圖:顯示一系列功能選項(xiàng)輸入n,判斷n是否是0~5?顯示一系列功能選項(xiàng)輸入n,判斷n是否是0~5?根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始ny3主要功能實(shí)現(xiàn)3.1主界面與模塊功能實(shí)現(xiàn)3.1.1主界面的實(shí)現(xiàn)Voidmenu()/*主界面*/{intn,w1;voidenter();voidadd();voidmodify();voiddeleter();voidsearch();do{printf("\n");printf("\n");printf("*********************************\n");printf("*CommunicatebyLetterRecordingManagementSystem*\n");printf("*1.AddRecord*\n");printf("*2.DisplayList*\n");printf("*3.SearchByName*\n");printf("*4.DeleteRecord*\n");printf("*5.ReviseRecord*\n");printf("*0.Breaksystem*\n");printf("*********************************\n");printf("Pleaseselect(1,2,3,4,5,0):");scanf("%d",&n);if(n<0||n>5){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;/*輸入模塊*/case2:add();break;/*添加模塊*/case3:modify();break;/*查詢模塊*/case4:deleter();break;/*刪除模塊*/case5:search();break;/*輸出模塊*/case0:exit(0);}3.1.2模塊函數(shù)的實(shí)現(xiàn)1)從鍵盤輸入一個(gè)0~5的數(shù)字voidenter(){inti,n;printf("Howmanypeople(0-%d)?:",N-1);scanf("%d",&n);printf("請(qǐng)輸入數(shù)據(jù):\n");for(i=0;i<n;i++){printf("\n輸入第%d個(gè)記錄.\n",i+1);input(i);}if(i!=0)save(n);printf_back();}2)添加一條記錄voidadd(){inti,n,k,t;n=load();printf("Howmanypeopledoyouwanttoadd(0-%d)?:",N-n-1);scanf("%d",&t);k=n+t;for(i=n;i<k;i++){printf("\n輸入第%d個(gè)記錄.\n",i-n+1);input(i);}save(k);printf_back();}3)查詢通訊錄中的相關(guān)記錄voidmodify(){structpeoples;inti,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();printf_n(n);do{printf("\n\nEnternamethatyouwanttomodify!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n\t^_^.Successful^_^.\n\n是否繼續(xù)?\n\n\t1).是2).保存返回\t[]\b\b");scanf("%d",&w0);w2=1;}else{w0=0;if(w2==0)peop[k]=s;}if((w0!=1)&&(w2==1))save(n);}while(w0==1);menu();}4)刪除通訊錄中的相關(guān)記錄voiddeleter(){structpeoples;inti,n,k,w0,w1;n=load();do{k=-1;printf_face();printf_n(n);do{printf("\n\nEnternamethatyouwanttodelete!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1);printf_face();printf_one(k);printf("\n確定?\n\t1).是2).返回[]\b\b");scanf("%d",&w0);if(w0==1){peop[k].name[0]='\0';save(n);}elsebreak;printf("\n\t^_^.Successful^_^.\n");printf("Whatdoyouwanttodo?\n\t1).繼續(xù)2).返回[]\b\b");scanf("%d",&w1);}while(w1==1);menu();}5)輸出要查詢的記錄voidsearch(){intw0,k,i,n,w1,w2;structpeoples;n=load();do{printf("請(qǐng)選擇查找類別:1).姓名2).電話號(hào)碼[]\b\b");scanf("%d",&w1);if(w1<1||w1>2){printf("輸入錯(cuò)誤!請(qǐng)重新輸入!\n");w2=1;}}while(w2==1);if(w1==1){do{k=-1; do{printf("\n\nEnternamethattouwanttosearch!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1); printf_face();printf_one(k);printf("\nWhatdoyouwanttodo?\n\t1).繼續(xù)2).返回菜單[]\b\b");scanf("%d",&w0);}while(w0==1);menu();}else{do{k=-1; do{printf("\n\nEnternumberthattouwanttosearch!\nNum:");scanf("%s",s.num);for(i=0;i<n;i++)if(strcmp(s.num,peop[i].num)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1); printf_face();printf_one(k);printf("\nWhatdoyouwanttodo?\n\t1).繼續(xù)2).返回菜單[]\b\b");scanf("%d",&w0);}while(w0==1);menu();}}3.2詳細(xì)代碼#defineN50#include<stdio.h>#include<string.h>structpeople{charname[20];charcompany[50];charnum[15];charmail[20];}peop[N];voidprintf_face(){printf("\n\t姓名\t單位\t電話號(hào)碼\t郵箱\n");}voidprintf_one(inti){printf("\t%s\t%s\t%s\t%s\n",peop[i].name,peop[i].company,peop[i].num,peop[i].mail);}voidprintf_n(intn){intj;for(j=0;j<n;j++){if((j!=0)&&(j%10==0)){printf("\n\nPressanykeytocontinue...:");getchar();puts("\n\n");}printf_one(j);}getchar();}intload(){FILE*fp;inti;if((fp=fopen("file","rb"))==NULL){printf("\nCannotopenfile\n");exit(0);}for(i=0;!feof(fp);i++)fread(&peop[i],sizeof(structpeople),1,fp);fclose(fp);return(i-1);}intmodify_data(inti,intn){intc,w1;voidinput(inti);voidmenu();do{puts("\n修改選項(xiàng)=>\n\n1).姓名2).單位3).電話號(hào)碼4).郵箱5).所有數(shù)據(jù)6).取消并返回");printf("請(qǐng)選擇?:[]\b\b");scanf("%d",&c);if(c>6||c<1){puts("\nChooseerror!Pleaseagain!");getchar();}}while(c>6||c<1);do{switch(c){case1:printf("name:");scanf("%s",peop[i].name);break;case2:printf("company:");scanf("%s",peop[i].company);break;case3:printf("number:");scanf("%s",peop[i].num);break;case4:printf("e-mail:");scanf("%s",peop[i].mail);break;case5:input(i);break; case6:menu();}puts("\nNow:\n");printf_face();printf_one(i);printf("\n確定?\n\n\t1).是2).不,重新修改3).返回不保存[]\b\b");scanf("%d",&w1);}while(w1==2);return(w1);}voidinput(inti){printf_face();printf("\t");scanf("%s\t%s\t%s\t%s",peop[i].name,peop[i].company,peop[i].num,peop[i].mail);}voidsave(intn){FILE*fp;inti;if((fp=fopen("file","wb"))==NULL){printf("\nCannotopenfile\n");exit(0);}for(i=0;i<n;i++)if(peop[i].name[0]!='\0')if(fwrite(&peop[i],sizeof(structpeople),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}voidprintf_back(){intw;voidbrowse();voidmenu();printf("\n\n\t^_^.Successful.^_^\n\n");printf("Whatdoyouwanttodo?\n\n\t1).瀏覽所有\(zhòng)t2).返回:[]\b\b");scanf("%d",&w);if(w==1)browse();elsemenu();}voidmain(){voidmenu();menu();}voidmenu(){intn,w1;voidenter();voidadd();voidmodify();voidbrowse();voiddeleter();voidsearch();do{printf("\n");printf("\n");printf("*********************************\n");printf("*CommunicatebyLetterRecordingManagementSystem*\n");printf("*1.AddRecord*\n");printf("*2.DisplayList*\n");printf("*3.SearchByName*\n");printf("*4.DeleteRecord*\n");printf("*5.ReviseRecord*\n");printf("*0.Breaksystem*\n");printf("*********************************\n");printf("Pleaseselect(1,2,3,4,5,0):");scanf("%d",&n);if(n<0||n>5){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;case2:add();break;case3:modify();break;case4:deleter();break;case5:search();break;case0:exit(0);}}voidenter(){inti,n;printf("Howmanypeople(0-%d)?:",N-1);scanf("%d",&n);printf("請(qǐng)輸入數(shù)據(jù):\n");for(i=0;i<n;i++){printf("\n輸入第%d個(gè)記錄.\n",i+1);input(i);}if(i!=0)save(n);printf_back();}voidadd(){inti,n,k,t;n=load();printf("Howmanypeopledoyouwanttoadd(0-%d)?:",N-n-1);scanf("%d",&t);k=n+t;for(i=n;i<k;i++){printf("\n輸入第%d個(gè)記錄.\n",i-n+1);input(i);}save(k);printf_back();}voidmodify(){structpeoples;inti,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();printf_n(n);do{printf("\n\nEnternamethatyouwanttomodify!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1);printf_face();printf_one(k);w1=modify_data(k,n);if(w1==1){printf("\n\t^_^.Successful^_^.\n\n是否繼續(xù)?\n\n\t1).是2).保存返回\t[]\b\b");scanf("%d",&w0);w2=1;}else{w0=0;if(w2==0)peop[k]=s;}if((w0!=1)&&(w2==1))save(n);}while(w0==1);menu();}voidsearch(){intw0,k,i,n,w1,w2;structpeoples;n=load();do{printf("請(qǐng)選擇查找類別:1).姓名2).電話號(hào)碼[]\b\b");scanf("%d",&w1);if(w1<1||w1>2){printf("輸入錯(cuò)誤!請(qǐng)重新輸入!\n");w2=1;}}while(w2==1);if(w1==1){do{k=-1; do{printf("\n\nEnternamethattouwanttosearch!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1); printf_face();printf_one(k);printf("\nWhatdoyouwanttodo?\n\t1).繼續(xù)2).返回菜單[]\b\b");scanf("%d",&w0);}while(w0==1);menu();}else{do{k=-1; do{printf("\n\nEnternumberthattouwanttosearch!\nNum:");scanf("%s",s.num);for(i=0;i<n;i++)if(strcmp(s.num,peop[i].num)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1); printf_face();printf_one(k);printf("\nWhatdoyouwanttodo?\n\t1).繼續(xù)2).返回菜單[]\b\b");scanf("%d",&w0);}while(w0==1);menu();}}voiddeleter(){structpeoples;inti,n,k,w0,w1;n=load();do{k=-1;printf_face();printf_n(n);do{printf("\n\nEnternamethatyouwanttodelete!\nName:");scanf("%s",);for(i=0;i<n;i++)if(strcmp(,peop[i].name)==0){k=i;s=peop[i];}if(k==-1)printf("\n\n沒有記錄請(qǐng)重新輸入!");}while(k==-1);printf_face();printf_one(k);printf("\n確定?\n\t1).是2).返回[]\b\b");scanf("%d",&w0);if(w0==1){peop[k].name[0]='\0';save(n);}elsebreak;printf("\n\t^_^.Successful^_^.\n");printf("Whatdoyouwanttodo?\n\t1).繼續(xù)2).返回[]\b\b");scanf("%d",&w1);}while(w1==1);menu();}4、運(yùn)行結(jié)果運(yùn)行后主界面如下圖:建立通訊錄如下圖:5、設(shè)計(jì)總結(jié)通過這段時(shí)間的課程設(shè)計(jì),本人對(duì)計(jì)算機(jī)的應(yīng)用,數(shù)據(jù)結(jié)構(gòu)的作用以及C語言的使用都有了更深的了解。尤其是C語言的進(jìn)步讓我深刻的感受到任何所學(xué)的知識(shí)都需要實(shí)踐,沒有實(shí)踐就無法真正理解這些知識(shí)以及掌握它們,使其成為自己的財(cái)富。在理論學(xué)習(xí)和上機(jī)實(shí)踐的各個(gè)環(huán)節(jié)中,通過自主學(xué)習(xí)和請(qǐng)教老師,我收獲了不少。當(dāng)然也遇到不少的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 修補(bǔ)街道施工方案(3篇)
- 打卡活動(dòng)折紙方案策劃(3篇)
- 公司糕點(diǎn)活動(dòng)策劃方案(3篇)
- 體操特色活動(dòng)方案策劃(3篇)
- 涼亭庭院施工方案(3篇)
- 2025年金融服務(wù)產(chǎn)品銷售與服務(wù)規(guī)范
- 中學(xué)學(xué)生社團(tuán)活動(dòng)經(jīng)費(fèi)保障制度
- 2025年中職應(yīng)急管理(應(yīng)急處置基礎(chǔ))試題及答案
- 2025年大學(xué)心理學(xué)(咨詢心理學(xué))試題及答案
- 2025年大學(xué)大四(物流工程與管理)物流園區(qū)規(guī)劃設(shè)計(jì)綜合試題及答案
- 小學(xué)五年級(jí)上冊(cè)英語(外研一起)期末模擬測(cè)試卷(一)
- 2022浪潮信創(chuàng)服務(wù)器CS5260H2技術(shù)白皮書
- 2020年天津市中考滿分作文《細(xì)品落雨花開》2
- 泵站維修采購合同模板
- 針織學(xué)全套課件
- 冷渣機(jī)漏渣及冒灰原因分析及處理方案 106p
- 2023年巡檢員崗位考試真題模擬匯編(共113題)
- 七下長(zhǎng)江全能學(xué)案
- LZDD-18N 食品安全綜合檢測(cè)儀使用說明書20140530
- 1.罌粟堿-經(jīng)典擴(kuò)血管藥物
- JJG 1162-2019醫(yī)用電子體溫計(jì)
評(píng)論
0/150
提交評(píng)論