C語(yǔ)言課程設(shè)計(jì)-通訊錄管理系統(tǒng)的設(shè)計(jì)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)-通訊錄管理系統(tǒng)的設(shè)計(jì)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)-通訊錄管理系統(tǒng)的設(shè)計(jì)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)-通訊錄管理系統(tǒng)的設(shè)計(jì)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)-通訊錄管理系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

學(xué)號(hào)20511912226武漢理工大學(xué)華夏學(xué)院課程設(shè)計(jì)課程名稱C語(yǔ)言課程設(shè)計(jì)題目通訊錄管程序設(shè)計(jì)專業(yè)信息工程系班級(jí)軟件1121姓名成績(jī)_________________指導(dǎo)教師_________________年月日至年月日課程設(shè)計(jì)任務(wù)書學(xué)生姓名:專業(yè)班級(jí):軟件1121指導(dǎo)教師:工作單位:設(shè)計(jì)題目:通訊錄管理程序設(shè)計(jì)要求完成的主要任務(wù):任務(wù)描述設(shè)計(jì)一個(gè)管理通訊錄的程序。完成:1、數(shù)據(jù)的插入、刪除、修改和顯示功能;2、實(shí)現(xiàn)按人名或電話號(hào)碼進(jìn)行查詢的功能;3、提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。提示:信息記錄要求放到文件中,因而要實(shí)現(xiàn)文件的輸入輸出操作,整個(gè)系統(tǒng)可以設(shè)計(jì)為多模塊結(jié)構(gòu),由數(shù)據(jù)插入模塊、數(shù)據(jù)修改模塊、數(shù)據(jù)刪除模塊、數(shù)據(jù)顯示模塊和數(shù)據(jù)查詢模塊組成。本課程涉及的知識(shí)點(diǎn)變量的定義、輸入和輸出函數(shù)、結(jié)構(gòu)體類型的定義、結(jié)構(gòu)體數(shù)組、循環(huán)語(yǔ)句、選擇語(yǔ)句,文件的操作等。3.要求完成的任務(wù)=1\*GB2⑴完成整個(gè)規(guī)定任務(wù)的設(shè)計(jì)及調(diào)試,最后得出正確結(jié)果,并經(jīng)教師檢查及答辯;=2\*GB2⑵寫出規(guī)范的課程設(shè)計(jì)報(bào)告,在設(shè)計(jì)思想描述時(shí)一定要畫出程序算法流程圖;=3\*GB2⑶課程設(shè)計(jì)結(jié)束后交設(shè)計(jì)說(shuō)明書等文檔和設(shè)計(jì)內(nèi)容:=4\*GB2⑷從2月17日起,學(xué)生每天至少要到設(shè)計(jì)教室半天以上;設(shè)計(jì)報(bào)告撰寫格式要求:設(shè)計(jì)報(bào)告的主要內(nèi)容是詳細(xì)寫出在設(shè)計(jì)過(guò)程中所用到的主要技術(shù)或方法;課程設(shè)計(jì)報(bào)告按通用格式書寫,具體要求見資料:“課程設(shè)計(jì)說(shuō)明書的書寫內(nèi)容與格式”時(shí)間安排:第一天:學(xué)生先在實(shí)驗(yàn)室集中,由指導(dǎo)教師介紹課程設(shè)計(jì)的目的、布置任務(wù)后選題;第二天-第四天:學(xué)生在實(shí)驗(yàn)室完成設(shè)計(jì),經(jīng)教師檢查并回答提問,確認(rèn)設(shè)計(jì)完成;第五天:教師在計(jì)算機(jī)上先檢查設(shè)計(jì)報(bào)告、學(xué)生修改后打印提交指導(dǎo)教師簽字:2014年5月16日系主任簽字:2014年5月16日設(shè)計(jì)題目:通訊錄管理程序設(shè)計(jì)問題描述通過(guò)該系統(tǒng)實(shí)現(xiàn)對(duì)通訊錄信息進(jìn)行錄入、顯示、修改、保存等操作的管理。二、算法提示2.1數(shù)據(jù)結(jié)構(gòu):結(jié)構(gòu)體類型數(shù)組2.2數(shù)據(jù)庫(kù)結(jié)構(gòu):下表構(gòu)成該系統(tǒng)的基本數(shù)據(jù)庫(kù)。三、需求分析1、本系統(tǒng)采用一個(gè)包含N個(gè)數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:編號(hào)、姓名、電話號(hào)碼、地址。2、本系統(tǒng)顯示這樣的菜單:請(qǐng)選擇系統(tǒng)功能項(xiàng):a.通訊信息錄入b.通訊信息顯示c.通訊信息保存d.通訊信息刪除e.通訊信息查詢(1)按姓名查詢(2)按電話號(hào)碼查詢f.通訊信息修改g.退出系統(tǒng)3、執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示菜單。4、將通訊信息保存到文件中。四、概要設(shè)計(jì)編寫一個(gè)通訊錄管理系統(tǒng)的程序,完成通訊錄的添加、顯示、修改、刪去、查詢功能。整個(gè)程序分為多模塊結(jié)構(gòu),即:數(shù)據(jù)插入模塊、數(shù)據(jù)修改模塊、數(shù)據(jù)刪除模塊、數(shù)據(jù)顯示模塊和數(shù)據(jù)查詢模塊組成。模塊流程圖如圖所示:4.1系統(tǒng)模塊結(jié)構(gòu)圖如圖4-1所示。添加添加開始主菜單顯示刪除查詢修改保存退出結(jié)束圖4-14.2添加名片的流程圖,如圖4-2所示。i=0i=0Sign!=’n’&&sign!=’N’輸入信息Return(n+i)YN開始結(jié)束圖4-24.3顯示名片信息流程圖,如圖4-3所示。IIntI;i=1i<n+1輸出I++YN開始結(jié)束圖4-34.4刪除名片流程圖,如圖4-4所示刪除刪除的名字是否有此人通訊錄中沒有此人刪除記錄NY結(jié)束開始圖4-44.5查找是否有給名片的流程圖,如圖4-5所示。姓名或電話姓名或電話是否存在通訊錄中沒有此人顯示此人記錄NY結(jié)束開始圖5-54.6修改名片流程圖,如圖4-6所示。結(jié)束開始要修改的名字是否存在結(jié)束開始要修改的名字是否存在通訊錄中沒有此人依次輸入修改的內(nèi)容NY4.7保存名片的流程圖,如圖4-7所示。存入信息存入信息結(jié)束開始要保存到的文件名是否存在N無(wú)法打開文件Y圖4-7五、調(diào)試結(jié)果與分析5.1添加名片截圖如圖5-1所示。圖5-15.2修改名片截圖如圖5-2所示。圖5-25.3刪除名片截圖如圖5-3所示。圖5-35.4信息輸出截圖如圖5-4所示。圖5-45.5查找名片截圖如圖5-5所示。圖5-55.6退出系統(tǒng)界面如圖5-6所示。圖5-6六、總結(jié)與體會(huì)由于是轉(zhuǎn)專業(yè)學(xué)生,所以現(xiàn)在補(bǔ)考c語(yǔ)言課程計(jì),由于時(shí)間比較緊,任務(wù)比較繁重,在短短的兩天時(shí)間內(nèi),邊上課邊做實(shí)在很趕。所以在設(shè)計(jì)的過(guò)程中,一直出現(xiàn)低級(jí)錯(cuò)誤。同時(shí)也出現(xiàn)了很多疑問,在設(shè)計(jì)的過(guò)程中,讓我對(duì)c語(yǔ)言有了更深刻的任何,彌補(bǔ)了對(duì)于當(dāng)時(shí)沒能上到c語(yǔ)言課程錯(cuò)過(guò)的很多知識(shí)!運(yùn)用《C語(yǔ)言》中的算法思想作數(shù)據(jù)結(jié)構(gòu),結(jié)合C語(yǔ)言基本知識(shí),編寫一個(gè)通訊錄管理系統(tǒng)。通過(guò)完成本課題,進(jìn)一步熟悉C語(yǔ)言的基本知識(shí),并掌握數(shù)據(jù)結(jié)構(gòu)的一些基本算法思想,掌握C語(yǔ)言的文件操作(包括從磁盤讀入和向磁盤寫入內(nèi)容),進(jìn)一步熟悉指針的用法,數(shù)組的建立運(yùn)用和函數(shù)的調(diào)用等。七、參考文獻(xiàn)詹春華,楊沙·C語(yǔ)言程序設(shè)計(jì)教程·北京·科學(xué)出版社,2011年8月#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{puts("\t************************菜單************************");puts("\t\t*******************1.新建聯(lián)系人*******************");puts("\t\t*******************2.添加聯(lián)系人*******************");puts("\t\t*******************3.修改*******************");puts("\t\t*******************4.刪除*******************");puts("\t\t*******************5.瀏覽*******************");puts("\t\t*******************6.查找*******************");puts("\t\t*******************7.退出*******************");puts("\n\n\t********************通訊錄*********************");printf("請(qǐng)選擇服務(wù)種類(1-7):[]\b\b");scanf("%d",&n);if(n<1||n>7){w1=1;getchar();}elsew1=0;}while(w1==1);switch(n){case1:enter();break;case2:add();break;case3:modify();break;case4:deleter();break;case5:browse();break;case6:search();break;case7: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();}voidbrowse(){intn;n=load();printf_face();printf_n(n);printf("\t共有%d記錄.\n",n);printf("\nPressanykeytoback...");getchar();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);

溫馨提示

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