版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上中國(guó)地質(zhì)大學(xué)(武漢)C語(yǔ)言課程設(shè)計(jì)論文學(xué) 院:工程學(xué)院 專 業(yè):勘察技術(shù)與工程 題 目:一種簡(jiǎn)單的英文詞典排版系統(tǒng) 班 級(jí):54073 姓 名: 學(xué) 號(hào): 2009年1月專心-專注-專業(yè)一種簡(jiǎn)單的英文詞典排版系統(tǒng)摘 要在英文詞典排版當(dāng)中,人工統(tǒng)計(jì)的速度很慢,且容易出現(xiàn)差錯(cuò)。本英文詞典排版系統(tǒng)的自動(dòng)化加速了排版工作,提高工作效率本程序主要采用對(duì)零散的單詞進(jìn)行自動(dòng)讀取,然后按單詞首字母順序講單詞保存到文檔,這樣的結(jié)構(gòu)化非常便于程序后續(xù)的排版工作。排版具體過程涉及到自動(dòng)排除重復(fù)單詞與添加新單詞并重新排版等問題,將于正問中詳細(xì)介紹。本程序?qū)崿F(xiàn)了所有設(shè)計(jì)要求。關(guān)鍵詞:英文詞典排
2、版系統(tǒng),結(jié)構(gòu)體,排版,單詞目 錄 中文摘要主要符號(hào)表1 題目要求11.1.12 需求分析3 總體設(shè)計(jì)4 詳細(xì)設(shè)計(jì)4.1主函數(shù)4.2各功能模塊設(shè)計(jì)5運(yùn)行結(jié)果(附帶抓圖)6總結(jié)參考文獻(xiàn)致謝主要符號(hào)表#include "stdlib.h" 為exit()函數(shù)提供原型; #include "string.h"字符串處理函數(shù)原型; #include "ctype.h"字符處理函數(shù)原型; #define ROWS 256 #define COLS 32定義“字典”的大?。嚎纱娣?56個(gè)單詞,每個(gè)單詞的長(zhǎng)度不超過31 static FILE *fp
3、;定義文件指針:內(nèi)部鏈接,文件作用域; static char aROWSCOLS;定義數(shù)組:內(nèi)部鏈接,文件作用域;該數(shù)組的作用是將文件的內(nèi)容復(fù)制進(jìn)來(lái),并加以處理。因?yàn)樘幚頂?shù)組比處理文件方便。 char get_option(void);接收用戶的選項(xiàng),防止誤操作。若輸入“a;”(不包括引號(hào)),那么將視為選項(xiàng)a int b(int count);完成選項(xiàng)b的作用接收新單詞; void c(char *pt, int count);完成選項(xiàng)c的作用通過指針對(duì)數(shù)組排序,實(shí)際數(shù)組元素位置未改變; int check(char arr, int count);對(duì)輸入的單詞進(jìn)行分辨,若輸入 ni hao
4、 ,將視為單詞 ni ,并且提示并剔除重復(fù)的單詞; void storage(char *pt, int count);在程序結(jié)束之前重新排序存儲(chǔ)數(shù)組中的單詞到文件中。1 題目要求1 能輸入和顯示打入的單詞2 能分辨出單詞3 對(duì)重復(fù)的單詞和已經(jīng)輸入的單詞能自動(dòng)排除4 能按AZ的順序排版5 能將運(yùn)行結(jié)果以文本形式存儲(chǔ)6 具有添加新單詞并重新排版的能力7 數(shù)據(jù)結(jié)構(gòu)采用指針數(shù)組或二維數(shù)組。以回車鍵或者空格鍵作為單詞輸入結(jié)束標(biāo)志,對(duì)重復(fù)的單詞自動(dòng)排除可選第一張?zhí)岬降牟檎曳椒ǎ瑪?shù)據(jù)結(jié)構(gòu)可采用指針和數(shù)組2 需求分析運(yùn)行結(jié)果以文本形式存儲(chǔ),因而要提供文件的輸入輸出操作;通過查找操作檢查重復(fù)單詞;提供排序操作
5、系統(tǒng)實(shí)現(xiàn)按AZ的順序排版;提供插入操作添加新單詞并重新排版。另外通過鍵盤式菜單實(shí)現(xiàn)功能選擇。3 總體設(shè)計(jì)整個(gè)系統(tǒng)唄設(shè)計(jì)為單詞錄入模塊、文件存儲(chǔ)模塊和單詞瀏覽模塊。其中單詞錄入模塊要完成輸入單詞、檢查是否重復(fù)、排序操作。文件存儲(chǔ)模塊把存放單詞的數(shù)組中的數(shù)據(jù)寫入文件。單詞瀏覽模塊完成英文詞典的輸出,即文件的輸出操作。系統(tǒng)功能模塊圖:一種簡(jiǎn)單的英文詞典排版系統(tǒng) 添加單詞單詞存儲(chǔ)刪除單詞單詞排序單詞瀏覽單詞錄入4 詳細(xì)設(shè)計(jì)1.主函數(shù) 【流程圖】顯示一系列的功能選項(xiàng) 根據(jù)n的值調(diào)用各功能模塊函數(shù)輸入n,判斷n是否是19NY【程序】#include "stdio.h" #include
6、 "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);int n
7、; /*n全局變量*/ char wordN20;void menu()/*主界面*/int n,w;/*變量n保存選擇菜單數(shù)字,w判斷輸入的數(shù)字是否在功能菜單對(duì)應(yīng)數(shù)字范圍內(nèi)*/doputs("tt*MENU*nn");puts("tttWelcome to dj's program!nn");puts("tttt 1.Add new word.");puts("tttt 2.Browse all the words.");put
8、s("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(n<1|n>6)/*對(duì)選擇的數(shù)字作判斷*/w=1;getchar();else
9、 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; cha
10、r 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;/*返回記錄個(gè)數(shù)*/void save(int n)/*保存函數(shù),保存n個(gè)記錄*/FILE *fp;int i;if(fp=fopen("words.txt&
11、quot;,"a+")=NULL)/*以輸出打開方式,在此前的記錄被覆蓋*/printf("nCannot open file!n");exit(0);for(i=0;i<n;i+)fprintf(fp,"%s",&wordi);fclose(fp);3.各功能模塊設(shè)計(jì)1)分類模塊【程序】void sort()int i,j,k;char c20;if(n=load()=0)printf("nCannot open file!n");exit(0);for(i=0;i<n;i+)for(j=0;
12、j<n-i-1;j+);if(strcmp(wordj,wordj+1)>0)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() /
13、*排序模塊*/int aN,i,j,t;struct words;n=load();for(i=0;i<N;i+)for(i=0;i<N-1;i+)for(j=i+i;j<N;j+)if(ai>aj)t=ai;ai=aj;aj=t;for(j=0;j<N;j+)printf("%3d",ai);3)修改模塊【流程圖】顯示所有記錄,讓用戶看哪個(gè)要修改輸入要修改的單詞是否找到此單詞記錄YN顯示找到的單詞,調(diào)用修改函數(shù)提示沒有找到詢問用戶是否繼續(xù)修改Y返回主菜單Y【程序】void modify(int a) /*修改模塊*/char c20;prin
14、tf("Enter the new word:");scanf("%s",c);strcpy(worda,c);save(n);4)刪除模塊【流程圖】顯示所有記錄,讓用戶看哪個(gè)需要?jiǎng)h除輸入需要?jiǎng)h除的單詞是否找到此單詞記錄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");sc
15、anf("%d",&x); /*輸入要修改的單詞*/if(x=1)for(i=a;i<n-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)用加載函
16、數(shù)n=load();并計(jì)算可以記錄個(gè)數(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;i<n;i+)if(strcmp(wordi,c)=0)break;if(i<n)w=1;doprintf("The word has already exit!n");printf(&q
17、uot;nnWhat do you want to do?nt1).enter one more 2).back menu bb");scanf("%d",&x);if(x<1|x>2)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"
18、,&x);if(x<1|x>2)w2=1;elsew2=0;while(w2=1);switch(x)case 1:add();break;case 2:menu();break;6)瀏覽(全部)模塊返回主菜單回到分類模塊用戶進(jìn)行選項(xiàng)顯示所有單詞記錄【流程圖】【程序】void browse() /*瀏覽(全部)模塊*/int i,w;if(n=load()=0) /*加載記錄*/printf("nCannot open file!n");exit(0);for(i=0;i<n-1;i+)printf("%s/n",wordi);
19、puts("Successful!_.Now 1.back menu 2.sort");scanf("%d",&w);if(w=1)menu();else if(w=2)sort();7)查找模塊是否找到該單詞記錄輸入需要查找的單詞【流程圖】YN返回主菜單讓用戶選擇1).查找另一個(gè)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;i<n;i+) /*查找要修改的單詞*/if(strcmp(wordi,vs)=0)printf("Successful!_.nThe word is:%sn",wordi);/*找到需要修改的單詞*/printf("What would you like to do with t
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版二手房交易貸款合同范文
- 2025年度地質(zhì)勘探儀器采購(gòu)及技術(shù)服務(wù)合同模板3篇
- 2024年高層住宅裝修協(xié)議
- 福建省南平市武夷山上梅中學(xué)2020年高一物理上學(xué)期期末試題含解析
- 福建省南平市王臺(tái)中學(xué)高二物理測(cè)試題含解析
- 2024年版跨國(guó)技術(shù)交易協(xié)議詳則版
- 2024氧氣、乙炔能源項(xiàng)目投資與市場(chǎng)拓展合同3篇
- 2024汽車修理配件采購(gòu)流程優(yōu)化合同
- 3-2《哦香雪》(說課稿)高一語(yǔ)文同步高效課堂(統(tǒng)編版 必修上冊(cè))
- 外墻保溫材料采購(gòu)合同(2篇)
- 臨床療效總評(píng)量表(CGI)
- 從教走向?qū)W:在課堂上落實(shí)核心素養(yǎng)
- 美世國(guó)際職位評(píng)估體系IPE3.0使用手冊(cè)
- 2020電網(wǎng)檢修工程預(yù)算定額第五冊(cè) 通信工程
- 圖像超分辨率增強(qiáng)技術(shù)
- 集裝箱貨運(yùn)碼頭的火災(zāi)防范措施
- DB15T+3199-2023公路工程水泥混凝土質(zhì)量聲波層析成像法檢測(cè)規(guī)程
- 高壓電纜試驗(yàn)報(bào)告
- 七年級(jí)數(shù)學(xué)上冊(cè)專題1.14數(shù)軸與絕對(duì)值綜合問題大題專練(重難點(diǎn)培優(yōu))-【講練課堂】2022-2023學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)尖子生同步培優(yōu)題典(原卷版)【人教版】
- 酸性氨基酸對(duì)caco
- 藝術(shù)導(dǎo)論P(yáng)PT完整全套教學(xué)課件
評(píng)論
0/150
提交評(píng)論