電子英漢詞典課程設(shè)計
《電子英漢詞典課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《電子英漢詞典課程設(shè)計(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 課 程 設(shè) 計 報 告 課程名稱 C語言課程設(shè)計 課題名稱 電子英漢詞典 專 業(yè) 機(jī)械設(shè)計制造及其自動化 班 級 機(jī)設(shè)0902 學(xué) 號 20090201031* 姓 名 某某 指導(dǎo)教師 田 媛 黃 哲 郭 芳
2、 2010年 07 月06 日 湖南工程學(xué)院 課 程 設(shè) 計 任 務(wù) 書 課程名稱 C語言課程設(shè)計 課 題 電子英漢詞典 專業(yè)班級 機(jī)設(shè)0902 學(xué)生姓名 某某 學(xué) 號 20090201031* 指導(dǎo)老師 田媛 黃哲 郭芳 審 批
3、 任務(wù)書下達(dá)日期 2010 年 06 月 26 日 任務(wù)完成日期 2010年 07 月 06 日 設(shè)計內(nèi)容與設(shè)計要求 1.設(shè)計內(nèi)容: 課題三:電子英漢詞典。具體內(nèi)容見附件。 2.設(shè)計要求: 1)設(shè)計正確,方案合理。 2)界面友好,使用方便。 3)程序精煉,結(jié)構(gòu)清晰。 4)上機(jī)演示。 3.設(shè)計報告要求: 課程設(shè)計報告格式如下: 1)正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正文用小四號宋體,行距為22。 2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能的實現(xiàn)、
4、程序調(diào)試、總結(jié)、附件(所有程序的源代碼,要求對程序?qū)懗霰匾淖⑨專?,課程設(shè)計報告需5000字左右(不含附件)。 3)課程設(shè)計報告裝訂順序:封面、任務(wù)書、目錄、正文、評分、程序清單附件。 二、進(jìn)度安排 星期一 星期二 星期三 星期四 星期五 12:30-15:30 15:30-18:30 12:30-15:30 15:30-18:30 交報告 上課時間另外安排。 附錄: 設(shè)計課題三:電子英漢詞典 一、問題描述: 該設(shè)計實現(xiàn)簡單電子英漢詞典的功能,具體管理操作包括單詞的添加、顯示、查找、刪除、修改和保存等。 二、功能描述:
5、 1、本設(shè)計采用結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:單詞的英文拼寫,單詞的中文釋義。 2、系統(tǒng)功能: a. 詞條錄入:即添加單詞記錄。 b. 信息顯示:將所有的單詞按字母順序顯示。 c. 詞條修改:對已經(jīng)輸入的單詞信息進(jìn)行修改。 d. 詞條刪除:刪除某個單詞記錄。 e. 單詞查詢: 輸入單詞英文拼寫,輸出該單詞的中文釋義。 f. 信息保存:將單詞信息保存到文件。 g. 退出系統(tǒng) 3、系統(tǒng)使用說明:執(zhí)行一個具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng)的功能并不限于上述,可以對其進(jìn)行擴(kuò)充完善,如在對信息進(jìn)行修改和刪除時,可以考慮系統(tǒng)的安全性,在執(zhí)行前若輸入正確密碼,才可進(jìn)行操作。
6、 三、測試數(shù)據(jù): 要求被選用的詞條有30個左右,簡單單詞為主。 目錄 1.封面---------------------------------------------1 2.任務(wù)書-------------------------------------------2 2.1設(shè)計內(nèi)容與設(shè)計要求---------------------------------3 2.2附錄-------------------------------------------------------4 3.目錄---------------------------
7、-----------------------------------5 4.課題的主要功能 4.1 各函數(shù)的主要功能----------------------------------6 4.2 課題功能模塊的劃分--------------------------------7 4.3 主要功能的實現(xiàn)------------------------------------7 4.3.1各被調(diào)用功能函數(shù)實現(xiàn)-------------------------8 5.程序調(diào)試--------------------------
8、----------------9 6.總結(jié)與體會---------------------------------------10 7.附件(源代碼及程序運(yùn)行截圖)----------------------11 8.評分表-------------------------------------------20 (一)、課題的主要功能 電子英漢詞典設(shè)計系統(tǒng)能完成一個簡單的電子英漢詞典的功能,這個系統(tǒng)有七個功能,如:查找、增加、刪除、修改、瀏覽、維護(hù)、結(jié)束 。把這七功能編該成七個子函數(shù)。在主函數(shù)當(dāng)中對這七個子數(shù)調(diào)用
9、,來實現(xiàn)對整個系統(tǒng)的操作。本詞典采用一個包含50個數(shù)據(jù)結(jié)構(gòu)數(shù),每個數(shù)據(jù)的結(jié)構(gòu)當(dāng)包括,英文單詞、中文意思。 <一>、各函數(shù)的主要功能 1)程序的模塊組成: 主 函 數(shù): main() 初始化函數(shù): init() 輸入函數(shù) : scanf() 輸出函數(shù): printf() 刪除函數(shù): memset() 查找函數(shù) find() 增加函數(shù) add() 刪除函數(shù) del() 修改函數(shù) modify() 瀏覽函數(shù) view() 維護(hù)函數(shù) store() 結(jié)束函數(shù)
10、 return() 2) 各個函數(shù)的主要功能: 輸入函數(shù): 隨時輸入數(shù)據(jù)。 菜單函數(shù):顯示系統(tǒng)主菜單。 查找函數(shù):能夠隨時查找某個單詞 增加函數(shù):能夠隨時增加想要增加的單詞 刪除函數(shù):能夠刪除某單詞信息 修改函數(shù):能隨時修改單詞信息 瀏覽函數(shù):能夠瀏覽所有單詞 (二)、課題功能的模塊的劃分 菜單界面 return 函數(shù) store 函數(shù) vie
11、w 函數(shù) modify 函數(shù) del 函數(shù) add 函數(shù) find 函數(shù) 輸出結(jié)果 (三)、 主要功能的實現(xiàn) 整個系統(tǒng)除了主函數(shù)外,另外還有12個函數(shù),實現(xiàn)七個功能:查找功能、增加功能、刪除功能、修改功能、瀏覽功能、維護(hù)功能、結(jié)束功能。各個函數(shù)的詳細(xì)設(shè)計說明如下: 1、 主函數(shù) main() 通過getch函數(shù)顯示菜單,利用switch語句實現(xiàn)各函數(shù)的調(diào)用,根據(jù)系統(tǒng)提示輸入的數(shù)字選項來調(diào)用相應(yīng)的函數(shù)。 2、 查找函數(shù)()
12、 首先利用清屏函數(shù)對屏幕清屏,利用輸入函數(shù)輸入要查找的單詞,如果找到則顯示出所找的單詞,再利用getch()函數(shù)顯示,按任意鍵返回主菜單,如果沒有找到則顯示出not found,按任意鍵返回。 3、增加函數(shù) add() 首先清除屏幕,找到一個空位利用輸入函數(shù)輸入要增加的單詞,再判斷該單詞是否存在,如果存在,則顯示“the word is already store”,不存在則輸入該單詞的意思進(jìn)行存儲,按任意鍵返回主菜單。 4、刪除函數(shù) del() 首先輸入要刪除的單詞,如果找到則利用memset函數(shù)對它進(jìn)行‘\0’覆蓋
13、,按任意鍵返回主菜單,如果沒有找到,則顯示not found。 5、修改函數(shù) modify() 首先清屏,輸入要修改的單詞,如果找到單詞,則顯示found,并輸入單詞新的意思,存儲之后再返回主菜單,如果沒有找到則顯示not found,按任意鍵返回。 6、保存函數(shù) store() 利用fscanf函數(shù)將結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)保存到指定文件中。 7、瀏覽函數(shù) view() 首先清屏,分頁顯示,每頁顯示20個,讀出結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)直至結(jié)束。 四、調(diào)試程序 老實說本程序的代碼我是借鑒別人
14、的,雖然我過了二級C,但我沒把握自己完全原創(chuàng),即使借鑒但用的時候難免出現(xiàn)這樣那樣的錯誤。如開始設(shè)計出來的菜單不是預(yù)想的那樣,而是總出現(xiàn)混亂,解決的這個問題的辦法是調(diào)試。最后還是老師幫我找到了問題的所在,在這次的課程設(shè)計中,我們遇到了如下問題:有的不能加分號的加了分號,該加的又沒有加,在TC下的程序有些函數(shù)不能在VC下運(yùn)行,這些問題通過同學(xué)們的分析討論都一一解決了,而遇到的最大的問題是:運(yùn)行結(jié)果不正確,后來經(jīng)過老師的指點(diǎn),后來自己調(diào)試終于運(yùn)行出結(jié)果,經(jīng)過美化界面修改整理代碼終于完工! 如:clrscr()函數(shù)(清屏函數(shù))只能在TC下運(yùn)行,而源代碼中有大量clrscr()函數(shù),在VC下的的清
15、屏函數(shù)是system(“cls”)這時就可以用宏定義來解決: define clrscr() system(“cls”) 一個系統(tǒng)的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎么用你設(shè)計的這個系統(tǒng)。在設(shè)計的調(diào)試過程中也無法順利的完成調(diào)試工作。有了一個清晰簡單的菜單和一些提示信息這后,調(diào)試過程完成的非常順利。 五、總結(jié) 課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今計算機(jī)應(yīng)用在生活中可以說是無處不在。因此,作為二十一世紀(jì)
16、的大學(xué)生來說掌握計算機(jī)開發(fā)技術(shù)是十分重要的。 回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,經(jīng)過一周的課程設(shè)計,雖然甚是辛苦,但我卻學(xué)到了許多東西,不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書上所沒有學(xué)到過的知識,使我自己對C語言又有了重新的認(rèn)識,覺得它十分的重要,但掌握它又不是一件容易的事。只有通過自己不停的思考,不斷的上機(jī)實踐。才能夠比較熟練的掌握好,在其中我們遇到了比較多的困難,因為其中有些知識我們并沒有學(xué)到過,要自己去查找資料來完成。 在設(shè)計過程中遇到問題,可以說是困難重重,因為畢竟是第一次做的,難免會遇到各種各樣的問題,同時在設(shè)計過程中發(fā)現(xiàn)
17、了自己的不足之處,對以前的所學(xué)過的知識理解的不夠深刻,掌握的不夠牢固。通過這次課程設(shè)計之后,覺得以前學(xué)過的知識要重新溫習(xí)才能夠達(dá)到查漏補(bǔ)缺的效果。 剛開始聽說我們要設(shè)計英漢電子詞典時心里真的是沒有一點(diǎn)底,毫無思緒,無從下手,畢竟C語言才剛學(xué)一年就要編寫如此復(fù)雜的應(yīng)用程序。但參考了一些資料和與幾個有經(jīng)驗的學(xué)長們討論后,編寫思路才漫漫清楚,開始了解它的基本方式和操作方法。在不太熟悉的部分,我們能夠充分利用自己的自學(xué)能力,發(fā)揮它,以及在設(shè)計過程中的團(tuán)隊作用,提高自己解決問題的能力。在設(shè)計程序是也增加了自己的實踐能力,通過翻閱有關(guān)文獻(xiàn)獲得了些自己原來不了解的知識。從接觸C語言到了解C語言是一個過程,
18、是自身學(xué)習(xí)的過程更是一段由量變到質(zhì)變的過程。俗話說師傅領(lǐng)進(jìn)門,修行靠個人。在編寫過程中遇到的不解和麻煩都基本上是通過自身的反復(fù)琢磨和學(xué)長的幫助而解決的。通過這段時間的課程設(shè)計,我認(rèn)識到C語言是一門比較難的課程。需要多花時間上機(jī)練習(xí),這次的程序訓(xùn)練培養(yǎng)了我的實際分析問題的能力,實際編程能力。隨著程序的逐漸完善,自己也在慢慢進(jìn)步,達(dá)到了預(yù)期目的。 這次課程設(shè)計終于完成了,在設(shè)計中遇到了許多的問題,但在老師的指導(dǎo)下,終于迎刃而解,同時,對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次感謝。 六、程序代碼 #include "stdio.h" #include "conio.h
19、" #include "string.h" #include "stdlib.h" #define clrscr() system("cls") /*將TC下的清屏函數(shù)替換為VC下的清屏函數(shù)*/ typedef struct { char a[20]; char b[40]; }XYZ; XYZ xyz[50]; void init() /*初始化函數(shù)*/ { int i; FILE *fp; for (i=0;i<50;i++) { mems
20、et(xyz[i].a,\0,20); /*清空磁道,*/ memset(xyz[i].b,\0,40); } fp=fopen("c:\\my.txt","w"); /*在C盤新建一個TXT文件*/ fp=fopen("c:\\my.txt","r"); /*將新建的TXT文件打開*/ i=0; while( fscanf(fp,"%s %s\n",xyz[i].a,xyz[i].b)!=EOF) /*由文件向結(jié)構(gòu)體數(shù)組中寫數(shù)鋸*/ i++; fclose(fp); }
21、 void find() /*單詞查詢函數(shù)*/ { int i; char temp[20]; clrscr(); printf("please input a word:"); scanf("%s",temp); for (i=0;i<50;i++) if(strcmp(temp,xyz[i].a)==0) /*通過比較字符查詢*/ { printf ("\n\n%s : %s",xyz[i].a,xyz[i].b); printf
22、 ("\n\npress any key to return"); getch(); return; } printf ("\n\nnot found"); getch(); return; } void add() /*詞條錄入函數(shù)*/ { int i,j; char temp[20]; char temp1[
23、40]; clrscr(); for (i=0;i<50;i++) { if(!(*xyz[i].a)) /*找到空位*/ { printf("\n\nplease input the word:"); scanf("%s",temp); for (j=0;j<50;j++) if(strcmp(temp,xyz[j].a)==0) /*找到相同字符*/
24、 { printf ("\n\nthe word is already store\n\n"); printf ("please any key to return"); getch(); return; } printf("\n\nplease input the mean:"); scanf("%s",temp1);
25、 strcpy(xyz[i].a,temp); /*復(fù)制*/ strcpy(xyz[i].b,temp1); return; } } printf("\n\nsorry,the data is full"); } void del() /*詞條刪除函數(shù)*/ { int i; char temp[20]; clrscr(); printf("\n\nplease input the word:");
26、scanf("%s",temp); for (i=0;i<50;i++) if(strcmp(temp,xyz[i].a)==0) /*比較*/ { memset(xyz[i].a,\0,20); /*清空該結(jié)構(gòu)體*/ memset(xyz[i].b,\0,40); printf ("\n\nsuccess,press any key to return"); getch(); return;
27、 } printf ("\n\nnot found"); getch(); return; } void modify() /*詞條修改函數(shù)*/ { int i; char temp[20]; char temp1[40]; clrscr(); printf("\n\nplease input the word:"); scanf("%s",temp); for (i=0;i<50;i++) if(strcmp(temp,xyz[i].a)
28、==0) { printf ("\n\nfound\n\n"); printf("%s : %s\n\n",xyz[i].a,xyz[i].b); /*顯示原有單詞和意思*/ printf ("\n\nplease input the new mean:"); scanf("%s",temp1); strcpy(xyz[i].b,temp1); /* 從temp1復(fù)制結(jié)構(gòu)體中*/
29、 printf ("\n\nsuccess,please any key to return"); getch(); return; } printf ("\n\nnot found"); getch(); return; } void view() /*信息顯示函數(shù)*/ { int i,j; clrscr(); for (i=0,j=0;i<50;i++) { if(*xyz[i].a!=\0)
30、 /*如果不是空位*/ { j++; printf("%s : %s\n",xyz[i].a,xyz[i].b); if(j==20) /*分頁顯示,一次顯示20頁*/ { j=0; printf ("\nprease any key to page down"); getch();
31、 clrscr(); } } } printf("\n\nthats all"); getch(); } void store() /*信息保存函數(shù)*/ { int i; FILE *fp; fp=fopen("c:\\my.txt","w"); /*以讀的方式再新建my.txt文檔*/ if(fp==NULL) /*沒建成顯示wrong!*/ printf("wrong!"); getchar(); for (i=0;i<50;
32、i++) fprintf(fp,"%s %s\n",xyz[i].a,xyz[i].b); /*將結(jié)構(gòu)體中的數(shù)劇保存到my.txt文檔*/ fclose(fp); printf ("\n\nstore success\n\n"); getch(); return; } int main(void) /*主函數(shù)*/ { char key; init(); while(1) { clrscr(); printf("\n\n\n
33、 電子英漢詞典設(shè)計----設(shè)計者<肖納>\n\n"); printf(" ************************************************************************"); printf(" * 1、單詞查詢 * \n"); printf(" * 2
34、、詞條錄入 * \n"); printf(" * 3、詞條刪除 * \n"); printf(" * 4、詞條修改 * \n"); printf(" * 5、信息顯示
35、 * \n"); printf(" * 6、信息保存 * \n"); printf(" * 7、退出系統(tǒng) * \n"); printf(" ********************************************************
36、****************"); printf("\n\n\n 非本人授權(quán)嚴(yán)禁分享!"); key=getch(); switch(key) { case 1:find();break; case 2:add();break; case 3:del();break; case 4:modify();break; case 5:view();break;
37、 case 6:store();break; case 7: return 0; } } return 0; } 功能顯示: 主菜單 主菜單 單詞查詢 詞條錄入 詞條錄入 詞條刪除
38、 成功 失敗 詞條修改 信息顯示 信息保存 機(jī)械工程學(xué)院課程設(shè)計評分表 課程名稱: C語言程序設(shè)計 項 目 評 價 設(shè)計方案的合理性與創(chuàng)造性 設(shè)計與調(diào)試結(jié)果 設(shè)計說明書的質(zhì)量 答辯陳述與回答問題情況 課程設(shè)計周表現(xiàn)情況 綜合成績 教師簽名: 日 期: 2010.7.10 20
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。