C高編課程設(shè)計報告_第1頁
C高編課程設(shè)計報告_第2頁
C高編課程設(shè)計報告_第3頁
C高編課程設(shè)計報告_第4頁
C高編課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C高編課程設(shè)計報告電子英漢詞典的設(shè)計電子英漢詞典的設(shè)計 目錄TOC\o"1-3"\h\u21556一、課程設(shè)計的要求 -1-8909二、可行性分析 -1-22047三、需求分析 -2-26483(1)程序的功能 -2-14934(2)輸入輸出的要求 -2-16584四、概要設(shè)計與詳細(xì)設(shè)計 -2-294164.1模塊分塊 -2-251514.1.1查找函數(shù)search -2-160034.1.2增加函數(shù)add -2-144814.1.3修改函數(shù)modify -2-135154.1.4刪除函數(shù)delete -2-317744.1.5主程序 -2-165304.2實現(xiàn)功能 -3-5664.3各模塊流程圖 -3-5151五、編碼實現(xiàn) -4-70785.1主函數(shù)和頭文件定義 -4-133875.1.1定義變量以及初始化 -4-247975.1.2開始界面的編寫 -5-21495.1.3頭文件的定義 -5-44965.2各個模塊的實現(xiàn) -6-215175.2.1檢搜模塊 -6-208715.2.2修改模塊 -6-171185.2.3文件路徑 -7-210625.2.4增加模塊 -8-16960六、系統(tǒng)調(diào)試 -9-144696.1包含的文件路徑 -9-146126.2用設(shè)斷點考慮文件的運行過程 -9-127336.2.1字母調(diào)試查找 -9-111256.2.2查找函數(shù)的調(diào)用 -10-233376.2.3修改函數(shù)的調(diào)用 -10-104426.2.4關(guān)于模糊查詢的斷點設(shè)置 -11-136666.2.5運行開始界面 -11-285986.2.6查詢成功界面 -12-201426.2.7繼續(xù)查詢下一個單詞界面 -12-144906.2.8修改字母和中文含義的界面 -13-51996.2.9模糊定義查詢界面 -14-27384七、總結(jié)歸納 -14-18195附錄:源程序代碼 -15-一、課程設(shè)計的要求1、全面熟悉、掌握c語言的基本知識,增強對不同的問題運用和靈活選擇合適的數(shù)據(jù)結(jié)構(gòu),熟悉編制和調(diào)試程序的技巧,掌握分析結(jié)果的若干有效方法,進(jìn)一步提高上機動手能力,培養(yǎng)使用計算機解決實際問題的能力,養(yǎng)成提供文檔資料的習(xí)慣和規(guī)范編程思想。2、英漢詞典:英漢詞典作為一個常用的學(xué)習(xí)工具,是我們經(jīng)常使用的,該系統(tǒng)能完成一個簡單的電子英漢詞典的功能,需要能夠正常的查找單詞,能夠修改單詞,增加、刪減單詞。功能描述:1、在計算機中建立有限規(guī)模的電子英漢詞典,利用程序?qū)崿F(xiàn)電子英漢詞典的查找、增詞、刪除、修改和維護(hù)工作。詞典的內(nèi)容為:每行對應(yīng)一個詞條,每個詞條由兩個字符串組成,字符串用若干空格符分開,前一個是單詞字符串,后一個是釋義字符串,使用分號作為多個釋義的分隔符。采用菜單工作方式。在一個操作執(zhí)行之后,程序詢問是否繼續(xù)執(zhí)行該操作,如果繼續(xù)查詢,則輸入enter,查詢后系統(tǒng)詢問是否要修改此單詞,如果繼續(xù)查詢則輸入enter,如果修改單詞則輸入單詞及其他的釋義,系統(tǒng)將修改保存。退出則輸入“#”。要求整體設(shè)計以人為本,用戶界面簡潔美觀。測試數(shù)據(jù):以老師所給的詞庫為準(zhǔn)??尚行苑治霰菊n程主要完成的時候字典的查詢、修改、添加、刪除等功能,從而我選取的方案是采用的結(jié)構(gòu)體的方法去實現(xiàn),給出的字母出來然后一個字母一個字母的搜尋直到查詢到該字母,然后直接printf輸出來就行了;添加也是同樣的調(diào)取添加的函數(shù)然后還是使用結(jié)構(gòu)體去一一對比;修改也是調(diào)用修改的函數(shù)從而來改變對應(yīng)的英譯漢和漢譯英。三、需求分析(1)程序的功能英漢詞典作為一個常用的學(xué)習(xí)工具,是我們經(jīng)常要使用的。該系統(tǒng)能完成一個簡單的電子英漢詞典的功能,如:單詞的查找、增詞、刪除、修改和維護(hù)等工作。在計算機中建立有限規(guī)模的電子英漢詞典(文件),利用程序?qū)崿F(xiàn)電子英漢詞典的查找、增詞、刪除、修改和維護(hù)工作。詞典的內(nèi)容為:每行對應(yīng)一個詞條,每個詞條由兩個字符串組成,字符串用若干空格符分開;前一個是單詞字符串(英文),后一個是釋義字符串(中文),使用分號作為多個釋義的分隔符(無空格)。對單詞和釋義字符串長度的限定分別為不少于10個與15個字符,詞條數(shù)限定為不多于1000條。(2)輸入輸出的要求采用菜單工作方式。在一個操作執(zhí)行之后,程序詢問是否繼續(xù)執(zhí)行該操作。如輸入Y或y,則重復(fù)同一操作,不退回到菜單;如輸入其它信息,則回到菜單等待另一次選擇。僅當(dāng)選擇退出操作時,程序應(yīng)詢問是否將修改后的詞典存盤,并根據(jù)用戶選擇存盤退出或不存盤退出。要求整個設(shè)計以人為本,用戶界面友好。四、概要設(shè)計與詳細(xì)設(shè)計4.1程序分塊4.1.1search是查找函數(shù),用戶通過系統(tǒng)提示輸入要查找的單詞,只要單詞庫中含有此單詞便能找到相應(yīng)的中文解釋。這個查找函數(shù)使用的是從頭到尾的線性查找發(fā),雖然查找效率在數(shù)據(jù)很大上午時候無法容忍的。但是因為這里涉及的數(shù)據(jù)量很小,使用線性查找對系統(tǒng)性能沒有很大上午損害。4.1.2add是增加函數(shù),用戶可通過此函數(shù)來增加單詞庫單詞的數(shù)量。4.1.3modify是修改函數(shù),程序提示用戶輸入要修改的單詞,還是用線性查找的方法查找相應(yīng)的紀(jì)錄,如果找到,則提示輸入新單詞及中文解釋。4.1.4delete是刪除函數(shù),程序提示用戶輸入要刪除的單詞,使用線性查找的方法找到相應(yīng)的紀(jì)錄,如果找到,提示用戶確認(rèn)刪除才做。在得到確認(rèn)后,刪除這個單詞的紀(jì)錄。4.1.5主程序通過無限循環(huán)來接收輸入的命令,并且根據(jù)命令調(diào)用相應(yīng)的函數(shù)處理。4.2、實現(xiàn)功能:(包括系統(tǒng)功能分析:系統(tǒng)功能模塊劃分與設(shè)計(系統(tǒng)功能模塊圖)。)系統(tǒng)功能分析:本系統(tǒng)可以查詢,修改,刪除,增加詞條,以及退出詞典。4.3各模塊流程圖各個功能模塊實現(xiàn)五、編碼實現(xiàn)5.1、主函數(shù)和頭文件定義5.1.1定義變量以及初始化typedefstructDictionary{charword[szWORD];charmean[szSTRN];}Project;fpos_tconsult(char*word,char*mean){FILE*f=0;Projecti;intr=0;fpos_tp=0;if(!word)return0;f=fopen(fileDict,"rb");//fopen打開字典的源文件if(!f)return0;while(!feof(f))//當(dāng)打開沒有錯誤的時候進(jìn)行查詢{fgetpos(f,&p);r=fread(&i,szProject,1,f);if(r<1)break;if(i.word[0]==0)continue;if(strcmp(i.word,word))continue;if(mean)strcpy(mean,i.mean);fclose(f);returnp+1;}fclose(f);return0;}5.1.2開始界面的編寫intmain(intargk,char*argh[]){intm=0;if(argk>1)strcpy(fileDict,argh[1]);elsestrcpy(fileDict,"c:\\dict.txt");//找到文件的源文件for(;;){printf("\n\\n\歡迎使用電子英漢詞典!\n\\n\1-查詢詞條\n\2-新增詞條\n\3-刪除詞條\n\4-修改詞條\n\5-退出詞典\n\\n");printf("請輸入選擇功能的序號:");5.1.3頭文件的定義#include<stdio.h> //C語言的頭文件函數(shù)#include<string.h> //字符函數(shù)#include<stdlib.h> //分配內(nèi)存函數(shù)5.2各個模塊的實現(xiàn)5.2.1檢搜模塊voidSearch(void){Projecti;fpos_tp=0;memset(&i,0,szProject);printf("pleaseinputtheword?youwant:");scanf("%s",i.word);p=consult(i.word,i.mean);//對單詞的英譯和漢譯經(jīng)行輸出if(p==0){printf("sorrydonotfindwhatyouwant!\n");return;}printf("單詞:%s\n釋義:%s",i.word,i.mean);}5.2.2修改模塊voidmodify(void){Projecti;FILE*f=0;fpos_tp=0;memset(&i,0,szProject);//memset:作用是在一段內(nèi)存塊中填充某個給定的值,它是對較大的結(jié)構(gòu)體或數(shù)組進(jìn)行清零操作的一種最快方法。printf("pleaseinputthewordyouwant:");scanf("%s",i.word);p=consult(i.word,0);if(p==0){printf("sorrydonotfindwhatyouwant!\n");return;}p--;printf("pleasegivingthemeaning,按確認(rèn)結(jié)束(輸入drop放棄修改):");fflush(stdin);gets(i.mean);if(strstr(i.mean,"drop")){printf("已放棄修改!\n");return;}f=fopen(fileDict,"rb+");fsetpos(f,&p);fwrite(&i,szProject,1,f);fclose(f);printf("詞條已保存\n");}5.2.3文件路徑if(argk>1)strcpy(fileDict,argh[1]);elsestrcpy(fileDict,"C:\\Users\\Administrator\\Desktop\\a.txt");5.2.4增加條目內(nèi)容voidadd(void){Projecti;FILE*f=0;fpos_tp=0;memset(&i,0,szProject);printf("pleaseinputthewordyouwant:");scanf("%s",i.word);p=consult(i.word,0);if(p){printf("sorrydonotfindwhatyouwant!\n");return;}printf("pleasegivingthemeaning,按確認(rèn)結(jié)束:");fflush(stdin);gets(i.mean);f=fopen(fileDict,"ab");fwrite(&i,szProject,1,f);fclose(f);printf("詞條已新增\n");}六、系統(tǒng)調(diào)試 6.1、包含的文件路徑6.2、用設(shè)斷點考慮文件的運行過程6.2.1字母調(diào)試查找6.2.2、查找函數(shù)的調(diào)用的實現(xiàn)6.2.3修改函數(shù)的調(diào)用實現(xiàn)6.2.4關(guān)于模糊查詢的斷點設(shè)置6.2.5運行開始界面此為英漢字典的首頁,使用者只需要按照提醒輸入相應(yīng)的英文,字典便可按照相應(yīng)的程序執(zhí)行操作。6.2.6查詢成功界面當(dāng)使用者想要查詢單詞時,只需輸入相應(yīng)的英文,按enter鍵就可以顯示其中文釋義解釋。如果需要修改單詞,則輸入單詞及要修改的內(nèi)容,系統(tǒng)則會自動保存修改。6.2.7繼續(xù)查詢下一個單詞界面此圖顯示的是當(dāng)使用者在查詢完第一個單詞后。便可以按enter鍵進(jìn)行下一個單詞的查詢。6.2.8修改字母和中文含義的界面修改中文的界面修改英文界面6.2.9模糊定義查詢界面出現(xiàn)的單詞是靠近模糊定義最近的單詞,順序按照“a、b、c的順序來的”七、總結(jié)歸納通過本次課程設(shè)計,鞏固了基本的基礎(chǔ)知識,強化了c語言的學(xué)習(xí)能力,對于c語言的學(xué)習(xí)有很大的幫助,在這幾周的時間理,我感覺自己對c語言有了更深刻的理解,也發(fā)現(xiàn)了自己存在很多問題,很多基本的東西都忘記了,很多基礎(chǔ)的函數(shù)也想不起來,很多知識也不懂,但是通過本次課程設(shè)計,我學(xué)會了很多,尤其是文件的讀取,函數(shù)的指針,,結(jié)構(gòu)體數(shù)組。寫程序時必須要有清晰的思路,要步步細(xì)化,先大局再細(xì)分最后整合為大局,只有這樣才能完成一個完整的c程序,同時也看到了自己有很大的不足,只憑借書上的知識是不夠的,自己平時動手能力不好,動手的機會又太少,到關(guān)鍵的時刻又不知道該用什么。這次課程設(shè)計也給了我一個警醒,平時要多動手多動腦,要努力去實踐,一定要親手解決,不能眼高手低,在寫程序的過程中自己也請教了別人很多問題,學(xué)會了和同學(xué)交流,和別人討論更多的問題,也要參考各種書籍,僅僅靠課堂上寫的是不行的,只有多看書多和別人交流才可以,僅僅只有自己一人是不夠的。附錄:源程序代碼/****************************************************/#include<stdio.h>#include<stdlib.h>#include<string.h>#defineszWORD50#defineszSTRN200#defineszProjectsizeof(structDictionary)charfileDict[szSTRN];typedefstructDictionary{charword[szWORD];charmean[szSTRN];}Project;fpos_tconsult(char*word,char*mean){FILE*f=0;Projecti;intr=0;fpos_tp=0;if(!word)return0;f=fopen(fileDict,"rb");if(!f)return0;while(!feof(f)){fgetpos(f,&p);r=fread(&i,szProject,1,f);if(r<1)break;if(i.word[0]==0)continue;if(strcmp(i.word,word))continue;if(mean)strcpy(mean,i.mean);fclose(f);returnp+1;}fclose(f);return0;}voidSearch(void);voidAppend(void);voidDelete(void);voidUpdate(void);/******************************主函數(shù)*******************************/intmain(intargk,char*argh[]){intm=0;if(argk>1)strcpy(fileDict,argh[1]);elsestrcpy(fileDict,"C:\\Users\\Administrator\\Desktop\\a.txt");for(;;){printf("\n\\n\歡迎使用電子英漢詞典!\n\\n\1-查詢詞條\n\2-新增詞條\n\3-刪除詞條\n\4-修改詞條\n\5-退出詞典\n\\n");printf("請輸入選擇功能的序號:");m=getchar()-'0';switch(m){case1:Search();break;case2:Append();break;case3:Delete();break;case4:Update();break;default:return0;}}return0;}/***************************查找函數(shù)*****************************/voidSearch(void){Projecti;fpos_tp=0;memset(&i,0,szProject);printf("pleaseinputtheword?youwant:");scanf("%s",i.word);p=consult(i.word,i.mean);if(p==0){printf("sorrydonotfindwhatyouwant!\n");return;}printf("單詞:%s\n釋義:%s",i.word,i.mean);}/*************************增加函數(shù)*******************************/voidAppend(void){Projecti;FILE*f=0;fpos_tp=0;memset(&i,0,szProject);printf("pleaseinputthewordyouwant:");scanf("%s",i.word);p=consult(i.word,0);if(p){printf("sorrydonotfindwhatyouwant!\n");return;}printf("pleasegivingthemeaning,按確認(rèn)結(jié)束:");fflush(stdin);gets(i.mean);f=fopen(fileDict,"ab");fwrite(&i,szProject,1,f);fclose(f);printf("詞條已新增\n");}/******************************刪除函數(shù)*****************************/voidDelete(void){Project

溫馨提示

  • 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

提交評論