c語言課程設(shè)計(jì)(通信管理系統(tǒng)).doc_第1頁
c語言課程設(shè)計(jì)(通信管理系統(tǒng)).doc_第2頁
c語言課程設(shè)計(jì)(通信管理系統(tǒng)).doc_第3頁
c語言課程設(shè)計(jì)(通信管理系統(tǒng)).doc_第4頁
c語言課程設(shè)計(jì)(通信管理系統(tǒng)).doc_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

課程設(shè)計(jì)報(bào)告正文1、 目的:1)對C各部分知識的綜合應(yīng)用能力2)提高程序設(shè)計(jì)的能力3)提升對于較大程序的抽象分析設(shè)計(jì)能力4)學(xué)習(xí)調(diào)試和測試的技巧2、所做題目的意義:通訊錄管理系統(tǒng)在當(dāng)今這個信息發(fā)達(dá)的社會是必不可少的,這個通訊錄管理系統(tǒng)可以方便的為我們添加、管理聯(lián)系人,不必一定要記住這些龐大的信息,可以很方便的調(diào)用出自己所需要的信息,隨時(shí)的修改這些信息,這些在這個時(shí)代是非常的必要的。3、 本人所作的工作:(1)、寫出了預(yù)習(xí)報(bào)告。從圖書館搜集了些這方面的資料(2)、想好思路,寫出了程序代碼(3)、調(diào)試程序,找出其中的錯誤,最終成功的運(yùn)行出程序(4)、寫出課程設(shè)計(jì)報(bào)告4、系統(tǒng)的主要功能: 該系統(tǒng)的是一個小型的通訊系統(tǒng),它具有一般的通訊系統(tǒng)都具有的功能該程序具有查找、添加、修改、刪除功能,其中通訊錄包括:姓名,電話,街道,城市,省,郵編。5、系統(tǒng)的總體設(shè)計(jì):系統(tǒng)的基本要求和內(nèi)容:該系統(tǒng)要求具有查找,添加,修改,刪除功能,其中通訊錄包括:姓名、電話,街道,城市,省,郵編。但在實(shí)際設(shè)計(jì)中增加了一項(xiàng),那就是末尾添加,可以在已有的記錄末尾再次添加,不必每次都重新添加,方便用戶描繪及繪制出系統(tǒng)的功能結(jié)構(gòu)框圖、程序設(shè)計(jì)組成框圖,流程圖等:此系統(tǒng)共分為九大模塊,分別為以下的模塊:第一模塊:主函數(shù)main()的功能是:根據(jù)選單的選項(xiàng)調(diào)用各函數(shù),并完成相應(yīng)的功能。第二模塊:quitRec()的功能是:退出選單。第三模塊:createRec()的功能是:創(chuàng)建新的通訊錄。第四模塊:addRec()的功能是:在通訊錄的末尾寫入新的信息,并返回選單。第五模塊:findRec()的功能是:查詢某人的信息,如果找到了,則顯示該人的信息,如果未找到,則提示通訊錄中沒有此人的信息,并返回選單。第六模塊:alterRec()的功能是:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回。第七模塊:deleteRec()的功能是:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。第八模塊:listRec()的功能是顯示通訊錄中的所有記錄。第九模塊:saveRec() 的功能是保存某人的信息在某一文件夾里。以上九大模塊為此通信系統(tǒng)的就大基本模塊,用此模塊設(shè)計(jì)可以清楚表明通信管理系統(tǒng)程序的功能、格局,可以用以下組成框圖來表示:(1)系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)和數(shù)據(jù)變量說明主菜單主函數(shù)輸入創(chuàng)建信息末尾寫入查詢信息修改信息刪除信息顯示記錄保存信息退出系統(tǒng) (2)功能模塊說明:(1)、主函數(shù)輸入模塊開始輸入ii=1i=2i=3查詢通訊錄創(chuàng)建通訊錄添加通訊錄i=4i=5I=6輸入錯誤刪除通訊錄退出通訊錄修改通訊錄(2)quitRec函數(shù)模塊 (3)createRec函數(shù)模塊開始保存記錄嗎保存返回主函數(shù)返回主函數(shù)清屏輸入返回主程序開始(4)addRec函數(shù)模塊 (5)findRec函數(shù)模型開始輸入想在哪個數(shù)列后面加i=-1返回主函數(shù)輸入新數(shù)據(jù)保存返回主函數(shù)開始輸入姓名Str=未找到該聯(lián)系人顯示數(shù)據(jù)返回主函數(shù) (7)、deleteRec函數(shù)模型開始輸入名字刪除數(shù)據(jù)返回主函數(shù)(6)、alterRec函數(shù)模型開始輸入數(shù)列顯示數(shù)據(jù)輸入數(shù)據(jù)返回主函數(shù) (8)、listRec函數(shù)模型 (9)、saveRec函數(shù)模型開始打開文件寫入數(shù)據(jù)退出主函數(shù)開始輸入序列號輸出數(shù)據(jù)返回主函數(shù) (3)、詳細(xì)設(shè)計(jì)模塊功能說明: 第一模塊:主函數(shù)main()的功能是:根據(jù)選單的選項(xiàng)調(diào)用各函數(shù),并完成相應(yīng)的功能。第二模塊:quitRec()的功能是:退出選單。第三模塊:createRec()的功能是:創(chuàng)建新的通訊錄。第四模塊:addRec()的功能是:在通訊錄的末尾寫入新的信息,并返回選單。第五模塊:findRec()的功能是:查詢某人的信息,如果找到了,則顯示該人的信息,如果未找到,則提示通訊錄中沒有此人的信息,并返回選單。第六模塊:alterRec()的功能是:修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回。第七模塊:deleteRec()的功能是:刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。第八模塊:listRec()的功能是顯示通訊錄中的所有記錄。第九模塊:saveRec() 的功能是保存某人的信息在某一文件夾里。在所有的函數(shù)中,main()函數(shù)數(shù)入口函數(shù),用戶輸入數(shù)據(jù)進(jìn)行整個程序的執(zhí)行,整個函數(shù)的出口是qiut()函數(shù),每一個函數(shù)執(zhí)行完畢后都要退到主函數(shù)中,基本每個輸入、改動或者是刪除的函數(shù)都要調(diào)用保存函數(shù),而主函數(shù)調(diào)動所有的函數(shù)。(4)、調(diào)試與測試:在此次的課程設(shè)計(jì)中,做困難的一部分便是調(diào)試與測試這部分了,在此次調(diào)試中最開始是符號標(biāo)點(diǎn)的問題,有許多都沒注意,最終還是慢慢的把這些錯誤調(diào)試出來了;還有一種錯誤便是庫函數(shù)的問題,在此次調(diào)試中,發(fā)現(xiàn)有許多別的軟件里的庫函數(shù)在此軟件中不能用,最終還是通過再次編寫被調(diào)用函數(shù)來實(shí)現(xiàn)了預(yù)期的功能;此外,在函數(shù)的調(diào)試中,還發(fā)現(xiàn)一種問題,在所繪的表格中,無法對齊表格,經(jīng)過調(diào)試,移動表格的位置來實(shí)現(xiàn)了表格的工整;還有,在測試中,發(fā)現(xiàn)原本應(yīng)該在兩個頁面的數(shù)據(jù)在同一個頁面中顯示出來了,經(jīng)過分析,認(rèn)為這是由于沒有清屏的結(jié)果,加上清屏后,問題終于解決了。(5)、運(yùn)行結(jié)果:1、主菜單:2、 創(chuàng)建新數(shù)據(jù):首先輸入創(chuàng)建的序號“2”,會進(jìn)入以下這個界面: 輸入數(shù)據(jù)后然后會依次出現(xiàn)下面的條目:,最后返回到先前的主菜單3、 查找數(shù)據(jù):按了“1”以后,會出現(xiàn)以下菜單:會提示你輸入要查找的姓名輸入姓名后會出現(xiàn)以下的顯示退出到主菜單;4、 在末尾添加數(shù)據(jù),按了“3”之后,會出現(xiàn)以下: 輸入想要添加的數(shù)列,會出現(xiàn)下面輸入數(shù)據(jù)的界面:按任意鍵退出后,回到主菜單。5、 修改數(shù)據(jù):輸入“4”之后,會出現(xiàn)以下界面輸入位置后,按以下流程輸入數(shù)據(jù)輸入Y之后,再將新的數(shù)據(jù)輸入就行了6、 刪除數(shù)據(jù):按下“5”后,會出現(xiàn)這個顯示輸入姓名后,會刪除數(shù)據(jù)并保存已存的結(jié)果。7、 退出數(shù)據(jù),按下“6”以后會退出,并提示是否保存數(shù)據(jù)8、 載入數(shù)據(jù):按下“7”后這個可以載入以前保存的數(shù)據(jù),9.保存數(shù)據(jù):按下“8”后,可以保存數(shù)據(jù)以備下次再用(6)源程序 #include#include#include#include#include#include#includevoid showTable1();void showTable2(int);void findRec(); void createRec();void addRec();void saveRec();void alterRec();void deleteRec();void quit();void LoadRec();void listRec();int search(char*,int,int);void gotoxy(int x,int y) CONSOLE_SCREEN_BUFFER_INFO csbiInfo; HANDLE hConsoleOut; hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo); csbiInfo.dwCursorPosition.X=x; csbiInfo.dwCursorPosition.Y=y; SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition); char *mulu= *通訊管理系統(tǒng)*, 1.查找 , 2.創(chuàng)建 , 3.添加 , 4.修改 , 5.刪除 , 6.退出 , 7.載入 , 8.保存 , ;typedef struct sl char no20;char name10;char score10; char street10;char city10;char province10;char postcode10;TONGXUN;int muluxuanze();int JILUSHU=0;TONGXUN records1000;void main() system(cls); gotoxy(2,20);for(;)switch(muluxuanze() case 1:findRec();break; /*查詢通訊錄*/ case 2:createRec();break; /*創(chuàng)建通訊錄*/ case 3:addRec();break; /*添加通訊錄*/ case 4:alterRec();break; /*修改通訊錄*/ case 5:deleteRec();break; /*刪除通訊錄*/ case 6:quit(); /*退出通訊錄*/ case 7:LoadRec();break; /*載入通訊錄*/case 8:saveRec();break; /*保存通訊錄*/int muluxuanze()int i; for(i=0;i10;i+)gotoxy(10,i+1);cprintf(%s,mului); printf(n);printf(請輸入要做的選項(xiàng)數(shù)字(1-8):);scanf(%d,&i);return(i);void showTable1() /*表頭一*/system(cls);gotoxy(10,2);printf(*具體數(shù)據(jù)*);gotoxy(1,3);printf(n);gotoxy(1,4);printf( 數(shù)目 姓名 電話 街道 城市 省 郵編 n);gotoxy(1,5);printf(n);void showTable2(int n) /*表頭二*/if (n=0)n=1;if(JILUSHU=0)n=-1;gotoxy(1,6+n);printf(n); void quit() /*退出*/char str5;gotoxy(22,18);printf(保存記錄嗎?(Y/N);scanf(%s,str);if(str0=Y|str0=y)saveRec();exit(0);void createRec() /*創(chuàng)建通訊錄*/int i,sum;system(cls); printf(請輸入要添加的通訊記錄數(shù)目:);scanf(%d,&JILUSHU);for(i=0;iJILUSHU;i+)system(cls);sum=0;gotoxy(20,5);printf(Please input %d number,i+1); gotoxy(20,6);printf(輸入序號:);scanf(%10s,recordsi.no); gotoxy(20,7);printf(輸入姓名:);scanf(%10s,);gotoxy(20,8);printf(輸入電話:);scanf(%10s,recordsi.score);gotoxy(20,9);printf(輸入街道:);scanf(%10s,recordsi.street);gotoxy(20,10);printf(輸入城市:);scanf(%10s,recordsi.city);gotoxy(20,11);printf(輸入省:);scanf(%10s,vince);gotoxy(20,12);printf(輸入郵編:);scanf(%10s,recordsi.postcode); printf(請按任意鍵返回!);getch(); system(cls);void listRec() /*顯示所有通訊錄*/int i=0;showTable1();printf(輸入所查數(shù)據(jù)的序號:);scanf(%d,&JILUSHU);for(i=0;iJILUSHU;i+)gotoxy(1,6+i);printf( %10s%10s%10s%10s%10s%10s%10sn,recordsi.no,,recordsi.score,recordsi.street,recordsi.city,vince,recordsi.postcode); showTable2(i);printf(請按任意鍵返回!);getch();void saveRec() /*保存通訊記錄*/FILE *fp1,*fp2;if(fp1=fopen(e:cc.txt,wb)=NULL)printf(不能打開這個文件);exit(1); if(fp2=fopen(e:cc1.txt,wb)=NULL)printf(不能打開這個文件);exit(1); printf(n保存文件n); fwrite(&JILUSHU,sizeof(JILUSHU),1,fp1); fwrite(records,sizeof(records),JILUSHU,fp2); fclose(fp1);fclose(fp2); printf(n文件保存成功!n);Sleep(1000); printf(n請按任意鍵退出n); getch(); system(cls);void LoadRec() /*載入通訊記錄*/FILE *fp1,*fp2;if(fp1=fopen(e:cc.txt,rb)=NULL)printf(不能打開這個文件);exit(1); if(fp2=fopen(e:cc1.txt,rb)=NULL)printf(不能打開這個文件);exit(1); printf(n載入文件n); fread(&JILUSHU,sizeof(JILUSHU),1,fp1); fread(records,sizeof(records),JILUSHU,fp2); fclose(fp1);fclose(fp2); printf(n文件載入成功!n);Sleep(1000); printf(n請按任意鍵退出n); getch(); system(cls);void findRec() /*查詢通訊記錄*/char str20;int i,j;system(cls);printf(請輸入您要找的人的姓名:);scanf(%s,str); for(j=0,i=0;jJILUSHU;j+)if(strcmp(str,)=0)showTable1();printf( %10s%10s%10s%10s%10s%10s%10sn,recordsi.no,,recordsj.score,recordsj.street,recordsj.city,vince,recordsj.postcode); printf(n);showTable2(i);break;else printf(未找到該聯(lián)系人);printf(Press any key to return!);getch(); system(cls);void deleteRec() /*刪除通訊記錄*/int i,j;char str20;system(cls);printf(請輸入您想刪除的人的姓名:);scanf(%s,str); for(i=0;iJILUSHU;i+)if(strcmp(str,)=0)for(j=i;jJILUSHU;j+)recordsj=recordsj+1;else printf(沒有找到該聯(lián)系人);JILUSHU-;saveRec(); system(cls);int search(char*target,int tarType,int from)int i;for(i=from;iJILUSHU;i+)if(tarType=1&strcmp(target,recordsi.no)=0)|tarType=2&strcmp(target,recordsi.no)=0)return(i);return(-1);void alterRec() /*修改通訊錄*/int i,j;char no20,str8;system(cls);printf(請輸入你想要修改的數(shù)據(jù)位置數(shù):);scanf(%d,no);i=search(no,1,0);showTable1();printf(n);printf( %10s%10S%10s%10s%10s%10s%10s,recordsi.no,,recordsi.score,recordsi.street,recordsi.city,vince,recordsi.postcode); printf( n);gotoxy(10,10);printf(你想要修改這些數(shù)據(jù)嗎(Y/N):);scanf(%s,str);if(str0=y|str0=Y) system(cls);printf(輸入序號:);scanf(%10s,recordsi.no); printf(輸入姓名:);scanf(%10s,); printf(輸入電話:);scanf(%10s,recordsi.score); printf(輸入街道:);scanf(%10s,recordsi.street); printf(輸入城市:);scanf(%10s,recordsi.city); printf(輸入省:);scanf(%10s,vince); printf(輸入郵編:);scanf(%10s,recordsi.postcode); saveRec();printf(請按任意鍵返回!);getch(); system(cls);void addRec() /*在通訊錄的末尾加上新的信息*/int i,sum=0;char str8;for(;

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論