個人通訊錄管理(c語言課程設(shè)計)_第1頁
個人通訊錄管理(c語言課程設(shè)計)_第2頁
個人通訊錄管理(c語言課程設(shè)計)_第3頁
個人通訊錄管理(c語言課程設(shè)計)_第4頁
個人通訊錄管理(c語言課程設(shè)計)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

/XX工業(yè)大學(xué)《C語言課程設(shè)計》實習(xí)綜合報告課題名稱:個人通訊錄管理系統(tǒng)實習(xí)成員:王剛學(xué)號:109074372專業(yè)班級:網(wǎng)絡(luò)工程103班指導(dǎo)教師:鄭嘯老師目錄一.問題描述……………..2TOC\o"1-3"\h\u二.各功能流程圖與設(shè)計思路…………..32.1顯示模塊……….……32.2查找模塊……………4..2.3添加模塊…………..…62.4刪除模塊………..……82.5修改模塊…………..…9三、文件的讀取與保存…….11四、程序源代碼……….……12五、調(diào)試與運行結(jié)果…….…18六、計算機(jī)學(xué)院課程設(shè)計評定意見……….24一.問題描述設(shè)計通訊錄包含以下功能:<1>通訊錄的每一條信息包括姓名、單位、固定電話、移動手機(jī)、分類〔如同事、朋友、同學(xué)、家人等、EMAIL、QQ等。<2>輸入功能:可以一次完成若干條信息的輸入。<3>顯示功能:完成全部通訊錄信息的顯示。<4>查找功能:可以按姓名等多種方式查找通訊信息。<5>增加、刪除、修改功能:完成通訊錄信息的多種更新。二.各功能流程圖與設(shè)計思路Menu菜單:開始開始菜單menu顯示查找增加刪除修改保存結(jié)束運用switch〔進(jìn)行操作:case'1':顯示功能,list〔函數(shù)開始For開始For循環(huán)輸出信息結(jié)束YN代碼如下://*****************顯示通訊錄中的內(nèi)容*************voidlist<>{printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;for<i=0;i<m;i++>{if<rec[i].name[0]>{printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;}}printf<"\t\t\tEND\n">;}case'2':查找功能,search〔函數(shù)開始輸入查找的姓名或開始輸入查找的姓名或編號For語句循環(huán)IfStrcmp==0輸出相關(guān)信息結(jié)束YNNY代碼如下://*****************查找聯(lián)系人的信息********************voidsearch<>{charxm[10];charch;intd;printf<"→1.按姓名查找\n">;printf<"→2.按編號查找\n">;printf<"請選擇...\n">;ch=getchar<>;getchar<>;switch<ch>{case'1':printf<"輸入查找的姓名\n">;gets<xm>;for<i=0;i<m;i++> {if<strcmp<xm,rec[i].name>==0> {printf<"\t\t\t☆☆☆☆☆這是您需要查找的聯(lián)系人的信息☆☆☆☆☆\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break;} }if<i==m> printf<"\t\t\t☆☆☆☆☆通訊錄中沒有您要查找的聯(lián)系人☆☆☆☆☆\n">;break;case'2':printf<"輸入查找的編號\n">; scanf<"%d",&d>;for<i=0;i<m;i++> {if<d==rec[i].num> {printf<"\t\t☆☆☆☆☆這是您需要查找的聯(lián)系人的信息☆☆☆☆\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break; } }if<i==m> printf<"\t\t\t☆☆☆☆☆通訊錄中沒有您要查找的聯(lián)系人☆☆☆☆☆\n">;break;default:printf<"輸入錯誤??!">;}getchar<>;}case'3':增加功能,app〔函數(shù)開始開始輸入信息判斷是否繼續(xù)添加結(jié)束YN說明:按照屏幕的提示,依次輸入要添加聯(lián)系人的各項信息,并保存到結(jié)構(gòu)體當(dāng)中,輸入完成后,提示是否繼續(xù)添加,若是,則進(jìn)入循環(huán),若否,則結(jié)束。代碼如下://*******************添加聯(lián)系人*******************voidapp<>{charan;puts<"當(dāng)前通訊錄中的內(nèi)容\n">;list<>;do{rec[m].num=m+1;printf<"請按照提示輸入新添加記錄的各項信息\n">;printf<"姓名:">; gets<rec[m].name>; printf<"\n電話:">; gets<rec[m].tel>; printf<"\n手機(jī):">; gets<rec[m].celtel>; printf<"\n工作單位:">; gets<rec[m].dw>; printf<"\nEMAIL:">; gets<rec[m].email>; printf<"\nQQ:">; gets<rec[m].qq>; puts<"\n這是新添加聯(lián)系人的信息!\n">;printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq>; m++;puts<"\t\t\t☆☆☆☆☆新紀(jì)錄輸入完成!☆☆☆☆☆\n">; puts<"☆繼續(xù)添加嗎?<y/n>">; an=getchar<>; getchar<>;}while<an=='y'>;}case'4':刪除功能,dele〔函數(shù);開始開始輸入要刪除的記錄號判斷是否存在該信息刪除結(jié)束YN說明:輸入要刪除的編號,判斷是否存在,若不存在就要重新輸入,若存在,則利用循環(huán)進(jìn)行刪除操作,從要刪除的編號開始,逐個由后一項往前一項覆蓋。代碼如下://*****************刪除聯(lián)系人的記錄********************voiddele<>{inta;intn=0;list<>;do{n++;if<n>1> {printf<"沒有此記錄,請重新輸入...\n">;} printf<"刪除幾號記錄?\n">;scanf<"%d",&a>;}while<a>m&&a>0||a<0>;if<a!=m+1> {for<i=a;i<m;i++>{rec[i-1]=rec[i];rec[i-1].num=i;}m--;list<>;printf<"\t\t\t☆☆☆☆☆完成刪除!☆☆☆☆☆\n">;}getchar<>;}case'5':修改功能,correct〔函數(shù);開始開始輸入要修改的記錄號判斷是否存在輸入新信息結(jié)束YN說明:輸入修改的編號,判斷是否存在,若存在則輸出此人初始信息,再按提示輸入修改后的新信息,若不存在,則結(jié)束操作。代碼如下://*******************修改聯(lián)系人的信息*****************voidcorrect<>{charxm[10];boolk=1;list<>;printf<"輸入要修改聯(lián)系人的姓名:">;gets<xm>;for<i=0;i<m;i++>{if<strcmp<xm,rec[i].name>==0>{k=0;printf<"\n這是您要修改聯(lián)系人的初始信息\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;printf<"請輸入修改后的電話號碼:">;gets<rec[i].tel>; printf<"\n請輸入修改后的手機(jī):">; gets<rec[i].celtel>; printf<"\n請輸入修改后的工作單位:">; gets<rec[i].dw>; printf<"\n請輸入修改后的EMAIL:">; gets<rec[i].email>; printf<"\n請輸入修改后的QQ:">; gets<rec[i].qq>;list<>; printf<"\t\t\t☆☆☆☆☆修改完成!☆☆☆☆☆\n">; break;}}if<k>printf<"輸入有誤,通訊錄中沒有此聯(lián)系人信息\n">;}三.文件的讀取與保存讀?。?/***************從文件讀記錄到通訊錄中*****************voidload<>{FILE*fp;if<<fp=fopen<"tongxunlu.txt","rb">>==NULL>{printf<"Can'topenfile\n">;exit<0>;}for<i=0;i<SIZE;i++>{if<fread<&rec[i],sizeof<structrecord>,1,fp>!=1>{if<feof<fp>>break;printf<"Filereaderror!\n">;}rec[i].num=i+1;m++;}list<>;printf<"\t\t\t☆☆☆☆☆讀取成功!☆☆☆☆☆\n">;fclose<fp>;}保存://******************保存通訊錄內(nèi)容到文件中*************voidsave<>{FILE*fp;if<<fp=fopen<"tongxunlu.txt","wb">>==NULL>{printf<"Can'topenfile">;exit<0>;}list<>;for<i=0;i<m;i++> if<fwrite<&rec[i],sizeof<structrecord>,1,fp>!=1> printf<"Filewreteerror!\n">; fclose<fp>; printf<"\t\t\t☆☆☆☆☆保存成功!☆☆☆☆☆\n">;}四.程序源代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#defineSIZE100inti,m=0;//m為當(dāng)前通訊錄中的記錄數(shù)charmenu<>;//選單voidlist<>;//顯示voidsearch<>;//查找voidapp<>;//增加voiddele<>;//刪除voidcorrect<>;//修改voidsave<>;//保存voidload<>;//讀入structrecord//結(jié)構(gòu)體包含的聯(lián)系人信息{intnum;//在通訊錄中的編號charname[10];//聯(lián)系人姓名chartel[12];//聯(lián)系人電話號碼charceltel[12];//聯(lián)系人手機(jī)號碼chardw[20];//聯(lián)系人工作單位charemail[20];//聯(lián)系人郵箱charqq[12];//聯(lián)系人QQ}rec[SIZE];voidmain<>{charchoice;charan;while<1>{choice=menu<>;switch<choice> {case'1':printf<"顯示通訊錄中的內(nèi)容\n">; list<>;break; case'2':printf<"查找聯(lián)系人\n">; search<>;break; case'3':printf<"增加聯(lián)系人記錄\n">; app<>;break; case'4':printf<"刪除記錄\n">; dele<>;break;case'5':printf<"修改聯(lián)系人信息\n">; correct<>;break; case'6':printf<"保存通訊錄到TXT文件\n">; save<>;break;case'7':printf<"從TXT文件中讀取記錄\n">; load<>;break;case'8':printf<"即將退出通訊錄管理系統(tǒng)...\n">;printf<"是否保存剛才進(jìn)行的操作y/n?\n">;an=getchar<>; if<an=='y'> {save<>;} printf<"<按任意鍵退出>">; break;default:printf<"輸入錯誤?。?>; } if<choice=='8'>break; printf<"\n按任意鍵返回\n">;getchar<>;}}//*********************菜單**********************charmenu<>{charc;printf<"☆歡迎使用☆\n\n">;printf<"*************簡易通訊錄*************\n">;printf<"☆1.顯示通訊錄\n">;printf<"☆2.查找聯(lián)系人\n">;printf<"☆3.增加聯(lián)系人\n">;printf<"☆4.刪除聯(lián)系人\n">;printf<"☆5.修改通訊錄\n">;printf<"☆6.保存到文件\n">;printf<"☆7.從文件讀取\n">;printf<"☆8.退出此系統(tǒng)\n">;printf<"************************************\n">;printf<"\n請選擇………\n\n">;c=getchar<>;getchar<>;returnc;}//*****************顯示通訊錄中的內(nèi)容*************voidlist<>{printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;for<i=0;i<m;i++>{if<rec[i].name[0]>{printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;}}printf<"\t\t\tEND\n">;}//*******************添加聯(lián)系人*******************voidapp<>{charan;puts<"當(dāng)前通訊錄中的內(nèi)容\n">;list<>;do{rec[m].num=m+1;printf<"請按照提示輸入新添加記錄的各項信息\n">;printf<"姓名:">; gets<rec[m].name>; printf<"\n電話:">; gets<rec[m].tel>; printf<"\n手機(jī):">; gets<rec[m].celtel>; printf<"\n工作單位:">; gets<rec[m].dw>; printf<"\nEMAIL:">; gets<rec[m].email>; printf<"\nQQ:">; gets<rec[m].qq>; puts<"\n這是新添加聯(lián)系人的信息!\n">;printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[m].num,rec[m].name, rec[m].tel,rec[m].celtel,rec[m].dw,rec[m].email,rec[m].qq>; m++;puts<"\t\t\t☆☆☆☆☆新紀(jì)錄輸入完成!☆☆☆☆☆\n">; puts<"☆繼續(xù)添加嗎?<y/n>">; an=getchar<>; getchar<>;}while<an=='y'>;}//*****************查找聯(lián)系人的信息********************voidsearch<>{charxm[10];charch;intd;printf<"→1.按姓名查找\n">;printf<"→2.按編號查找\n">;printf<"請選擇...\n">;ch=getchar<>;getchar<>;switch<ch>{case'1':printf<"輸入查找的姓名\n">;gets<xm>;for<i=0;i<m;i++> {if<strcmp<xm,rec[i].name>==0> {printf<"\t\t\t☆☆☆☆☆這是您需要查找的聯(lián)系人的信息☆☆☆☆☆\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break;} }if<i==m> printf<"\t\t\t☆☆☆☆☆通訊錄中沒有您要查找的聯(lián)系人☆☆☆☆☆\n">;break;case'2':printf<"輸入查找的編號\n">; scanf<"%d",&d>;for<i=0;i<m;i++> {if<d==rec[i].num> {printf<"\t\t☆☆☆☆☆這是您需要查找的聯(lián)系人的信息☆☆☆☆\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>; break; } }if<i==m> printf<"\t\t\t☆☆☆☆☆通訊錄中沒有您要查找的聯(lián)系人☆☆☆☆☆\n">;break;default:printf<"輸入錯誤?。?>;}getchar<>;}//*****************刪除聯(lián)系人的記錄********************voiddele<>{inta;intn=0;list<>;do{n++;if<n>1> {printf<"沒有此記錄,請重新輸入...\n">;} printf<"刪除幾號記錄?\n">;scanf<"%d",&a>;}while<a>m&&a>0||a<0>;if<a!=m+1> {for<i=a;i<m;i++>{rec[i-1]=rec[i];rec[i-1].num=i;}m--;list<>;printf<"\t\t\t☆☆☆☆☆完成刪除!☆☆☆☆☆\n">;}getchar<>;}//*******************修改聯(lián)系人的信息*****************voidcorrect<>{charxm[10];boolk=1;list<>;printf<"輸入要修改聯(lián)系人的姓名:">;gets<xm>;for<i=0;i<m;i++>{if<strcmp<xm,rec[i].name>==0>{k=0;printf<"\n這是您要修改聯(lián)系人的初始信息\n\n">; printf<"編號姓名電話\t手機(jī)\t工作單位\tEMAIL\t\tQQ\n">;printf<"%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq>;

溫馨提示

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

最新文檔

評論

0/150

提交評論