數(shù)據(jù)結(jié)構(gòu)通訊錄管理_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)通訊錄管理_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)通訊錄管理_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)通訊錄管理_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)通訊錄管理_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

一、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)目標(biāo)《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)專業(yè)一門重要的專業(yè)技術(shù)基礎(chǔ)課程,是一門關(guān)鍵性核心課程?!稊?shù)據(jù)結(jié)構(gòu)》課程的目標(biāo)是使學(xué)生學(xué)會(huì)分析研究計(jì)算機(jī)加工對(duì)象的特性,選擇合適的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)表示,以及編制相應(yīng)的實(shí)現(xiàn)算法,培養(yǎng)和提高學(xué)生程序設(shè)計(jì)的能力?!稊?shù)據(jù)結(jié)構(gòu)》課程也是一門實(shí)踐性較強(qiáng)的課程,設(shè)置實(shí)踐環(huán)節(jié)是十分重要的。本課程設(shè)計(jì)的目標(biāo)就是要達(dá)到理論與實(shí)際應(yīng)用相結(jié)合,提高學(xué)生組織數(shù)據(jù)及編寫大型程序的能力,并培養(yǎng)基本的、良好的程序設(shè)計(jì)技能以及合作能力。二、問題描述編寫一個(gè)簡(jiǎn)單的通訊錄管理程序。通訊錄記錄有姓名、地址、電話號(hào)碼、電子郵箱等4項(xiàng)。三、需求分析1、要求:1)添加:增加一個(gè)人的記錄到通訊錄中;2)顯示:在屏幕上顯示所以通訊錄中的人員信息,應(yīng)能分屏顯示;3)存儲(chǔ):將通訊錄信息保存在一個(gè)文件中;4)裝入:即將文件中的信息讀入程序;5)查詢:可根據(jù)姓名查找某人的相關(guān)信息,若找到顯示其姓名、地址、電話號(hào)碼、電子郵箱;6)修改:可修改一個(gè)人的除姓名之外的其他信息;2、詳細(xì)功能如下:A.插入:系統(tǒng)將提示用戶輸入新添加學(xué)生信息,學(xué)生信息數(shù)據(jù)包括姓名、性別、地址、編號(hào)、電話等。B.查詢:提示用戶輸入要查找的學(xué)生姓名,然后系統(tǒng)用查找函數(shù)查找,接著系統(tǒng)使用相關(guān)命令輸出所查找的學(xué)生的全部信息。C.刪除:首先提示用戶輸入要?jiǎng)h除的學(xué)生姓名,然后調(diào)用刪除函數(shù),刪除該學(xué)生的所有相關(guān)資料。D.輸出后退出系統(tǒng),退出通訊錄管理系統(tǒng)。四、概要設(shè)計(jì)顯示所有聯(lián)系人1、通訊錄管理系統(tǒng)功能說(shuō)明圖:顯示所有聯(lián)系人通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)添加名片信息刪除名片信息顯示名片信息導(dǎo)入名片信息查詢名片信息修改名片信息保存名片信息退出通訊錄2、設(shè)計(jì)結(jié)構(gòu)體及基本數(shù)據(jù)成員類型:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structrecord{charnum[10],name[20],tel[20],address[40],unit[10],email[30];}stu[500];intpc=0;FILE*fp;voidmainmenu();//主菜單voidnewrecord();//新名片voidsearchbyname();//按姓名查詢voidsearchbynum();//按編號(hào)查詢voidshowall();//顯示所有voidreadfromfile();//讀取文件voidwritetofile();//寫入文件voiddeletebynum();//按編號(hào)刪除voiddeletebyname();//按姓名刪除voidmodifybynum();//按編號(hào)修改voidmodifybyname();//按姓名修改3、實(shí)現(xiàn)主程序與各模塊的調(diào)用關(guān)系:voidmainmenu()//主菜單{charchoic;system("cls");printf("\n\t\t********************主菜單********************");printf("\n\t\t***********0-新添名片1-全部顯示************");printf("\n\t\t***********2-按編號(hào)查詢3-按姓名查詢************");printf("\n\t\t***********4-按姓名刪除5-按編號(hào)刪除************");printf("\n\t\t***********6-按姓名修改7-按編號(hào)修改************");printf("\n\t\t***********8-保存退出9-不保存退出***********");printf("\n\t\t************************************************");printf("\n\t\t請(qǐng)選擇:");choic=getch();switch(choic){case'0':newrecord();break;case'1':showall();break;case'2':searchbynum();break;case'3':searchbyname();break;case'4':deletebyname();break;case'5':deletebynum();break;case'6':modifybyname();break;case'7':modifybyname();break;case'8':writetofile();break;case'9':exit(0);default:mainmenu();}}五、詳細(xì)設(shè)計(jì)各個(gè)操作的算法:1、導(dǎo)入名片信息:voidmain(){readfromfile();while(1){mainmenu();}}voidreadfromfile()//從文件導(dǎo)入{if((fp=fopen("stu.txt","rb"))==NULL){printf("\n\t\t通訊錄文件不存在");if((fp=fopen("stu.txt","wb"))==NULL){printf("\n\t\t建立失敗");exit(0);}else{printf("\n\t\t通訊錄文件已建立");printf("\n\t\t按任意鍵進(jìn)入菜單");getch();return;}exit(0);}fseek(fp,0,2);/*文件位置指針移動(dòng)到文件末尾*/if(ftell(fp)>0)/*文件不為空*/{rewind(fp);/*文件位置指針移動(dòng)到文件開始位置*/for(pc=0;!feof(fp)&&fread(&stu[pc],sizeof(structrecord),1,fp);pc++);printf("\n\t\t文件導(dǎo)入成功");printf("\n\t\t按任意鍵返回菜單");getch();return;}printf("\n\t\t文件導(dǎo)入成功");printf("\n\t\t通訊錄文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}2、刪除名片信息:voiddeletebyname()//按姓名刪除{inta=0;intfindmark=0;intj;intdeletemark=0;inti;charname[20];printf("\n\t\t請(qǐng)輸入要?jiǎng)h除的姓名:");scanf("%s",name);for(i=a;i<pc;i++){if(strcmp(stu[i].name,name)==NULL){printf("\n\t\t以下是您要?jiǎng)h除的名片紀(jì)錄:");findmark++;printf("\n\t\t________________________________");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\temail:%s",stu[i].email);printf("\n\t\t________________________________");printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<pc-1;j++)/*紀(jì)錄移動(dòng),從stud數(shù)組中刪除之*/stu[j]=stu[j+1];pc--;deletemark++;printf("\n\t\t刪除成功");if((i+1)<pc){printf("\n\t\t是否繼續(xù)刪除相同姓名的名片信息?(y/n)");if(getch()=='y'){a=i;continue;}}printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebyname();return;}if((i+1)<pc){printf("\n\t\t是否繼續(xù)刪除相同姓名的名片信息?(y/n)");if(getch()=='y'){a=i;continue;}}}elsecontinue;}if((deletemark==0)&&(findmark==0)){printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;return;}elseif(findmark!=0){printf("\n\t\t沒有重名信息");printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;return;}}voiddeletebynum()//按編號(hào)刪除{inti,j;intdeletemark=0;charnum[20];printf("\n\t\t請(qǐng)輸入要?jiǎng)h除的名片編號(hào):");scanf("%s",num);if(pc==0){printf("\n\t\t文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}for(i=0;i<pc;i++){if(strcmp(stu[i].num,num)==NULL){printf("\n\t\t以下是您要?jiǎng)h除的名片紀(jì)錄:");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\temail:%s",stu[i].email);printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<pc-1;j++)/*紀(jì)錄移動(dòng),從stud數(shù)組中刪除之*/stu[j]=stu[j+1];pc--;deletemark++;printf("\n\t\t刪除成功");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;}elsereturn;}continue;}if(deletemark==0){printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;}}3、添加名片信息:voidnewrecord()//添加新名片{printf("\n\t\t****************請(qǐng)輸入名片信息****************\n");printf("\n\t\t輸入編號(hào):");scanf("%s",&stu[pc].num);printf("\n\t\t輸入姓名:");scanf("%s",&stu[pc].name);printf("\n\t\t輸入電話號(hào)碼:");scanf("%s",&stu[pc].tel);printf("\n\t\t輸入地址:");scanf("%s",&stu[pc].address);printf("\n\t\t輸入單位:");scanf("%s",&stu[pc].unit);printf("\n\t\t輸入email:");scanf("%s",&stu[pc].email);pc++;printf("\n\t\t是否繼續(xù)添加?(y/n):");if(getch()=='y')newrecord();return;}4、顯示名片信息:voidshowall()//顯示所有名片{inti;system("cls");if(pc!=0){printf("\n\t\t***************以下為通訊錄所有信息************");for(i=0;i<pc;i++){printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\t單位:%s",stu[i].unit);printf("\n\t\temail:%s",stu[i].email);printf("\t\t");if(i+1<pc){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************");}elseprintf("\n\t\t通訊錄中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單:");getch();return;}5、查詢名片信息:voidsearchbyname()//按姓名查詢{intmark=0;inti;inta=0;printf("\n\t\t*****************按姓名查找*******************");charname[20];printf("\n\t\t請(qǐng)輸入姓名:");scanf("%s",name);for(i=a;i<pc;i++){if(strcmp(stu[i].name,name)==0){printf("\n\t\t*************以下是您查找的名片信息***********");printf("\n\t\t學(xué)號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t************************************************");mark++;if((i+1)<pc){printf("\n\t\t是否繼續(xù)查找相同名字的名片信息:(y/n)");if(getch()=='y'){a=i;continue;}elsereturn;}else{printf("\n\t\t按任意鍵返回菜單");getch();return;}}}if(mark!=0){printf("\n\t\t沒有相同姓名的學(xué)生紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}else{printf("\n\t\t沒有相同姓名的名片紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}}voidsearchbynum()//按編號(hào)查詢{intmark=0;inti;inta=0;printf("\n\t\t******************按編號(hào)查找******************\n");charnum[10];printf("\n\t\t請(qǐng)輸入編號(hào):");scanf("%s",num);for(i=0;i<pc;i++){if(strcmp(stu[i].num,num)==0){printf("\n\t\t**************以下是您查找的名片信息**********");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;}}if(mark==0){printf("\n\t\t沒有改名片的信息");printf("\n\t\t按任意鍵返回主菜單");getch();return;}}6、修改名片信息:voidmodifybyname(){intmark=0;inti;inta=0; intj; intfindmark=0; intdeletemark=0;printf("\n\t\t*****************按姓名修改*******************");charname[20];printf("\n\t\t請(qǐng)輸入姓名:");scanf("%s",name);for(i=a;i<pc;i++){if(strcmp(stu[i].name,name)==0) { printf("\n\t\t*************以下是您修改的名片信息***********");printf("\n\t\t學(xué)號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t************************************************"); } printf("請(qǐng)輸入要修改的內(nèi)容:");for(j=i;j<pc-1;j++)stu[j]=stu[j+1];pc--;deletemark++;printf("\n\t\t輸入編號(hào):");scanf("%s",&stu[pc].num);printf("\n\t\t輸入姓名:");scanf("%s",&stu[pc].name);printf("\n\t\t輸入電話號(hào)碼:");scanf("%s",&stu[pc].tel);printf("\n\t\t輸入地址:");scanf("%s",&stu[pc].address);printf("\n\t\t輸入單位:");scanf("%s",&stu[pc].unit);printf("\n\t\t輸入email:");scanf("%s",&stu[pc].email);pc++; printf("\n\t\t是否繼續(xù)修改?(y/n):");if(getch()=='y')modifybyname; return; }}voidmodifybynum(){intmark=0;inti;inta=0; intj; intfindmark=0; intdeletemark=0;printf("\n\t\t******************按編號(hào)修改******************\n");charnum[10];printf("\n\t\t請(qǐng)輸入編號(hào):");scanf("%s",num);for(i=0;i<pc;i++){if(strcmp(stu[i].num,num)==0){ printf("\n\t\t**************以下是您修改的名片信息**********");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t************************************************"); } printf("請(qǐng)輸入要修改的內(nèi)容:"); { for(j=i;j<pc-1;j++)stu[j]=stu[j+1];pc--;deletemark++; }printf("\n\t\t輸入編號(hào):");scanf("%s",&stu[pc].num);printf("\n\t\t輸入姓名:");scanf("%s",&stu[pc].name);printf("\n\t\t輸入電話號(hào)碼:");scanf("%s",&stu[pc].tel);printf("\n\t\t輸入地址:");scanf("%s",&stu[pc].address);printf("\n\t\t輸入單位:");scanf("%s",&stu[pc].unit);printf("\n\t\t輸入email:");scanf("%s",&stu[pc].email);pc++; printf("\n\t\t是否繼續(xù)修改?(y/n):");if(getch()=='y')modifybynum(); return; }}六、軟件說(shuō)明書1、運(yùn)行環(huán)境:MicrosoftVisualC++6.02、操作步驟:在此,把軟件使用過程寫出,并對(duì)此程序的一些細(xì)節(jié)和具體的操作方法加以說(shuō)明,說(shuō)明如下:將軟件進(jìn)行初始化,即在VC++6.0中運(yùn)行該程序,進(jìn)入程序主界面,如下:(1)根據(jù)你要添加的學(xué)生人數(shù)開始創(chuàng)建通訊錄,按照系統(tǒng)給您的提示依次輸入學(xué)生信息,再根據(jù)提示進(jìn)行查找、刪除、顯示、修改、退出等操作。(2)輸入2或3,按Enter鍵進(jìn)入查找功能,根據(jù)提示輸入要查找的名字,有這個(gè)名字的話,就會(huì)顯示您所需要的學(xué)生的所有相關(guān)信息。如果沒有則會(huì)提示信息:您要查找的學(xué)生信息不存在?。?)輸入4或5,按Enter鍵進(jìn)入刪除功能,根據(jù)提示輸入要?jiǎng)h除的名字,有這個(gè)名字的話,就會(huì)直接進(jìn)行刪除,并提示按需求刪除成功。如果沒有則會(huì)提示信息:您要?jiǎng)h除的學(xué)生信息不存在!如果覺得刪除不放心,可以再按照名字查找一下?。?)輸入6或7,按Enter鍵進(jìn)入修改功能,根據(jù)提示輸入要修改的名字,有這個(gè)名字的話,就會(huì)直接進(jìn)行修改,并提示按需求修改成功。如果沒有則會(huì)提示信息:您要修改的學(xué)生信息不存在!如果覺得刪除不放心,可以再按照名字查找一下?。?)顯示全部學(xué)生信息,輸入1即可。(6)要退出該程序,輸入是保存文件退出,輸入9是不保存退出。七、測(cè)試報(bào)告1、調(diào)試分析(1)導(dǎo)入名片信息界面:(2)添加名片信息界面:(3)刪除名片信息界面:(4)查找名片信息界面:(5)顯示名片信息界面:(6)修改名片信息界面:2、測(cè)試結(jié)果八、課程設(shè)計(jì)總結(jié)這次的程序?qū)嵲O(shè)計(jì)實(shí)驗(yàn)是對(duì)我們進(jìn)入大學(xué)以來(lái)學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言結(jié)果的一次大檢驗(yàn)。自己動(dòng)手,自己發(fā)現(xiàn)和解決問題。發(fā)現(xiàn)了自己的許多不足。平時(shí)沒有掌握好的知識(shí)在這次實(shí)驗(yàn)中徹底暴露出來(lái),經(jīng)過不斷思考,不斷查閱資料和上機(jī)運(yùn)行,解決其中大部分問題,當(dāng)然還存在一些問題沒有解決。我相信在以后的學(xué)習(xí)能夠解決好它們。但是,收獲還是不小的,我不僅對(duì)C的操作有了進(jìn)一步的掌握,還了解到了程序設(shè)計(jì)的書寫風(fēng)格及其注釋的格式。九、程序源碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structrecord{charnum[10],name[20],tel[20],address[40],unit[10],email[30];}stu[500];intpc=0;FILE*fp;voidmainmenu();//主菜單voidnewrecord();//新名片voidsearchbyname();//按姓名查詢voidsearchbynum();//按編號(hào)查詢voidshowall();//顯示所有voidreadfromfile();//讀取文件voidwritetofile();//寫入文件voiddeletebynum();//按編號(hào)刪除voiddeletebyname();//按姓名刪除voidmodifybynum();//按編號(hào)修改voidmodifybyname();//按姓名修改voidmain(){readfromfile();while(1){mainmenu();}}voidreadfromfile()//從文件導(dǎo)入{if((fp=fopen("stu.txt","rb"))==NULL){printf("\n\t\t通訊錄文件不存在");if((fp=fopen("stu.txt","wb"))==NULL){printf("\n\t\t建立失敗");exit(0);}else{printf("\n\t\t通訊錄文件已建立");printf("\n\t\t按任意鍵進(jìn)入菜單");getch();return;}exit(0);}fseek(fp,0,2);/*文件位置指針移動(dòng)到文件末尾*/if(ftell(fp)>0)/*文件不為空*/{rewind(fp);/*文件位置指針移動(dòng)到文件開始位置*/for(pc=0;!feof(fp)&&fread(&stu[pc],sizeof(structrecord),1,fp);pc++);printf("\n\t\t文件導(dǎo)入成功");printf("\n\t\t按任意鍵返回菜單");getch();return;}printf("\n\t\t文件導(dǎo)入成功");printf("\n\t\t通訊錄文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}voidmainmenu()//主菜單{charchoic;system("cls");printf("\n\t\t********************主菜單********************");printf("\n\t\t***********0-新添名片1-全部顯示************");printf("\n\t\t***********2-按編號(hào)查詢3-按姓名查詢************");printf("\n\t\t***********4-按姓名刪除5-按編號(hào)刪除************");printf("\n\t\t***********6-按姓名修改7-編號(hào)修改************");printf("\n\t\t***********a-保存退出b-不保存退出***********");printf("\n\t\t************************************************");printf("\n\t\t請(qǐng)選擇:");choic=getch();switch(choic){case'0':newrecord();break;case'1':showall();break;case'2':searchbynum();break;case'3':searchbyname();break;case'4':deletebyname();break;case'5':deletebynum();break;case'6':modifybyname();break; case'7':modifybynum();break;case'a':writetofile();break;case'b':exit(0);default:mainmenu();}}voiddeletebyname()//按姓名刪除{inta=0;intfindmark=0;intj;intdeletemark=0;inti;charname[20];printf("\n\t\t請(qǐng)輸入要?jiǎng)h除的姓名:");scanf("%s",name);for(i=a;i<pc;i++){if(strcmp(stu[i].name,name)==NULL){printf("\n\t\t以下是您要?jiǎng)h除的名片紀(jì)錄:");findmark++;printf("\n\t\t________________________________");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\temail:%s",stu[i].email);printf("\n\t\t________________________________");printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<pc-1;j++)/*紀(jì)錄移動(dòng),從stud數(shù)組中刪除之*/stu[j]=stu[j+1];pc--;deletemark++;printf("\n\t\t刪除成功");if((i+1)<pc){printf("\n\t\t是否繼續(xù)刪除相同姓名的名片信息?(y/n)");if(getch()=='y'){a=i;continue;}}printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebyname();return;}if((i+1)<pc){printf("\n\t\t是否繼續(xù)刪除相同姓名的名片信息?(y/n)");if(getch()=='y'){a=i;continue;}}}elsecontinue;}if((deletemark==0)&&(findmark==0)){printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;return;}elseif(findmark!=0){printf("\n\t\t沒有重名信息");printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;return;}}voiddeletebynum()//按編號(hào)刪除{inti,j;intdeletemark=0;charnum[20];printf("\n\t\t請(qǐng)輸入要?jiǎng)h除的名片編號(hào):");scanf("%s",num);if(pc==0){printf("\n\t\t文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}for(i=0;i<pc;i++){if(strcmp(stu[i].num,num)==NULL){printf("\n\t\t以下是您要?jiǎng)h除的名片紀(jì)錄:");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\temail:%s",stu[i].email);printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<pc-1;j++)/*紀(jì)錄移動(dòng),從stud數(shù)組中刪除之*/stu[j]=stu[j+1];pc--;deletemark++;printf("\n\t\t刪除成功");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;}elsereturn;}continue;}if(deletemark==0){printf("\n\t\t沒有該名片的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletebynum();return;}}voidnewrecord()//添加新名片{printf("\n\t\t****************請(qǐng)輸入名片信息****************\n");printf("\n\t\t輸入編號(hào):");scanf("%s",&stu[pc].num);printf("\n\t\t輸入姓名:");scanf("%s",&stu[pc].name);printf("\n\t\t輸入電話號(hào)碼:");scanf("%s",&stu[pc].tel);printf("\n\t\t輸入地址:");scanf("%s",&stu[pc].address);printf("\n\t\t輸入單位:");scanf("%s",&stu[pc].unit);printf("\n\t\t輸入email:");scanf("%s",&stu[pc].email);pc++;printf("\n\t\t是否繼續(xù)添加?(y/n):");if(getch()=='y')newrecord();return;}voidshowall()//顯示所有名片{inti;system("cls");if(pc!=0){printf("\n\t\t***************以下為通訊錄所有信息************");for(i=0;i<pc;i++){printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\t單位:%s",stu[i].unit);printf("\n\t\temail:%s",stu[i].email);printf("\t\t");if(i+1<pc){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************");}elseprintf("\n\t\t通訊錄中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單:");getch();return;}voidsearchbyname()//按姓名查詢{intmark=0;inti;inta=0;printf("\n\t\t*****************按姓名查找*******************");charname[20];printf("\n\t\t請(qǐng)輸入姓名:");scanf("%s",name);for(i=a;i<pc;i++){if(strcmp(stu[i].name,name)==0){printf("\n\t\t*************以下是您查找的名片信息***********");printf("\n\t\t學(xué)號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t***********************************************");mark++;if((i+1)<pc){printf("\n\t\t是否繼續(xù)查找相同名字的名片信息:(y/n)");if(getch()=='y'){a=i;continue;}elsereturn;}else{printf("\n\t\t按任意鍵返回菜單");getch();return;}}}if(mark!=0){printf("\n\t\t沒有相同姓名的學(xué)生紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}else{printf("\n\t\t沒有相同姓名的名片紀(jì)錄");printf("\n\t\t按任意鍵返回菜單");getch();return;}}voidsearchbynum()//按編號(hào)查詢{intmark=0;inti;inta=0;printf("\n\t\t******************按編號(hào)查找******************\n");charnum[10];printf("\n\t\t請(qǐng)輸入編號(hào):");scanf("%s",num);for(i=0;i<pc;i++){if(strcmp(stu[i].num,num)==0){printf("\n\t\t**************以下是您查找的名片信息**********");printf("\n\t\t編號(hào):%s",stu[i].num);printf("\n\t\t姓名:%s",stu[i].name);printf("\n\t\t電話:%s",stu[i].tel);printf("\n\t\t地址:%s",stu[i].address);printf("\n\t\te-mail:%s",stu[i].email);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;}}if(mark==0){printf("\n\t\t沒有改名片的信息");printf("\n\t\t按任意鍵返回主菜單");getch();return;}}voidwritetofile()//寫入文件{inti;if((fp=fopen("stu.txt","wb"))==NULL){printf("\n\t\t文件打開失敗");}for(i=0;i<pc;i++){if(fwrite(&stu[i],sizeof(structrecord),1,fp)!=1){printf("\n\t\t寫入文件錯(cuò)誤!\n");}}fclose(fp);printf("\n\t\t通訊錄文件已保存");printf("\n\t\t按任意鍵退出程序\n\t\t");exit(0);}voidmodifybyname(){intmark=0;inti;inta=0; intj; intfindmark=0; intdeletemark=0;printf("\n\t\t*****************按姓名修改*******************");charname[20];printf("\n\t\t請(qǐng)輸入姓名:");scanf("%

溫馨提示

  • 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)論