手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)-C語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)-C語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)-C語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)-C語(yǔ)言課程設(shè)計(jì)_第4頁(yè)
手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)-C語(yǔ)言課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

手機(jī)通信錄管理系統(tǒng)設(shè)計(jì)[要求]模擬手機(jī)通信錄管理系統(tǒng),實(shí)現(xiàn)對(duì)手機(jī)中的通信錄進(jìn)行管理。功能要求如下:(1)查看功能:選擇此功能時(shí),列出下列三類選擇。辦公類個(gè)人類商務(wù)類當(dāng)選中某類時(shí),顯示出此類全部數(shù)據(jù)中的姓名、電話號(hào)碼和電子郵件。(2)增加功能:能錄入新數(shù)據(jù)。一個(gè)結(jié)點(diǎn)包括:姓名、電話號(hào)碼、分類(辦公類、個(gè)人類、商務(wù)類)、電子郵件。例如:楊**135896********商務(wù)類*****@***。當(dāng)錄入了重復(fù)的姓名和電話號(hào)碼時(shí),則提示數(shù)據(jù)錄入重復(fù)并取消錄入;當(dāng)通信錄中超過(guò)15條信息時(shí),儲(chǔ)存空間已滿,不能再錄入新數(shù)據(jù);;錄入的新數(shù)據(jù)能按遞增的依次自動(dòng)進(jìn)行條目編號(hào)。(3)修改功能:選中某個(gè)人姓名時(shí),可對(duì)此人的相應(yīng)數(shù)據(jù)進(jìn)行修改。(4)刪除功能:選中某個(gè)人的姓名時(shí),可對(duì)此人的相應(yīng)數(shù)據(jù)進(jìn)行刪除,并自動(dòng)調(diào)整后續(xù)條目的編號(hào)?!拘枨蠓治觥?依據(jù)題目要求,由于聯(lián)系人信息時(shí)存放在文件中,所以應(yīng)供應(yīng)文件的輸入、輸出等操作;在程序中須要查看聯(lián)系人信息,應(yīng)供應(yīng)顯示、查看功能;要實(shí)現(xiàn)修改和刪除聯(lián)系人功能,所以應(yīng)供應(yīng)對(duì)文件的修改和刪除操作?!究傮w設(shè)計(jì)】 以下分析整個(gè)系統(tǒng),依據(jù)上面的需求分析,可將這個(gè)系統(tǒng)的設(shè)計(jì)分為四大模塊(如圖一):圖一系統(tǒng)功能模塊圖【具體設(shè)計(jì)】主函數(shù)主函數(shù)設(shè)計(jì)比較簡(jiǎn)潔,僅有一個(gè)語(yǔ)句。 [程序] main()/*******************主函數(shù)********************/{ menu();}主菜單主菜單函數(shù)供應(yīng)用戶對(duì)系統(tǒng)功能的選擇,包括閱讀聯(lián)系人、增加聯(lián)系人、修改聯(lián)系人、刪除聯(lián)系人。該函數(shù)的流程圖如圖二所示。程序如下,這樣編寫的目的在于系統(tǒng)執(zhí)行完每部分模塊后能夠便利返回到系統(tǒng)界面。起先起先顯示一系列功能選項(xiàng)顯示一系列功能選項(xiàng)輸入n,推斷n是否是1-4?輸入n,推斷n是否是1-4?YY依據(jù)n的值調(diào)用各功能模塊函數(shù)依據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束結(jié)束 圖二主菜單流程圖[程序]voidmenu()/******************菜單函數(shù)*****************/{ intn=0,w1; do { puts("\t\t***********************MENU***********************\n\n"); puts("\t\t\t\t1.Browseall"); puts("\t\t\t\t2.Addmembers"); puts("\t\t\t\t3.Modifyinformation"); puts("\t\t\t\t4.Deleteinformation"); puts("\n\n\t\t***************************************************\n"); printf("Chooseyournumber(1-4):[]\b\b"); scanf("%d",&n); if(n<1||n>4) { w1=1; getchar(); } else w1=0; }while(w1==1); switch(n) { case1:browse();break;/*閱讀聯(lián)系人模塊*/ case2:add();break;/*增加聯(lián)系人模塊*/ case3:modify();break;/*修改聯(lián)系人模塊*/ case4:del();break;/*刪除聯(lián)系人模塊*/ }} 3.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)各聯(lián)系人信息包括有姓名、電話號(hào)碼、聯(lián)系人類型、電子郵件。可以運(yùn)用結(jié)構(gòu)體數(shù)組,則姓名、電話、類型和電子郵件作為結(jié)構(gòu)體成員。structmember/*聯(lián)系人結(jié)構(gòu)體*/{ charname[20];/*聯(lián)系人姓名*/ chartel[11];/*聯(lián)系人電話*/ inttype;/*聯(lián)系人類型:1為辦公類;2為個(gè)人類;3為商務(wù)類*/ charemail[30];/*聯(lián)系人電子郵件*/}mem[N];/*N為全局變量,表示能夠儲(chǔ)存的聯(lián)系人數(shù)量*/留意:mem[N]中的N為聯(lián)系人數(shù)目,程序中采納宏定義的方式,可以隨時(shí)在源程序宏定義中修改,本程序宏定義#defineN15.閱讀聯(lián)系人模塊[需求分析]該模塊的功能是運(yùn)用戶可以閱讀或者分類閱讀各聯(lián)系人信息。如圖三所示,當(dāng)用戶輸入1、2、3、4時(shí),分別顯示辦公類聯(lián)系人、個(gè)人類聯(lián)系人、商務(wù)類聯(lián)系人和全部聯(lián)系人。圖三閱讀聯(lián)系人模塊流程圖[程序]voidbrowse()/*********閱讀聯(lián)系人函數(shù)**********/{ intm,n=0,w1; m=load(); do { puts("\n\n\t\t******************BROWSR********************"); puts("\t\t\t\t1.showclericalmembers");/*查詢辦公類聯(lián)系人*/ puts("\t\t\t\t2.showpersonalmembers");/*查詢個(gè)人類聯(lián)系人*/ puts("\t\t\t\t3.showcommercialmembers");/*查詢商務(wù)類聯(lián)系人*/ puts("\t\t\t\t4.showallmembers");/*查詢?nèi)柯?lián)系人*/ puts("\t\t\t\t5.returntomenu");/*返回菜單*/ printf("Chooseyournumber(1-5):[]\b\b"); scanf("%d",&n); if(n<1||n>5) { w1=1; getchar(); } else w1=0; }while(w1==1); if(n==1) { printf_cle(m);/*顯示辦公類聯(lián)系人*/ puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n"); system("pause");/*暫停系統(tǒng)工作*/ getchar(); menu(); } elseif(n==2) { printf_per(m);/*顯示個(gè)人類聯(lián)系人*/ puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n"); system("pause");/*暫停系統(tǒng)工作*/ getchar(); menu(); } elseif(n==3) { printf_com(m);/*顯示商務(wù)類聯(lián)系人*/ puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n"); system("pause");/*暫停系統(tǒng)工作*/ getchar(); menu(); } elseif(n==4) { printf_all(m);/*顯示商務(wù)類聯(lián)系人*/ puts("\ninformationhasbeenshowed,Pressanykeytoreturntomenu\n"); system("pause");/*暫停系統(tǒng)工作*/ getchar(); menu(); } else { menu(); }}增加聯(lián)系人模塊[需求分析]該模塊的功能是運(yùn)用戶實(shí)現(xiàn)增加新聯(lián)系人的功能,從鍵盤輸入新聯(lián)系人信息并加入到原文件中。該模塊流程圖如圖四所示。[程序]voidadd(){ intm,w1,n,t,w2,i,j;/*m為現(xiàn)有聯(lián)系人數(shù)量*/ m=load();/*加載聯(lián)系人信息,并將聯(lián)系人數(shù)量輸入m*/ if(m==N) {運(yùn)行save(int)函數(shù),將信息保存至文件中是否保存?輸入聯(lián)系人姓名、電話、類型、電子郵箱推斷m是否小于N?運(yùn)行m=load()函數(shù),加載現(xiàn)有聯(lián)系人信息起先運(yùn)行save(int)函數(shù),將信息保存至文件中是否保存?輸入聯(lián)系人姓名、電話、類型、電子郵箱推斷m是否小于N?運(yùn)行m=load()函數(shù),加載現(xiàn)有聯(lián)系人信息起先返回至主菜單輸出:儲(chǔ)存空間已滿,無(wú)法輸入 返回至主菜單輸出:儲(chǔ)存空間已滿,無(wú)法輸入YYNNNNYY圖四增加聯(lián)系人模塊流程圖 printf("thereisnoterabytestosave\n");結(jié)束 printf("Pressanykeytoreturntomenu...");結(jié)束 getchar(); system("pause"); menu(); } else { puts("\tpleaseinputcontract'sname:");/*輸入聯(lián)系人姓名*/ scanf("%s",mem[m].name);/*將聯(lián)系人姓名保存至結(jié)構(gòu)體*/ puts("\tpleaseinputcontract'stelephonenumber:"); scanf("%s",mem[m].tel); do/*選擇聯(lián)系人類型語(yǔ)句*/ { puts("\n\n\n\n\npleasechoosecontract'stype:\n\n\n"); puts("1,clerical\t"); puts("2,personal\t"); puts("3mercial\t"); puts("pleasechoosecontract'stype:[]\b\b"); scanf("%d",&n); if((n!=1)&&(n!=2)&&(n!=3)) { w1=1; getchar(); } else w1=0; }while(w1==1); switch(n)/*將聯(lián)系人類型信息存入結(jié)構(gòu)體中*/ { case1:mem[m].type=1;break; case2:mem[m].type=2;break; case3:mem[m].type=3;break; } puts("\tpleaseinputcontract'semailaddress:"); scanf("%s",mem[m].email); } do { puts("Areyousuretosave?1.yes2.no[]\b\b"); scanf("%d",&t); if(t<1||t>2) { w2=1; getchar(); } else w2=0; }while(w2==1); if(t==1) { for(i=0;i<m;i++) { if(strcmp(mem[i].name,mem[m].name)==0) { puts("namehasexisted!cannotsave, Pressanykeytomeun!"); for(j=0;j<20;j++) mem[m].name[j]='\0'; for(j=0;j<11;j++) mem[m].tel[j]='\0'; mem[m].type=0; for(i=0;i<30;i++) mem[m].email[j]='\0'; system("pause"); menu(); } if(strcmp(mem[i].tel,mem[m].tel)==0) { puts("telephonenumberhasexisted!cannotsave, Pressanykeytomenu!"); for(j=0;j<20;j++) mem[m].name[j]='\0'; for(j=0;j<11;j++) mem[m].tel[j]='\0'; mem[m].type=0; for(i=0;i<30;i++) mem[m].email[j]='\0'; system("pause"); menu(); } } save(m);/*保存聯(lián)系人信息至文本文檔*/ puts("informationsaved!\n"); puts("therefollowsalltheinformations:\n"); printf_all(m+1); getchar(); puts("Pressanykeytoreturntomenu"); system("pause"); menu(); } if(t==2)/*假如用戶不保存,則將剛剛存入結(jié)構(gòu)體中的數(shù)據(jù)刪除*/ { for(i=0;i<20;i++) mem[m].name[i]='\0'; for(i=0;i<11;i++) mem[m].tel[i]='\0'; mem[m].type=0; for(i=0;i<30;i++) mem[m].email[i]='\0'; puts("informationnotsaved!\n"); puts("therefollowsalltheinformations:\n"); printf_all(m); getchar(); puts("Pressanykeytoreturntomenu"); system("pause"); menu(); }}修改聯(lián)系人模塊[需求分析]該模塊的功能的功能是顯示全部聯(lián)系人信息。顯示完后,用戶輸入要修改聯(lián)系人的序號(hào),系統(tǒng)依據(jù)用戶輸入的序號(hào)顯示用戶選擇的聯(lián)系人,并提示用戶須要修改哪部分信息,是姓名、電話、類型還是電子郵箱。依據(jù)用戶的選擇修改相應(yīng)的信息。[程序]voidmodify(){ intm,n,t,w1,w2; m=load(); puts("therefollowsalltheinformations:\t"); printf_all(m);/*顯示全部信息,以便用戶確認(rèn)所要修改的信息*/ do { puts("pleaseinputthenumberthatyouwanttomodify,orpress'0'toexit:"); scanf("%d",&n); if(n<0||n>m) { w1=1; getchar(); } else w1=0; }while(w1==1); if(n==0) menu(); printf_one(n); do { puts("\t\t\t\t1,name"); puts("\t\t\t\t2.telephone"); puts("\t\t\t\t3.type"); puts("\t\t\t\t4.email"); puts("\t\t\t\t0.Exit"); puts("choosewhichinformationdoyouwanttomodify,orpress'0'toexit:"); scanf("%d",&t); if(t<0||t>4) { w2=1; getchar(); } else w2=0; }while(w2==1);結(jié)束返回至主菜單調(diào)用相應(yīng)功能模塊輸入t推斷t是否在0~4中n是否等于0依據(jù)n的值調(diào)用相應(yīng)功能模塊推斷n是否在0~15中起先輸入n運(yùn)行m=load()函數(shù),加載現(xiàn)有聯(lián)系人信息,并顯示全部用戶信息結(jié)束返回至主菜單調(diào)用相應(yīng)功能模塊輸入t推斷t是否在0~4中n是否等于0依據(jù)n的值調(diào)用相應(yīng)功能模塊推斷n是否在0~15中起先輸入n運(yùn)行m=load()函數(shù),加載現(xiàn)有聯(lián)系人信息,并顯示全部用戶信息NNYYNNYYNNYY圖五修改聯(lián)系人模塊流程圖 if(t==1) modify_name(n,m);/*修改姓名函數(shù),n為要修改的聯(lián)系人編號(hào);m為總聯(lián)系人數(shù)*/ if(t==2) modify_tel(n,m);/*修改電話函數(shù),n為要修改的聯(lián)系人編號(hào);m為總聯(lián)系人數(shù)*/ if(t==3) modify_type(n,m);/*修改類型函數(shù),n為要修改的聯(lián)系人編號(hào);m為總聯(lián)系人數(shù)*/ if(t==4) modify_email(n,m);/*修改Email函數(shù),n為要修改的聯(lián)系人編號(hào);m為總聯(lián)系人數(shù)*/ if(t==0) menu();} 刪除聯(lián)系人模塊[需求分析]該模塊首先顯示現(xiàn)有全部聯(lián)系人,顯示完成后,用戶輸入要?jiǎng)h除的聯(lián)系人序號(hào)。刪除方式是將數(shù)據(jù)從結(jié)構(gòu)體中刪除,然后將后面的記錄向前移。刪除之后將記錄保存至文件中。[程序]voiddel(){ intm,n,w1,w2,t,i; m=load(); puts("therefollowsalltheinformations:\t"); printf_all(m); do { puts("pleaseinputthenumberthatyouwanttodelete:[]\b\b"); scanf("%d",&n); if(n<0||n>m) { w1=1; getchar(); } else w1=0; }while(w1==1); do/*用dowhile語(yǔ)句限制用戶的輸入,運(yùn)用戶只能輸入1或者2*/ { puts("youwanttodeletethisinformation:"); printf_one(n); puts("\nAreyousuretodelete?1,yes2,no"); scanf("%d",&t);起先起先運(yùn)行m=load();加載現(xiàn)有聯(lián)系人信息;并顯示全部聯(lián)系人信息運(yùn)行m=load();加載現(xiàn)有聯(lián)系人信息;并顯示全部聯(lián)系人信息輸入要?jiǎng)h除的聯(lián)系人序號(hào)n輸入要?jiǎng)h除的聯(lián)系人序號(hào)n推斷0推斷0﹤n≤m是否成立NNYY顯示用戶要?jiǎng)h除的聯(lián)系人的全部信息顯示用戶要?jiǎng)h除的聯(lián)系人的全部信息用戶是否確認(rèn)用戶是否確認(rèn)刪除NNYY刪除數(shù)據(jù),并運(yùn)行move函數(shù),將刪除位置后面的數(shù)據(jù)前移刪除數(shù)據(jù),并運(yùn)行move函數(shù),將刪除位置后面的數(shù)據(jù)前移運(yùn)行save函數(shù),將信息保存至文件中運(yùn)行save函數(shù),將信息保存至文件中返回至主菜單返回至主菜單結(jié)束結(jié)束圖六刪除聯(lián)系人模塊 if(t<1||t>2) { w2=1; getchar(); } else w2=0; }while(w2==1); if(t==2) { puts("informationnotdeleted!Pressanykeytobacktomenu\n"); getchar(); system("pause"); menu(); } if(t==1) { for(i=0;i<20;i++) mem[n-1].name[i]='\0'; for(i=0;i<11;i++) mem[n-1].tel[i]='\0'; mem[n-1].type=0; for(i=0;i<30;i++) mem[n-1].email[i]='\0'; move(n,m); puts("informationdeleted!Pressanykeytobacktomenu\n"); getchar(); system("pause"); menu(); }}公共函數(shù)一下為各模塊中可能用到的一些公共函數(shù)。加載聯(lián)系人信息函數(shù):intload()[說(shuō)明] 該函數(shù)用于將文件中的數(shù)據(jù)加載至結(jié)構(gòu)體中,并且可以返回現(xiàn)有聯(lián)系人的數(shù)目。[程序]intload(){ FILE*fp; inti,j; if((fp=fopen("E:\\vcprogrammes\\members.txt","rb"))==NULL)/*以只讀方式打開一個(gè)二進(jìn)制文件*/ { printf("\ncannotfindinformation"); } for(i=0;(!feof(fp))&&(i<N);i++) fread(&mem[i],sizeof(structmember),1,fp);/*將文件中的數(shù)據(jù)加載至結(jié)構(gòu)體中*/ fclose(fp);/*關(guān)閉文件*/ for(j=0;((strcmp(mem[j].name,"\0"))!=0)&&(j<N);j++);/*通過(guò)檢測(cè)聯(lián)系人姓名否為空來(lái)推斷聯(lián)系人數(shù)量*/ return(j);/*返回現(xiàn)有聯(lián)系人數(shù)量*/}保存全部聯(lián)系人函數(shù):voidsave(intm)[說(shuō)明]該函數(shù)形參m表示現(xiàn)有結(jié)構(gòu)體中最終一個(gè)元素的下標(biāo)。該函數(shù)主體如下[程序]voidsave(intm)/*m表示現(xiàn)有結(jié)構(gòu)體中最終一個(gè)元素的下標(biāo)*/{ if(m==0)/*當(dāng)m=0,即只有一個(gè)元素時(shí),進(jìn)入save_1函數(shù),對(duì)文件進(jìn)行只寫操作*/ save_1(); else { save_1();/*當(dāng)m>0時(shí),首先進(jìn)入save_1函數(shù),新建一個(gè)文件,同時(shí)把mem[0]的數(shù)據(jù)保存;然后進(jìn)入save_2函數(shù),將mem[1]到mem[m]的數(shù)據(jù)追加至文件中*/ save_2(m); }}該包含兩個(gè)子函數(shù):voidsave_1()和voidsave_2(intm),當(dāng)結(jié)構(gòu)體中只有一個(gè)元素,即m=0時(shí),只執(zhí)行第一個(gè)函數(shù),新建一個(gè)文件并將數(shù)據(jù)存入文件中;假如結(jié)構(gòu)體中多于一個(gè)元素,即m>0時(shí),首先執(zhí)行第一個(gè)函數(shù)新建一個(gè)文件,然后執(zhí)行其次個(gè)函數(shù),將結(jié)構(gòu)體中下標(biāo)大于0的數(shù)據(jù)存入文件中。[程序]voidsave_1(){ FILE*fp; if((fp=fopen("E:\\vcprogrammes\\members.txt","wb"))==NULL) { printf("\ncannotfindinformation"); } fwrite(&mem[0],sizeof(structmember),1,fp); fclose(fp);}[程序]voidsave_2(intm){ inti; FILE*fp; if((fp=fopen("E:\\vcprogrammes\\members.txt","ab"))==NULL) { printf("\ncannotfindinformation"); } for(i=1;i<=m;i++) fwrite(&mem[i],sizeof(structmember),1,fp); fclose(fp);}顯示全部聯(lián)系人函數(shù):voidprintf_all(intm)[說(shuō)明]形參m表示現(xiàn)有聯(lián)系人的數(shù)目。用以限制輸出聯(lián)系人的數(shù)量。該函數(shù)用于輸出全部的聯(lián)系人信息。[程序]voidprintf_all(intm){ inti; printf("\n\n\t\tallthecontractsasfollows:"); printf("\n\nNO.nametelephonetypeemail\n"); for(i=0;i<m;i++)/*推斷聯(lián)系人類別并輸出*/ { if(mem[i].type==1) printf("%2d%-20s%-11sclerical%-30s\n",i+1,mem[i].name,mem[i].tel,mem[i].email); if(mem[i].type==2) printf("%2d%-20s%-11spersonal%-30s\n",i+1,mem[i].name,mem[i].tel,mem[i].email); if(mem[i].type==3) printf("%2d%-20s%-11scommercial%-30s\n",i+1,mem[i].name,mem[i].tel,mem[i].email); }}顯示辦公類聯(lián)系人函數(shù):voidprintf_cle(intm)[說(shuō)明]形參m表示現(xiàn)有聯(lián)系人數(shù)目。用以限制循環(huán)終點(diǎn)。該函數(shù)用于輸出全部辦公類聯(lián)系人信息。[程序]voidprintf_cle(intm){ inti; printf("\n\n\t\tclericalcontractsasfollows:"); printf("\n\nnametelephonetypeemail\n"); for(i=0;i<m;i++) if(mem[i].type==1)/*推斷聯(lián)系人是否屬于辦公類*/ printf("%-20s%-11sclerical%-30s\n",mem[i].name,mem[i].tel,mem[i].email);}(5)顯示個(gè)人類聯(lián)系人函數(shù):voidprintf_per(intm)[說(shuō)明]形參m表示現(xiàn)有聯(lián)系人數(shù)目。用以限制循環(huán)終點(diǎn)。該函數(shù)用于輸出全部個(gè)人聯(lián)系人信息。[程序]voidprintf_per(intm){ inti; printf("\n\n\t\tpersonalcontractsasfollows:"); printf("\n\nnametelephonetypeemail\n"); for(i=0;i<m;i++) if(mem[i].type==2)/*推斷聯(lián)系人是否屬于個(gè)人類*/ printf("%-20s%-11spersonal%-30s\n",mem[i].name,mem[i].tel,mem[i].email);}(6)顯示商務(wù)類聯(lián)系人函數(shù):voidprintf_com(intm)[說(shuō)明]形參m表示現(xiàn)有聯(lián)系人數(shù)目。用以限制循環(huán)終點(diǎn)。該函數(shù)用于輸出全部商務(wù)類聯(lián)系人信息。[程序]voidprintf_com(intm){ inti; printf("\n\n\t\tcommercialcontractsasfollows:"); printf("\n\nnametelephonetypeemail\n"); for(i=0;i<m;i++) if(mem[i].type==3)/*推斷聯(lián)系人是否屬于商務(wù)類*/ printf("%-20s%-11scommercial%-30s\n",mem[i].name,mem[i].tel,mem[i].email);}(7)顯示某一聯(lián)系人函數(shù):voidprintf_one(intm)[說(shuō)明]形參m表示現(xiàn)有聯(lián)系人數(shù)目。用以限制循環(huán)終點(diǎn)。該函數(shù)用于輸出某一指定聯(lián)系人信息。[程序]voidprintf_one(intm){ printf("nametelephonetypeemail\n"); if(mem[m-1].type==1)/*三個(gè)if語(yǔ)句推斷聯(lián)系人類型*/ printf("%-20s%-11sclerical%-30s\n",mem[m-1].name,mem[m-1].tel,mem[m-1].email); if(mem[m-1].type==2) printf("%-20s%-11spersonal%-30s\n",mem[m-1].name,mem[m-1].tel,mem[m-1].email); if(mem[m-1].type==3) printf("%-20s%-11scommercial%-30s\n",mem[m-1].name,mem[m-1].tel,mem[m-1].email);}(8)修改姓名函數(shù):voidmodify_name(intn,intm)[說(shuō)明]該函數(shù)用于修改聯(lián)系人姓名。形參n為用戶輸入的要修改的聯(lián)系人序號(hào);m表示現(xiàn)有聯(lián)系人數(shù)量。[程序]voidmodify_name(intn,intm){ charmod_name[20];/*用于暫存用戶輸入的更改后的聯(lián)系人姓名*/ inti,t,w1; puts("pleaseinputthenewname:"); scanf("%s",mod_name); do { puts("Areyousuretosave?1.yes2.no[]\b\b"); scanf("%d",&t); if(t<1||t>2) { w1=1; getchar(); } else w1=0; }while(w1==1); if(t==1)/*當(dāng)用戶輸入1,即確認(rèn)修改時(shí),將原來(lái)存在結(jié)構(gòu)體中聯(lián)系人的姓名刪除,并將新的聯(lián)系人姓名賦到結(jié)構(gòu)體中*/ { for(i=0;i<20;i++) mem[n-1].name[i]='\0'; strcpy(mem[n-1].name,mod_name); save(m-1); puts("savedsuccessfully!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); } if(t==2) { for(i=0;i<20;i++) mod_name[i]='\0'; puts("informationnotsaved!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); }}(9)修改電話函數(shù):voidmodify_tel(intn,intm)[說(shuō)明]該函數(shù)用于修改聯(lián)系人電話。形參n為用戶輸入的要修改的聯(lián)系人序號(hào);m表示現(xiàn)有聯(lián)系人數(shù)量。[程序]voidmodify_tel(intn,intm){ charmod_tel[11]; inti,t,w1; puts("pleaseinputthenewtelephonenumber:"); scanf("%s",mod_tel); do { puts("Areyousuretosave?1.yes2.no[]\b\b"); scanf("%d",&t); if(t<1||t>2) { w1=1; getchar(); } else w1=0; }while(w1==1); if(t==1) { for(i=0;i<11;i++) mem[n-1].tel[i]='\0'; strcpy(mem[n-1].tel,mod_tel); save(m-1); puts("savedsuccessfully!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); } if(t==2) { for(i=0;i<11;i++) mod_tel[i]='\0'; puts("informationnotsaved!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); }}(10)修改聯(lián)系人類型函數(shù):voidmodify_type(intn,intm)[說(shuō)明]該函數(shù)用于修改聯(lián)系人電話。形參n為用戶輸入的要修改的聯(lián)系人序號(hào);m表示現(xiàn)有聯(lián)系人數(shù)量。[程序]voidmodify_type(intn,intm){ intt1,t2,w1; do/*用dowhile語(yǔ)句限制用戶的輸入,運(yùn)用戶只能輸入1—3*/ { puts("\t\t\t\t1,clerical"); puts("\t\t\t\t2,personal"); puts("\t\t\t\t3mercial"); puts("\t\t\t\tpleasechoosethetype:[]\b\b"); scanf("%d",&t1); if(t1<1||t1>3) { w1=1; getchar(); } else w1=0; }while(w1==1); do { puts("Areyousuretosave?1.yes2.no[]\b\b"); scanf("%d",&t2); if(t2<1||t2>2) { w1=1; getchar(); } else w1=0; }while(w1==1); if(t2==1)/*當(dāng)用戶確認(rèn)保存時(shí),t2的值為1,修改后的數(shù)據(jù)保存至結(jié)構(gòu)體中,運(yùn)行save函數(shù)后保存在文件中*/ { mem[n-1].type=t1; save(m-1); puts("savedsuccessfully!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); } if(t2==2)/*當(dāng)用戶確認(rèn)不保存時(shí),t2值為2,用戶輸入的修改信息被清空*/ { t1=0; puts("informationnotsaved!Pressanykeytocontinue..."); getchar(); system("pause"); modify(); }}(11)修改email函數(shù):voidmodify_email(intn,intm)[說(shuō)明]該函數(shù)用于修改聯(lián)系人電話。形參n為用戶輸入的要修改的聯(lián)系人序號(hào);m表示現(xiàn)有聯(lián)系人數(shù)量。[程序]voidmodify_email(intn,intm){ charmod_email[30]; inti,t,w1; puts("pleaseinputthenewemail:"); scanf("%s",mod_email); do { puts("Areyousureto

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論