電子英漢詞典課程設計_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程名稱 C語言課程設計 </p><p>  課題名稱 電子英漢詞典 </p><p>  專 業(yè) 機械設計制造及其自動化 </p><p> 

2、 班 級 </p><p>  學 號 </p><p>  姓 名 某某 </p><p>  指導教師

3、 </p><p>  2010年 07 月06 日</p><p><b>  設計內容與設計要求</b></p><p><b>  1.設計內容:</b></p><p>  課題三:電子英漢詞典。具體內容見附件。</p><p><b>  2.設計要求:

4、</b></p><p>  1)設計正確,方案合理。</p><p>  2)界面友好,使用方便。</p><p>  3)程序精煉,結構清晰。</p><p><b>  4)上機演示。</b></p><p><b>  3.設計報告要求:</b></

5、p><p>  課程設計報告格式如下:</p><p>  1)正文的格式:一級標題用3號黑體,二級標題用四號宋體加粗,正文用小四號宋體,行距為22。 </p><p>  2)正文的內容:課題的主要功能、課題的功能模塊的劃分、主要功能的實現、程序調試、總結、附件(所有程序的源代碼,要求對程序寫出必要的注釋),課程設計報告需5000字左右(不含附件)。</p>

6、;<p>  3)課程設計報告裝訂順序:封面、任務書、目錄、正文、評分、程序清單附件。</p><p><b>  二、進度安排</b></p><p><b>  上課時間另外安排。</b></p><p><b>  附錄:</b></p><p>  設計課

7、題三:電子英漢詞典</p><p><b>  一、問題描述:</b></p><p>  該設計實現簡單電子英漢詞典的功能,具體管理操作包括單詞的添加、顯示、查找、刪除、修改和保存等。</p><p><b>  二、功能描述:</b></p><p>  1、本設計采用結構體數組,每個數據的結構

8、應當包括:單詞的英文拼寫,單詞的中文釋義。</p><p><b>  2、系統(tǒng)功能:</b></p><p>  詞條錄入:即添加單詞記錄。</p><p>  信息顯示:將所有的單詞按字母順序顯示。</p><p>  詞條修改:對已經輸入的單詞信息進行修改。</p><p>  詞條刪除:刪

9、除某個單詞記錄。</p><p>  單詞查詢: 輸入單詞英文拼寫,輸出該單詞的中文釋義。</p><p>  信息保存:將單詞信息保存到文件。</p><p><b>  退出系統(tǒng)</b></p><p>  3、系統(tǒng)使用說明:執(zhí)行一個具體的功能之后,程序將重新顯示功能菜單。系統(tǒng)的功能并不限于上述,可以對其進行擴充完善

10、,如在對信息進行修改和刪除時,可以考慮系統(tǒng)的安全性,在執(zhí)行前若輸入正確密碼,才可進行操作。</p><p><b>  三、測試數據:</b></p><p>  要求被選用的詞條有30個左右,簡單單詞為主。</p><p><b>  目錄</b></p><p>  1.封面----------

11、-----------------------------------1</p><p>  2.任務書-------------------------------------------2</p><p>  2.1設計內容與設計要求---------------------------------3</p><p>  2.2附錄---------------

12、----------------------------------------4</p><p>  3.目錄--------------------------------------------------------------5</p><p><b>  4.課題的主要功能</b></p><p>  4.1 各函數的主要功能---

13、-------------------------------6</p><p>  4.2 課題功能模塊的劃分--------------------------------7 </p><p>  4.3 主要功能的實現------------------------------------7</p><p>  4.3.

14、1各被調用功能函數實現-------------------------8</p><p>  5.程序調試------------------------------------------9</p><p>  6.總結與體會---------------------------------------10</p><p>  7.附件(源代碼及程序運行截圖)-

15、---------------------11</p><p>  8.評分表-------------------------------------------20</p><p>  (一)、課題的主要功能</p><p>  電子英漢詞典設計系統(tǒng)能完成一個簡單的電子英漢詞典的功能,這個系統(tǒng)有七個功能,如:查找、增加、刪除、修改、瀏覽、維護、結束 。把這七功能

16、編該成七個子函數。在主函數當中對這七個子數調用,來實現對整個系統(tǒng)的操作。本詞典采用一個包含50個數據結構數,每個數據的結構當包括,英文單詞、中文意思。</p><p>  <一>、各函數的主要功能</p><p>  1)程序的模塊組成:</p><p>  主 函 數: main()</p><p>  初始化函數: in

17、it()</p><p>  輸入函數 : scanf()</p><p>  輸出函數: printf()</p><p>  刪除函數: memset()</p><p>  查找函數 find()</p><p>  增加函數 add()</p><p>  刪除函數 del()&l

18、t;/p><p>  修改函數 modify()</p><p>  瀏覽函數 view()</p><p>  維護函數 store()</p><p>  結束函數 return()</p><p>  2) 各個函數的主要功能:</p><p>  輸入函數: 隨時輸入數據。<

19、/p><p>  菜單函數:顯示系統(tǒng)主菜單。</p><p>  查找函數:能夠隨時查找某個單詞</p><p>  增加函數:能夠隨時增加想要增加的單詞</p><p>  刪除函數:能夠刪除某單詞信息</p><p>  修改函數:能隨時修改單詞信息</p><p>  瀏覽函數:能夠瀏覽所有單

20、詞</p><p>  (二)、課題功能的模塊的劃分</p><p> ?。ㄈ?主要功能的實現</p><p>  整個系統(tǒng)除了主函數外,另外還有12個函數,實現七個功能:查找功能、增加功能、刪除功能、修改功能、瀏覽功能、維護功能、結束功能。各個函數的詳細設計說明如下:</p><p>  1、 主函數 main()</p>

21、<p>  通過getch函數顯示菜單,利用switch語句實現各函數的調用,根據系統(tǒng)提示輸入的數字選項來調用相應的函數。</p><p>  2、 查找函數()</p><p>  首先利用清屏函數對屏幕清屏,利用輸入函數輸入要查找的單詞,如果找到則顯示出所找的單詞,再利用getch()函數顯示,按任意鍵返回主菜單,如果沒有找到則顯示出not found,按任意鍵返回。&l

22、t;/p><p>  3、增加函數 add()</p><p>  首先清除屏幕,找到一個空位利用輸入函數輸入要增加的單詞,再判斷該單詞是否存在,如果存在,則顯示“the word is already store”,不存在則輸入該單詞的意思進行存儲,按任意鍵返回主菜單。</p><p>  4、刪除函數 del()</p><p>  首先

23、輸入要刪除的單詞,如果找到則利用memset函數對它進行‘\0’覆蓋,按任意鍵返回主菜單,如果沒有找到,則顯示not found。</p><p>  5、修改函數 modify()</p><p>  首先清屏,輸入要修改的單詞,如果找到單詞,則顯示found,并輸入單詞新的意思,存儲之后再返回主菜單,如果沒有找到則顯示not found,按任意鍵返回。</p><

24、p>  6、保存函數 store()</p><p>  利用fscanf函數將結構體數組中的數據保存到指定文件中。</p><p>  7、瀏覽函數 view()</p><p>  首先清屏,分頁顯示,每頁顯示20個,讀出結構體數組中的數據直至結束。</p><p><b>  四、調試程序</b><

25、;/p><p>  老實說本程序的代碼我是借鑒別人的,雖然我過了二級C,但我沒把握自己完全原創(chuàng),即使借鑒但用的時候難免出現這樣那樣的錯誤。如開始設計出來的菜單不是預想的那樣,而是總出現混亂,解決的這個問題的辦法是調試。最后還是老師幫我找到了問題的所在,在這次的課程設計中,我們遇到了如下問題:有的不能加分號的加了分號,該加的又沒有加,在TC下的程序有些函數不能在VC下運行,這些問題通過同學們的分析討論都一一解決了,而遇

26、到的最大的問題是:運行結果不正確,后來經過老師的指點,后來自己調試終于運行出結果,經過美化界面修改整理代碼終于完工!</p><p>  如:clrscr()函數(清屏函數)只能在TC下運行,而源代碼中有大量clrscr()函數,在VC下的的清屏函數是system(“cls”)這時就可以用宏定義來解決:</p><p>  define clrscr() system(“cls”)<

27、/p><p>  一個系統(tǒng)的菜單和提示信息非常重要。如果沒有這些用戶根本不知道怎么用你設計的這個系統(tǒng)。在設計的調試過程中也無法順利的完成調試工作。有了一個清晰簡單的菜單和一些提示信息這后,調試過程完成的非常順利。</p><p><b>  五、總結</b></p><p>  課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現,提出,分析和解決實際問題,鍛

28、煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新月異,當今計算機應用在生活中可以說是無處不在。因此,作為二十一世紀的大學生來說掌握計算機開發(fā)技術是十分重要的。</p><p>  回顧起此次課程設計,至今我仍感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,經過一周的課程設計,雖然甚是辛苦,但我卻學到了許多東西,不僅鞏固了以前所學過的知識,而且學到了很多在書上所沒有學到

29、過的知識,使我自己對C語言又有了重新的認識,覺得它十分的重要,但掌握它又不是一件容易的事。只有通過自己不停的思考,不斷的上機實踐。才能夠比較熟練的掌握好,在其中我們遇到了比較多的困難,因為其中有些知識我們并沒有學到過,要自己去查找資料來完成。</p><p>  在設計過程中遇到問題,可以說是困難重重,因為畢竟是第一次做的,難免會遇到各種各樣的問題,同時在設計過程中發(fā)現了自己的不足之處,對以前的所學過的知識理解的

30、不夠深刻,掌握的不夠牢固。通過這次課程設計之后,覺得以前學過的知識要重新溫習才能夠達到查漏補缺的效果。</p><p>  剛開始聽說我們要設計英漢電子詞典時心里真的是沒有一點底,毫無思緒,無從下手,畢竟C語言才剛學一年就要編寫如此復雜的應用程序。但參考了一些資料和與幾個有經驗的學長們討論后,編寫思路才漫漫清楚,開始了解它的基本方式和操作方法。在不太熟悉的部分,我們能夠充分利用自己的自學能力,發(fā)揮它,以及在設計過

31、程中的團隊作用,提高自己解決問題的能力。在設計程序是也增加了自己的實踐能力,通過翻閱有關文獻獲得了些自己原來不了解的知識。從接觸C語言到了解C語言是一個過程,是自身學習的過程更是一段由量變到質變的過程。俗話說師傅領進門,修行靠個人。在編寫過程中遇到的不解和麻煩都基本上是通過自身的反復琢磨和學長的幫助而解決的。通過這段時間的課程設計,我認識到C語言是一門比較難的課程。需要多花時間上機練習,這次的程序訓練培養(yǎng)了我的實際分析問題的能力,實際編

32、程能力。隨著程序的逐漸完善,自己也在慢慢進步,達到了預期目的。</p><p>  這次課程設計終于完成了,在設計中遇到了許多的問題,但在老師的指導下,終于迎刃而解,同時,對給過我?guī)椭乃型瑢W和各位指導老師再次感謝。 </p><p><b>  六、程序代碼</b></p><p>  #include "stdio.h"

33、; </p><p>  #include "conio.h" </p><p>  #include "string.h"</p><p>  #include "stdlib.h"</p><p>  #define clrscr() system("cls"

34、;) /*將TC下的清屏函數替換為VC下的清屏函數*/</p><p>  typedef struct </p><p><b>  {</b></p><p>  char a[20]; </p><p>  char b[40];</p><p><b>

35、;  }XYZ; </b></p><p>  XYZ xyz[50]; </p><p>  void init() /*初始化函數*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>

36、  FILE *fp; </p><p>  for (i=0;i<50;i++)</p><p><b>  {</b></p><p>  memset(xyz[i].a,'\0',20); /*清空磁道,*/</p><p>  memset(xyz[i].b,'

37、;\0',40);</p><p><b>  }</b></p><p>  fp=fopen("c:\\my.txt","w"); /*在C盤新建一個TXT文件*/</p><p>  fp=fopen("c:\\my.txt","r");

38、 /*將新建的TXT文件打開*/</p><p><b>  i=0;</b></p><p>  while( fscanf(fp,"%s %s\n",xyz[i].a,xyz[i].b)!=EOF) /*由文件向結構體數組中寫數鋸*/</p><p><b>  i++;</b></p

39、><p>  fclose(fp); </p><p><b>  }</b></p><p>  void find() /*單詞查詢函數*/</p><p><b>  {</b></p><p><b>  int i;</b></

40、p><p>  char temp[20];</p><p><b>  clrscr();</b></p><p>  printf("please input a word:"); </p><p>  scanf("%s",temp);</p><p> 

41、 for (i=0;i<50;i++)</p><p>  if(strcmp(temp,xyz[i].a)==0) /*通過比較字符查詢*/</p><p><b>  {</b></p><p>  printf ("\n\n%s : %s",xyz[i].a,xyz[i].b); </p>&l

42、t;p>  printf ("\n\npress any key to return");</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>

43、;  printf ("\n\nnot found"); </p><p>  getch(); </p><p>  return; </p><p><b>  }</b></p>&

44、lt;p>  void add() /*詞條錄入函數*/</p><p><b>  {</b></p><p><b>  int i,j;</b></p><p>  char temp[20];</p><p>  char temp1[40];</p><p&g

45、t;<b>  clrscr();</b></p><p>  for (i=0;i<50;i++)</p><p><b>  {</b></p><p>  if(!(*xyz[i].a)) /*找到空位*/</p><p><b>  {</b

46、></p><p>  printf("\n\nplease input the word:");</p><p>  scanf("%s",temp);</p><p>  for (j=0;j<50;j++)</p><p>  if(strcmp(temp,xyz[j].a)==0)

47、 /*找到相同字符*/</p><p><b>  { </b></p><p>  printf ("\n\nthe word is already store\n\n");</p><p>  printf ("please any key to return");</

48、p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf("\n\nplease input the mean:"); </p>

49、<p>  scanf("%s",temp1); </p><p>  strcpy(xyz[i].a,temp); /*復制*/</p><p>  strcpy(xyz[i].b,temp1);</p><p><b>  return;</b></p><p>&l

50、t;b>  }</b></p><p><b>  }</b></p><p>  printf("\n\nsorry,the data is full"); </p><p><b>  }</b></p><p>  void del() /*詞條刪

51、除函數*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  char temp[20];</p><p><b>  clrscr();</b></p><p>  printf("

52、\n\nplease input the word:"); </p><p>  scanf("%s",temp);</p><p>  for (i=0;i<50;i++)</p><p>  if(strcmp(temp,xyz[i].a)==0) /*比較*/</p><p><b

53、>  {</b></p><p>  memset(xyz[i].a,'\0',20); /*清空該結構體*/</p><p>  memset(xyz[i].b,'\0',40);</p><p>  printf ("\n\nsuccess,press any key to return"

54、;);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf ("\n\nnot found"); </p>&l

55、t;p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  void modify() /*詞條修改函數*/</p><p><b>  {</b&g

56、t;</p><p><b>  int i;</b></p><p>  char temp[20];</p><p>  char temp1[40];</p><p><b>  clrscr();</b></p><p>  printf("\n\nplea

57、se input the word:"); </p><p>  scanf("%s",temp);</p><p>  for (i=0;i<50;i++)</p><p>  if(strcmp(temp,xyz[i].a)==0) </p><p><b>  {</b><

58、;/p><p>  printf ("\n\nfound\n\n"); </p><p>  printf("%s : %s\n\n",xyz[i].a,xyz[i].b); /*顯示原有單詞和意思*/</p><p>  printf ("\n\nplease input the new mean:&

59、quot;);</p><p>  scanf("%s",temp1); </p><p>  strcpy(xyz[i].b,temp1); /* 從temp1復制結構體中*/</p><p>  printf ("\n\nsuccess,please any key to return&q

60、uot;);</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  printf ("\n\nnot found"); </p>

61、<p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  void view() /*信息顯示函數*/</p><p><b>  {</b&

62、gt;</p><p><b>  int i,j;</b></p><p><b>  clrscr();</b></p><p>  for (i=0,j=0;i<50;i++)</p><p><b>  {</b></p><p>  if

63、(*xyz[i].a!='\0') /*如果不是空位*/</p><p><b>  {</b></p><p><b>  j++;</b></p><p>  printf("%s : %s\n",xyz[i].a,xyz[i].b);</p>&

64、lt;p>  if(j==20) /*分頁顯示,一次顯示20頁*/</p><p><b>  {</b></p><p><b>  j=0;</b></p><p>  printf ("\nprease any key to page down&q

65、uot;);</p><p><b>  getch();</b></p><p><b>  clrscr();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b&

66、gt;  }</b></p><p>  printf("\n\nthat's all");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void store() /*信息保存函數*

67、/</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  FILE *fp;</b></p><p>  fp=fopen("c:\\my.txt","w"); /*以讀

68、的方式再新建my.txt文檔*/</p><p>  if(fp==NULL) /*沒建成顯示wrong!*/</p><p>  printf("wrong!");</p><p>  getchar();</p><p>  for (i=0;i<50;i++)</p>

69、;<p>  fprintf(fp,"%s %s\n",xyz[i].a,xyz[i].b); /*將結構體中的數劇保存到my.txt文檔*/</p><p>  fclose(fp);</p><p>  printf ("\n\nstore success\n\n"); </p><p><b>

70、;  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p><p>  int main(void) /*主函數*/</p><p><b>  {</b></p><p

71、><b>  char key;</b></p><p><b>  init();</b></p><p>  while(1) </p><p><b>  {</b></p><p>  clrscr(); </p><p>  p

72、rintf("\n\n\n 電子英漢詞典設計----設計者<肖納>\n\n"); </p><p>  printf(" ************************************************************************");</p><p&g

73、t;  printf(" * 1、單詞查詢 * \n"); </p><p>  printf(" * 2、詞條錄入

74、 * \n");</p><p>  printf(" * 3、詞條刪除 * \n");</p><p>  printf(" * 4、詞條修改

75、 * \n");</p><p>  printf(" * 5、信息顯示 * \n");</p><p>  printf(" *

76、 6、信息保存 * \n");</p><p>  printf(" * 7、退出系統(tǒng) * \n");</p><p>  printf(" ********

77、****************************************************************");</p><p>  printf("\n\n\n 非本人授權嚴禁分享!");</p><p>  key=getch();</p><p>  sw

78、itch(key) </p><p><b>  {</b></p><p>  case '1':find();break;</p><p>  case '2':add();break;</p><p>  case '3':del();break;</p&

79、gt;<p>  case '4':modify();break;</p><p>  case '5':view();break;</p><p>  case '6':store();break;</p><p>  case '7': return 0; </p>

80、<p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  功能顯示:</b></

81、p><p><b>  主菜單</b></p><p><b>  主菜單</b></p><p><b>  單詞查詢</b></p><p><b>  詞條錄入</b></p><p><b>  詞條錄入</b&

82、gt;</p><p><b>  詞條刪除</b></p><p><b>  成功</b></p><p><b>  失敗</b></p><p><b>  詞條修改</b></p><p><b>  信息顯示&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論