C語(yǔ)言課程設(shè)計(jì)英語(yǔ)詞典排版系統(tǒng)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)英語(yǔ)詞典排版系統(tǒng)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)英語(yǔ)詞典排版系統(tǒng)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)英語(yǔ)詞典排版系統(tǒng)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)英語(yǔ)詞典排版系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、c語(yǔ)言課程設(shè)計(jì)院系:姓名:學(xué)號(hào):班號(hào):指導(dǎo)教師:日期:2010年9月第一部分 1.設(shè)計(jì)題目:一種簡(jiǎn)單份的英文詞典排版系統(tǒng)2實(shí)踐目的通過(guò)進(jìn)行計(jì)算機(jī)實(shí)踐,更加系統(tǒng)地理解和掌握c語(yǔ)言的基本概念、語(yǔ)言特點(diǎn)和編程技巧。利用系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)和自定義函數(shù)進(jìn)行程序設(shè)計(jì),培養(yǎng)利用c語(yǔ)言設(shè)計(jì)綜合程序的能力。2.要求: (1)能輸入和顯示打入的詞。 (2)能分辨出單詞。 (3)對(duì)重復(fù)的單詞和已輸入的單詞能自動(dòng)排除。 (4)能按a-z排序排版。 (5)能將運(yùn)行結(jié)果以文本形式存儲(chǔ)。 (6)具有添加新單詞并重新排版的能力。3.分析: 運(yùn)行結(jié)果以文本形式存儲(chǔ),因而要提供文件份額輸入輸出操作;通過(guò)查找操作檢查重復(fù)單詞;提供

2、排序操作實(shí)現(xiàn)按a-z的順序排版;提供插入操作添加新單詞并重新排版。另外通過(guò)鍵盤式菜單實(shí)現(xiàn)功能選擇。 數(shù)據(jù)結(jié)構(gòu)采用指針數(shù)組或二維數(shù)組。以回車鍵或者空格鍵作為單詞輸入結(jié)束標(biāo)志對(duì)重復(fù)的單詞自動(dòng)排除排除可選第一章的查找方法,數(shù)據(jù)結(jié)構(gòu)可采用指針和數(shù)組。 第二部分1總體設(shè)計(jì)整個(gè)系統(tǒng)被設(shè)計(jì)為單詞錄入模塊,文件存儲(chǔ)模塊和單詞瀏覽四個(gè)模塊。其中單詞錄入模塊要完成輸入單詞,檢查是否重復(fù),排序操作。文件存儲(chǔ)模塊把存放單詞的詞組中的數(shù)據(jù)寫(xiě)入文件。單詞瀏覽模塊完成英文詞典的輸出,即文件的輸出操作。 這四個(gè)模塊是整體的設(shè)計(jì)思路,設(shè)計(jì)核心,整個(gè)程序的設(shè)計(jì)都將圍繞這四個(gè)模塊進(jìn)行,各個(gè)模塊都相互銜接,所以需要在設(shè)計(jì)好各個(gè)部分地

3、同時(shí),還要把握好各個(gè)部分的連接。 以下這個(gè)是簡(jiǎn)單的設(shè)計(jì)模塊:英文詞典排版系統(tǒng)單詞錄入文件存儲(chǔ)單詞瀏覽2詳細(xì)設(shè)計(jì) 按照上面的整體思路,分別設(shè)計(jì)各個(gè)模塊。 單詞錄入模塊要完成輸入單詞,檢查是否重復(fù),排序操作。是設(shè)計(jì)程序的核心部分,對(duì)于檢查是否重復(fù),以及排序兩個(gè)主要方面,我在設(shè)計(jì)中采用了兩個(gè)結(jié)構(gòu)體。 文件存儲(chǔ)模塊把存放單詞的詞組中的數(shù)據(jù)寫(xiě)入文件,這個(gè)模塊還需具有天將新單詞的功能。 單詞瀏覽模塊完成英文詞典的輸出,即文件的輸出操作。將文件儲(chǔ)存模塊的內(nèi)容輸出。流程圖輸入單詞 檢查是否重復(fù) 刪除 no yes no排序操作文件存儲(chǔ) 單詞輸出 主函數(shù)一般設(shè)計(jì)的簡(jiǎn)潔,只提供輸入,輸出,功能處理和輸出部分的函數(shù)

4、使用。其中各功能模塊選擇菜單方式。以下是主要的設(shè)計(jì)程序:程序#define n 1000char dicn20;void main()cheak();sort();work(); 該程序以菜單的形式簡(jiǎn)要反映了主要的設(shè)計(jì)思路。包含了幾個(gè)主要模塊的核心部分。3各功能模塊設(shè)計(jì)1 單詞錄入單詞可是字符型,輸入時(shí)可采用字符型數(shù)組; 這是一個(gè)重要的模塊,包含設(shè)計(jì)的幾個(gè)重要部分, 這個(gè)模塊包含著幾個(gè)功能,輸入單詞,檢查單詞,刪除重復(fù)的單詞,并且對(duì)單詞進(jìn)行排序,比較復(fù)雜。 流程圖如下: 輸入單詞 檢查單詞,并排序由于需要檢查是否有多于的單詞,而且還要對(duì)單詞進(jìn)行排序,所以這個(gè)模塊需要采用結(jié)構(gòu)體。(1)對(duì)單詞進(jìn)行

5、排序輸入單詞 判斷條件排序 以下的是程序:void write( int r ) int i; p = fopen( data.txt, w ); for( i = 0; i r; i+ ) fprintf( p, %sn, dici ); fclose(p);nt sort( ) int i, j, flag = 1, r; char s20; r = read(); for( i = 1; i r & flag = 1; i+ ) flag = 0; for( j = 0; j 0 ) flag = 1; strcpy( s, dicj ); strcpy( dicj, dicj+1 );

6、 strcpy( dicj+1, s ); write( r ); return 0; 這個(gè)結(jié)構(gòu)體采用了strcmp函數(shù),對(duì)單詞進(jìn)行比較,從而完成排序。(2)檢查刪除重復(fù)的單詞 這個(gè)模塊的流程圖如下: 單詞 條件刪除重復(fù)的單詞以下是這個(gè)結(jié)構(gòu)體的設(shè)計(jì)程序:clear(); for( i = 0; i r; i+ ) if( strcmp( d, dici ) = 0 ) printf( the word %s has already existedn,d ); flag = 1; break; if( flag = 0 ) printf( the word %s is successfully

7、addedn, d ); strcpy( dicr, d ); r+; printf( nncontinue adding,please input a word;back to main menu,input 0 :n ); while( scanf( %s, f ) & ! ( f0 = 0 & f1 = 0 ) ) flag = 0; for( i = 0; i r; i+ ) if( strcmp( f, dici ) = 0 ) clear(); printf( the word %s has already existedn,d ); flag = 1; break; if( fl

8、ag = 0 ) clear(); printf( the word %s is successfully addedn, f ); strcpy( dicr, f ); r+; printf( nncontinue adding,please input a word;back to main menu,input 0 :n ); write( r ); sort(); clear(); return;這個(gè)模塊同樣運(yùn)用了strcmp函數(shù),通過(guò)比較刪除重復(fù)的單詞。2文件儲(chǔ)存模塊 這個(gè)模塊的流程圖: 檢查排序好的單詞 儲(chǔ)存單詞將上面整理好的單詞以文件的形式儲(chǔ)存,而且這個(gè)模塊能具有被補(bǔ)充新單詞的功

9、能。其設(shè)計(jì)程序如下:int read() int r = 0; p = fopen( data.txt, r ); while( fscanf( p, %s, dicr ) != eof ) r+; fclose(p); write(r); return r;3.單詞瀏覽這個(gè)模塊的流程圖,這個(gè)模塊相對(duì)較簡(jiǎn)單: 儲(chǔ)存的文件輸出單詞這個(gè)模塊的任務(wù)就是將出存在文件里的單詞輸出來(lái),雖然比較簡(jiǎn)單,是顯示最后結(jié)果的一步。需將前面的那個(gè)個(gè)模塊的內(nèi)容輸出即可。 以上的幾個(gè)部分緊密相聯(lián),而且每個(gè)部分都很重要,相互銜接,因此每個(gè)設(shè)計(jì)模塊都不能忽視。只有每個(gè)部分都不出現(xiàn)漏洞,才能完成最后目的。他的程序是:oid f

10、ind( char *s ) char t20; int flag = 0; char f20; int r = 0, c, i; int temp; p = fopen( data.txt, r ); clear(); while( fscanf( p, %s, t ) != eof ) strcpy( dicr, t ); r+; temp = strcmp( s, t ); if( temp = 0 ) c = r; flag = 1; write( r ); if( flag ) printf( %ss sequence number is %d!n, s, c ); else pri

11、ntf( can not find %s!n, s ); printf( nncontinue lookuping,please input a word;back to main menu,input 0 :n ); while( scanf( %s, f ) & ! ( f0 = 0 & f1 = 0 ) ) flag = 0; for( i = 0; i r; i+ ) if( strcmp( f, dici ) = 0 ) flag = 1; c = i+1; break; if( flag ) clear(); printf( %ss sequence number is %d!n,

12、 f, c ); else clear(); printf( can not find %s!n, f ); printf( nncontinue lookuping,please input a word;back to main menu,input 0 :n ); clear(); return; 第三部分 設(shè)計(jì)感想:在老師的帶領(lǐng)下進(jìn)行了c語(yǔ)言程序?qū)嵺`學(xué)習(xí)。在短短一周的實(shí)習(xí)期間使我獲取了不少新知識(shí)也鞏固了許多老知識(shí)。c語(yǔ)言是需要有一定基礎(chǔ)、而且動(dòng)手能力強(qiáng)的學(xué)科。上機(jī)實(shí)驗(yàn)是學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言必不可少的實(shí)踐環(huán)節(jié),特別是c語(yǔ)言靈活、簡(jiǎn)潔,更需要通過(guò)編程的實(shí)踐來(lái)真正掌握它。對(duì)于程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)目

13、的,可以概括為學(xué)習(xí)語(yǔ)法規(guī)定、鞏固貫穿系統(tǒng)知識(shí)、掌握程序設(shè)計(jì)方法、提高程序設(shè)計(jì)能力。通過(guò)多次上機(jī)練習(xí),對(duì)于語(yǔ)法知識(shí)有了感性的認(rèn)識(shí),加深對(duì)它的理解,在理解的基礎(chǔ)上就會(huì)自然而然地掌握c語(yǔ)言的語(yǔ)法規(guī)定。對(duì)于一些內(nèi)容自己認(rèn)為在課堂上聽(tīng)懂了,但上機(jī)實(shí)踐中會(huì)發(fā)現(xiàn)原來(lái)理解的偏差,更加鞏固了學(xué)過(guò)的知識(shí)。這次上機(jī)實(shí)習(xí)讓我學(xué)到了很多有用的東西,鞏固了之前的學(xué)習(xí),讓我學(xué)到了在教室和做題中學(xué)不到的一些知識(shí),通過(guò)這個(gè)程序的學(xué)習(xí),使我進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法。初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法,學(xué)會(huì)調(diào)試一個(gè)比較長(zhǎng)程序的基本方法,學(xué)會(huì)利用流程圖表示算法,進(jìn)一步掌握和提高利用c語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。我認(rèn)

14、為,這次實(shí)習(xí)對(duì)于我是非常有意義的,對(duì)我個(gè)人的影響比較大,對(duì)我的動(dòng)手能力有了很大的提高。 第四部分上機(jī)操作:編譯、連接和運(yùn)行下面是運(yùn)行后各個(gè)模塊的界面圖:1 主菜單函數(shù):2 單詞輸入功能3單詞查找4。查看所有單詞附錄:源程序:#include#include#include#define n 1000char dicn20;file *p;void clear() system(cls);void write( int r ) int i; p = fopen( data.txt, w ); for( i = 0; i r; i+ ) fprintf( p, %sn, dici ); fclos

15、e(p);int read() int r = 0; p = fopen( data.txt, r ); while( fscanf( p, %s, dicr ) != eof ) r+; fclose(p); write(r); return r;void print() printf( nn ); printf( *n ); printf( * way = 1 : append words *n ); printf( * way = 2 : lookup words *n ); printf( * way = 3 : end work *n ); printf( * way = 4 : c

16、heak *n ); printf( *n ); printf( please choose a way = );int sort( ) int i, j, flag = 1, r; char s20; r = read(); for( i = 1; i r & flag = 1; i+ ) flag = 0; for( j = 0; j 0 ) flag = 1; strcpy( s, dicj ); strcpy( dicj, dicj+1 ); strcpy( dicj+1, s ); write( r ); return 0;void cheak() int r = 0; clear(

17、); p = fopen( data.txt, r ); while( fscanf( p, %s, dicr ) != eof ) printf( %s , dicr ); r+; fclose(p); write(r); if( r = 0 )printf( there is no word in data.txtn ); else printf( nnthere are %d words in data.txt!n, r ); void insert( char *d ) int i; char f20; int r = read(); int flag = 0; clear(); fo

18、r( i = 0; i r; i+ ) if( strcmp( d, dici ) = 0 ) printf( the word %s has already existedn,d ); flag = 1; break; if( flag = 0 ) printf( the word %s is successfully addedn, d ); strcpy( dicr, d ); r+; printf( nncontinue adding,please input a word;back to main menu,input 0 :n ); while( scanf( %s, f ) &

19、! ( f0 = 0 & f1 = 0 ) ) flag = 0; for( i = 0; i r; i+ ) if( strcmp( f, dici ) = 0 ) clear(); printf( the word %s has already existedn,d ); flag = 1; break; if( flag = 0 ) clear(); printf( the word %s is successfully addedn, f ); strcpy( dicr, f ); r+; printf( nncontinue adding,please input a word;ba

20、ck to main menu,input 0 :n ); write( r ); sort(); clear(); return;void find( char *s ) char t20; int flag = 0; char f20; int r = 0, c, i; int temp; p = fopen( data.txt, r ); clear(); while( fscanf( p, %s, t ) != eof ) strcpy( dicr, t ); r+; temp = strcmp( s, t ); if( temp = 0 ) c = r; flag = 1; write( r ); if( flag ) printf( %ss sequence number is %d!n, s, c ); else printf( can not find %s!n, s ); printf( nncontinue lookuping,please input a word;back to main menu,input 0 :n ); while( scanf( %s, f

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論