版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 綜合性程序設(shè)計(jì)報(bào)告</b></p><p> 設(shè)計(jì)題目: 背單詞系統(tǒng)</p><p> 指導(dǎo)教師: XXX</p><p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 設(shè) 計(jì) 者:
2、XXX</p><p> 成 績: _______________</p><p> 設(shè)計(jì)時(shí)間: 年 月 日</p><p><b> [題目描述]</b></p><p> 使用C語言設(shè)計(jì)一個(gè)背單詞系統(tǒng),該系統(tǒng)是幫助學(xué)生背誦單詞的軟件,要求用戶可以選擇背誦的詞庫,并可以編輯自己的詞庫。系統(tǒng)可以給出中文,讓
3、學(xué)生輸入其英文意思,也可輸出英文讓學(xué)生輸入中文意思。并判定詞義是否正確。如不正確給出提示并要求用戶重新輸入。如正確給以鼓勵(lì)。還應(yīng)有詞語預(yù)覽功能。</p><p><b> 基本功能:</b></p><p> 詞庫的維護(hù)(單詞的添加、修改、刪除)</p><p> 課程預(yù)覽(單詞的展示)</p><p> 顯示中
4、文用戶輸入英文的背誦方法</p><p> 顯示英文用戶輸入中文的背誦方法</p><p> 背誦成績的記錄(本程序設(shè)計(jì)運(yùn)行一次程序所背誦的所有單詞,答對(duì)一個(gè)得10分,打錯(cuò)一個(gè)扣5分)</p><p> [功能模塊分解及說明]</p><p><b> 樹形結(jié)構(gòu)模塊圖</b></p><p&g
5、t;<b> 模塊功能概述</b></p><p> 程序概述:設(shè)計(jì)錄入詞庫的結(jié)構(gòu)體,結(jié)構(gòu)體中分別存放英文和中文,整個(gè)程序基本上就是關(guān)于結(jié)構(gòu)體的操作,其中包括了順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)。</p><p> 單詞添加:用戶自己輸入單詞以及翻譯,存入結(jié)構(gòu)體中。</p><p> 單詞修改:首先在詞庫中找到這個(gè)單詞(如果沒有則提示用戶沒有
6、該單詞),然后用戶輸入修改后的單詞及翻譯。</p><p> 單詞刪除:先在詞庫中找到單詞,然后將這個(gè)單詞之后的所有單詞順次前移,實(shí)現(xiàn)刪除功能。</p><p> 輸出詞庫:輸出結(jié)構(gòu)體存放的單詞。</p><p> 單詞測試:用戶首先選擇測試模式,然后詞庫中輸出現(xiàn)有單詞,用戶希望結(jié)束時(shí)輸出“jieshu”,并且在這兩個(gè)函數(shù)中計(jì)分。</p><
7、;p> 顯示成績:輸出測試的成績。</p><p><b> [設(shè)計(jì)測試說明]</b></p><p> 有關(guān)頭文件、變量、結(jié)構(gòu)體的說明</p><p><b> 1、頭文件</b></p><p> #include<stdio.h></p><p&
8、gt; #include<stdlib.h></p><p> #include<string.h></p><p><b> 2、宏定義</b></p><p> #define N 100</p><p> #define S 20</p><p><b
9、> 3、全局結(jié)構(gòu)體</b></p><p> struct words//定義一個(gè)words結(jié)構(gòu)體</p><p><b> {</b></p><p> char e[S];//存放英語單詞</p><p> char c[S];//相應(yīng)的漢語翻譯</p><p>
10、 }str[N];//定義結(jié)構(gòu)體變量</p><p><b> 4、全局變量</b></p><p> int fenshu=0; //全局變量,用于統(tǒng)計(jì)分?jǐn)?shù) </p><p> int count1=0;//全局變量,用于統(tǒng)計(jì)測試單詞個(gè)數(shù)</p>
11、<p> int p=0;//全局變量,用于統(tǒng)計(jì)單詞個(gè)數(shù) </p><p> 二、程序源代碼(函數(shù)部分以及系統(tǒng)使用截圖) </p><p><b> 1、主函數(shù)</b></p><p>
12、 int main()</p><p><b> {</b></p><p><b> int n;</b></p><p> char ch,chioch;</p><p> printf("\n");</p><p> printf(&qu
13、ot;\t***********************************************\n");</p><p> printf("\t** 歡迎使用背單詞系統(tǒng)! **\n");</p><p> printf("\t** 設(shè)計(jì)者:郭鑫鋼
14、 **\n");</p><p> printf("\t** 班級(jí):31342 學(xué)號(hào):3134205 **\n");</p><p> printf("\t***********************************************\n");</p><p>
15、; printf("\t** 1、單詞添加 2、單詞刪除 **\n");</p><p> printf("\t** 3、單詞修改 4、單詞展示 **\n");</p><p> printf("\t** 5、英譯漢 6、漢譯英
16、 **\n");</p><p> printf("\t** 7、成績查詢 8、退出系統(tǒng) **\n");</p><p> printf("\t***********************************************\n");</p><p>
17、printf(" 請(qǐng)選擇您需要的操作序號(hào)<1-6>,按回車結(jié)束:");</p><p><b> while(1)</b></p><p><b> {</b></p><p> scanf("%d",&n);</p><p>
18、;<b> switch(n)</b></p><p> {//執(zhí)行相應(yīng)的函數(shù),實(shí)現(xiàn)相應(yīng)的功能</p><p> case 1:tianjia();break;</p><p> case 2:shanchu();break; </p><p> case 5:fanyi1();break;
19、 </p><p> case 3:xiugai();break; </p><p> case 4:shuchu();break; </p><p> case 6:fanyi2();break; </p><p> cas
20、e 7:chengji();break; </p><p><b> case 8:{</b></p><p> printf("你確認(rèn)要退出嗎?y/n!!\n");</p><p> scanf("%c%c",&ch,&
21、amp;chioch);</p><p> if(ch=='y'||ch=='Y') </p><p><b> exit(0);</b></p><p> }//退出系統(tǒng)的操作</p><p> default :printf("你輸入了錯(cuò)誤的操作,無法執(zhí)行!&quo
22、t;);</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p><b>
23、; }</b></p><p> 2、往詞庫中添加詞匯</p><p> void tianjia() </p><p><b> {</b></p><p><b> char ch;</b></p><p><b> do{</b
24、></p><p> printf("錄入詞庫!\n");</p><p> printf("請(qǐng)輸入英語單詞:\n");</p><p> scanf("%s",str[p].e);</p><p> printf("\n請(qǐng)輸入相應(yīng)的中文翻譯:\n"
25、);</p><p> scanf("%s",str[p].c);</p><p><b> p++;</b></p><p> printf("%s已保存,是否繼續(xù)錄入?y/n!\n",str[p].e);</p><p> scanf("%s",&a
26、mp;ch);</p><p> }while(ch=='y');</p><p> printf("您一共錄入%d個(gè)單詞\n",p);</p><p><b> }</b></p><p> 3、刪除詞庫中的單詞</p><p> void shan
27、chu() </p><p><b> {</b></p><p> int i=0,j;</p><p> char s[20];</p><p> printf("輸入您想刪除的單詞:");</p><p> scanf("%s"
28、;,s);</p><p><b> if(p<=0) </b></p><p><b> {</b></p><p> printf("沒有任何單詞,無法刪除!\n");</p><p><b> return;</b></p>
29、<p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> for(i=0;i<p;i++)</p><p><b> {</b></p>&
30、lt;p> if(strcmp(s,str[i].e)==0)</p><p><b> {</b></p><p> printf("已經(jīng)成功刪除!\n");</p><p> for(j=i;j<p;j++)</p><p><b> {</b>&
31、lt;/p><p> str[j]=str[j+1];</p><p><b> p--;</b></p><p><b> }</b></p><p> }//循環(huán)實(shí)現(xiàn)單詞的覆蓋</p><p> else if(i==p)</p><p>
32、 printf("沒有找到您要?jiǎng)h除的單詞!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 4、修改詞庫中的單詞</p><p>
33、 void xiugai()</p><p><b> {</b></p><p><b> int i=0;</b></p><p> char s[S],y[S],z[S];</p><p> printf("輸入您想修改的單詞:");</p><
34、p> scanf("%s",s);</p><p><b> if(p<=0) </b></p><p><b> {</b></p><p> printf("沒有任何單詞,無法刪除!\n");</p><p><b> re
35、turn;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> for(i=0;i<p;i++)</p><p><b>
36、 {</b></p><p> if(strcmp(s,str[i].e)==0)</p><p><b> {</b></p><p> printf("請(qǐng)輸入您修改后的英文單詞:");</p><p> scanf("%s",y);</p>
37、<p> strcpy(str[i].e,y);</p><p> printf("請(qǐng)輸入您修改后的中文翻譯:");</p><p> scanf("%s",z);</p><p> strcpy(str[i].c,z);</p><p> printf("已經(jīng)成功修改!\
38、n");</p><p><b> }</b></p><p><b> else</b></p><p> printf("沒有找到您要修改的單詞!\n");</p><p><b> }</b></p><p>
39、<b> }</b></p><p><b> }</b></p><p> 5、輸出詞庫中所有的單詞</p><p> void shuchu() </p><p><b> {</b></p><p><b> i
40、nt i=0;</b></p><p> printf("輸出詞庫中所有的單詞!\n");</p><p><b> if(p<=0) </b></p><p><b> {</b></p><p> printf("沒有任何單詞,無法輸出!\
41、n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p> for(i=
42、0;i<p;i++)</p><p><b> {</b></p><p> printf("英文單詞是: %s",str[i].e);</p><p> printf("\n相應(yīng)的中文意思是: %s \n",str[i].c);</p><p><b>
43、}</b></p><p> printf("詞庫所有單詞輸出完畢!\n");</p><p><b> }</b></p><p><b> }</b></p><p> 6、顯示英文用戶輸入中文的背誦方法</p><p> voi
44、d fanyi1() </p><p><b> {</b></p><p><b> int i=0;</b></p><p> char f[S];</p><p> char over[N]="jieshu";</p>
45、;<p> printf("請(qǐng)輸入下面英文單詞的翻譯,希望結(jié)束輸入時(shí)請(qǐng)輸入 jieshu \n"); //順序輸出單詞,并且可以隨時(shí)結(jié)束</p><p> while(i<p&&strcmp(f,over)!=0)//用戶不輸入jieshu并且詞庫中單詞沒有全部輸出時(shí)執(zhí)行循環(huán)</p><p><b> {</b&
46、gt;</p><p> printf("%s ",str[i].e);</p><p> scanf("%s",&f);</p><p> if(strcmp(str[i].c,f)==0)</p><p><b> {</b></p><p
47、> printf("正確!\n");</p><p> fenshu+=10; //用于計(jì)算分?jǐn)?shù)</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&
48、lt;p> printf("很遺憾,正確的翻譯為:");</p><p> printf("%s\n",str[i].c); </p><p> fenshu-=5;//用于計(jì)算分?jǐn)?shù)</p><p><b> }</b></p><p><b> coun
49、t1++;</b></p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p> 7、顯示中文用戶輸入英文的背誦方法</p><p> void fany
50、i2() </p><p><b> {</b></p><p><b> int i=0;</b></p><p> char f[S];</p><p> char over[N]="jieshu";</p><
51、;p> printf("請(qǐng)輸入下面英文單詞的翻譯,希望結(jié)束輸入時(shí)請(qǐng)輸入 jieshu \n"); </p><p> while(i<p&&strcmp(f,over)!=0)</p><p><b> {</b></p><p> printf("%s",str[i]
52、.c);</p><p> scanf("%s",&f);</p><p> if(strcmp(str[i].e,f)==0)</p><p><b> {</b></p><p> printf("正確!\n");</p><p> f
53、enshu+=10; </p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("很遺憾,正確的翻譯為:");</p><p>
54、 printf("%s\n",str[i].e); </p><p> fenshu-=5;</p><p><b> }</b></p><p><b> count1++;</b></p><p><b> i++;</b></p>
55、<p><b> }</b></p><p><b> }</b></p><p> 8、顯示測試結(jié)果和成績</p><p> void chengji()</p><p><b> {</b></p><p> printf(
56、"本次測試的成績是:\n");</p><p> printf("總共:%d個(gè)\n",count1);</p><p> printf("正確:%d個(gè)\n",fenshu);</p><p> printf("最后得分為(答對(duì)一個(gè)得10分,答錯(cuò)一個(gè)扣5分):%d \n",fensh
57、u);</p><p><b> }</b></p><p><b> [設(shè)計(jì)體會(huì)]</b></p><p> 在看到我的選題后,剛開始有點(diǎn)蒙。然后看到要求說必須用到文件,可是文件還沒有學(xué),所以我決定先看看文件那部分的內(nèi)容。大概煩了一遍書以后,我去圖書館找了基本C語言項(xiàng)目實(shí)例的書籍,里面好多的實(shí)例都給了我很大的啟發(fā)。
58、之后我就開始著手寫我的程序。剛開始我仿照一本書里有的關(guān)于商品信息的管理的程序來寫。里面涉及的大量的文件操作,使得我有時(shí)候看不懂甚至摸不著頭腦。迫于時(shí)間上的要求,我不得不放棄已經(jīng)寫了200多行的程序,開始換個(gè)思路來考慮程序。</p><p> 考慮到我自己對(duì)結(jié)構(gòu)體還是比較熟悉的,所以我想到不使用文件而是直接將單詞存放進(jìn)結(jié)構(gòu)體中。然后整個(gè)程序就是對(duì)結(jié)構(gòu)體的一系列操作。</p><p> 在
59、寫刪除單詞這個(gè)函數(shù)中,我遇到了困難,剛開始沒有想到數(shù)據(jù)覆蓋這么一個(gè)辦法,用了好多很笨的方法但是還沒有出效果。最后偶然間在網(wǎng)上看到了關(guān)于一片指針覆蓋的博客,然后我就想到了這種解決辦法,果然奏效了!</p><p> 通過這次C語言的課程設(shè)計(jì),我深深體會(huì)到了一門語言的深?yuàn)W,是值得我去好好學(xué)習(xí)和深入研究的。就拿這個(gè)程序中幾個(gè)小小細(xì)節(jié),比如:while(i<p&&strcmp(f,over)!=0
60、)。這個(gè)是我在寫測試兩個(gè)函數(shù)的時(shí)候遇到的一個(gè)小問題。我不知道應(yīng)該怎么去寫這個(gè)循環(huán)的條件,最后我讓一位同學(xué)看過我的程序后,幫我解決了這個(gè)問題。雖然只是幾個(gè)簡單語句的結(jié)合,但是真的是非常的巧妙。所以,通過這次的課程設(shè)計(jì)讓我發(fā)現(xiàn)了許多不足,包括對(duì)循環(huán)、結(jié)構(gòu)體的應(yīng)用以及字符串處理函數(shù)等的認(rèn)識(shí)都存在一定的盲區(qū)。</p><p> 課程設(shè)計(jì)我算是基本完成,但是其中還是有問題的,我的發(fā)現(xiàn)如下:</p><
61、p> 程序中缺少一些警告語句,比如:“你確定要?jiǎng)h除嗎?(y/n)”;</p><p> 很多輸出方面的問題,導(dǎo)致我的程序在運(yùn)行的時(shí)候不是很好看,例如單詞輸出時(shí)的格式不是很好;</p><p> 沒有使用清屏函數(shù),使得運(yùn)行時(shí)顯得太擁擠;</p><p> 功能還有很多值得提高的地方:測試的時(shí)候只能順序輸出單詞,沒有設(shè)置相應(yīng)的隨機(jī)數(shù);</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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語言課程設(shè)計(jì)報(bào)告---背單詞系統(tǒng)
- c語言背單詞課程設(shè)計(jì)報(bào)告
- c語言背單詞課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)報(bào)告--背單詞
- c語言課程設(shè)計(jì)--背單詞系統(tǒng)的程序代碼
- c語言編程必背單詞
- c語言編程必背單詞
- c++必背單詞
- 【課程設(shè)計(jì)】c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)招生查詢系統(tǒng)
- c語言課程設(shè)計(jì)---飛機(jī)訂票系統(tǒng)
- c語言校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)
- c語言課程設(shè)計(jì)-賓館管理系統(tǒng)
- c語言課程設(shè)計(jì)-成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--宿舍管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計(jì)車票管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論