版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《C語(yǔ)言課程設(shè)計(jì)》課程設(shè)計(jì)報(bào)告題目通訊錄管理系統(tǒng)學(xué)號(hào)姓名年級(jí)專業(yè)指導(dǎo)教師完成日期年月日安徽師范大學(xué)物理與電子信息學(xué)院CollegeofPhysicsandElectronicInformation,Anhui通訊錄管理系統(tǒng)=1\*CHINESENUM3一、問(wèn)題描述本程序是非數(shù)值計(jì)算型算法設(shè)計(jì),我設(shè)計(jì)出了通訊錄管理系統(tǒng)的基本功能,并設(shè)計(jì)了簡(jiǎn)單的界面。本程序主要考察對(duì)自定義函數(shù)的熟悉程度,本程序主要使用的是數(shù)組的相關(guān)操作,包括結(jié)構(gòu)體數(shù)組的輸入、輸出、查找、刪除等。我設(shè)計(jì)的這個(gè)通訊錄系統(tǒng)也初步實(shí)現(xiàn)了人員信息的顯示、刪除、查找、修改、添加等必要的功能。=2\*CHINESENUM3二、基本要求每條記錄包括:學(xué)號(hào)、姓名、專業(yè)、家庭住址、聯(lián)系電話;能夠?qū)崿F(xiàn)添加、刪除、修改功能;能夠?qū)崿F(xiàn)按學(xué)號(hào)、姓名、專業(yè)等內(nèi)容進(jìn)行查找=3\*CHINESENUM3三、系統(tǒng)分析和設(shè)計(jì)【需求分析】根據(jù)題目要求,通訊錄數(shù)據(jù)以文本文件存儲(chǔ),故應(yīng)提供文件的輸入、輸出等操作;還應(yīng)提供顯示、查找、刪除等操作;另外還應(yīng)提供鍵盤(pán)式選擇菜單實(shí)現(xiàn)功能選擇。【總體設(shè)計(jì)】通過(guò)對(duì)整個(gè)系統(tǒng)的分析,根據(jù)上述要求,可以將這個(gè)系統(tǒng)的設(shè)計(jì)分為三個(gè)模塊(見(jiàn)圖1):文件導(dǎo)入、通訊錄編輯和退出。通訊錄管理系統(tǒng)通訊錄管理系統(tǒng)新建菜單瀏覽菜單修改菜單刪除菜單查找菜單圖1系統(tǒng)功能模塊=4\*CHINESENUM3四、主要流程圖(1)主菜單函數(shù)此函數(shù)功能為提供鍵盤(pán)式選擇菜單以調(diào)用不同函數(shù)。其流程如圖2所示。顯示一系列功能選項(xiàng)顯示一系列功能選項(xiàng)輸入n,判斷n是否是1~5?根據(jù)n的值調(diào)用各功能模塊函數(shù)結(jié)束開(kāi)始n圖2主菜單函數(shù)流程圖(2)新建菜單函數(shù)該函數(shù)的功能是用戶需要新建聯(lián)系人記錄,從鍵盤(pán)輸入并逐條寫(xiě)到原來(lái)的通訊錄文件中,注意采用新建而不是覆蓋的方式。其流程如圖3所示。開(kāi)始開(kāi)始新建聯(lián)系人是否繼續(xù)新建?y/n結(jié)束ny圖3新建函數(shù)流程圖(3)瀏覽菜單函數(shù)此函數(shù)功能為提供瀏覽所有聯(lián)系人記錄。其流程如圖4所示。瀏覽全部聯(lián)系人記錄瀏覽全部聯(lián)系人記錄開(kāi)始結(jié)束圖4瀏覽模塊流程圖(4)查找菜單函數(shù)此模塊的功能是用戶可根據(jù)姓名或電話號(hào)碼查詢聯(lián)系人信息。查詢菜單函數(shù)功能為提供鍵盤(pán)式選擇菜單選擇查找方法。其流程如圖5所示。開(kāi)始開(kāi)始按姓名查找按號(hào)碼查找結(jié)束圖5查找函數(shù)流程圖△按姓名查找函數(shù)其流程如圖6所示。開(kāi)始開(kāi)始輸入聯(lián)系人姓名是否找到此記錄?是否查找相同姓名?結(jié)束顯示此記錄提示未找到此記錄ynyn圖6按姓名查找函數(shù)流程圖按電話查找函數(shù)其流程如圖7所示。開(kāi)始開(kāi)始輸入聯(lián)系人電話是否找到此記錄?顯示記錄提示未找到結(jié)束圖7按電話查找函數(shù)流程圖(5)刪除函數(shù)此模塊功能為用戶可根據(jù)需要選擇刪除全部或單個(gè)聯(lián)系人記錄,且可按姓名或電話刪除單個(gè)聯(lián)系人。其流程如圖9所示。△刪除菜單函數(shù)提供鍵盤(pán)式選擇菜單以調(diào)用相關(guān)函數(shù)以實(shí)現(xiàn)各功能開(kāi)始開(kāi)始刪除全部刪除單個(gè)按姓名刪除按電話刪除結(jié)束圖8刪除函數(shù)模塊流程圖(6)文件導(dǎo)入函數(shù)此模塊上導(dǎo)入原文件,若原文件無(wú)法打開(kāi),則需另行新建。其流程如圖2所示開(kāi)始開(kāi)始成功打開(kāi)文件?新建文件文件導(dǎo)入成功結(jié)束ny圖2文件導(dǎo)入函數(shù)流程圖=5\*CHINESENUM3五、運(yùn)行結(jié)果文件導(dǎo)入成功界面:主菜單函數(shù):新建菜單:瀏覽函數(shù):查找函數(shù):修改函數(shù):刪除函數(shù):【總結(jié)】通過(guò)本次課程設(shè)計(jì),我了解掌握了模塊化程序設(shè)計(jì)方法,理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思路和方法。學(xué)習(xí)了利用流程圖表示算法,很大程度上提高了C語(yǔ)言程序設(shè)計(jì)能力。我了解到程序設(shè)計(jì)的過(guò)程就是確定就絕問(wèn)題的詳細(xì)步驟,即流程。而在程序設(shè)計(jì)中理清整個(gè)問(wèn)題的流程很重要,然后再采用逐步細(xì)化的方法實(shí)現(xiàn)整個(gè)程序。一個(gè)較大的程序,一般不可能一次就設(shè)計(jì)出一個(gè)很完善的系統(tǒng)。通常要先設(shè)計(jì)出滿足基本要求的系統(tǒng),然后在測(cè)試或使用過(guò)程中再不斷完善。對(duì)于我這次課程設(shè)計(jì)的作品“通訊錄管理系統(tǒng)beta”,覺(jué)得其擁有思路明了,結(jié)構(gòu)清晰,語(yǔ)言簡(jiǎn)單易讀等優(yōu)點(diǎn),能流暢運(yùn)行以滿足題目要求。由于時(shí)間倉(cāng)促,缺少大量調(diào)試與優(yōu)化,故此beta版還有很多有待改進(jìn)之處,例如不能識(shí)別明顯的輸入錯(cuò)誤,當(dāng)有重復(fù)記錄時(shí)不能自動(dòng)報(bào)警,另外還有界面粗糙等諸多不足,尚待以后日臻完善!【參考書(shū)目】譚浩強(qiáng),C程序設(shè)計(jì)教程,清華大學(xué)出版社,2007年趙永哲,李雄飛,戴秀英編著,《C語(yǔ)言程序設(shè)計(jì)》,科學(xué)出版社,2003年夏寬理,趙子正編著,《C語(yǔ)言程序設(shè)計(jì)》,中國(guó)鐵道出版社,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)入中……請(qǐng)稍后……\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請(qǐng)選擇:");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****************請(qǐng)輸入聯(lián)系人信息****************\n");printf("\n\t\t輸入姓名:");scanf("%s",&contact[NO].name);printf("\n\t\t輸入電話號(hào)碼:");scanf("%s",&contact[NO].phone);printf("\n\t\t輸入家庭住址:");scanf("%s",&contact[NO].adress);printf("\n\t\t輸入學(xué)號(hào):");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é)號(hào):%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+_+通訊錄中無(wú)任何紀(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請(qǐng)選擇:");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請(qǐng)輸入姓名:");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é)號(hào):%s",contact[i].number);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;return;}}if(mark==0){printf("\n\t\t沒(méi)有該姓名的聯(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請(qǐng)輸入電話:");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é)號(hào):%s",contact[i].number);printf("\n\t\t************************************************");printf("\n\t\t按任意鍵返回主菜單:");mark++;getch();return;}}if(mark==0){printf("\n\t\t沒(méi)有該聯(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請(qǐng)輸入您要修改的姓名:");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é)號(hào):%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é)號(hào)");printf("\n\t\t\t(5).返回");printf("\n\t\t請(qǐng)選擇:");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é)號(hào):");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é)號(hào):%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+_+沒(méi)有該聯(lián)系人的紀(jì)錄");printf("\n\t\t是否繼續(xù)修改?(y/n)");if(getch()=='y')modifymenu();}return;}voiddeletemenu(){charchoice;if(NO==0){printf("\n\t\t對(duì)不起,文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}system("cls");printf("\n\t\t*******************刪除菜單*******************");printf("\n\t\t******************1-刪除所有******************");printf("\n\t\t******************2-刪除單個(gè)******************");printf("\n\t\t*****************3-返回主菜單*****************");printf("\n\t\t************************************************");printf("\n\t\t請(qǐng)選擇:");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+_+不能打開(kāi)文件,刪除失敗");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-按號(hào)碼刪除");printf("\n\t\t\t3-返回刪除菜單");printf("\n\t\t請(qǐng)選擇:");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請(qǐng)輸入要?jiǎng)h除聯(lián)系人姓名:");scanf("%s",name);if(NO==0){printf("\n\t\t對(duì)不起,文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].name,name)==0){printf("\n\t\t以下是您要?jiǎng)h除的聯(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é)號(hào):%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沒(méi)有該聯(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請(qǐng)輸入要?jiǎng)h除聯(lián)系電話:");scanf("%s",phone);if(NO==0){printf("\n\t\t+_+對(duì)不起,文件中無(wú)任何紀(jì)錄");printf("\n\t\t按任意鍵返回主菜單");getch();return;}for(i=0;i<NO;i++){if(strcmp(contact[i].phone,phone)==0){printf("\n\t\t以下是您要?jiǎng)h除的聯(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é)號(hào):%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. 本站所有資源如無(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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)械廠合同范例
- 東莞工業(yè)廠房租賃合同范例
- 倉(cāng)儲(chǔ)崗位員工合同范例
- 保溫袋設(shè)備轉(zhuǎn)讓合同范例
- 江蘇技術(shù)合同范例
- 衣物閑置出售合同范例
- 珠寶交易合同范例
- 合作情侶契約合同范例
- 工廠代銷服裝合同范例
- 簡(jiǎn)化采購(gòu)合同范例
- GB/T 20624.2-2006色漆和清漆快速變形(耐沖擊性)試驗(yàn)第2部分:落錘試驗(yàn)(小面積沖頭)
- GB/T 12771-2019流體輸送用不銹鋼焊接鋼管
- GB/T 10125-2012人造氣氛腐蝕試驗(yàn)鹽霧試驗(yàn)
- 維修電工-基于7812穩(wěn)壓電路(中級(jí))-動(dòng)畫(huà)版
- PV測(cè)試方法簡(jiǎn)介-IV
- 病理學(xué)實(shí)驗(yàn)切片考試圖片授課課件
- 2021離婚協(xié)議書(shū)電子版免費(fèi)
- 國(guó)家開(kāi)放大學(xué)《組織行為學(xué)》章節(jié)測(cè)試參考答案
- 《班主任工作常規(guī)》課件
- 電子課件機(jī)械基礎(chǔ)(第六版)完全版
- 臨沂十二五城市規(guī)劃研究專題課件
評(píng)論
0/150
提交評(píng)論