電子英漢詞典設(shè)計(jì)
、課程設(shè)計(jì)的內(nèi)容電子英漢詞典設(shè)計(jì)一、問題描述:英漢詞典作為一個常用的學(xué)習(xí)工具,是我們經(jīng)常要使用的。該系統(tǒng)能完成一個簡單的電子英漢詞典的功能,如:單詞的查找、增詞、刪除、修改和維護(hù)等工作。二、功能描述:1、在計(jì)算機(jī)中建立有限規(guī)模的電子英漢詞典(文件),利用程序?qū)崿F(xiàn)電子英漢詞典的查找、增詞、刪除、修改和維護(hù)工作。2、 詞典的內(nèi)容為: 每行對應(yīng)一個詞條, 每個詞條由兩個字符串組成, 字符串用若干空格符分開;前一個是單詞字符串(英文) ,后一個是釋義字符串(中文) ,使用分號作為多 個釋義的分隔符(無空格) 。3、 對單詞和釋義字符串長度的限定分別為不少于20 個與 40 個字符, 詞條數(shù)限定為不多于 200 條。4、 采用菜單工作方式。 在一個操作執(zhí)行之后, 程序詢問是否繼續(xù)執(zhí)行該操作。 如輸入Y 或 y ,則重復(fù)同一操作,不退回到菜單;如輸入其它信息,則回到菜單等待另一次選擇。僅當(dāng)選擇退出操作時,程序應(yīng)詢問是否將修改后的詞典存盤,并根據(jù)用戶選擇存盤退出或不存盤退出。5、要求整個設(shè)計(jì)以人為本,用戶界面友好。二、課程設(shè)計(jì)的要求與數(shù)據(jù)1、進(jìn)一步掌握和利用 C 語言進(jìn)行程設(shè)計(jì)的能力;2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;3、初步掌握開發(fā)一個小型實(shí)用系統(tǒng)的基本方法;4、學(xué)會調(diào)試一個較長程序的基本方法;5、學(xué)會利用流程圖或N-S 圖表示算法;6、掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力。三、課程設(shè)計(jì)應(yīng)完成的工作1、編寫完成相應(yīng)題目的程序;2、編寫課程設(shè)計(jì)報(bào)告,課程設(shè)計(jì)報(bào)告的內(nèi)容應(yīng)包括以下6個部分:1) 需求分析:包括設(shè)計(jì)題目、設(shè)計(jì)要求以及系統(tǒng)功能需求分析;2) 總體設(shè)計(jì):包括系統(tǒng)總體設(shè)計(jì)框架和系統(tǒng)功能模塊圖;3) 詳細(xì)設(shè)計(jì):包括主要功能模塊的算法設(shè)計(jì)思路以及對應(yīng)的工作流程圖;4) 調(diào)試分析過程描述:包括測試數(shù)據(jù)、測試輸出結(jié)果,以及對程序調(diào)試過程中存在問題的思考(列出主要問題的出錯現(xiàn)象、出錯原因、解決方法及效果等,適當(dāng)?shù)陌Y(jié)果截圖) ;5)總結(jié):課程設(shè)計(jì)完成了哪些功能,有沒有什么擴(kuò)展功能?還有哪些地方需要改進(jìn)?課程設(shè)計(jì)過程中的學(xué)習(xí)體會與收獲、對本次課程設(shè)計(jì)的認(rèn)識以及自己的建等 內(nèi)容;6)附錄:主要源程序代碼,含必要的注釋。3、答辯:在實(shí)驗(yàn)室建立程序運(yùn)行的環(huán)境,并在指導(dǎo)教師的監(jiān)督下,獨(dú)立解 決問題、運(yùn)行程序和回答教師提出的問題四、課程設(shè)計(jì)進(jìn)程安排在舁 廳P設(shè)計(jì)各階段內(nèi)容地點(diǎn)起止日期1下達(dá)任務(wù)書,說明設(shè)計(jì)要求;收集資料實(shí)驗(yàn)3#5176.182總體力泵設(shè)計(jì)、詳細(xì)設(shè)計(jì)實(shí)驗(yàn)3#5176.193編寫程序,調(diào)試分析實(shí)驗(yàn)3#5176.204撰寫報(bào)告并上交,答辯實(shí)驗(yàn)3#5176.21五、應(yīng)收集的資料及主要參考文獻(xiàn)1譚浩強(qiáng).C程序設(shè)計(jì)(第三版)M,北京:清華大學(xué)出版社,2005.92譚浩強(qiáng).C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第三版)M,北京:清華大學(xué)出版社,2005.73李春葆 曾平 劉斌。C+郵言程序設(shè)計(jì)題典第一版 北京 清華大學(xué)出 版社2003年4月5劉振安劉燕君C+程序設(shè)計(jì)課程設(shè)計(jì)第一版機(jī)械工業(yè)出版社2004年8月發(fā)出任務(wù)書日期:2007年6月18日 指導(dǎo)教師簽名:計(jì)劃完成日期:2007年6月22日基層教學(xué)單位責(zé)任人簽章:主管院長簽章:1設(shè)計(jì)目的與要求 1頁碼2總體設(shè)計(jì) 2頁碼3詳細(xì)設(shè)計(jì) 23頁碼3.1 功能模塊設(shè)計(jì) 2-3頁碼3.1.1 查詢單詞功能模塊 2頁碼頁碼3.1.2 添加單詞功能模塊3.1.3 刪除單詞功能模塊 3 頁碼3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 3頁碼4調(diào)試分析 4-5頁碼5總結(jié) 6頁碼6附錄 6-10頁碼6答辯記錄(正文處請留出適當(dāng)空白) 11頁碼7指導(dǎo)教師意見(正文處請留出十行空白) 11頁碼1目的與要求課程設(shè)計(jì)為學(xué)生提供了一個既動手又動腦,獨(dú)立實(shí)踐的機(jī)會,將課本上的理論知識和實(shí) 際應(yīng)用問題進(jìn)行有機(jī)結(jié)合,鍛煉學(xué)生分析、解決實(shí)際問題的能力,提高學(xué)生項(xiàng)目開發(fā)及程 序調(diào)試能力。課程設(shè)計(jì)為學(xué)生提供了一個既動手又動腦,獨(dú)立實(shí)踐的機(jī)會,將課本上的理論知識和實(shí) 際應(yīng)用問題進(jìn)行有機(jī)結(jié)合,鍛煉學(xué)生分析、解決實(shí)際問題的能力,提高學(xué)生項(xiàng)目開發(fā)及程 序調(diào)試能力。(1)總體要求對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析正確;系統(tǒng)設(shè)計(jì)要實(shí)用;編程簡練,可用,功能全面 ,具有較好的健壯性;說明書、流程圖要清楚。(2) 課程設(shè)計(jì)報(bào)告要求需求和規(guī)格說明:問題描述:題目要解決的問題是什么?設(shè)計(jì)設(shè)計(jì)思路:主要算法思想??傮w設(shè)計(jì):程序設(shè)計(jì)組成框圖、N-S流程圖。詳細(xì)設(shè)計(jì):模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等) 。 調(diào)試與測試 :調(diào)試過程中遇到的主要問題,是如何解決的;對設(shè)計(jì)和編碼的回顧討論和分析;改進(jìn)設(shè)想;經(jīng)驗(yàn)和體會等。附錄:源程序清單和結(jié)果。如果題目規(guī)定了測試數(shù)據(jù),則結(jié)果要包含這些測試數(shù)據(jù)和運(yùn)行輸出, 當(dāng)然還可以含其他測試數(shù)據(jù)和運(yùn)行輸出; 清單中應(yīng)有足夠的注釋。頁碼 12總體設(shè)計(jì)(內(nèi)容可以適當(dāng)調(diào)整,清晰的有條理的把你的設(shè)計(jì)思路表達(dá)出來)3.1功能模塊設(shè)計(jì)3.1.1查詢單詞功能模塊頁碼33.1.2添加單詞功能模塊3.1.3刪除單詞功能模塊3.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)1 .建立單詞數(shù)據(jù)庫(包含英文單詞、中文意思解釋)2 .用fopen函數(shù)訪問單詞數(shù)據(jù)庫文件。3 .還用到標(biāo)準(zhǔn)的輸出輸入函數(shù),按需輸出輸入或刪除數(shù)據(jù)。頁碼44調(diào)試分析查詢單詞:輸入:preciatian屏幕顯示:匚晨國:、叫I艮吉.h。c就程設(shè)ilPlease Input the uord you want:ptec izt iLctnGqitv do not; tind wlmt you. wcm t.士網(wǎng)予于軻 矛*矛力矛耳下下 士什ENJ xmJtm* = q ar"什 1 EnglisJi to Ghlnese<C 空 Inser the uord yout want to add>>>>< < 3 Del the existed woi*(l>>>>< < 4 Clean the screen >>< < 5 inodif yp the existed wordP>*nii7e?t tIip sj/stf?n 、)< <<< Q Exit tlw -yte:n>y>>MMMM-HWieveirMWM-M M M M H X M* * * H * M X M X * W * * *Please choice forn 1 to 7:輸出結(jié)果: sorry do not find what you want添加單詞:選才i 2功能輸入你想添加的單詞:Hello輸入它的意思:頁碼4你好 屏幕顯示:- 息志vthe c 既租< < 2 I nser the ordl yum want to add>>>>2 De 1 the existed uopdlK<<T Clean the 3GLeen >>>>< < 5 medify Lfie eMlstecl wurd>>>< C6 protect tJie systen >>< < 7 Exit the systen>>>>XJtMKH JtK JtJCHJC JKW JCM 序-茨-?6 X X M X K MM J< * X K J<Please cho ice f orim 1 to 7: 2Inser the ney uoiM : bwiioMiuinig the meaning:收好Ladd word $ access iMft x* jMftitiftjii*, mH FH U輸出結(jié)果是: add word success三:刪除單詞:輸入你想要刪除的單詞:Hello匚:E:"葉信有the g課程城屏幕顯示:XltXKKltMJItJHHB M:帳 KJf SMX 餐:M KM i(M MHMrKJtHplease cho ice Form 1 to 7"-JrploaLS xnsei*t 七ko vruiad. youi wam <o do 1b1;b lie llo lcc is u心心匕w片十:k:NR= = 汽安區(qū)x 忖EN|J m:h-jcNm-H:網(wǎng)fthmf汽門K< 1 English to Chinese>>UK< 2 I rser the word you uant to add>>>>K< 3 De 1 the existed wopd>>>>KC 4 Clean the sepeen >>K< 5 modify the r工wordKCCfi jpvntftet tlw?笈ysrtfiiri ,K< 7 Exit tlw jstan>>>>lease choLee furn 1 to 7;輸出結(jié)果是:delete word success頁碼55 總結(jié)雖然這次的課程設(shè)計(jì)有些功能實(shí)現(xiàn)的不是很好 ,總的來說這次課程設(shè)計(jì)效果還是可以的,在短短的兩天時間內(nèi),我們看的書的數(shù)量是非常多的,很多沒見過的函數(shù)都學(xué)了,但是自學(xué)確實(shí)是很難,很多函數(shù)雖然用的語法沒錯,但是不能應(yīng)用自如,為自己所用。這只能說明自己還需加把努力,希望在以后的學(xué)習(xí)中得到大的進(jìn)步。通過課程設(shè)計(jì)使握進(jìn)一步掌握和利用 C 語言進(jìn)行程設(shè)計(jì)的能力;進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法; 初步掌握開發(fā)一個小型實(shí)用系統(tǒng)的基本方法; 學(xué)會調(diào)試一個較長程序的基本方法; 而且通過這次課程設(shè)計(jì)讓我學(xué)會了認(rèn)真的精神態(tài)度是多么的重要,認(rèn)真思考對學(xué)習(xí)的重要性。 這個程序完全是個人所做,望老師給以批評和建議!7. 附錄#include <windows.h>#include <stdio.h>#include <malloc.h>#include <winbase.h>#include <process.h>void Search() /* 查找單詞 */ FILE *fp;char insert20;char word40;printf("Please input the word you want:n");ges(insert);fp=fopen("wordcage","r");if(fp=NULL);/* 沒有找到文件*/ printf("nnSorry do not find what you want.nn");fclose(fp);return ;while (!feof(fp)/* 查詢單詞詞庫*/ fread(&wordcage,sizeof( wordcage),1,fp);fclose(fp);void addword()/* 添加單詞 */FILE *fp;fp=fopen("wordcage","r");/* 以讀方式打開文件*/if(fp=NULL)fp=fopen("wordcage","w");/* 以寫方式打開文件*/else /*如果有單詞添加*/ fclose(fp);fp=fopen("wordcage","a");/* 以追加方式打開文件*/char insert20;printf("Inser the new word:n");gets(insert);printf("Givinig the meaning:n");scanf("%s",word);fclose(fp);printf("nnadd word success.nn");void worddel();FILE *fp;Word *head,*p,*q;char word20;fp=fopen("Wordcage","rb");/* 讀方式打開文件*/if(fp=NULL)printf("Error!");頁碼 7fclose(fp);return;head=p=q=(Word*)malloc(sizeof(Word);/* 將文件內(nèi)容放入鏈表*/while(!feof(fp)q=p;p=(Word*)malloc(sizeof(Word);fread(p,sizeof(Word),1,fp); /* 讀記錄 */q->next=p;/* 新記錄插入到鏈表的尾*/p->next=NULL;/* 最后一個結(jié)點(diǎn)的后繼為空*/fclose(fp);clrscr();printf("Input the word: ");/* 輸入要刪除的單詞*/gets(word); /* 輸入單詞 */p=head;while(p!=NULL)/* 按名字查找要刪除的圖書 */if(strcmp(p->name,word)=0)/* 找到要刪除的單詞 */if(p=head) /* 如果是第一個結(jié)點(diǎn) */head=head->next;elseq->next=p->next;/* 不是第一個結(jié)點(diǎn) */break;q=p; /* 指針后移 */ p=p->next;fp=fopen("Word.txt","wb");/* 刪除后從鏈表的頭開始重新保存*/while(head!=NULL)fwrite(head,sizeof(Word),1,fp);/* 塊寫 */head=head->next;fclose(fp);clrscr();void cleanscrean()printf("nnnnnnnnnnnnnnnnnnnnnnnn");int main() int numble;MENU:顯示主菜單 */printf("*MENU*nn"); /* printf("<<<< 1 English to Chinese>>>>nn");printf("<<<< 2 Inser the word you want to add>>>>nn");printf("<<<< 3 Del the existed word>>>> nn");printf("<<<< 4 Clean the screen >>>>nn");printf("<<<< 5 modify the existed word>>>nn");printf("<<<<6 protect the system >>>>nn");printf("<<<< 7 Exit the system>>>>nn");printf(”*n");doprintf("Please choice form 1 to 7:n"); /* 選擇你所要的功能 */scanf("%d",&numble);頁碼 9while(numble<0|numble>8);switch(numble) case 1:Search();goto MENU;case 2: addword(); goto MENU;case 3: worddel();goto MENU;case 4: cleanscrean();return 0;case 5:break;case 6:goto MENU;break;case 7: break;return 0;頁碼 107答辯記錄在舁 廳P問題回答123458指導(dǎo)教師意見指導(dǎo)教師簽名:頁碼 11