版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> C語(yǔ)言程序設(shè)計(jì)</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 設(shè)計(jì)題目:背單詞</b></p><p> 專 業(yè) 電子信息工程 </p><p> 班 級(jí)
2、 </p><p> 學(xué) 生 </p><p> 學(xué) 號(hào) </p><p><b> 題目:背單詞</b></p><p> 概述:該系統(tǒng)是幫助單詞背誦單詞的軟件,要求用戶可以選擇背誦的詞庫(kù),并可以編輯自己的詞庫(kù),系統(tǒng)可
3、以給出中文,讓單詞輸入其英文意思,也可輸出英文讓單詞輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵(lì)。還應(yīng)有詞語(yǔ)預(yù)覽功能。基本功能:詞庫(kù)的維護(hù)課程預(yù)覽顯示中文用戶輸入英文的背誦方法顯示英文用戶輸入中文的背誦方法背誦成績(jī)的記錄。</p><p><b> 課程設(shè)計(jì)目的:</b></p><p> 是綜合訓(xùn)練單
4、詞用C語(yǔ)言編程解決問題和處理問題的能力,鞏固其對(duì)C語(yǔ)言課程內(nèi)容和知識(shí)的掌握。</p><p> 對(duì)課程設(shè)計(jì)的基本要求: </p><p> 1、盡量多的應(yīng)用C語(yǔ)言中所學(xué)到的知識(shí)和語(yǔ)句</p><p> 2、課程設(shè)計(jì)前應(yīng)書寫開題報(bào)告主要內(nèi)容包括(對(duì)題目的分析和對(duì)該課程設(shè)計(jì)的概要設(shè)計(jì))</p><p> 3、課程設(shè)計(jì)后應(yīng)交《課程設(shè)計(jì)報(bào)告》
5、,和軟件原代碼及編譯后的應(yīng)用軟件</p><p> 4、課程設(shè)計(jì)最后一次上機(jī)實(shí)驗(yàn)時(shí)檢查題目的完成情況</p><p> 5、課程設(shè)計(jì)中必須用到的內(nèi)容為</p><p><b> a) 文件的存取</b></p><p><b> b) 結(jié)構(gòu)體的使用</b></p><p&
6、gt;<b> c) 數(shù)組的使用</b></p><p><b> d) 指針操作</b></p><p><b> 一、開題報(bào)告</b></p><p> 1:變量和結(jié)構(gòu)體說明 </p><p> 單詞信息的結(jié)構(gòu)體如下:</p><p>
7、typedef struct word</p><p><b> //單詞的結(jié)構(gòu)體</b></p><p><b> {</b></p><p> char en[MAX_CHAR]; // 英文形式</p><p> char no[MAX_CHAR]; //中文形式</p&
8、gt;<p><b> }word;</b></p><p> 2)存放單詞的信息的變量如下:</p><p> word s[MAX_NUM]; //單詞數(shù)組</p><p> int num; //單詞個(gè)數(shù)</p><p><b> 2: 概要設(shè)計(jì)</
9、b></p><p> 定義結(jié)構(gòu)體數(shù)組用來存放單詞的信息</p><p> 單詞信息存放在data.txt中,文件格式如下:</p><p> 單詞個(gè)數(shù)—長(zhǎng)度為4個(gè)字節(jié)</p><p> 第1個(gè)單詞的信息-----長(zhǎng)度為sizeof(word)</p><p> 第2個(gè)單詞的信息-----長(zhǎng)度為size
10、of(word)</p><p><b> 。。。。。。</b></p><p> 第n個(gè)單詞的信息-----長(zhǎng)度為sizeof(word)</p><p> 讀文件data.txt的過程如下:</p><p> 先讀取單詞個(gè)數(shù),然后逐個(gè)讀取單詞的信息,采用fread函數(shù)</p><p>
11、 寫文件data.txt的過程如下:</p><p> 先寫入單詞個(gè)數(shù),然后逐個(gè)寫入單詞的信息,采用fwrite函數(shù)</p><p> 5)刪除單詞和修改單詞信息的時(shí)候,都需要先輸入英文,從該英文找到單詞的位置</p><p> 6)程序采用菜單的形式顯示,用戶可以輸入選擇進(jìn)行操作</p><p><b> 3:樹型結(jié)構(gòu)模
12、塊圖</b></p><p><b> 功能模塊圖如下:</b></p><p><b> 4課程流程圖</b></p><p><b> 5: 操作說明</b></p><p> 本程序需要目錄下存在“data.txt”文件</p><
13、p><b> 系統(tǒng)的菜單如下:</b></p><p> 添加單詞信息的功能操作方法如下:</p><p> 刪除單詞信息的功能操作方法如下:</p><p> 修改單詞信息的功能操作方法如下:</p><p> 顯示單詞背誦(中至英)功能操作方法如下:</p><p> 顯示單
14、詞背誦(英至中)功能操作方法如下:</p><p> 成績(jī)查詢的功能操作方法如下:</p><p> 6: 課程詳細(xì)代碼:</p><p> #include <stdio.h></p><p> #include <string.h></p><p> #include <s
15、tdlib.h></p><p> #define MAX_CHAR 20 // 最大字符</p><p> #define MAX_NUM 100 // 單詞的最大個(gè)數(shù)</p><p> typedef struct word</p><p><b> //單詞的結(jié)構(gòu)體</b></p>
16、<p><b> {</b></p><p> char en[MAX_CHAR]; // 英文形式</p><p> char no[MAX_CHAR]; //中文形式</p><p><b> }word;</b></p><p> word s[MAX_NUM
17、]; //單詞數(shù)組</p><p> int num; //單詞個(gè)數(shù)</p><p> void read_from_file()</p><p> //從文件中讀取單詞的信息</p><p><b> {</b></p><p><b> FILE
18、*fp;</b></p><p><b> int i=0;</b></p><p> fp=fopen("data.txt","rb");</p><p><b> if(!fp)</b></p><p><b> {</
19、b></p><p> printf("打開文件data.txt失敗!\n");</p><p><b> return ;</b></p><p><b> }</b></p><p> fread(&num,1,sizeof(num),fp); //先讀
20、取單詞的個(gè)數(shù)</p><p> for(i=0;i<num;i++)</p><p> fread(&s[i],1,sizeof(word),fp); //讀取每個(gè)單詞的信息存放到結(jié)構(gòu)體 </p><p> fclose(fp);//關(guān)閉文件</p><p><b> }</b><
21、/p><p> void write_to_file()</p><p> //從文件中讀取單詞的信息</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i=0;</b>
22、</p><p> fp=fopen("data.txt","wb+");</p><p><b> if(!fp)</b></p><p><b> {</b></p><p> printf("打開文件data.txt失敗!\n"
23、;);</p><p><b> return ;</b></p><p><b> }</b></p><p> fwrite(&num,1,sizeof(num),fp); //先寫入單詞的個(gè)數(shù)</p><p> for(i=0;i<num;i++)</p>
24、<p> fwrite(&s[i],1,sizeof(word),fp); //寫入每個(gè)單詞的信息</p><p> fclose(fp);//關(guān)閉文件</p><p><b> }</b></p><p> void add_infor()//添加單詞信息</p><p><b>
25、 {</b></p><p> int a,i=num;</p><p> printf("請(qǐng)輸入單詞的英文形式:");</p><p> scanf("%s",s[i].en);</p><p> printf("請(qǐng)輸入單詞的中文形式:");</p>
26、<p> scanf("%s",s[i].no);</p><p><b> num++;</b></p><p> printf("您輸入的信息為: 英文: %s 中文: %s \n Enter 0 繼續(xù)輸入; Enter 1 返回主菜單",s[i].en,s[i].no);</p>&l
27、t;p><b> }</b></p><p> void del_infor()//刪除單詞信息</p><p><b> {</b></p><p> int i=0,j=0;</p><p> char no[MAX_CHAR]; //中文形式</p><
28、;p> printf("請(qǐng)輸入你要?jiǎng)h除的單詞中文形式:");</p><p> scanf("%s",no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對(duì)應(yīng)的序號(hào)</p><p> if(strcmp(s[i].no,no)==0)</p><p>
29、;<b> {</b></p><p> for(j=i;j<num-1;j++)</p><p> s[j]=s[j+1];</p><p> num--; //數(shù)量減少 1</p><p><b> return;</b></p><p><b>
30、; }</b></p><p> printf("沒有這個(gè)單詞!");</p><p> printf("Enter Enter 1 返回主菜單");</p><p><b> }</b></p><p> void modify_infor()//修改單
31、詞信息</p><p><b> {</b></p><p><b> int i=0;</b></p><p> char no[MAX_CHAR]; //中文形式</p><p> printf("請(qǐng)輸入你要修改的單詞中文形式:");</p>&
32、lt;p> scanf("%s",no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對(duì)應(yīng)的序號(hào)</p><p> if(strcmp(s[i].no,no)==0)</p><p><b> {</b></p><p> printf("
33、;請(qǐng)輸入單詞正確的英文形式:");</p><p> scanf("%s",s[i].en);</p><p> printf("請(qǐng)輸入此單詞正確的的中文形式:");</p><p> scanf("%s",s[i].no);</p><p><b> r
34、eturn;</b></p><p><b> }</b></p><p> printf("沒有這個(gè)單詞!");</p><p> printf("Enter Enter 1 返回主菜單");</p><p><b> }</b>&l
35、t;/p><p> void show_infor()</p><p> {int i=0;</p><p> printf("單詞: 英文 中文 \n");</p><p> for(i=0;i<num;i++)</p><p> printf(&q
36、uot; %10s%10s\n",s[i].en,s[i].no);</p><p> printf("Enter Enter 1 返回主菜單");</p><p><b> }</b></p><p> void search_infor()//查詢單詞</p><p>&l
37、t;b> {</b></p><p><b> int i=0;</b></p><p> char no[MAX_CHAR]; //中文形式</p><p> printf("請(qǐng)輸入你要查詢的單詞中文形式:");</p><p> scanf("%s&q
38、uot;,no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對(duì)應(yīng)的序號(hào)</p><p> if(strcmp(s[i].no,no)==0)</p><p><b> {</b></p><p> printf("英文形式 中文形式
39、 \n");</p><p> printf("%10s%12s\n",s[i].en,s[i].no);</p><p><b> return;</b></p><p><b> }</b></p><p> printf("沒有這個(gè)中文形式!&q
40、uot;);</p><p> printf("Enter Enter 1 返回主菜單");</p><p><b> }</b></p><p> void zy_infor()</p><p><b> {</b></p><p> c
41、har b1[20];</p><p> int z,d=0,c=0;</p><p><b> int i;</b></p><p> i = rand()%num;</p><p> printf("【%s】請(qǐng)輸入英文單詞:",s[i].no);</p><p>
42、; scanf("%s",b1);</p><p> for(z=0;strcmp(b1,s[i].en)!=0;z=z)</p><p> {printf("輸入錯(cuò)誤??!請(qǐng)重新輸入:");scanf("%s",b1);c=c+1;}</p><p> printf("\n恭喜你,回答正確
43、,加10分!\n\n");d=d+1;</p><p> printf("Enter 2 繼續(xù)輸入; Enter 1 返回主菜單",s[i].en,s[i].no);</p><p><b> }</b></p><p> void yz_infor()</p><p><b&
44、gt; {</b></p><p> char b1[20];</p><p> int z,x=41,d=0,c=0;</p><p><b> int i;</b></p><p> i = rand()%num;</p><p> printf("【%s
45、】請(qǐng)輸入中文意思:",s[i].en);</p><p> scanf("%s",b1);</p><p> for(z=0;strcmp(b1,s[i].no)!=0;z=z)</p><p> {printf("輸入錯(cuò)誤??!請(qǐng)重新輸入:");scanf("%s",b1);c=c+1;}&
46、lt;/p><p> printf("\n恭喜你,回答正確,加10分!\n\n");d=d+1;</p><p> printf("\n Enter 3 繼續(xù)輸入; Enter 1 返回主菜單",s[i].en,s[i].no);</p><p><b> }</b></p><
47、p> void chengji_infor()</p><p><b> {</b></p><p><b> int c,d;</b></p><p> printf("\n共計(jì)輸入錯(cuò)誤:%d次**每次扣10分**\n",c);</p><p> print
48、f("共計(jì)輸入正確:%d次**每次加10分**\n",d);</p><p> printf("你的總得分為:%d分\n\n",10*d-10*c);</p><p> printf("Enter Enter 1 返回主菜單");</p><p><b> }</b>&
49、lt;/p><p> void show_main_menu()</p><p><b> {</b></p><p> printf("\n");</p><p> printf(" ●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n"
50、);</p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 背 單 詞 系 統(tǒng) ●\
51、n");</p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 作者 : 4091405 吳 昊
52、 ●\n");</p><p> printf(" ◎ ◎\n");</p><p> printf(" ●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n")
53、;</p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 1、添加單詞信息 2、刪除單詞信息 ●\n");&
54、lt;/p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 3、修改單詞信息 4、顯示單詞信息 ●\n");<
55、;/p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 5、背誦(中至英) 6、背誦(英至中) ●\n");<
56、;/p><p> printf(" ◎ ◎\n");</p><p> printf(" ● 7、查詢成績(jī) 8、退出 ●\n")
57、;</p><p> printf(" ◎ ◎\n");</p><p> printf(" ●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n"); //用戶界面</p
58、><p> printf("\n");</p><p> printf(" 請(qǐng)選擇您需要的操作序號(hào)(1-8)按回車確認(rèn):");</p><p><b> }</b></p><p> int main()</p><p&
59、gt;<b> {</b></p><p> int a,choose=0;</p><p> num=0;//初始化單詞個(gè)數(shù)為0</p><p> read_from_file(); //讀取文件</p><p> show_main_menu();</p><p> scanf(
60、"%d",&choose);</p><p> printf("\n");</p><p> while(choose!=8)</p><p><b> {</b></p><p> switch(choose)</p><p><b&
61、gt; {</b></p><p><b> case 1:</b></p><p> add_infor();break;</p><p><b> case 2:</b></p><p> del_infor();break; </p><p>&l
62、t;b> case 3:</b></p><p> modify_infor();break;</p><p><b> case 4:</b></p><p> show_infor();break;</p><p><b> case 5:</b></p>
63、<p> zy_infor();break;</p><p><b> case 6:</b></p><p> yz_infor();break;</p><p><b> case 7:</b></p><p> chengji_infor();break;</p
64、><p><b> }</b></p><p> while (a<10000){scanf("%d",&a);</p><p><b> if(a==0){</b></p><p> write_to_file(); </p><p>
65、 add_infor();}</p><p> if(a==1) </p><p> {printf("\n");</p><p> write_to_file();</p><p><b> main();</b></p><p> printf("\
66、n");}</p><p><b> if(a==2)</b></p><p><b> {</b></p><p> write_to_file();</p><p> zy_infor();}</p><p><b> if(a==3)<
67、;/b></p><p><b> {</b></p><p> write_to_file(); </p><p> yz_infor();}</p><p><b> if(a>3)</b></p><p><b> {break;}&l
68、t;/b></p><p><b> }</b></p><p> write_to_file();//寫入文件</p><p><b> }</b></p><p> printf(" ***************謝謝使用單詞背誦系統(tǒng)!再見!*
69、************** \n"); </p><p> getchar();</p><p><b> return 1;</b></p><p><b> }</b></p><p><b> 7: 心得體會(huì)</b></p>&l
70、t;p> 通過本次C語(yǔ)言課程設(shè)計(jì),是我對(duì)C語(yǔ)言的文件的存取、結(jié)構(gòu)體的使用、數(shù)組的使用和指針操作有了更深的理解。</p><p> 還充分體會(huì)了從事軟件開發(fā)工作需要特別嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和作風(fēng),一點(diǎn)都馬虎不得。每一個(gè)細(xì)微的細(xì)節(jié)都必須十分的注意,如果不認(rèn)真思考決策,就會(huì)出現(xiàn)或大或小的錯(cuò)誤,如果早期的錯(cuò)誤隱藏下來,對(duì)后面的工作影響就會(huì)很大,甚至有時(shí)要推倒很多前面做的工作重來。有時(shí)候,我自己覺得我寫的程序非常的正確
71、,但是就是編譯通不過,在查找錯(cuò)誤的過程中,面臨著否認(rèn)自己的過程,非常的痛苦,而且由于自己的經(jīng)驗(yàn)及各方面的能力的不足,所以進(jìn)展的速度非常的緩慢,往往幾天的時(shí)間還沒有一點(diǎn)進(jìn)展。這時(shí)候,我一般是先自己通過書本,手冊(cè)和資料找解決辦法,實(shí)在沒轍了才向同學(xué)和老師請(qǐng)教。盡管向其他人請(qǐng)教解決問題比較快,自己鉆研花的時(shí)間較多,但我強(qiáng)迫自己獨(dú)立的思考對(duì)我的學(xué)習(xí)提高幫助非常大。</p><p> 系統(tǒng)測(cè)試達(dá)到了良好的效果,編程思路清
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--背單詞
- c語(yǔ)言背單詞課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---背單詞系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-背單詞系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--背單詞系統(tǒng)的程序代碼
- c語(yǔ)言編程必背單詞
- c語(yǔ)言編程必背單詞
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言年歷課程設(shè)計(jì)報(bào)告
- C語(yǔ)言課程設(shè)計(jì)報(bào)告.doc
- c語(yǔ)言課程設(shè)計(jì)實(shí)踐報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告模版
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---游戲設(shè)計(jì)
- 猜單詞游戲c++課程設(shè)計(jì)報(bào)告
- c課程設(shè)計(jì)報(bào)告-- c語(yǔ)言程序設(shè)計(jì)
- c++必背單詞
評(píng)論
0/150
提交評(píng)論