版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C語言程序設(shè)計</b></p><p><b> 課程設(shè)計報告</b></p><p><b> 設(shè)計題目:背單詞</b></p><p> 專 業(yè) 電子信息工程 </p><p> 班 級
2、 </p><p> 學(xué) 生 </p><p> 學(xué) 號 </p><p><b> 題目:背單詞</b></p><p> 概述:該系統(tǒng)是幫助單詞背誦單詞的軟件,要求用戶可以選擇背誦的詞庫,并可以編輯自己的詞庫,系統(tǒng)可
3、以給出中文,讓單詞輸入其英文意思,也可輸出英文讓單詞輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵。還應(yīng)有詞語預(yù)覽功能?;竟δ埽涸~庫的維護(hù)課程預(yù)覽顯示中文用戶輸入英文的背誦方法顯示英文用戶輸入中文的背誦方法背誦成績的記錄。</p><p><b> 課程設(shè)計目的:</b></p><p> 是綜合訓(xùn)練單
4、詞用C語言編程解決問題和處理問題的能力,鞏固其對C語言課程內(nèi)容和知識的掌握。</p><p> 對課程設(shè)計的基本要求: </p><p> 1、盡量多的應(yīng)用C語言中所學(xué)到的知識和語句</p><p> 2、課程設(shè)計前應(yīng)書寫開題報告主要內(nèi)容包括(對題目的分析和對該課程設(shè)計的概要設(shè)計)</p><p> 3、課程設(shè)計后應(yīng)交《課程設(shè)計報告》
5、,和軟件原代碼及編譯后的應(yīng)用軟件</p><p> 4、課程設(shè)計最后一次上機(jī)實驗時檢查題目的完成情況</p><p> 5、課程設(shè)計中必須用到的內(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></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; //單詞個數(shù)</p><p><b> 2: 概要設(shè)計</
9、b></p><p> 定義結(jié)構(gòu)體數(shù)組用來存放單詞的信息</p><p> 單詞信息存放在data.txt中,文件格式如下:</p><p> 單詞個數(shù)—長度為4個字節(jié)</p><p> 第1個單詞的信息-----長度為sizeof(word)</p><p> 第2個單詞的信息-----長度為size
10、of(word)</p><p><b> 。。。。。。</b></p><p> 第n個單詞的信息-----長度為sizeof(word)</p><p> 讀文件data.txt的過程如下:</p><p> 先讀取單詞個數(shù),然后逐個讀取單詞的信息,采用fread函數(shù)</p><p>
11、 寫文件data.txt的過程如下:</p><p> 先寫入單詞個數(shù),然后逐個寫入單詞的信息,采用fwrite函數(shù)</p><p> 5)刪除單詞和修改單詞信息的時候,都需要先輸入英文,從該英文找到單詞的位置</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> 成績查詢的功能操作方法如下:</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 // 單詞的最大個數(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; //單詞個數(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、取單詞的個數(shù)</p><p> for(i=0;i<num;i++)</p><p> fread(&s[i],1,sizeof(word),fp); //讀取每個單詞的信息存放到結(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); //先寫入單詞的個數(shù)</p><p> for(i=0;i<num;i++)</p>
24、<p> fwrite(&s[i],1,sizeof(word),fp); //寫入每個單詞的信息</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("請輸入單詞的英文形式:");</p><p> scanf("%s",s[i].en);</p><p> printf("請輸入單詞的中文形式:");</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("請輸入你要刪除的單詞中文形式:");</p><p> scanf("%s",no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對應(yīng)的序號</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("沒有這個單詞!");</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("請輸入你要修改的單詞中文形式:");</p>&
32、lt;p> scanf("%s",no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對應(yīng)的序號</p><p> if(strcmp(s[i].no,no)==0)</p><p><b> {</b></p><p> printf("
33、;請輸入單詞正確的英文形式:");</p><p> scanf("%s",s[i].en);</p><p> printf("請輸入此單詞正確的的中文形式:");</p><p> scanf("%s",s[i].no);</p><p><b> r
34、eturn;</b></p><p><b> }</b></p><p> printf("沒有這個單詞!");</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("請輸入你要查詢的單詞中文形式:");</p><p> scanf("%s&q
38、uot;,no);</p><p> for(i=0;i<num;i++)//先找到該中文形式對應(yīng)的序號</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("沒有這個中文形式!&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】請輸入英文單詞:",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("輸入錯誤!!請重新輸入:");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、】請輸入中文意思:",s[i].en);</p><p> scanf("%s",b1);</p><p> for(z=0;strcmp(b1,s[i].no)!=0;z=z)</p><p> {printf("輸入錯誤!!請重新輸入:");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共計輸入錯誤:%d次**每次扣10分**\n",c);</p><p> print
48、f("共計輸入正確:%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、查詢成績 8、退出 ●\n")
57、;</p><p> printf(" ◎ ◎\n");</p><p> printf(" ●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n"); //用戶界面</p
58、><p> printf("\n");</p><p> printf(" 請選擇您需要的操作序號(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;//初始化單詞個數(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: 心得體會</b></p>&l
70、t;p> 通過本次C語言課程設(shè)計,是我對C語言的文件的存取、結(jié)構(gòu)體的使用、數(shù)組的使用和指針操作有了更深的理解。</p><p> 還充分體會了從事軟件開發(fā)工作需要特別嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和作風(fēng),一點都馬虎不得。每一個細(xì)微的細(xì)節(jié)都必須十分的注意,如果不認(rèn)真思考決策,就會出現(xiàn)或大或小的錯誤,如果早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時要推倒很多前面做的工作重來。有時候,我自己覺得我寫的程序非常的正確
71、,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認(rèn)自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進(jìn)展的速度非常的緩慢,往往幾天的時間還沒有一點進(jìn)展。這時候,我一般是先自己通過書本,手冊和資料找解決辦法,實在沒轍了才向同學(xué)和老師請教。盡管向其他人請教解決問題比較快,自己鉆研花的時間較多,但我強(qiáng)迫自己獨立的思考對我的學(xué)習(xí)提高幫助非常大。</p><p> 系統(tǒng)測試達(dá)到了良好的效果,編程思路清
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言背單詞課程設(shè)計報告
- c語言課程設(shè)計報告--背單詞
- c語言課程設(shè)計報告---背單詞系統(tǒng)
- c語言課程設(shè)計-背單詞系統(tǒng)
- c語言課程設(shè)計--背單詞系統(tǒng)的程序代碼
- c語言編程必背單詞
- c語言編程必背單詞
- c語言課程設(shè)計報告
- c語言課程設(shè)計報告
- c語言課程設(shè)計報告
- c語言課程設(shè)計報告
- c語言語言課程設(shè)計報告
- c語言課程設(shè)計報告模版
- c語言課程設(shè)計實踐報告
- c語言年歷課程設(shè)計報告
- C語言課程設(shè)計報告.doc
- c語言課程設(shè)計報告---游戲設(shè)計
- 猜單詞游戲c++課程設(shè)計報告
- c++必背單詞
- 【課程設(shè)計】c語言課程設(shè)計
評論
0/150
提交評論