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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  數(shù) 據(jù) 結(jié) 構(gòu)</b></p><p>  課 程 設(shè) 計(jì) 說(shuō) 明 書</p><p>  2011年12月20日</p><p><b>  1.設(shè)計(jì)目的</b></p><p><b>  簡(jiǎn)易文本編輯器</b></p><

2、p><b>  2.設(shè)計(jì)內(nèi)容和要求</b></p><p>  1) 具有圖形菜單界面;</p><p>  2) 查找,替換(等長(zhǎng),不等長(zhǎng)),插入(插串,文本塊的插入)、塊移動(dòng)(行塊,列塊移動(dòng)),刪除</p><p>  3) 可正確存盤、取盤;</p><p>  4) 

3、正確顯示總行數(shù)。</p><p>  3.本設(shè)計(jì)所采用的數(shù)據(jù)結(jié)構(gòu)</p><p>  本程序是對(duì)輸入的文字進(jìn)行操作,故使用的數(shù)據(jù)結(jié)構(gòu)為單鏈表操作</p><p>  線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的特點(diǎn)是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素。它包括兩個(gè)域:其中存儲(chǔ)數(shù)據(jù)元素信息的域稱為數(shù)據(jù)域;存儲(chǔ)直接后繼存儲(chǔ)位置的域稱為指針域。另有全局變量*head,作為文章的頭指針。&

4、lt;/p><p>  在文章內(nèi)容創(chuàng)建部分中使用線性表的鏈?zhǔn)酱鎯?chǔ),并使用全局變量對(duì)文本的各種信息進(jìn)行存儲(chǔ);</p><p>  文章的內(nèi)容統(tǒng)計(jì)、刪除、查找、插入都采用鏈表操作完成。</p><p>  4.功能模塊詳細(xì)設(shè)計(jì)</p><p>  4.1 詳細(xì)設(shè)計(jì)思想</p><p>  本程序所定義函數(shù)的設(shè)計(jì)思想:</

5、p><p>  CreatWord()文本內(nèi)容輸入函數(shù)</p><p>  定義LinkList指針變量*temp: LinkList *temp;</p><p>  定義文本輸入變量ch,記錄文本行數(shù)變量j,記錄每行字符數(shù)變量i;</p><p>  申請(qǐng)動(dòng)態(tài)存儲(chǔ)空間:head->next=(LinkList *)malloc(siz

6、eof(LinkList));</p><p>  首行頭指針的前驅(qū)指針為空:head->pre=NULL;</p><p>  利用循環(huán)進(jìn)行文本輸入</p><p>  PrintWord()當(dāng)前文本輸出函數(shù)</p><p>  定義文本行數(shù)變量j,每行字符數(shù)i:int i,j;</p><p>  定義指針變

7、量:LinkList *p;</p><p>  將指針p指向鏈表表頭: p=head->next;</p><p>  利用循環(huán)輸出鏈表中信息:</p><p>  for(j=0;j<=NUM&&p!=NULL;j++)</p><p>  {=for(i=0;(i<80)&&(p->

8、;data[i])!='#';i++)</p><p>  {=printf("%c",p->data[i]);}</p><p>  p=p->next; </p><p>  SearchWord( ) 文本內(nèi)容查找函數(shù)</p><p>  定義一個(gè)數(shù)組,用來(lái)記錄需要查找的字符內(nèi)容:char

9、 Data[20];</p><p>  定義定義文本行數(shù)變量j,每行字符數(shù)i,記錄字符出現(xiàn)的次數(shù)變量:</p><p>  利用循環(huán)進(jìn)行查找操作,核心算法為:</p><p>  if((temp->data[i])==Data[k]) </p><p>  k++;//將輸入的查找字符與鏈表中信息比較,找到第一個(gè)相同的字符<

10、/p><p>  else if(Data[k]!='\0')</p><p>  {i=i-k; k=0; } // //從主串第i-k個(gè)位置重新查找</p><p>  if(Data[k]=='\0') </p><p>  {sum++;//此字符出現(xiàn)的次數(shù)加1</p><p>  

11、i=i-k+1; //i記錄下該字符串出現(xiàn)的位置</p><p>  printf("\t\t第%d次出現(xiàn)在第%d行第%d列\(zhòng)n",l,j+1,i);</p><p><b>  l++;</b></p><p><b>  k=0;</b></p><p>  continue

12、;} </p><p>  temp=temp->next; //指向下一行</p><p>  DeleteWord( ) 文本內(nèi)容刪除函數(shù)</p><p>  定義一個(gè)數(shù)組用來(lái)存儲(chǔ)需要?jiǎng)h除的字符或者字符串:char Data[20];</p><p>  定義指針變量:LinkList *temp,*term;</p>

13、<p>  使用VC++中拷貝函數(shù)講形參中需要?jiǎng)h除的字符或字符串賦值給已定義的數(shù)組:</p><p>  strcpy(Data,str2);</p><p>  使用循環(huán)進(jìn)行刪除操作:</p><p><b>  其核心算法為:</b></p><p>  for(j=0;j<=NUM;j++) &l

14、t;/p><p>  { for(i=0;i<80;i++) </p><p>  { if((temp->data[i])==Data[k]) k++; </p><p>  else if(Data[k]!='\0') {i=i-k;k=0;} </p><p>  if(Data[k]=='\0'

15、) </p><p>  {num=i;break; } } </p><p>  if(num<80) break; }</p><p>  首先是使用循環(huán)查找到需要?jiǎng)h除字符或者字符串的字符數(shù)以及字符或者字符串的位置,以便于刪除;</p><p>  for(;j<=NUM;j++) </p><p>

16、  { for(;i<80;i++) </p><p>  { if(i+1<k) </p><p>  { term->data[80-k+num]=temp->data[i+1]; } //刪除的字符串不在最后一行,將下一行的字符(由temp指向)前移到前行</p><p>  else temp->data[i-k+1]=te

17、mp->data[i+1];} //當(dāng)要?jiǎng)h除的字符串在最后一行只要將最后一行的字符前移</p><p>  term=temp;</p><p>  temp=temp->next;</p><p>  j=0;}//在使用循環(huán),從查找到的字符或者字符串開(kāi)始進(jìn)行刪除,在一行刪除完畢之后,轉(zhuǎn)至下一行進(jìn)行刪除。</p><p>

18、  本程序所定義的函數(shù):</p><p>  1、HeadWord() 標(biāo)題函數(shù),即一個(gè)輸出標(biāo)題,永遠(yuǎn)出現(xiàn)在程序的最頂端。</p><p>  2、save() 文件存儲(chǔ)函數(shù)</p><p>  3、load() 文件讀取函數(shù)</p><p>  4、CreatWord() 文本輸入函數(shù)</p><p>  5、

19、PrintWord() 當(dāng)前文本內(nèi)容輸出函數(shù)</p><p>  6、SearchWord() 文章內(nèi)容查找函數(shù)</p><p>  7、DelWord() 文章內(nèi)容刪除函數(shù)</p><p>  8、InsertWord() 文章內(nèi)容插入函數(shù)</p><p>  9、Replace() 文章內(nèi)容替換函數(shù)</p><p

20、>  10、Bmenu() 第二子菜單函數(shù)</p><p>  11、menu() 主菜單函數(shù)</p><p>  12、main()主函數(shù)</p><p><b>  4.2 運(yùn)行結(jié)果</b></p><p> ?。?)執(zhí)行完menu() 主菜單函數(shù)后的結(jié)果</p><p><b&

21、gt;  輸入文章內(nèi)容的結(jié)果</b></p><p> ?。?)讀取當(dāng)前文本內(nèi)容信息</p><p>  進(jìn)入文本內(nèi)容處理菜單</p><p>  (5)查找文章中字符或者字符串</p><p> ?。?)顯示當(dāng)前文章內(nèi)容</p><p><b> ?。?)返回主菜單</b></

22、p><p><b>  4.3 核心代碼</b></p><p>  #include "stdafx.h"</p><p>  #include "stdio.h"</p><p>  #include "conio.h"</p><p>

23、  #include"malloc.h"</p><p>  #include"string.h"</p><p>  #include"iostream.h"</p><p>  #include"stdlib.h"</p><p>  #define Link

24、_Size 100</p><p>  int NUM,C,N,hang; /*定義全局變量,Num用來(lái)記錄行號(hào),C用來(lái)記錄子串在主串中出現(xiàn)的總次數(shù)*/</p><p>  #define MAXLEN 80</p><p>  char buffer[MAXLEN],fname[120];</p><p>  char *lineptr[L

25、ink_Size];;</p><p><b>  FILE *fp;</b></p><p>  int modified=0,/*正文被修改標(biāo)志*/</p><p>  last;/*當(dāng)前正文行數(shù)*/</p><p>  char *chpt;/*輸入命令行字符指針*/</p><p>  t

26、ypedef struct _list/*行表結(jié)構(gòu)*/</p><p><b>  { </b></p><p>  char data[80];/*記錄一行字符*/</p><p>  int length;/*記錄一行字符長(zhǎng)度*/</p><p>  struct _list *next;/* 后繼指針*

27、/</p><p>  struct _list *pre;/*前趨指針*/</p><p>  int row;/*記錄整篇文章的行數(shù)*/</p><p>  }LinkList;</p><p>  LinkList *head; /*定義全局變量*head,文章首行頭指針*/</p><p>  void

28、HeadWord()</p><p><b>  {</b></p><p>  printf("\t\t****************************************************\n");</p><p>  printf("\t\t**** 歡迎使用簡(jiǎn)單的文本編輯器

29、 ****\n");</p><p>  printf("\t\t****************************************************\n");</p><p><b>  }</b></p><p>  int save(char *fname)</p

30、><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  FILE *fp;</b></p><p>  char name[80];</p><p>  if(!*fname)</p>&

31、lt;p><b>  {</b></p><p>  printf("filename:");</p><p>  gets(name);</p><p><b>  }</b></p><p>  else strcpy(name,fname);</p>&

32、lt;p>  if((fp=fopen(name,"wb"))==NULL)</p><p><b>  return 0;</b></p><p>  for(i=0;i<last;i++)</p><p><b>  {</b></p><p>  fputs(l

33、ineptr[i],fp);</p><p>  free(lineptr[i]);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("file %s already saved.",name);</p><p&

34、gt;<b>  getch();</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p>  int load(char *fname)</p><p><b>  {</b></p&

35、gt;<p><b>  FILE *fp;</b></p><p>  char ch,*p;</p><p><b>  int i;</b></p><p>  if((fp=fopen(fname,"rb"))==NULL) return 0;</p><p&g

36、t;  while(!feof(fp))</p><p><b>  {</b></p><p>  ch=getc(fp);</p><p>  if(ch=='\x09')</p><p>  for(i=0;i<8;i++,p++) *p='\x20';</p>

37、<p>  else if(ch!='\n'&&ch!=EOF)</p><p><b>  {</b></p><p><b>  *p=ch;</b></p><p><b>  p++;</b></p><p><b>

38、  }</b></p><p><b>  }</b></p><p><b>  *p='\0';</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  LinkLi

39、st *CreatWord()</p><p><b>  {</b></p><p>  LinkList *temp;</p><p><b>  char ch;</b></p><p>  int i,j;/*記錄文本行數(shù)變量j,記錄每行字符數(shù)變量i*/</p><p&g

40、t;  head->next=(LinkList *)malloc(sizeof(LinkList));</p><p>  head->pre=NULL;</p><p>  temp=head->next;</p><p>  temp->pre=NULL;</p><p>  temp->length=0;

41、</p><p>  for(i=0;i<80;i++)</p><p>  temp->data[i]='\0';</p><p>  printf("開(kāi)始創(chuàng)建文本,請(qǐng)輸入文章(按#結(jié)束):\n");</p><p>  for(j=0;j<Link_Size;j++)</p>

42、;<p><b>  {</b></p><p>  for(i=0;i<80;i++)</p><p><b>  {</b></p><p>  ch=getchar();</p><p>  temp->data[i]=ch;</p><p>

43、  temp->length++;</p><p>  if(ch=='\n')</p><p><b>  hang++;</b></p><p>  if(ch=='#')</p><p><b>  {</b></p><p>&l

44、t;b>  NUM=j;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(ch=='#')</p><p&g

45、t;<b>  { </b></p><p>  temp->length=i;</p><p>  temp->next=NULL;</p><p><b>  break;</b></p><p><b>  }</b></p><p>

46、;  temp->next=(LinkList *)malloc(sizeof(LinkList)) ;</p><p>  temp->next->pre=temp;</p><p>  temp=temp->next;</p><p>  for(i=0;i<80;i++)</p><p>  temp-&g

47、t;data[i]='\0';</p><p><b>  }</b></p><p>  temp->row=NUM+1;</p><p>  system("cls");</p><p>  return temp;</p><p><b>

48、  }</b></p><p>  void PrintWord()</p><p><b>  {</b></p><p>  int i,j;/*記錄文本行數(shù)變量j,記錄每行字符數(shù)變量i*/</p><p>  LinkList *p;</p><p>  p=head->n

49、ext;</p><p>  system("cls"); </p><p>  HeadWord();</p><p>  printf("\n當(dāng)前文章的內(nèi)容是:");</p><p>  for(j=0;j<=NUM&&p!=NULL;j++)</p><p

50、><b>  {</b></p><p>  for(i=0;(i<80)&&(p->data[i])!='#';i++)</p><p><b>  {</b></p><p>  printf("%c",p->data[i]);</p&g

51、t;<p><b>  }</b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  printf("\n當(dāng)前文章行數(shù)為:%d\n",hang);</p><p><b>  }</b>

52、</p><p>  void SearchWord(char *str1,LinkList* temp) </p><p><b>  { </b></p><p>  char Data[20] ; </p><p>  int i,j,k=0,sum=0;</p><p>

53、<b>  int l=1;</b></p><p>  temp=head->next; </p><p>  strcpy(Data,str1);</p><p>  for(i=0;i<=NUM;i++) </p><p><b>  { </b></p><p

54、>  for(j=0;j<80;j++) </p><p><b>  { </b></p><p>  if((temp->data[j])==Data[k]) k++;</p><p>  else if(Data[k]!='\0')</p><p><b>  {<

55、/b></p><p><b>  j=j-k;</b></p><p><b>  k=0;</b></p><p><b>  } </b></p><p>  if(Data[k]=='\0') </p><p><b&

56、gt;  {</b></p><p><b>  sum++;</b></p><p><b>  j=j-k+1;</b></p><p>  printf("\t\t第%d次出現(xiàn)在第%d行第%d列\(zhòng)n",l,i+1,j+1);</p><p><b> 

57、 l++;</b></p><p><b>  k=0;</b></p><p>  continue;} </p><p><b>  } </b></p><p>  temp=temp->next; </p><p><b>  } <

58、/b></p><p>  printf("\t\t\t字符串總共出現(xiàn)次數(shù)為:%d\n\n",sum); </p><p><b>  C=sum;</b></p><p><b>  N=i*80+j;</b></p><p><b>  } </b&g

59、t;</p><p>  void DelWord(char *str2) </p><p>  {char Data[20];</p><p>  LinkList *temp,*term; </p><p>  int i,j,k,m,y,num;</p><p>  str

60、cpy(Data,str2);</p><p>  for(y=0;y<C;y++) </p><p><b>  { </b></p><p><b>  num=80;</b></p><p><b>  k=0,m=0; </b></p><p&

61、gt;  temp=head; </p><p>  for(i=0;i<=NUM;i++) </p><p><b>  { </b></p><p>  term=temp; </p><p>  temp=temp->next; </p><p>  for(j=0;j<8

62、0;j++) </p><p><b>  { </b></p><p>  if((temp->data[j])==Data[k]) k++; </p><p>  else if(Data[k]!='\0') {j=j-k;k=0;} </p><p>  if(Data[k]=='\0

63、') </p><p><b>  {</b></p><p><b>  num=j;</b></p><p><b>  break;</b></p><p><b>  } </b></p><p><b>

64、  } </b></p><p>  if(num<80) break; </p><p><b>  } </b></p><p>  for(;i<=NUM;i++) </p><p><b>  { </b></p><p>  for(;j&l

65、t;80;j++) </p><p><b>  { </b></p><p>  if(j+1<k) </p><p><b>  { </b></p><p>  term->data[80-k+num]=temp->data[j+1]; </p><p&g

66、t;<b>  } </b></p><p><b>  else</b></p><p>  temp->data[j-k+1]=temp->data[j+1]; </p><p><b>  } </b></p><p>  term=temp; </p&

67、gt;<p>  temp=temp->next;</p><p><b>  j=0; </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p&

68、gt;<p>  LinkList * InsertWord(LinkList *temp)</p><p><b>  { </b></p><p>  char Data[20];</p><p><b>  int h,l;</b></p><p>  printf(&quo

69、t;\n\t\t請(qǐng)輸入要插入的字符或字符串:");</p><p>  getchar();</p><p>  gets(Data);</p><p>  printf("\n\t\t當(dāng)前文章內(nèi)容為:");</p><p>  PrintWord();</p><p>  printf(

70、"\n\t\t請(qǐng)輸入要插入的行:");</p><p>  scanf("%d",&h);</p><p>  printf("\n\t\t請(qǐng)輸入要插入的列:");</p><p>  scanf("%d",&l);</p><p>  int i

71、=(h-1)*80+l;</p><p>  LinkList *a;</p><p>  int n=strlen(Data);</p><p><b>  int m ;</b></p><p>  int insertRow=i/80+1;</p><p>  int row=temp-&g

72、t;row;</p><p><b>  int j;</b></p><p>  if(insertRow==row)</p><p><b>  {</b></p><p>  for(m=temp->length-1;m>=(i%80)&&n>0;m--)&

73、lt;/p><p>  temp->data[m+n]=temp->data[m];</p><p>  for(m=(i%80),j=0;m<n+(i%80);m++,j++)</p><p><b>  {</b></p><p>  temp->data[m]=Data[j];</p

74、><p><b>  }</b></p><p><b>  } </b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  int r=0;</b>

75、;</p><p>  for(int p=insertRow; p<row;p++)</p><p><b>  {</b></p><p>  if(p == insertRow) </p><p><b>  r=0;</b></p><p><b> 

76、 else</b></p><p><b>  r=n;</b></p><p>  for(m=temp->length-1-r;m>=0&&n>0;m--)</p><p>  temp->data[m+n]=temp->data[m];</p><p>&l

77、t;b>  a=temp;</b></p><p>  temp = temp->pre;</p><p>  temp->length = 80;</p><p>  for(m = temp->length-n,j=0;m<temp->length;m++,j++)</p><p>  a

78、->data[j]=temp->data[m];</p><p><b>  }</b></p><p>  for(m=temp->length-n-1;m>=(i%80);m--) </p><p>  temp->data[m+n]=temp->data[m];</p><p>

79、  for(m=(i%80),j=0;m<(i%80)+n;m++,j++) </p><p>  temp->data[m] =Data[j];</p><p><b>  }</b></p><p>  return temp;</p><p><b>  }</b></p&g

80、t;<p>  void Replace()</p><p><b>  {</b></p><p>  int k,m,n,i,j;</p><p>  sscanf(chpt,"%d%d%d",&k,&m,&n); /* 讀入?yún)?shù) */</p><p>  i

81、f(m<=0||m>last||n<m||last-(n-m+1)+k>=Link_Size)/* 檢查參數(shù)合理性 */</p><p><b>  {</b></p><p>  printf("Error!\n");</p><p><b>  return;</b><

82、/p><p><b>  }</b></p><p>  /* 先完成刪除 */</p><p>  if(n>last)</p><p>  n=last; /* 修正參數(shù) */</p><p>  for(i=m;i<=n;i++) /* 刪除正文 */</p>

83、<p>  free(lineptr[i-1]);</p><p>  for(i=m,j=n+1;j<=last;i++,j++)</p><p>  lineptr[i-1]=lineptr[j-1];</p><p><b>  last=i-1;</b></p><p>  /* 以下完成插入

84、 */</p><p>  for(i=last;i>=m;i--)</p><p>  lineptr[i+k-1]=lineptr[i-1];</p><p>  for(i=0;i<k;i++)</p><p><b>  {</b></p><p>  fgets(buffer

85、,MAXLEN,stdin);</p><p>  lineptr[m+i-1]=(char *)malloc(strlen(buffer)+1);</p><p>  strcpy(lineptr[m+i-1],buffer);</p><p><b>  }</b></p><p>  last+=k; /*

86、修正正文行數(shù) */</p><p>  modified=1; /* 正文被修改 */</p><p><b>  }</b></p><p>  void Bmenu(LinkList *temp)</p><p><b>  { </b></p><p>  char

87、str1[20];</p><p>  char str2[20];</p><p><b>  int a;</b></p><p><b>  do</b></p><p><b>  {</b></p><p>  HeadWord();</

88、p><p>  printf("\n\t\t****************************************************\n");</p><p>  printf("\t\t**** 文章內(nèi)容處理菜單 ****\n");</p><p>  prin

89、tf("\t\t****************************************************\n");</p><p>  printf("\t\t**** 1、查找文章中的字符或者字符串 ****\n");</p><p>  printf("\t\t**** 2、刪除文章中的字

90、符或者字符串 ****\n");</p><p>  printf("\t\t**** 3、向文章中插入字符或者字符串 ****\n");</p><p>  printf("\t\t**** 4、替換文章中的字符或者字符串 ****\n");</p>&

91、lt;p>  printf("\t\t**** 5、顯示當(dāng)前文章內(nèi)容 ****\n");</p><p>  printf("\t\t**** 6、返回主菜單 ****\n");</p><p>  printf("\t\t****

92、 7、直接退出系統(tǒng) ****\n");</p><p>  printf("\t\t****************************************************\n");</p><p>  printf("\t\t 請(qǐng)選擇:");</p>

93、<p>  scanf("%d",&a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p>  case 1: </p><p>  system("cls"); <

94、/p><p>  HeadWord();</p><p>  printf("\t\t\t請(qǐng)輸入您需要查找的字符或字符串:");</p><p>  getchar();</p><p>  gets(str1);</p><p>  SearchWord(str1,temp);</p>

95、<p>  printf("按回車鍵繼續(xù)·····");</p><p>  getchar();</p><p>  getchar();</p><p>  system("cls");</p><p><b>  break;&

96、lt;/b></p><p><b>  case 2:</b></p><p>  system("cls"); </p><p>  HeadWord();</p><p>  printf("\t\t\t請(qǐng)輸入您需要?jiǎng)h除的字符或字符串:");</p>&l

97、t;p>  getchar();</p><p>  gets(str2);</p><p>  SearchWord(str2,temp);</p><p>  DelWord(str2);</p><p>  printf("\t\t\t刪除 %s 后的文章為:",str2);</p><p&

98、gt;  PrintWord();</p><p>  printf("按回車鍵繼續(xù)·····");</p><p>  getchar();</p><p>  getchar();</p><p>  system("cls");</p>

99、<p><b>  break;</b></p><p><b>  case 3:</b></p><p>  system("cls"); </p><p>  HeadWord();</p><p>  InsertWord(temp);</p>

100、<p>  printf("\t\t\t插入字符或字符串后文章為:");</p><p>  PrintWord();</p><p>  printf("按回車鍵繼續(xù)·····");</p><p>  getchar();</p><p>

101、;  getchar();</p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  system("cls"); </p><

102、;p>  HeadWord();</p><p>  Replace();</p><p>  printf("\t\t\t替換字符或字符串后文章為:");</p><p>  printf("按回車鍵繼續(xù)·····");</p><p>  ge

103、tchar();</p><p>  getchar();</p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  system("

104、;cls"); </p><p>  HeadWord();</p><p>  PrintWord();</p><p>  printf("按回車鍵繼續(xù)·····");</p><p>  getchar();</p><p>  ge

105、tchar();</p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(a==6) </p><p><b>  {</b&g

106、t;</p><p>  system("cls"); </p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(a==7) exit(0); </p><p>  }while(1);

107、 </p><p><b>  }</b></p><p>  void menu(LinkList *temp)</p><p><b>  {</b></p><p>  char name[20];</p><p><b>  int t;<

108、/b></p><p><b>  do{</b></p><p>  HeadWord();</p><p>  printf("\n");</p><p>  printf("\t\t*************************************************

109、***\n");</p><p>  printf("\t\t**** 主菜單 ****\n");</p><p>  printf("\t\t****************************************************\n");</p

110、><p>  printf("\t\t**** 1、文章內(nèi)容輸入 ****\n");</p><p>  printf("\t\t**** 2、保存文本 ****\n");</p><p>  printf(&quo

111、t;\t\t**** 3、讀取文本 ****\n");</p><p>  printf("\t\t**** 4、當(dāng)前文本內(nèi)容信息 ****\n");</p><p>  printf("\t\t**** 5、進(jìn)入文章內(nèi)容處理菜單

112、 ****\n");</p><p>  printf("\t\t**** 6、退出文本編輯器 ****\n");</p><p>  printf("\t\t****************************************************\n"

113、;);</p><p>  printf("\t\t**** 注:第一次運(yùn)行本程序時(shí)請(qǐng)選擇1號(hào)功能 ****\n");</p><p>  printf("\t\t****************************************************\n");</p><p>  printf(

114、" \t\t 請(qǐng)選擇:");</p><p>  scanf("%d",&t);</p><p>  if((t>6)&&(t<1))</p><p><b>  { </b></p><p>  printf("對(duì)不起,無(wú)此功

115、能,請(qǐng)輸入正確的功能序號(hào)!\n");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  switch(t)</b></p><p><b>  { </b></p>

116、<p><b>  case 1: </b></p><p>  system("cls"); </p><p>  HeadWord();</p><p>  temp=CreatWord();</p><p><b>  break;</b></p>

117、<p><b>  case 2: </b></p><p>  save(name);</p><p><b>  break;</b></p><p><b>  case 3: </b></p><p>  load(name);</p>&l

118、t;p><b>  break;</b></p><p><b>  case 4: </b></p><p>  PrintWord();</p><p>  printf("\n");</p><p>  printf("按回車鍵繼續(xù)··

119、···");</p><p>  getchar();</p><p>  getchar();</p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  c

120、ase 5: </b></p><p>  system("cls"); </p><p>  Bmenu(temp);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(t=

121、=6) break;</p><p>  }while(1);</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p>  head=(LinkList *)malloc(sizeof(Lin

122、kList));</p><p>  LinkList *temp;</p><p>  menu(temp);</p><p><b>  }</b></p><p>  5.課程設(shè)計(jì)心得及存在問(wèn)題</p><p>  本程序是在線性表的基礎(chǔ)上改進(jìn)的,用到了雙向鏈表和一些c++里面的知識(shí)。線性表

123、的操作數(shù)是浮點(diǎn)形,而文本編輯器的操作數(shù)是字符型,在線性表的程序上加進(jìn)插入刪除查找數(shù)據(jù)結(jié)構(gòu),然后建立一個(gè)文件保存線性表中的數(shù)據(jù),就是我寫的程序。</p><p>  本次課程設(shè)計(jì)還算順利,但是在設(shè)計(jì)過(guò)程中由于自己的不細(xì)心,忽略了一些關(guān)鍵的細(xì)節(jié),導(dǎo)致了在編寫過(guò)程中出現(xiàn)了一些錯(cuò)誤。例如:少了分號(hào),或忘了定義函數(shù),又如能運(yùn)行但輸出結(jié)果錯(cuò)誤,結(jié)果不正確。又由于自己打字時(shí)犯得小錯(cuò)誤,導(dǎo)致出現(xiàn)不易發(fā)現(xiàn)的錯(cuò)誤,最終在老師及編程能

124、力比較強(qiáng)的同學(xué)幫助下,查找到并及時(shí)改正。</p><p>  該程序不僅可以利用線性表還可以利用串、單鏈表司實(shí)現(xiàn),通過(guò)做該程序,我又對(duì)課本做了新的解讀,加深了對(duì)所學(xué)知識(shí)的印象及了解,同時(shí)也了解了我還有許多不足,對(duì)許多所學(xué)過(guò)的知識(shí)掌握得不夠透徹,不夠深入,應(yīng)用不夠靈活,今后我會(huì)彌補(bǔ)這方面的不足,加深理解課本知識(shí),同時(shí)注重應(yīng)用。</p><p>  通過(guò)這次課程設(shè)計(jì)讓我又學(xué)到了很多東西,加深了

125、對(duì)數(shù)據(jù)結(jié)構(gòu)這門課程的理解和學(xué)會(huì)了如何在實(shí)際中應(yīng)用數(shù)據(jù)結(jié)構(gòu)編程。讓我了解到自己在這門課程上還存在很多缺陷,尤其是對(duì)文件操作問(wèn)題。通過(guò)對(duì)線性表的應(yīng)用,查找課本資料加深了對(duì)線性表的了解,并學(xué)會(huì)了靈活運(yùn)用。通過(guò)調(diào)試,我學(xué)會(huì)了借助逐步調(diào)試功能和數(shù)據(jù)窗口,加快找到程序中的錯(cuò)誤點(diǎn),調(diào)試能力有所提高。</p><p>  本程序中運(yùn)用了大量的循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu),在編寫程序時(shí)要注意條件的判斷和循環(huán)條件的正確編寫。該程序中程序代碼較

126、多,引用較多指針和定義的許多變量,理解起來(lái)較難。而且對(duì)于文件的存儲(chǔ)和讀取還是存在問(wèn)題。有待于我自己進(jìn)一步再去研究這段程序,并且改進(jìn)它。我現(xiàn)在初步的解決辦法是定義一個(gè)類,類里包含一些靜態(tài)的屬性和動(dòng)態(tài)的函數(shù),然后在繼承這些函數(shù)。這樣可以簡(jiǎn)化程序代碼,然后精確存取的文件路徑,使之在文件的存取方面便于更好的理解,使程序功能更全面。</p><p>  總之,通過(guò)本次課程設(shè)計(jì),不僅鍛煉了我的實(shí)際操作能力,而且培養(yǎng)了嚴(yán)密的思

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論