![C語言課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第1頁](http://file4.renrendoc.com/view11/M01/06/31/wKhkGWVmIlOAKUItAACnyYfnToc339.jpg)
![C語言課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第2頁](http://file4.renrendoc.com/view11/M01/06/31/wKhkGWVmIlOAKUItAACnyYfnToc3392.jpg)
![C語言課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第3頁](http://file4.renrendoc.com/view11/M01/06/31/wKhkGWVmIlOAKUItAACnyYfnToc3393.jpg)
![C語言課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第4頁](http://file4.renrendoc.com/view11/M01/06/31/wKhkGWVmIlOAKUItAACnyYfnToc3394.jpg)
![C語言課程設(shè)計(jì)-通訊錄管理系統(tǒng)_第5頁](http://file4.renrendoc.com/view11/M01/06/31/wKhkGWVmIlOAKUItAACnyYfnToc3395.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
《C語言課程設(shè)計(jì)》課程設(shè)計(jì)報告題目通訊錄管理系統(tǒng)學(xué)號姓名年級專業(yè)指導(dǎo)教師完成日期年月日安徽師范大學(xué)物理與電子信息學(xué)院CollegeofPhysicsandElectronicInformation,Anhui通訊錄管理系統(tǒng)=1\*CHINESENUM3一、問題描述本程序是非數(shù)值計(jì)算型算法設(shè)計(jì),我設(shè)計(jì)出了通訊錄管理系統(tǒng)的基本功能,并設(shè)計(jì)了簡單的界面。本程序主要考察對自定義函數(shù)的熟悉程度,本程序主要使用的是數(shù)組的相關(guān)操作,包括結(jié)構(gòu)體數(shù)組的輸入、輸出、查找、刪除等。我設(shè)計(jì)的這個通訊錄系統(tǒng)也初步實(shí)現(xiàn)了人員信息的顯示、刪除、查找、修改、添加等必要的功能。=2\*CHINESENUM3二、基本要求每條記錄包括:學(xué)號、姓名、專業(yè)、家庭住址、聯(lián)系電話;能夠?qū)崿F(xiàn)添加、刪除、修改功能;能夠?qū)崿F(xiàn)按學(xué)號、姓名、專業(yè)等內(nèi)容進(jìn)行查找=3\*CHINESENUM3三、系統(tǒng)分析和設(shè)計(jì)【需求分析】根據(jù)題目要求,通訊錄數(shù)據(jù)以文本文件存儲,故應(yīng)提供文件的輸入、輸出等操作;還應(yīng)提供顯示、查找、刪除等操作;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇?!究傮w設(shè)計(jì)】通過對整個系統(tǒng)的分析,根據(jù)上述要求,可以將這個系統(tǒng)的設(shè)計(jì)分為三個模塊(見圖1):文件導(dǎo)入、通訊錄編輯和退出。通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)新建菜單瀏覽菜單修改菜單刪除菜單查找菜單圖1系統(tǒng)功能模塊=4\*CHINESENUM3四、主要流程圖(1)主菜單函數(shù)此函數(shù)功能為提供鍵盤式選擇菜單以調(diào)用不同函數(shù)。其流程如圖2所示。顯示一系列功能選項(xiàng)顯示一系列功能選項(xiàng)輸入n,判斷n是否是1~5?根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開始n圖2主菜單函數(shù)流程圖(2)新建菜單函數(shù)該函數(shù)的功能是用戶需要新建聯(lián)系人記錄,從鍵盤輸入并逐條寫到原來的通訊錄文件中,注意采用新建而不是覆蓋的方式。其流程如圖3所示。開始開始新建聯(lián)系人是否繼續(xù)新建?y/n結(jié)束ny圖3新建函數(shù)流程圖(3)瀏覽菜單函數(shù)此函數(shù)功能為提供瀏覽所有聯(lián)系人記錄。其流程如圖4所示。瀏覽全部聯(lián)系人記錄瀏覽全部聯(lián)系人記錄開始結(jié)束圖4瀏覽模塊流程圖(4)查找菜單函數(shù)此模塊的功能是用戶可根據(jù)姓名或電話號碼查詢聯(lián)系人信息。查詢菜單函數(shù)功能為提供鍵盤式選擇菜單選擇查找方法。其流程如圖5所示。開始開始按姓名查找按號碼查找結(jié)束圖5查找函數(shù)流程圖△按姓名查找函數(shù)其流程如圖6所示。開始開始輸入聯(lián)系人姓名是否找到此記錄?是否查找相同姓名?結(jié)束顯示此記錄提示未找到此記錄ynyn圖6按姓名查找函數(shù)流程圖按電話查找函數(shù)其流程如圖7所示。開始開始輸入聯(lián)系人電話是否找到此記錄?顯示記錄提示未找到結(jié)束圖7按電話查找函數(shù)流程圖(5)刪除函數(shù)此模塊功能為用戶可根據(jù)需要選擇刪除全部或單個聯(lián)系人記錄,且可按姓名或電話刪除單個聯(lián)系人。其流程如圖9所示。△刪除菜單函數(shù)提供鍵盤式選擇菜單以調(diào)用相關(guān)函數(shù)以實(shí)現(xiàn)各功能開始開始刪除全部刪除單個按姓名刪除按電話刪除結(jié)束圖8刪除函數(shù)模塊流程圖(6)文件導(dǎo)入函數(shù)此模塊上導(dǎo)入原文件,若原文件無法打開,則需另行新建。其流程如圖2所示開始開始成功打開文件?新建文件文件導(dǎo)入成功結(jié)束ny圖2文件導(dǎo)入函數(shù)流程圖=5\*CHINESENUM3五、運(yùn)行結(jié)果文件導(dǎo)入成功界面:主菜單函數(shù):新建菜單:瀏覽函數(shù):查找函數(shù):修改函數(shù):刪除函數(shù):【總結(jié)】通過本次課程設(shè)計(jì),我了解掌握了模塊化程序設(shè)計(jì)方法,理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思路和方法。學(xué)習(xí)了利用流程圖表示算法,很大程度上提高了C語言程序設(shè)計(jì)能力。我了解到程序設(shè)計(jì)的過程就是確定就絕問題的詳細(xì)步驟,即流程。而在程序設(shè)計(jì)中理清整個問題的流程很重要,然后再采用逐步細(xì)化的方法實(shí)現(xiàn)整個程序。一個較大的程序,一般不可能一次就設(shè)計(jì)出一個很完善的系統(tǒng)。通常要先設(shè)計(jì)出滿足基本要求的系統(tǒng),然后在測試或使用過程中再不斷完善。對于我這次課程設(shè)計(jì)的作品“通訊錄管理系統(tǒng)beta”,覺得其擁有思路明了,結(jié)構(gòu)清晰,語言簡單易讀等優(yōu)點(diǎn),能流暢運(yùn)行以滿足題目要求。由于時間倉促,缺少大量調(diào)試與優(yōu)化,故此beta版還有很多有待改進(jìn)之處,例如不能識別明顯的輸入錯誤,當(dāng)有重復(fù)記錄時不能自動報警,另外還有界面粗糙等諸多不足,尚待以后日臻完善!【參考書目】譚浩強(qiáng),C程序設(shè)計(jì)教程,清華大學(xué)出版社,2007年趙永哲,李雄飛,戴秀英編著,《C語言程序設(shè)計(jì)》,科學(xué)出版社,2003年夏寬理,趙子正編著,《C語言程序設(shè)計(jì)》,中國鐵道出版社,2006年譚浩強(qiáng)編著,《C程序設(shè)計(jì)》,清華大學(xué)出版社,1991年P(guān)S:源程序#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structrecord{charname[20];charphone[20];charadress[40];charnumber[30];}contact[500];intNO=0;FILE*fp;voidmainmenu();voidnewrecord();voidbrowsemenu();voidsearchmenu();voidsearchname();voidsearchphone();voidmodifymenu();voiddeletemenu();voiddeleteall();voiddeletesingle();voiddeletename();voiddeletephone();intloadfile();voidsavefile();voidmain(){printf("\n\t\t:)歡迎使用通訊錄管理系統(tǒng)beta");printf("\n\t\t~~~~(>_<)~~~~文件導(dǎo)入中……請稍后……\n\n\n\n\n");system("cls");loadfile();while(1){mainmenu();}}voidmainmenu(){charchoice;system("cls");printf("\n\t\t********************主菜單********************");printf("\n\t\t******************1-新建菜單******************");printf("\n\t\t******************2-瀏覽菜單******************");printf("\n\t\t******************3-查找菜單******************");printf("\n\t\t******************4-修改菜單******************");printf("\n\t\t******************5-刪除菜單******************");printf("\n\t\t******************6-退出******************");printf("\n\t\t************************************************");printf("\n\t\t請選擇:");choice=getch();switch(choice){case'1':newrecord();break;case'2':browsemenu();break;case'3':searchmenu();;break;case'4':modifymenu();break;case'5':deletemenu();break;case'6':exit(0);default:mainmenu();}}voidnewrecord(){printf("\n\t\t****************請輸入聯(lián)系人信息****************\n");printf("\n\t\t輸入姓名:");scanf("%s",&contact[NO].name);printf("\n\t\t輸入電話號碼:");scanf("%s",&contact[NO].phone);printf("\n\t\t輸入家庭住址:");scanf("%s",&contact[NO].adress);printf("\n\t\t輸入學(xué)號:");scanf("%s",&contact[NO].number);NO++;savefile();printf("\n\t\t是否繼續(xù)添加?(y/n):");if(getch()=='y')newrecord();return;}voidbrowsemenu(){inti;system("cls");if(NO!=0){printf("\n\t\t***************以下為通訊錄所有信息************");for(i=0;i<NO;i++){printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\t\t");if(i+1<NO){printf("\n\t\t__________________________");system("pause");}}printf("\n\t\t************************************************");}elseprintf("\n\t\t+_+通訊錄中無任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單:");getch();return;}voidsearchmenu(){charchoice;system("cls");printf("\n\t\t*******************查找菜單*******************");printf("\n\t\t*****************1-按姓名查找*****************");printf("\n\t\t*****************2-按電話查找*****************");printf("\n\t\t*****************3-返回主菜單*****************");printf("\n\t\t************************************************");printf("\n\t\t請選擇:");choice=getch();switch(choice){case'1':searchname();break;case'2':searchphone();break;case'3':mainmenu();break;}}voidsearchname(){intmark=0;inti;inta=0;charname[20];printf("\n\t\t*****************按姓名查找*******************");printf("\n\t\t請輸入姓名:");scanf("%s",name);for(i=a;i<NO;i++){if(strcmp(contact[i].name,name)==0){printf("\n\t\t************以下是您查找的聯(lián)系人信息**********");printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;return;}}if(mark==0){printf("\n\t\t沒有該姓名的聯(lián)系人紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}}voidsearchphone(){intmark=0;inti;inta=0;charphone[10];printf("\n\t\t******************按電話查找******************");printf("\n\t\t請輸入電話:");scanf("%s",phone);for(i=0;i<NO;i++){if(strcmp(contact[i].phone,phone)==0){printf("\n\t\t*************以下是您查找的聯(lián)系人信息*********");printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;}}if(mark==0){printf("\n\t\t沒有該聯(lián)系人信息");printf("\n\t\t按任意鍵返回主菜單");getch();return;}}voidmodifymenu(){intmark=0;inti,k;inta=0;intt=0;charchoice;charname[20];structrecordmodify;system("cls");printf("\n\t\t請輸入您要修改的姓名:");scanf("%s",name);for(i=a;i<NO;i++){if(strcmp(contact[i].name,name)==0){k=i;mark=1;modify=contact[i];printf("\n\t\t**********以下是您將修改的聯(lián)系人信息**********");printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t是否繼續(xù)?y/n");if(getch()=='n')modifymenu();else{printf("\n\t\t選擇您要修改的選項(xiàng):");printf("\n\t\t\t(1).姓名"); printf("\n\t\t\t(2).聯(lián)系電話"); printf("\n\t\t\t(3).家庭住址"); printf("\n\t\t\t(4).學(xué)號");printf("\n\t\t\t(5).返回");printf("\n\t\t請選擇:");choice=getch();switch(choice){case'1':printf("姓名:");scanf("%s",contact[i].name);break;case'2':printf("聯(lián)系電話:");scanf("%s",contact[i].phone);break;case'3':printf("家庭住址:");scanf("%s",contact[i].adress);break;case'4':printf("學(xué)號:");scanf("%s",contact[i].number);break;case'5':mainmenu();break;default:modifymenu();}printf("\n\t\t您的修改結(jié)果為:"); printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t確認(rèn)修改?y/n"); if(getch()=='n') {contact[i]=modify;printf("\n\t\t修改未保存!"); } elseprintf("\n\t\t+_+修改成功!"); savefile();mark=0;printf("\n\t\t是否繼續(xù)修改?(y/n)");if(getch()=='y')modifymenu(); }}}if(mark==0){printf("\n\t\t+_+沒有該聯(lián)系人的紀(jì)錄");printf("\n\t\t是否繼續(xù)修改?(y/n)");if(getch()=='y')modifymenu();}return;}voiddeletemenu(){charchoice;if(NO==0){printf("\n\t\t對不起,文件中無任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}system("cls");printf("\n\t\t*******************刪除菜單*******************");printf("\n\t\t******************1-刪除所有******************");printf("\n\t\t******************2-刪除單個******************");printf("\n\t\t*****************3-返回主菜單*****************");printf("\n\t\t************************************************");printf("\n\t\t請選擇:");choice=getch();switch(choice){case'1':deleteall();break;case'2':deletesingle();break;case'3':mainmenu();break;default:mainmenu();}}voiddeleteall(){printf("\n\t\t確認(rèn)刪除?(y/n)");if(getch()=='y'){if((fp=fopen("contact","w"))==0){printf("\n\t\t+_+不能打開文件,刪除失敗");loadfile();}NO=0;printf("\n\t\t^_^紀(jì)錄已刪除,按任意鍵返回主菜單");getch();fclose(fp);return;}elsereturn;}voiddeletesingle(){charchoice;printf("\n\t\t\t1-按姓名刪除");printf("\n\t\t\t2-按號碼刪除");printf("\n\t\t\t3-返回刪除菜單");printf("\n\t\t請選擇:");choice=getch();switch(choice){case'1':deletename();break;case'2':deletephone();break;case'3':deletemenu();break;}}voiddeletename(){inti,j;intmark=0;charname[20];printf("\n\t\t請輸入要刪除聯(lián)系人姓名:");scanf("%s",name);if(NO==0){printf("\n\t\t對不起,文件中無任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].name,name)==0){printf("\n\t\t以下是您要刪除的聯(lián)系人紀(jì)錄:");printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<NO-1;j++)contact[j]=contact[j+1];NO--;mark++;printf("\n\t\t^_^刪除成功");savefile();printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletename();return;}elsereturn;}continue;}if(mark==0){printf("\n\t\t沒有該聯(lián)系人的紀(jì)錄");printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletename();return;}}voiddeletephone(){inti,j;intmark=0;charphone[20];printf("\n\t\t請輸入要刪除聯(lián)系電話:");scanf("%s",phone);if(NO==0){printf("\n\t\t+_+對不起,文件中無任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].phone,phone)==0){printf("\n\t\t以下是您要刪除的聯(lián)系人紀(jì)錄:");printf("\n\t\t姓名:%s",contact[i].name);printf("\n\t\t聯(lián)系電話:%s",contact[i].phone);printf("\n\t\t家庭住址:%s",contact[i].adress);printf("\n\t\t學(xué)號:%s",contact[i].number);printf("\n\t\t是否刪除?(y/n)");if(getch()=='y'){for(j=i;j<NO-1;j++)contact[j]=contact[j+1];NO--;mark++;printf("\n\t\t^_^刪除成功");savefile();printf("\n\t\t是否繼續(xù)刪除?(y/n)");if(getch()=='y')deletephone();return;}elsereturn;}continue;}if(mark==0){prin
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年浙江公務(wù)員考試行測試題(A卷)
- 學(xué)習(xí)培訓(xùn)指導(dǎo)服務(wù)協(xié)議書(7篇)
- 2025年企業(yè)員工流動性協(xié)議書
- 2025年彩涂板(卷)項(xiàng)目申請報告模板
- 2025年促銷禮品租賃合同文本
- 2025年音頻切換臺項(xiàng)目立項(xiàng)申請報告模板
- 2025年汽車保養(yǎng)維修服務(wù)合同示例
- 2025年保險公司合作綜合協(xié)議
- 2025年共同投資申請諒解協(xié)議框架
- 2025年企業(yè)復(fù)蘇與和解協(xié)議大綱
- 2025年山東商務(wù)職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年個人合法二手車買賣合同(4篇)
- 2025年內(nèi)蒙古自治區(qū)包頭市中考試卷數(shù)學(xué)模擬卷(二)
- 外研版(三起)小學(xué)英語三年級下冊Unit 1 Animal friends Get ready start up 課件
- 2025年華潤燃?xì)庹衅腹P試參考題庫含答案解析
- 推進(jìn)煙草網(wǎng)格化管理工作
- 急危重癥患者優(yōu)先處置制度與流程
- 銅礦隱蔽致災(zāi)普查治理工作計(jì)劃
- 金融服務(wù)鄉(xiāng)村振興
- 2024-2030年中國出版社行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- (新版)廣電全媒體運(yùn)營師資格認(rèn)證考試復(fù)習(xí)題庫(含答案)
評論
0/150
提交評論