C語言課程設(shè)計(jì)——電子英漢詞典_第1頁
C語言課程設(shè)計(jì)——電子英漢詞典_第2頁
C語言課程設(shè)計(jì)——電子英漢詞典_第3頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)報(bào)告課程名稱C 語言課程設(shè)計(jì)課題名稱電子英漢詞典專 業(yè)班 級紡工1203學(xué)號姓名指導(dǎo)教師田媛2014年01月06日湖南工程學(xué)院課程設(shè)計(jì)任務(wù)書課程名稱C語言課程設(shè)計(jì)課 題電子英漢詞典專業(yè)班級紡工工程學(xué)生姓名 學(xué)號指導(dǎo)老師朧審批任務(wù)書下達(dá)日期2013 年12月26日任務(wù)完成日期 2014年01月06日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1 .設(shè)計(jì)內(nèi)容:課題一:電子英漢詞典。具體內(nèi)容見附錄。2. 設(shè)計(jì)要求:1)設(shè)計(jì)正確,方案合理。2)界面友好,使用方便。3)程序精煉,結(jié)構(gòu)清晰。4)上機(jī)演示。3. 設(shè)計(jì)報(bào)告要求:課程設(shè)計(jì)報(bào)告格式如下:1)正文的格式:一級標(biāo)題用3號黑體,二級標(biāo)題用四號宋體加粗,正 文用小四號

2、宋體,行距為22。2)正文的內(nèi)容:課題的主要功能、課題的功能模塊的劃分、主要功能 的實(shí)現(xiàn)、程序調(diào)試、總結(jié)、附件(所有程序的源代碼,要求對程序?qū)懗霰?要的注釋),課程設(shè)計(jì)報(bào)告需5000字左右(不含附件)。3)課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、評分、程序 清單附件。二、進(jìn)度安排星期日(17 周)星期一(18 周)星期四(18 周)星期五(18 周)星期日(18周)14:00-17:0018:00-21:0018:00-21:0018:00-21:00交報(bào)告上課時(shí)間另外安排上課時(shí)間另外安排。附錄:設(shè)計(jì)課題三:電子英漢詞典、問題描述:該設(shè)計(jì)實(shí)現(xiàn)簡單電子英漢詞典的功能,具體管理操作包括單詞

3、的添加、顯示、 查找、刪除、修改和保存等。二、功能描述:1、本設(shè)計(jì)采用結(jié)構(gòu)體數(shù)組,每個(gè)數(shù)據(jù)的結(jié)構(gòu)應(yīng)當(dāng)包括:單詞的英文拼寫,單 詞的中文釋義。2、系統(tǒng)功能:a. 詞條錄入:即添加單詞記錄。b. 信息顯示:將所有的單詞按字母順序顯示。c. 詞條修改:對已經(jīng)輸入的單詞信息進(jìn)行修改。d. 詞條刪除:e. 單詞查詢 :刪除某個(gè)單詞記錄。輸入單詞英文拼寫 , 輸出該單詞的中文釋義。f. 信 息保存:將單詞信息保存到文件。g. 退出系統(tǒng)3、系統(tǒng)使用說明:執(zhí)行一個(gè)具體的功能之后,程序?qū)⒅匦嘛@示功能菜單。系統(tǒng) 的功能并不限于上述,可以對其進(jìn)行擴(kuò)充完善,如在對信息進(jìn)行修改和刪除時(shí), 可以考慮系統(tǒng)的安全性,在執(zhí)行前

4、若輸入正確密碼,才可進(jìn)行操作。、測試數(shù)據(jù):要求被選用的詞條有 30 個(gè)左右,簡單單詞為主。目錄1. 封面 12. 任務(wù)書 22.1 設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求32.2 附錄 43. 目錄 54. 課題的主要功能4.1 各函數(shù)的主要功能 64.2 課題功能模塊的劃分 74.3 主要功能的實(shí)現(xiàn) 75. 程序調(diào)試 96. 總結(jié)與體會(huì) 107. 附件(源代碼及程序運(yùn)行截圖) 118.評分表 20 (一)、課題的主要功能電子英漢詞典設(shè)計(jì)系統(tǒng)能完成一個(gè)簡單的電子英漢詞典的功能, 這個(gè)系統(tǒng)有七 個(gè)功能,如:查找、增加、刪除、修改、瀏覽、維護(hù)、結(jié)束 。把這七功能編該成七個(gè) 子函數(shù)。在主函數(shù)當(dāng)中對這七個(gè)子數(shù)調(diào)用,來實(shí)現(xiàn)

5、對整個(gè)系統(tǒng)的操作。本詞典采用一個(gè) 包含 50 個(gè)數(shù)據(jù)結(jié)構(gòu)數(shù),每個(gè)數(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ù)return()2)各個(gè)函數(shù)的主要功能:輸入函數(shù):隨時(shí)輸入數(shù)據(jù)。菜單函數(shù):顯示系統(tǒng)主菜單。查找函數(shù):能夠隨時(shí)查找某個(gè)單詞增加函數(shù):能夠隨時(shí)增加想要增加的單詞

6、刪除函數(shù):能夠刪除某單詞信息 修改函數(shù):能隨時(shí)修改單詞信息瀏覽函數(shù):能夠?yàn)g覽所有單詞(二 )、課題功能的模塊的劃分?jǐn)?shù)store函return函 數(shù)(三)、主要功能的實(shí)現(xiàn)整個(gè)系統(tǒng)除了主函數(shù)外,另外還有12個(gè)函數(shù),實(shí)現(xiàn)七個(gè)功能:查找功能、增加 功能、刪除功能、修改功能、瀏覽功能、維護(hù)功能、結(jié)束功能。各個(gè)函數(shù)的詳細(xì)設(shè)計(jì)說 明如下:1、主函數(shù)mai n()通過getch函數(shù)顯示菜單,利用switch語句實(shí)現(xiàn)各函數(shù)的調(diào)用,根據(jù)系統(tǒng)提示輸 入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù)。2、查找函數(shù)()首先利用清屏函數(shù)對屏幕清屏,利用輸入函數(shù)輸入要查找的單詞,如果找到則顯 示出所找的單詞,再利用 getch() 函數(shù)顯示,

7、按任意鍵返回主菜單,如果沒有找到則顯 示出 not found ,按任意鍵返回。3、增加函數(shù) add()首先清除屏幕,找到一個(gè)空位利用輸入函數(shù)輸入要增加的單詞,再判斷該單詞 是否存在,如果存在,則顯示“ the word is already store”,不存在則輸入該單詞的意思進(jìn)行存儲(chǔ),按任意鍵返回主菜單。4、刪除函數(shù) del()首先輸入要?jiǎng)h除的單詞,如果找到則利用 memset函數(shù)對它進(jìn)行 0 '覆蓋,按任 意鍵返回主菜單,如果沒有找到,則顯示 not found 。5、修改函數(shù) modify()首先清屏,輸入要修改的單詞,如果找到單詞,則顯示 found ,并輸入單詞新的 意思

8、,存儲(chǔ)之后再返回主菜單,如果沒有找到則顯示 not found, 按任意鍵返回。6、保存函數(shù) store()利用 fscanf 函數(shù)將結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)保存到指定文件中。7、瀏覽函數(shù) view()首先清屏,分頁顯示,每頁顯示 20 個(gè),讀出結(jié)構(gòu)體數(shù)組中的數(shù)據(jù)直至結(jié)束。四、調(diào)試程序老實(shí)說本程序的代碼我是借鑒別人的,雖然我過了二級 C,但我沒把握自己完全原 創(chuàng),即使借鑒但用的時(shí)候難免出現(xiàn)這樣那樣的錯(cuò)誤。如開始設(shè)計(jì)出來的菜單不是預(yù)想的 那樣,而是總出現(xiàn)混亂,解決的這個(gè)問題的辦法是調(diào)試。最后還是老師幫我找到了問題 的所在, 在這次的課程設(shè)計(jì)中 ,我們遇到了如下問題 : 有的不能加分號的加了分號 , 該

9、加 的又沒有加,在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下的的清屏函數(shù)是system( “cls )這時(shí)就可以用宏定義來解決:define clrscr() system(“ cls ” )一個(gè)系統(tǒng)的菜單和提示信息非常重要。 如果沒有這些用戶根本不知道怎么用你設(shè)計(jì)的這 個(gè)系統(tǒng)。在設(shè)計(jì)的調(diào)試過程中也無法順利的完成調(diào)試工作。

10、 有了一個(gè)清晰簡單的菜單和 一些提示信息這后,調(diào)試過程完成的非常順利。五、總結(jié)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí) ,發(fā)現(xiàn) ,提出,分析和解決實(shí)際問題 , 鍛煉實(shí)踐能力的 重要環(huán)節(jié) ,是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程 .隨著科學(xué)技術(shù)發(fā)展的日新月異,當(dāng)今 計(jì)算機(jī)應(yīng)用在生活中可以說是無處不在。因此,作為二十一世紀(jì)的大學(xué)生來說掌握計(jì)算機(jī)開發(fā) 技術(shù)是十分重要的?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,的確,從拿到題目到完成整個(gè)編程,從理論到 實(shí)踐,經(jīng)過一周的課程設(shè)計(jì),雖然甚是辛苦,但我卻學(xué)到了許多東西,不僅鞏固了以前所學(xué)過 的知識(shí),而且學(xué)到了很多在書上所沒有學(xué)到過的知識(shí),使我自己對 C 語言又有了

11、重新的認(rèn)識(shí), 覺得它十分的重要,但掌握它又不是一件容易的事。只有通過自己不停的思考,不斷的上機(jī)實(shí) 踐。才能夠比較熟練的掌握好,在其中我們遇到了比較多的困難,因?yàn)槠渲杏行┲R(shí)我們并沒 有學(xué)到過,要自己去查找資料來完成。在設(shè)計(jì)過程中遇到問題,可以說是困難重重,因?yàn)楫吘故堑谝淮巫龅模y免會(huì)遇到各種各 樣的問題, 同時(shí)在設(shè)計(jì)過程中發(fā)現(xiàn)了自己的不足之處, 對以前的所學(xué)過的知識(shí)理解的不夠深刻, 掌握的不夠牢固。通過這次課程設(shè)計(jì)之后,覺得以前學(xué)過的知識(shí)要重新溫習(xí)才能夠達(dá)到查漏補(bǔ) 缺的效果。剛開始聽說我們要設(shè)計(jì)英漢電子詞典時(shí)心里真的是沒有一點(diǎn)底,毫無思緒,無從下手,畢 竟C語言才剛學(xué)一年就要編寫如此復(fù)雜的應(yīng)用

12、程序。但參考了一些資料和與幾個(gè)有經(jīng)驗(yàn)的學(xué)長 們討論后,編寫思路才漫漫清楚,開始了解它的基本方式和操作方法。在不太熟悉的部分,我 們能夠充分利用自己的自學(xué)能力,發(fā)揮它,以及在設(shè)計(jì)過程中的團(tuán)隊(duì)作用,提高自己解決問題 的能力。在設(shè)計(jì)程序是也增加了自己的實(shí)踐能力,通過翻閱有關(guān)文獻(xiàn)獲得了些自己原來不了解的知識(shí)。從接觸 C 語言到了解 C 語言是一個(gè)過程,是自身學(xué)習(xí)的過程更是一段由量變到質(zhì)變的 過程。俗話說師傅領(lǐng)進(jìn)門,修行靠個(gè)人。在編寫過程中遇到的不解和麻煩都基本上是通過自身 的反復(fù)琢磨和學(xué)長的幫助而解決的。通過這段時(shí)間的課程設(shè)計(jì),我認(rèn)識(shí)到 C 語言是一門比較難 的課程。需要多花時(shí)間上機(jī)練習(xí),這次的程序訓(xùn)

13、練培養(yǎng)了我的實(shí)際分析問題的能力,實(shí)際編程 能力。隨著程序的逐漸完善,自己也在慢慢進(jìn)步,達(dá)到了預(yù)期目的。這次課程設(shè)計(jì)終于完成了,在設(shè)計(jì)中遇到了許多的問題,但在老師的指導(dǎo)下, 終于迎刃而 解,同時(shí),對給過我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次感謝。六、程序代碼#include "stdio.h"#include "conio.h"#include "string.h"#include "stdlib.h"將TC下的清屏函數(shù)替換為VC下的清屏函數(shù)*/#define clrscr() system("cls"

14、;) /*typedef structchar a20;char b40;XYZ;XYZ xyz50;void init() /* 初始化函數(shù) */int i;FILE *fp;for (i=0;i<50;i+)清空磁道, */在C盤新建一個(gè)TXT文件*/將新建的TXT文件打開*/*由文件向結(jié)構(gòu)體數(shù)組memset(xyzi.a,'0',20); /* memset(xyzi.b,'0',40);fp=fopen("c:my.txt","w"); /* fp=fopen("c:my.txt",&qu

15、ot;r"); /*i=0;while( fscanf(fp,"%s %sn",xyzi.a,xyzi.b)!=EOF)中寫數(shù)鋸 */i+;fclose(fp);void find() /* 單詞查詢函數(shù) */int i;char temp20; clrscr();printf("please input a word:"); scanf("%s",temp);for (i=0;i<50;i+) if(strcmp(temp,xyzi.a)=0) /* 通過比較字符查詢 printf ("nn%s : %s&

16、quot;,xyzi.a,xyzi.b);printf ("nnpress any key to return"); getch();return;printf ("nnnot found");getch();return;void add() /* 詞條錄入函數(shù) */int i,j;char temp20;char temp140;clrscr();for (i=0;i<50;i+)if(!(*xyzi.a) /* 找到空位 */ printf("nnplease input the word:");scanf("%

17、s",temp); for (j=0;j<50;j+)找到相同字符 */if(strcmp(temp,xyzj.a)=0) /*printf ("nnthe word is already storenn"); printf ("please any key to return"); getch();return;復(fù)制*/printf("nnplease input the mean:"); scanf("%s",temp1); strcpy(xyzi.a,temp); /* strcpy(xyzi

18、.b,temp1);return;printf("nnsorry,the data is full");void del() /* 詞條刪除函數(shù) */int i;char temp20;clrscr();printf("nnplease input the word:"); scanf("%s",temp);for (i=0;i<50;i+) if(strcmp(temp,xyzi.a)=0) /* 比較 */ memset(xyzi.a,'0',20); /* 清空該結(jié)構(gòu)體 */ memset(xyzi.b,&

19、#39;0',40);printf ("nnsuccess,press any key to return"); getch();return;printf ("nnnot found");getch();return;void modify() /* 詞條修改函數(shù) */int i;char temp20;char temp140;clrscr();printf("nnplease input the word:"); scanf("%s",temp);for (i=0;i<50;i+) if(str

20、cmp(temp,xyzi.a)=0)顯示原有單詞從 temp1 復(fù)制結(jié)構(gòu) printf ("nnfoundnn"); printf("%s : %snn",xyzi.a,xyzi.b); /* 和意思 */printf ("nnplease input the new mean:"); scanf("%s",temp1);strcpy(xyzi.b,temp1); /* 體中 */printf ("nnsuccess,please any key to return"); getch();re

21、turn;printf ("nnnot found");getch();return;void view() /* 信息顯示函數(shù) */int i,j;clrscr();for (i=0,j=0;i<50;i+)if(*xyzi.a!='0') /* 如果不是空位 */j+;printf("%s : %sn",xyzi.a,xyzi.b);if(j=20) /* 分頁顯示,一次顯示 20 頁*/ j=0;printf ("nprease any key to page down");getch();clrscr()

22、;printf("nnthat's 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;i+)fprintf(fp,"%s %sn",xyzi.a,xyzi.b); /* 將結(jié)構(gòu)體中的數(shù)劇保存到 my.txt 文檔 */ fclose(fp);printf ("nnstore successnn");getch();return;int main(void) /* 主函數(shù) */char key;init()

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論