2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論