C語言課程設(shè)計-一種簡單的英文詞典排版系統(tǒng).doc_第1頁
C語言課程設(shè)計-一種簡單的英文詞典排版系統(tǒng).doc_第2頁
C語言課程設(shè)計-一種簡單的英文詞典排版系統(tǒng).doc_第3頁
C語言課程設(shè)計-一種簡單的英文詞典排版系統(tǒng).doc_第4頁
C語言課程設(shè)計-一種簡單的英文詞典排版系統(tǒng).doc_第5頁
免費預(yù)覽已結(jié)束,剩余17頁可下載查看

下載本文檔

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

文檔簡介

中國地質(zhì)大學(xué)(武漢)c語言課程設(shè)計學(xué) 院:機電學(xué)院 專 業(yè):通信工程 題 目:一種簡單的英文詞典排版系統(tǒng) 班 級:075094 姓 名: 學(xué) 號: 20071000715 指導(dǎo)教師: 2010年7月摘 要一種簡單的英文詞典排版系統(tǒng)摘 要在英文詞典排版當(dāng)中,人工統(tǒng)計的速度很慢,且容易出現(xiàn)差錯。本英文詞典排版系統(tǒng)的自動化加速了排版工作,提高工作效率本程序主要采用對零散的單詞進行自動讀取,然后按單詞首字母順序講單詞保存到文檔,這樣的結(jié)構(gòu)化非常便于程序后續(xù)的排版工作。排版具體過程涉及到自動排除重復(fù)單詞與添加新單詞并重新排版等問題,將于正問中詳細(xì)介紹。本程序?qū)崿F(xiàn)了所有設(shè)計要求。關(guān)鍵詞:英文詞典排版系統(tǒng),結(jié)構(gòu)體,排版,單詞18c語言課程設(shè)計論文目 錄 中文摘要主要符號表1 題目要求11.1.12 需求分析3 總體設(shè)計4 詳細(xì)設(shè)計4.1主函數(shù)4.2各功能模塊設(shè)計5運行結(jié)果(附帶抓圖)6總結(jié)參考文獻致謝主要符號表#include stdlib.h 為exit()函數(shù)提供原型; #include string.h字符串處理函數(shù)原型; #include ctype.h字符處理函數(shù)原型; #define rows 256 #define cols 32定義“字典”的大?。嚎纱娣?56個單詞,每個單詞的長度不超過31 static file *fp;定義文件指針:內(nèi)部鏈接,文件作用域; static char arowscols;定義數(shù)組:內(nèi)部鏈接,文件作用域;該數(shù)組的作用是將文件的內(nèi)容復(fù)制進來,并加以處理。因為處理數(shù)組比處理文件方便。 char get_option(void);接收用戶的選項,防止誤操作。若輸入“a;”(不包括引號),那么將視為選項a int b(int count);完成選項b的作用接收新單詞; void c(char *pt, int count);完成選項c的作用通過指針對數(shù)組排序,實際數(shù)組元素位置未改變; int check(char arr, int count);對輸入的單詞進行分辨,若輸入 ni hao ,將視為單詞 ni ,并且提示并剔除重復(fù)的單詞; void storage(char *pt, int count);在程序結(jié)束之前重新排序存儲數(shù)組中的單詞到文件中。1 題目要求1 能輸入和顯示打入的單詞2 能分辨出單詞3 對重復(fù)的單詞和已經(jīng)輸入的單詞能自動排除4 能按az的順序排版5 能將運行結(jié)果以文本形式存儲6 具有添加新單詞并重新排版的能力7 數(shù)據(jù)結(jié)構(gòu)采用指針數(shù)組或二維數(shù)組。以回車鍵或者空格鍵作為單詞輸入結(jié)束標(biāo)志,對重復(fù)的單詞自動排除可選第一張?zhí)岬降牟檎曳椒?,?shù)據(jù)結(jié)構(gòu)可采用指針和數(shù)組2 需求分析運行結(jié)果以文本形式存儲,因而要提供文件的輸入輸出操作;通過查找操作檢查重復(fù)單詞;提供排序操作系統(tǒng)實現(xiàn)按az的順序排版;提供插入操作添加新單詞并重新排版。另外通過鍵盤式菜單實現(xiàn)功能選擇。3 總體設(shè)計整個系統(tǒng)唄設(shè)計為單詞錄入模塊、文件存儲模塊和單詞瀏覽模塊。其中單詞錄入模塊要完成輸入單詞、檢查是否重復(fù)、排序操作。文件存儲模塊把存放單詞的數(shù)組中的數(shù)據(jù)寫入文件。單詞瀏覽模塊完成英文詞典的輸出,即文件的輸出操作。系統(tǒng)功能模塊圖:一種簡單的英文詞典排版系統(tǒng) 添加單詞單詞存儲刪除單詞單詞排序單詞瀏覽單詞錄入4 詳細(xì)設(shè)計1.主函數(shù) 【流程圖】顯示一系列的功能選項 根據(jù)n的值調(diào)用各功能模塊函數(shù)輸入n,判斷n是否是19ny【程序】#include stdio.h #include stdlib.h #include string.h #include ctype.h #define rows 256 #define cols 32 static file *fp; static char arowscols; char get_option(void); int b(int count); void c(char *pt, int count); int check(char arr, int count); void storage(char *pt, int count);intn;/*n全局變量*/charwordn20;void menu()/*主界面*/int n,w;/*變量n保存選擇菜單數(shù)字,w判斷輸入的數(shù)字是否在功能菜單對應(yīng)數(shù)字范圍內(nèi)*/doputs(tt*menu*nn);puts(tttwelcome to djs program!nn);puts(tttt 1.add new word.);puts(tttt 2.browse all the words.);puts(tttt 3.search the word.);puts(tttt 4.sort the words.);puts(tttt 5.order by a-z.);puts(tttt 6.exit!);puts(nntt*n);printf(choice your number(1-6): bb);scanf(%d,&n);if(n6)/*對選擇的數(shù)字作判斷*/w=1;getchar();else w=0;while(w=1);switch(n)case 1:add();break;/*追加模塊*/case 2:browse();break;/*瀏覽模塊*/case 3:search();break;/*查找模塊*/case 4:sort();break;/*分類模塊*/case 5:order();break;/*排序模塊*/case 6:exit(0);/*退出*/void main() /*主函數(shù)*/ menu();2.公共函數(shù)【程序】int load()/*加載函數(shù)*/int i,count; int start; char *ptrows; char ch, len; char input;if(fp=fopen(words.txt,a+)=null)/*以輸出打開方式,在此前的記錄被覆蓋*/printf(ncannot open file!n);return null;for(i=0;!feof(fp);i+)fscanf(fp,%s,&wordi);fclose(fp);return i+1;/*返回記錄個數(shù)*/void save(int n)/*保存函數(shù),保存n個記錄*/file *fp;int i;if(fp=fopen(words.txt,a+)=null)/*以輸出打開方式,在此前的記錄被覆蓋*/printf(ncannot open file!n);exit(0);for(i=0;in;i+)fprintf(fp,%s,&wordi);fclose(fp);3.各功能模塊設(shè)計1)分類模塊【程序】void sort() /*單詞從a到z排序*/int i,j,k;char c20;if(n=load()=0)printf(ncannot open file!n);exit(0);for(i=0;in;i+)for(j=0;j0) /*比較兩單詞*/strcmp(c,wordj);strcmp(wordj,wordj+1);strcmp(wordj+1,c);save(n);printf(successful!_.n);printf(nnow? 1.browse all 2.back);scanf(%d,&k);if(k=1)browse();else if(k=2)menu();2)排序模塊【流程圖】 返回主菜單 保 存 用選擇法排序【程序】void order() /*排序模塊*/int an,i,j,t;struct words;n=load();for(i=0;in;i+)for(i=0;in-1;i+)for(j=i+i;jaj)t=ai;ai=aj;aj=t;for(j=0;jn;j+)printf(%3d,ai);3)修改模塊【流程圖】顯示所有記錄,讓用戶看哪個要修改輸入要修改的單詞是否找到此單詞記錄yn顯示找到的單詞,調(diào)用修改函數(shù)提示沒有找到詢問用戶是否繼續(xù)修改y返回主菜單yn【程序】void modify(int a) /*修改模塊*/char c20;printf(enter the new word:);scanf(%s,c);strcpy(worda,c);save(n);4)刪除模塊【流程圖】顯示所有記錄,讓用戶看哪個需要刪除輸入需要刪除的單詞是否找到此單詞記錄yn提示沒有找到顯示找到的記錄 調(diào) 用 刪 除 函 數(shù)返回主菜單詢問用戶是否繼續(xù)刪除yn【程序】void del(int a) /*刪除模塊*/int x,i,y;printf(are you sure to delete this word?nt1).sure 2).no and back menu bb);scanf(%d,&x); /*輸入要修改的單詞*/if(x=1)for(i=a;in-1;i+) /*查找要修改的單詞*/strcpy(wordi,wordi+1);save(n-1);printf(successful!_.nnow? 1).one more 2).back menu);scanf(%d,&y);if(y=1)search();else if(x=2)menu();else if(x=2)menu();5)追加模塊詢問用戶是否繼續(xù)追加單詞保存追加的單詞輸入用戶要追加的的單詞調(diào)用加載函數(shù)n=load();并計算可以記錄個數(shù)n【流程圖】返回主菜單yn【程序】void add() /*追加模塊*/int i,x,w1,w2,w;char c20;if(n=load()=0)exit(0);elseputs(enter the new word!n);scanf(%s,c); /*輸入要追加的單詞*/for(i=0;in;i+)if(strcmp(wordi,c)=0)break;if(in)w=1;doprintf(the word has already exit!n);printf(nnwhat do you want to do?nt1).enter one more 2).back menu bb);scanf(%d,&x);if(x2)w1=1;elsew1=0;while(w1=1);elsew2=1;strcpy(wordi,c);save(n+1);printf(successful!_.now choose what you will do next?nt1).add another 2).back menu bb);doscanf(%d,&x);if(x2)w2=1;elsew2=0;while(w2=1);switch(x)case 1:add();break;case 2:menu();break;6)瀏覽(全部)模塊用戶進行選項顯示所有單詞記錄【流程圖】返回主菜單回到分類模塊【程序】void browse() /*瀏覽(全部)模塊*/int i,w;if(n=load()=0) /*加載記錄*/printf(ncannot open file!n);exit(0);for(i=0;in-1;i+)printf(%s/n,wordi);puts(successful!_.now 1.back menu 2.sort);scanf(%d,&w);if(w=1)menu();else if(w=2)sort();7)查找模塊是否找到該單詞記錄輸入需要查找的單詞【流程圖】yn返回主菜單讓用戶選擇1).查找另一個2).返回詢問用戶是否繼續(xù)查找提示沒有找到顯示找到的記錄yn【程序】void search() /*查找模塊*/int i,x,y;char vs20;if(n=load()=0) /*加載記錄*/printf(ncannot open file!n);exit(0);printf(enter the word what you want to search!);scanf(%s,vs); /*輸入要查找的單詞*/for(i=0;in;i+) /*查找要修改的單詞*/if(strcmp(wordi,vs)=0)printf(successful!_.nthe word is:%sn,wordi);/*找到需要修改的單詞*/printf(what would you like to do with the word?nt1).modify 2).delrte 3).nothing bb);scanf(%d,&y);if(y=1)modify(i);elsedel(i);if(i=n)printf(hoho!sorry.not found);printf(now.1).one more 2).back 3).exit);scanf(%d,&x);switch(x) case 1:search();break;case 2:menu();break;case 3:exit(0); 5 運行結(jié)果(附帶抓圖)輸入單詞顯示打入的單詞能分辨出單詞并對重復(fù)的單詞和已經(jīng)輸入的單詞能自動排除按az的順序排版添加新單詞并重新排版退出將運行結(jié)果以文本形式(word.txt)存儲6 總結(jié) 通過這次的c語言程序設(shè)計實習(xí),我收獲了很多。以前的學(xué)習(xí)是為了應(yīng)付考試,而此次的實習(xí)是將所學(xué)的知識運用到實際當(dāng)中。 該次實習(xí)中,我獨立完成了這道題。這道題看似繁瑣,但思路清晰

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論