C語言課設(shè)之英文詞典排標(biāo)準(zhǔn)系統(tǒng)_第1頁
C語言課設(shè)之英文詞典排標(biāo)準(zhǔn)系統(tǒng)_第2頁
C語言課設(shè)之英文詞典排標(biāo)準(zhǔn)系統(tǒng)_第3頁
C語言課設(shè)之英文詞典排標(biāo)準(zhǔn)系統(tǒng)_第4頁
C語言課設(shè)之英文詞典排標(biāo)準(zhǔn)系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 / 19一種簡單的英文詞典排版系統(tǒng)摘要在英文詞典排版當(dāng)中,人工統(tǒng)計(jì)的速度很慢,且容易出現(xiàn)差錯。本英文詞典排版系統(tǒng)的 自動化加速了排版工作,提高工作效率本程序主要采用對零散的單詞進(jìn)行自動讀取,然 后按單詞首字母順序講單詞保存到文檔,這樣的結(jié)構(gòu)化非常便于程序后續(xù)的排版工作。排版具體過程涉及到自動排除重復(fù)單詞與添加新單詞并重新排版等問題,將于正問中詳細(xì)介紹。本程序?qū)崿F(xiàn)了所有設(shè)計(jì)要求。關(guān)鍵詞:英文詞典排版系統(tǒng),結(jié)構(gòu)體,排版,單詞目錄中文摘要I主要符號表W1 題目要求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)致

2、謝主要符號表#include stdlib.h 為 exit() 函數(shù)提供原型;#include string.h 字符串處理函數(shù)原型;#i nclude ctype.h字符處理函數(shù)原型;#define ROWS 256#define COLS 32定義 “字典”的大小:可存放 256個單詞,每個單詞的長度不超過31static FILE *fp。定義文件指針:內(nèi)部鏈接,文件作用域;static char aROWSCOLS 。定義數(shù)組:內(nèi)部鏈接,文件作用域;該數(shù)組的作用 是將文件的內(nèi)容復(fù)制進(jìn)來,并加以處理。因?yàn)樘幚頂?shù)組比處理文件方便。char get_option(void)。接收用戶的選項(xiàng)

3、,防止誤操作。若輸入“?!?不包括引號) 那么將視為選項(xiàng) aint b(int count)。完成選項(xiàng)b的作用接收新單詞;void c(char *pt, int count) 。完成選項(xiàng) c 的作用通過指針對數(shù)組排序,實(shí)際數(shù) 組元素位置未改變;int check(char arr, int count) 。對輸入的單詞進(jìn)行分辨,若輸入 ni hao ,將視為單 詞 ni ,并且提示并剔除重復(fù)的單詞;void storage(char *pt, int count) 。在程序結(jié)束之前重新排序存儲數(shù)組中的單詞到 文件中。1 題目要求1能輸入和顯示打入的單詞2能分辨出單詞3對重復(fù)的單詞和已經(jīng)輸入的

4、單詞能自動排除4能按 AZ 的順序排版5能將運(yùn)行結(jié)果以文本形式存儲 6具有添加新單詞并重新排版的能力 7數(shù)據(jù)結(jié)構(gòu)采用指針數(shù)組或二維數(shù)組。以回車鍵或者空格鍵作為單詞輸入結(jié)束標(biāo)志, 對重復(fù)的單詞自動排除可選第一張?zhí)岬降牟檎曳椒?,?shù)據(jù)結(jié)構(gòu)可采用指針和數(shù)組2 需求分析 運(yùn)行結(jié)果以文本形式存儲,因而要提供文件的輸入輸出操作;通過查找操作檢查重 復(fù)單詞;提供排序操作系統(tǒng)實(shí)現(xiàn)按 AZ 的順序排版;提供插入操作添加新單詞并重新 排版。另外通過鍵盤式菜單實(shí)現(xiàn)功能選擇 。3總體設(shè)計(jì)整個系統(tǒng)唄設(shè)計(jì)為單詞錄入模塊、文件存儲模塊和單詞瀏覽模塊。其中單詞錄入模 塊要完成輸入單詞、檢查是否重復(fù)、排序操作。文件存儲模塊把存放

5、單詞的數(shù)組中的數(shù) 據(jù)寫入文件。單詞瀏覽模塊完成英文詞典的輸出,即文件的輸出操作 。系統(tǒng)功能模塊圖:一種簡單的英文詞典排版系統(tǒng)111單詞錄入單詞瀏覽單詞排序刪除單詞單詞存儲添加單詞4詳細(xì)設(shè)計(jì)1.主函數(shù)【流程圖】NY【程序】#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) 。 vo

6、id c(char *pt, int count) 。 int check(char arr, int count) 。 void storage(char *pt, int count) 。 int n 。 /*n 全局變量 */ char wordN20 。 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

7、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:brow

8、se()。 break 。 /* 瀏覽模塊 */ case 3:search()。 break 。 /* 查找模塊 */ case 4:sort()。 break。 /* 分類模塊 */case 5:order()。 break。 /* 排序模塊 */case 6:exit(0)。II* 退出 */void main()menu()。II*主函數(shù)*II2. 公共函數(shù)【程序】int load()II* 加載函數(shù) *IIint i,count 。int start。char *ptROWS 。char ch, len。char input。if(fp=fopen(words.txt,a+)=NUL

9、L)II* 以輸出打開方式,在此前的記錄被覆蓋 *II printf(nCannot open file!n) 。return NULL 。 for(i=0 。 !feof(fp) 。 i+)fscanf(fp,%s,&wordi) 。fclose(fp) 。return i+1。II*返回記錄個數(shù)*IIvoid save(int n)II* 保存函數(shù),保存 n 個記錄 *IIFILE *fp 。int i 。*IIif(fp=fopen(words.txt,a+)=NULL)II* 以輸出打開方式,在此前的記錄被覆蓋 printf(nCannot open file!n) 。exit(0)

10、。for(i=0 。 in 。 i+)fprintf(fp,%s,&wordi) 。fclose(fp) 。3.各功能模塊設(shè)計(jì)1)分類模塊【程序】void sort() int i,j,k。char c20。if( n=load()=0)prin tf(nCa nnot ope n file! n)。 exit(O)。for(i=0。 in。 i+)for(j=0。j0)strcmp(c,wordj)。 strcmp(wordj,wordj+1)。 strcmp(wordj+1,c)。save (n)。printf(Successful!A_A.n)。printf(nNow?I.browse

11、all 2.back)。scanf(%d,&k)。if(k=1)browse()。 else if(k=2)menu()。 2)排序模塊【流程圖】【程序】void order()II* 排序模塊 */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 ofor(j=0。jN。j+) printf(%3d,ai)。3)修改模塊【流程圖】【程序】void modify(int a)/* 修改模塊 */char c20。printf(Enter the

12、new word:)。 scanf(%s,c)。strcpy(worda,c)。save (n)。4 )刪除模塊【流程圖】YIN提示沒有找到N顯示找到的記錄 調(diào)用刪除函數(shù)返回主菜單【程序】void del(int a)II* 刪除模塊 */int x,i,y。bb)。prin tf(Are you sure to delete this word ?n t1).sure2). no and back menuscanf(%d,&x)。/*輸入要修改的單詞 */if(x=1)for(i=a。in-1。i+)/*查找要修改的單詞 */strcpy(wordi,wordi+1)。save (n-1)

13、。printf(Successful!A_A.nNow? 1).one more2).back menu)。scanf(%d,&y)。if(y=1)search。else if(x=2)menu()。else if(x=2)menu()。5) 追加模塊【流程圖】【程序】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)

14、=0) break。if(in)w=1。doprintf(The word has already exit!n) 。 bb) 。printf(nnWhat do you want to do?nt1).enter one more 2).back menu scanf(%d,&x) 。if(x2)w1=1。elsew1=0。while(w1=1) 。elsew2=1。 strcpy(wordi,c) 。 save(n+1)。2).backprintf(SuccessfulL_A.Nowchoose what you will do next?nt1).add anothermenu bb)

15、。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)/* 加載記錄 */prin tf(nCa nnot ope n file!n)。exit(0)。for(i=0。 in-1。i+)prin tf(%s/n,wordi)。puts(SuccessfulL_A.Now l.back menu 2.sort)。 s

16、canf(%d,&w)。if(w=1)menu()。else if(w=2)sort()。7)查找模塊YNYN【流程圖】【程序】void search。/* 查找模塊 */int i,x,y。char vs20。if(n=load()=0)/* 加載記錄 */prin tf(nCann ot open file!n)。exit(0)。prin tf(E nter the word what you want to search!)。scanf(%s,vs)。/*輸入要查找的單詞*/for(i=0。in。i+)/*查找要修改的單詞 */if(strcmp(wordi,vs)=0)*/3). nothingprintf(SuccessfulL_A.nThe word is:%sn,wordi)。 /* 找到需要修改的單詞printf(What would you like to do with the word?nt1).modify 2).delrte bb)。scanf(%d,&y)。if(y=1)modify(i)。elsedel(i)。if(i=n)printf(HOHO!SorryNot found)。printf(Now.1).one more2

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論