2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(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>  利用鏈?zhǔn)絻?chǔ)存對(duì)學(xué)生成績(jī)進(jìn)行基本操作</p><p>  數(shù) 據(jù) 結(jié) 構(gòu) 課 程 設(shè) 計(jì)</p><p>  設(shè)計(jì)題目:利用鏈?zhǔn)絻?chǔ)存對(duì)學(xué)生成績(jī)進(jìn)行基本操作 </p><p>  學(xué)生姓名: </p><p>  專業(yè)班級(jí):

2、 </p><p>  指導(dǎo)教師: </p><p>  完成時(shí)間: </p><p><b>  學(xué)院 系</b></p><p> 

3、 ********課程設(shè)計(jì)成績(jī)?cè)u(píng)定表(本科)</p><p><b>  目 錄 </b></p><p>  第一章.課程設(shè)計(jì)的目的及要求1</p><p>  第二章.課程設(shè)計(jì)的內(nèi)容和要求1</p><p><b>  2.1內(nèi)容1</b></p><p>&l

4、t;b>  2.2要求1</b></p><p>  第三章.課程設(shè)計(jì)分析分析1</p><p>  3.1設(shè)計(jì)思路及方案1</p><p>  3.2模塊設(shè)計(jì)與介紹3</p><p>  3.2.1結(jié)構(gòu)類型聲明部分3</p><p>  3.2.2類型域聲明部分3</p>

5、<p>  3.2.3置空鏈表部分3</p><p>  3.2.4創(chuàng)建鏈表部分3</p><p>  3.2.5查找學(xué)生信息部分4</p><p>  3.2.6輸出學(xué)生信息部分4</p><p>  3.2.7插入學(xué)生信息部分5</p><p>  3.2.8刪除學(xué)生信息部分5</p&g

6、t;<p>  3.2.9對(duì)學(xué)生信息進(jìn)行排序部分5</p><p>  3.2.10主函數(shù)部分6</p><p>  第四章 算法描述7</p><p>  第五章 數(shù)據(jù)結(jié)構(gòu)描述與定義7</p><p><b>  5.1結(jié)構(gòu)題:7</b></p><p>  5.2結(jié)構(gòu)體

7、數(shù)組:8</p><p>  5.3程序架構(gòu)圖8</p><p><b>  第六章.源程序8</b></p><p>  第七章 運(yùn)行結(jié)果分析12</p><p>  第八章.結(jié)束語(yǔ)14</p><p>  第九章.參考文獻(xiàn)15</p><p>  第一章.課

8、程設(shè)計(jì)的目的及要求</p><p>  此次設(shè)計(jì)意義在于讓我們更好的去掌握C的基本語(yǔ)法、函數(shù)以及Visual C++集成編譯環(huán)境。單鏈表的鏈?zhǔn)絻?chǔ)存等基本數(shù)據(jù)結(jié)構(gòu)及其應(yīng)用。掌握程序流程以及基本應(yīng)用方法。</p><p>  通過(guò)本課程設(shè)計(jì),培養(yǎng)我們進(jìn)行課程設(shè)計(jì)能力。</p><p>  在當(dāng)今信息爆炸的時(shí)代,如何采用較好的信息技術(shù)對(duì)一些數(shù)據(jù)元素進(jìn)行基本操作來(lái)為人類很好

9、地服務(wù)。線性表的鏈?zhǔn)絻?chǔ)存正是一種應(yīng)用廣泛且非常有效的數(shù)據(jù)處理技術(shù)。</p><p>  第二章.課程設(shè)計(jì)的內(nèi)容和要求</p><p><b>  2.1內(nèi)容</b></p><p>  (1).創(chuàng)建線性表。</p><p>  (2).實(shí)現(xiàn)對(duì)線性表的鏈?zhǔn)絻?chǔ)存對(duì)學(xué)生成績(jī)進(jìn)行基本操作,包括插入、刪除、查找,排序等操作。<

10、;/p><p><b>  2.2要求</b></p><p><b>  硬件: 計(jì)算機(jī)</b></p><p>  軟件: Windows Microsoft Visual C++6.0</p><p>  第三章.課程設(shè)計(jì)分析分析</p><p>  3.1設(shè)計(jì)思路及方

11、案</p><p>  本課題是用線性表的鏈?zhǔn)絻?chǔ)存來(lái)對(duì)學(xué)生進(jìn)行基本操作的功能。設(shè)計(jì)思路及方案,可用流程圖來(lái)表示。</p><p><b>  圖1函數(shù)主流程圖</b></p><p><b>  繼續(xù)輸入</b></p><p>  圖2 建立學(xué)生信息鏈表</p><p>

12、<b>  N</b></p><p><b>  Y</b></p><p>  圖3 刪除信息流程成圖</p><p><b>  N</b></p><p><b>  Y</b></p><p>  圖4 查找信息流程圖&

13、lt;/p><p>  3.2模塊設(shè)計(jì)與介紹</p><p>  3.1.1結(jié)構(gòu)類型聲明部分</p><p>  #include<stdio.h></p><p>  typedef struct</p><p><b>  {</b></p><p><b

14、>  int num;</b></p><p>  char name[20];</p><p>  float score;</p><p><b>  }std;</b></p><p>  3.2.2類型域聲明部分</p><p>  typedef int datatyp

15、e;</p><p>  typedef struct node</p><p><b>  {</b></p><p><b>  std data;</b></p><p>  struct node *next;</p><p>  }linklist;</p&

16、gt;<p>  3.2.3置空鏈表部分</p><p>  void setnull(linklist *head)</p><p><b>  {</b></p><p>  head=(linklist *)malloc(sizeof(linklist));</p><p>  head->ne

17、xt=NULL;</p><p><b>  }</b></p><p>  3.2.4創(chuàng)建鏈表部分</p><p>  void creatlist(linklist *head,int n)</p><p><b>  {</b></p><p><b>  i

18、nt i;</b></p><p>  linklist *p,*tail;</p><p>  tail=head;</p><p>  for(i=1;i<=n;i++)</p><p><b>  {</b></p><p>  p=(linklist *)malloc(s

19、izeof(linklist));</p><p>  printf("請(qǐng)輸入第%d個(gè)學(xué)生的基本信息:",i);</p><p>  scanf("%d%s%f",&p->data.num,&p->data.name,&p->data.score);</p><p>  p->n

20、ext=NULL;</p><p>  tail->next=p;</p><p><b>  tail=p;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.5查找學(xué)生信息部分&

21、lt;/p><p>  linklist *get(linklist *head,int i)</p><p><b>  {</b></p><p><b>  int j=0;</b></p><p>  linklist *p;</p><p><b>  p=h

22、ead;</b></p><p>  while(p->next!=NULL&&j<i)</p><p><b>  {</b></p><p><b>  j++;</b></p><p>  p=p->next;</p><p&g

23、t;<b>  }</b></p><p><b>  if(j==i)</b></p><p><b>  return p;</b></p><p><b>  else</b></p><p>  return NULL;</p>&l

24、t;p><b>  }</b></p><p>  3.2.6輸出學(xué)生信息部分</p><p>  void print(linklist *head)</p><p><b>  {</b></p><p>  linklist *p;</p><p>  p=hea

25、d->next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  printf("%d\t%s\t%f\n",p->data.num,p->data.name,p->data.score);</p><p>  p=

26、p->next;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.7插入學(xué)生信息部分</p><p>  void insertafter(linklist *p,int i)</p><p><b>

27、;  {</b></p><p>  linklist *s;</p><p><b>  int j;</b></p><p>  printf("請(qǐng)輸入要插入的學(xué)生信息:");</p><p>  s=(linklist *)malloc(sizeof(linklist));</

28、p><p>  scanf("%d%s%f",&s->data.num,&s->data.name,&s->data.score);</p><p>  while(p!=NULL&&j<i)</p><p><b>  {</b></p><p

29、><b>  j++;</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(j==i)</b></p><p><b>  {</b></p><p&g

30、t;  s->next=p->next;</p><p>  p->next=s;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.2.8刪除學(xué)生信息部分</p><p>  void deleteaf

31、ter(linklist *p)</p><p><b>  {</b></p><p>  linklist *q;</p><p>  q=p->next;</p><p>  p->next=q->next;</p><p><b>  free(q);</

32、b></p><p><b>  }</b></p><p>  3.2.9對(duì)學(xué)生信息進(jìn)行排序部分</p><p>  void sort(linklist *head)</p><p><b>  {</b></p><p>  linklist *p;</p&

33、gt;<p><b>  std t;</b></p><p>  p=head->next;</p><p>  if(p->data.score<p->next->data.score)</p><p><b>  {</b></p><p>  t=

34、p->data;</p><p>  p->data=p->next->data;</p><p>  p->next->data=t;</p><p><b>  }</b></p><p><b>  }</b></p><p>  3

35、.2.10主函數(shù)部分</p><p>  void main()</p><p><b>  { </b></p><p>  linklist *p,head;</p><p><b>  int i=1;</b></p><p><b>  while(i)

36、</b></p><p><b>  {</b></p><p>  printf("0:初始化\n1:建立學(xué)生成績(jī)表\n2:查找\n3:插入\n4:刪除\n5:輸出\n6:排序\n");</p><p>  scanf("%d",&i);</p><p>&l

37、t;b>  switch(i)</b></p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  setnull(&head);break;</p><p><b>  case 1:</b><

38、;/p><p>  printf("請(qǐng)輸入要?jiǎng)?chuàng)建的結(jié)點(diǎn)的個(gè)數(shù):");</p><p>  scanf("%d",&i);</p><p>  creatlist(&head,i);break;</p><p><b>  case 2:</b></p>&

39、lt;p>  printf("請(qǐng)輸入要查找的位置:");</p><p>  scanf("%d",&i);</p><p>  p=get(&head,i);</p><p>  printf("%d\t%s\t%f\n",p->data.num,p->data.name

40、,p->data.score);break;</p><p><b>  case 3:</b></p><p>  printf("請(qǐng)輸入要插入的位置:");</p><p>  scanf("%d",&i);</p><p>  insertafter(&

41、head,i);break;</p><p><b>  case 4:</b></p><p>  deleteafter(p);break;</p><p><b>  case 5:</b></p><p>  print(&head);break;</p><p&

42、gt;  case 6:sort(&head);break;</p><p><b>  }</b></p><p>  printf("\n0:結(jié)束\n1:繼續(xù)\n");</p><p>  scanf("%d",&i);</p><p><b>  }

43、</b></p><p><b>  }</b></p><p><b>  第四章 算法描述</b></p><p>  編寫(xiě)一個(gè)程序來(lái)管理學(xué)生成績(jī),本系統(tǒng)能實(shí)現(xiàn)以下功能:(1)輸入學(xué)生信息:輸入學(xué)生學(xué)號(hào)、姓名以及成績(jī).(2)插入學(xué)生信息:在指定位置插入學(xué)生信息;添加新學(xué)生信息.(3)刪除學(xué)生信息:刪除

44、指定學(xué)生信息;(4)查詢學(xué)生信息:根據(jù)姓名查詢某個(gè)學(xué)生的成績(jī);根據(jù)學(xué)號(hào)區(qū)間段查詢(5)對(duì)學(xué)生成績(jī)進(jìn)行排序:根據(jù)要求,能按學(xué)生的成績(jī)對(duì)學(xué)生進(jìn)行排序,并顯示排序后的結(jié)果.(6)輸出:輸出所有學(xué)生信息.</p><p>  第五章 數(shù)據(jù)結(jié)構(gòu)描述與定義 </p><p><b>  5.1結(jié)構(gòu)題: </b></p><p>  “結(jié)構(gòu)體名”用作結(jié)

45、構(gòu)體類型的標(biāo)志,它又稱“結(jié)構(gòu)體標(biāo)記”。聲明一個(gè)結(jié)構(gòu)體類型的一般形式為: </p><p>  Struct 結(jié)構(gòu)體名 </p><p><b>  { 成員表列</b></p><p><b>  }; </b></p><p>  大括弧內(nèi)是該結(jié)構(gòu)體中的各個(gè)成員,由它們組成一個(gè)結(jié)構(gòu)體。對(duì)各成員都應(yīng)

46、進(jìn)行類型聲明,即 類型名 成員名 </p><p>  也可以把“成員表列”稱為“域表”。每一個(gè)成員也稱為結(jié)構(gòu)體中的一個(gè)域。成員名定名規(guī)與變量名同。</p><p>  5.2結(jié)構(gòu)體數(shù)組: </p><p>  一個(gè)結(jié)構(gòu)體變量中可以存放一組數(shù)據(jù)(如本程序中一個(gè)學(xué)生的學(xué)號(hào)、姓名、成績(jī))。因?yàn)槌绦蛑行璐娣湃舾蓚€(gè)學(xué)生的信息,這些數(shù)據(jù)需要參加運(yùn)算,就得運(yùn)用數(shù)組即結(jié)構(gòu)體數(shù)組

47、。結(jié)構(gòu)體數(shù)組的每個(gè)數(shù)組元素都是一個(gè)結(jié)構(gòu)體類型的數(shù)據(jù),它們分別包括各個(gè)成員(分量)項(xiàng)。 </p><p><b>  5.3程序架構(gòu)圖</b></p><p><b>  第六章.源程序</b></p><p>  #include<stdio.h></p><p>  typedef s

48、truct</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char name[20];</p><p>  float score;</p><p><b>  }std;</b><

49、;/p><p>  typedef int datatype;</p><p>  typedef struct node</p><p><b>  {</b></p><p><b>  std data;</b></p><p>  struct node *next;&

50、lt;/p><p>  }linklist;</p><p>  void setnull(linklist *head)</p><p><b>  {</b></p><p>  head=(linklist *)malloc(sizeof(linklist));</p><p>  head-&

51、gt;next=NULL;</p><p><b>  }</b></p><p>  void creatlist(linklist *head,int n)</p><p><b>  {</b></p><p><b>  int i;</b></p>&l

52、t;p>  linklist *p,*tail;</p><p>  tail=head;</p><p>  for(i=1;i<=n;i++)</p><p><b>  {</b></p><p>  p=(linklist *)malloc(sizeof(linklist));</p>

53、<p>  printf("請(qǐng)輸入第%d個(gè)學(xué)生的基本信息:",i);</p><p>  scanf("%d%s%f",&p->data.num,&p->data.name,&p->data.score);</p><p>  p->next=NULL;</p><p>

54、;  tail->next=p;</p><p><b>  tail=p;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  linklist *get(linklist *head,int i)</p&g

55、t;<p><b>  {</b></p><p><b>  int j=0;</b></p><p>  linklist *p;</p><p><b>  p=head;</b></p><p>  while(p->next!=NULL&&

56、amp;j<i)</p><p><b>  {</b></p><p><b>  j++;</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  if(j==i)&

57、lt;/b></p><p><b>  return p;</b></p><p><b>  else</b></p><p>  return NULL;</p><p><b>  }</b></p><p>  void print(li

58、nklist *head)</p><p><b>  {</b></p><p>  linklist *p;</p><p>  p=head->next;</p><p>  while(p!=NULL)</p><p><b>  {</b></p>

59、<p>  printf("%d\t%s\t%f\n",p->data.num,p->data.name,p->data.score);</p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b><

60、/p><p>  void insertafter(linklist *p,int i)</p><p><b>  {</b></p><p>  linklist *s;</p><p><b>  int j;</b></p><p>  printf("請(qǐng)輸入要

61、插入的學(xué)生信息:");</p><p>  s=(linklist *)malloc(sizeof(linklist));</p><p>  scanf("%d%s%f",&s->data.num,&s->data.name,&s->data.score);</p><p>  while(p

62、!=NULL&&j<i)</p><p><b>  {</b></p><p><b>  j++;</b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>

63、;  if(j==i)</b></p><p><b>  {</b></p><p>  s->next=p->next;</p><p>  p->next=s;</p><p><b>  }</b></p><p><b>  

64、}</b></p><p>  void deleteafter(linklist *p)</p><p><b>  {</b></p><p>  linklist *q;</p><p>  q=p->next;</p><p>  p->next=q->nex

65、t;</p><p><b>  free(q);</b></p><p><b>  }</b></p><p>  void sort(linklist *head)</p><p><b>  {</b></p><p>  linklist *p

66、;</p><p><b>  std t;</b></p><p>  p=head->next;</p><p>  if(p->data.score<p->next->data.score)</p><p><b>  {</b></p><p

67、>  t=p->data;</p><p>  p->data=p->next->data;</p><p>  p->next->data=t;</p><p><b>  }</b></p><p><b>  }</b></p><

68、p>  void main()</p><p><b>  { </b></p><p>  linklist *p,head;</p><p><b>  int i=1;</b></p><p><b>  while(i)</b></p><

69、p><b>  {</b></p><p>  printf("0:初始化\n1:建立學(xué)生成績(jī)表\n2:查找\n3:插入\n4:刪除\n5:輸出\n6:排序\n");</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b&g

70、t;</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  setnull(&head);break;</p><p><b>  case 1:</b></p><p>  printf

71、("請(qǐng)輸入要?jiǎng)?chuàng)建的結(jié)點(diǎn)的個(gè)數(shù):");</p><p>  scanf("%d",&i);</p><p>  creatlist(&head,i);break;</p><p><b>  case 2:</b></p><p>  printf("請(qǐng)輸入

72、要查找的位置:");</p><p>  scanf("%d",&i);</p><p>  p=get(&head,i);</p><p>  printf("%d\t%s\t%f\n",p->data.num,p->data.name,p->data.score);break;&

73、lt;/p><p><b>  case 3:</b></p><p>  printf("請(qǐng)輸入要插入的位置:");</p><p>  scanf("%d",&i);</p><p>  insertafter(&head,i);break;</p>

74、<p><b>  case 4:</b></p><p>  deleteafter(p);break;</p><p><b>  case 5:</b></p><p>  print(&head);break;</p><p>  case 6:sort(&head

75、);break;</p><p><b>  }</b></p><p>  printf("\n0:結(jié)束\n1:繼續(xù)\n");</p><p>  scanf("%d",&i);</p><p><b>  } </b></p>&l

76、t;p><b>  }</b></p><p>  第七章 運(yùn)行結(jié)果分析</p><p>  圖6 菜單設(shè)置有初始化、建表、查找、插入、刪除、輸出、排序功能</p><p>  圖7 初始化功能的實(shí)現(xiàn)</p><p>  圖8 建表、輸出功能的實(shí)現(xiàn)</p><p>  圖9 插

77、入、排序功能的實(shí)現(xiàn)</p><p><b>  第八章.結(jié)束語(yǔ)</b></p><p>  在這段時(shí)間的課程設(shè)計(jì)使我對(duì)線性表的鏈?zhǔn)絻?chǔ)存有了更深的認(rèn)識(shí)和理解,也使我更加明白線性表的鏈?zhǔn)絻?chǔ)存在信息技術(shù)中的重要性和地位。</p><p>  通過(guò)本次課程設(shè)計(jì)期間我遇到的一些難點(diǎn)。開(kāi)始的時(shí)候,代碼中有許多的錯(cuò)誤,特別是有一些調(diào)試方面的錯(cuò)誤讓我束手無(wú)策,

78、最后在我強(qiáng)大的毅力下慢慢地改正錯(cuò)誤才讓我又看到了希望。</p><p>  許多的錯(cuò)誤讓我明白了一個(gè)道理---毅力和信心對(duì)成功是非常重要的。同時(shí),對(duì)于編程者而言,思路清晰是相當(dāng)重要的。在適當(dāng)?shù)臅r(shí)候和同學(xué)一起交流探討是一個(gè)十分好的學(xué)習(xí)機(jī)會(huì)。請(qǐng)教老師也很重要,因?yàn)楫吘刮覀兪切率?,?duì)于某些問(wèn)題很難弄清楚。而且,某些錯(cuò)誤對(duì)于我們來(lái)說(shuō)有時(shí)候想半天都弄不來(lái),但老師幾下下就搞好了,這樣就更加有效地節(jié)約了時(shí)間。</p>

79、;<p>  這次課程設(shè)計(jì)不但讓我學(xué)得了一些編程知識(shí),還學(xué)會(huì)了系統(tǒng)的做一份課程設(shè)計(jì)報(bào)告,學(xué)會(huì)了如何截圖,學(xué)會(huì)了如何更好的畫(huà)流程圖,明白了做事情只有認(rèn)真,才能真正做得更好!</p><p>  這段時(shí)間里,我可是嘗到了所謂的酸甜苦辣。時(shí)而,為了一個(gè)錯(cuò)誤而焦頭爛額;時(shí)而,為了編程而熬夜;時(shí)而,連吃飯都是匆匆了事;但一旦程序運(yùn)行成功,總會(huì)有成功的喜悅。</p><p>  通過(guò)這次

80、課程設(shè)計(jì),我了解了自己的編程功底和動(dòng)手能力,但我并沒(méi)有灰心而喪失斗志。我想,在即將到來(lái)的的假期里,我會(huì)好好努力嘗試編寫(xiě)一些程序.</p><p>  在這個(gè)程序中,還有許多地方值得完善。比如,,由于時(shí)間問(wèn)題,暫時(shí)不能實(shí)現(xiàn)了。我想在有時(shí)間的情況下我會(huì)好好研究這個(gè)問(wèn)題的。</p><p><b>  第九章.參考文獻(xiàn)</b></p><p>  [

溫馨提示

  • 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)論