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

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p><b>  目錄</b></p><p>  1課程設(shè)計任務(wù)書 …………………………………………………………………………3 </p><p>  2需求分析 …………………………………………………………………………………9 </p><

2、;p>  3概要設(shè)計 ………………………………………………………………………………10</p><p>  總體設(shè)計思路 ……………………………………………………………………………10</p><p>  主函數(shù)和子程序 …………………………………………………………………………11</p><p>  創(chuàng)建鏈表 ……………………………………………………………

3、……………………12</p><p>  實現(xiàn)排序 …………………………………………………………………………………12</p><p>  5 調(diào)試報告 ………………………………………………………………………………13</p><p>  6 改進(jìn)意見及收獲體會 …………………………………………………………………20</p><p>  

4、7 程序清單 ………………………………………………………………………………21</p><p>  8 主要參考文獻(xiàn) …………………………………………………………………………29</p><p><b>  一元多項式運算</b></p><p><b>  需求分析</b></p><p> 

5、 該程序的主要包括三大功能:加法、減法、乘法。</p><p>  1、加法:對多項式A(x)和B(x)進(jìn)行相加運算,并排序;</p><p>  2、減法:對多項式A(x)和B(x)進(jìn)行相減運算,并排序;</p><p>  3、乘法:對多項式A(x)和B(x)進(jìn)行相乘運算,并排序;</p><p>  要實現(xiàn)對多項式的運算主要是對式中的系

6、數(shù)和指數(shù)的運算,每一項都會有系數(shù)和指數(shù),將每 項的系數(shù)和指數(shù)都放入結(jié)點中,那么對多項式的運算即為對鏈表進(jìn)行操作。</p><p>  根據(jù)程序的功能,建立系統(tǒng)的體系結(jié)構(gòu),即將整個系統(tǒng)分解成若干子功能模塊:</p><p>  1、createlist 創(chuàng)建鏈表,把多項式的系數(shù)和指數(shù)放入結(jié)點中,系數(shù)為0結(jié)束鏈表的創(chuàng)建;</

7、p><p>  2、display 輸出鏈表中的系數(shù)和指數(shù),以“A(x)= ”的形式輸出;</p><p>  3、heb 查找到同類項后合并同類項;</p><p>  4、addlist 實現(xiàn)兩個鏈表的合并,并合并同類項,從而對兩個多項式相加;</p><p>  5、minus 多項式的減法運算,將第二個

8、鏈表中的系數(shù)取反后,再調(diào)用add_list;</p><p>  6、chengfa 多項式的乘法運算,將兩個鏈表結(jié)點中的系數(shù)相乘、指數(shù)相加后放入第三個 鏈表,調(diào)用heb功能;</p><p>  7、paixu、daoxu 對運算結(jié)束后的鏈表進(jìn)行升序和降序;</p><p>  8、jiemian、主函數(shù)main 則是聯(lián)系各子函數(shù)的鏈,

9、同時也用來制作主界面。</p><p><b>  二、概要設(shè)計</b></p><p><b>  調(diào)試報告</b></p><p>  (1)程序開始運行,進(jìn)入通訊錄的主菜單,根據(jù)操作提示,選擇你將進(jìn)行的操作。</p><p>  (1)輸入1,選擇加法運算</p><p&g

10、t; ?。?)輸入2,選擇減法運算</p><p>  (3)輸入3,選擇乘法運算</p><p>  改進(jìn)意見及收獲體會 </p><p>  軟件課程設(shè)計能夠培養(yǎng)我們的動手能力,創(chuàng)新能力,同時使我們對所學(xué)知識進(jìn)一步鞏固。為期一周的軟件課程設(shè)計,我們掌握了如何提出設(shè)想,如何調(diào)整思路,如何面對困難,如何解決問題。</p><p>  面對我們

11、的課題實現(xiàn)一元多項式運算,我思考了很久,主要是先進(jìn)行構(gòu)思。首先分析了一元多項式,對于每一項都有系數(shù)和指數(shù),對一元多項式的運算即對系數(shù)和指數(shù)的運算。其次,按照要求需要使用單項鏈表,將每項的系數(shù)和指數(shù)放入結(jié)點,從而創(chuàng)建鏈表。第三,對鏈表進(jìn)行操作,實現(xiàn)多項式的運算。</p><p>  當(dāng)創(chuàng)建鏈表的函數(shù)寫完,我便思考加法、減法、乘法的算法。我發(fā)現(xiàn)三種運算方式雖然不同,但設(shè)計思路確是相通的。加法是在先合并鏈表后再合并同類

12、項而實現(xiàn)的,減法可以在系數(shù)取反后用加法實現(xiàn),乘法運算則是使每個結(jié)點相乘后放入第三個鏈表中,再合并同類項。因此,具體的各個功能可以分開設(shè)計,然后再各運算中調(diào)用,避免了重復(fù)編寫,例如程序中的heb和paixu就是按照這種想法設(shè)計的。</p><p>  在設(shè)計界面過程中,我確實花費了不少精力。為了界面美觀大方,我查找各種資料尋找有用的界面函數(shù),最終我找到了system(corlor)、system(cls)兩個函數(shù),

13、用來實現(xiàn)界面是顏色和清屏。在設(shè)置輸出圖像界面時,通過反復(fù)比較、反復(fù)更改從而實現(xiàn)了滿意的界面。</p><p>  程序編寫完畢,在編譯過程中又遇到了非常多的問題。我通過單步調(diào)試,反反復(fù)復(fù),最終解決了這些問題。</p><p>  通過三天的努力,我實現(xiàn)了從構(gòu)思到編程,到各種功能的具體運行,整個過程是艱辛的,也是快樂。</p><p><b>  五、程序清

14、單:</b></p><p>  #include<stdlib.h></p><p>  #include<stdio.h></p><p>  #include<conio.h></p><p>  typedef struct list1</p><p>  {in

15、t zhishu;</p><p>  int xishu;</p><p>  struct list1 *next;</p><p><b>  };</b></p><p>  typedef struct list1 node;</p><p>  typedef node *link;&

16、lt;/p><p>  /*****************************************************/</p><p>  link create_list(link head)</p><p><b>  { </b></p><p>  link new1;</p><

17、;p>  link pointer;</p><p>  head=(link)malloc(sizeof(node));</p><p>  if(head==NULL)</p><p>  printf("出現(xiàn)錯誤!\n");</p><p><b>  else</b></p>

18、<p><b>  {</b></p><p>  head->next=NULL;head->zhishu=0;head->xishu=0;</p><p>  pointer=head;</p><p>  printf("\n\n");</p><p><b

19、>  while(1)</b></p><p><b>  {</b></p><p>  new1=(link)malloc(sizeof(node));</p><p>  printf("\n 系數(shù):");</p><p>  s

20、canf("%d",&(new1->xishu));</p><p>  if (new1->xishu==0)</p><p><b>  {</b></p><p>  printf("\n ******************* 參數(shù)已輸入完成! ************

21、*************\n\n");</p><p>  free(new1);break;</p><p><b>  }</b></p><p>  printf(" 輸入指數(shù):");</p><p>  scanf("%d&

22、quot;,&(new1->zhishu));</p><p>  new1->next=NULL;</p><p>  pointer->next=new1;pointer=new1;</p><p><b>  }</b></p><p><b>  }</b><

23、/p><p>  return head;</p><p><b>  }</b></p><p>  /*****************************************************/</p><p>  link heb(link head)</p><p><b

24、>  { </b></p><p><b>  int a;</b></p><p>  link pt1,pt2,t;</p><p>  pt1=head->next;</p><p>  while(pt1!=NULL)</p><p>  { pt2=pt1;&

25、lt;/p><p>  a=pt1->xishu;</p><p>  while(pt2->next!=NULL)</p><p><b>  { </b></p><p>  if((pt1->zhishu)==(pt2->next->zhishu))</p><p>

26、;<b>  { </b></p><p>  t=pt2->next; </p><p>  a=a+(t->xishu);</p><p>  pt2->next=t->next;</p><p><b>  free(t);</b></p><p

27、><b>  }</b></p><p>  else pt2=pt2->next;</p><p><b>  }</b></p><p>  pt1->xishu=a;</p><p>  pt1=pt1->next;</p><p><

28、b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  /*****************************************************/</p><p>  link add_list(link head

29、1,link head2)</p><p><b>  {</b></p><p><b>  link pt1;</b></p><p><b>  link pt2;</b></p><p>  pt1=head1->next;</p><p>

30、;  pt2=head2->next;</p><p>  free(head2);</p><p>  if(pt1==NULL)</p><p>  pt1=head1;</p><p><b>  else</b></p><p>  while(pt1->next!=NULL)

31、</p><p>  {pt1=pt1->next;</p><p><b>  }</b></p><p>  if(pt2==NULL)</p><p><b>  { </b></p><p>  return head1;</p><p&

32、gt;<b>  }</b></p><p>  else pt1->next=pt2;</p><p>  head1=heb(head1);</p><p>  return head1;</p><p><b>  }</b></p><p>  /*******

33、**********************************************/</p><p>  link minus(link head1,link head2)</p><p><b>  {</b></p><p>  link pt,head3;</p><p>  pt=head2->n

34、ext;</p><p>  while(pt!=NULL)</p><p>  {pt->xishu=-(pt->xishu);</p><p>  pt=pt->next;</p><p><b>  }</b></p><p>  head3=add_list(head1,

35、head2);</p><p>  return head3;</p><p><b>  }</b></p><p>  /*****************************************************/</p><p>  link chengfa(link head1,link head

36、2)</p><p><b>  { </b></p><p>  link p1,p2,p3,s;</p><p>  link head3=NULL;</p><p>  head3=(link)malloc(sizeof(node)); </p><p>  if(head3==NULL)&

37、lt;/p><p>  {printf("Memory allocate Failure!\n");}</p><p><b>  else</b></p><p>  {head3->next=NULL;head3->zhishu=0;head3->xishu=0;};</p><p>

38、;  p1=head1->next;p2=head2->next;p3=head3;</p><p>  while(p1!=NULL)</p><p><b>  { </b></p><p>  p2=head2->next;</p><p>  while(p2!=NULL)</p>

39、<p><b>  {</b></p><p>  s=(link)malloc(sizeof(node));</p><p>  s->zhishu=p1->zhishu+p2->zhishu;</p><p>  s->xishu=(p1->xishu)*(p2->xishu);</p&

40、gt;<p>  s->next=NULL;</p><p>  p3->next=s;</p><p><b>  p3=s;</b></p><p>  p2=p2->next;</p><p><b>  }</b></p><p>  

41、p1=p1->next;</p><p><b>  }</b></p><p>  head3=heb(head3);</p><p>  return head3;</p><p><b>  }</b></p><p>  link daoxu(link head

42、)</p><p>  { link p1,p2;</p><p>  p1=head->next;</p><p>  p2=p1->next;</p><p>  p1->next=NULL;</p><p>  while(p2!=NULL)</p><p><b&

43、gt;  {</b></p><p>  head->next=p2;</p><p>  p2=p2->next;</p><p>  head->next->next=p1;</p><p>  p1=head->next;</p><p><b>  }<

44、/b></p><p>  return head;</p><p><b>  }</b></p><p>  /*****************************************************/</p><p>  link paixu(link head) </p>&

45、lt;p><b>  {</b></p><p>  link p=head,q=head->next,f,t;</p><p>  int j=0,i; </p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>

46、<b>  j++; </b></p><p>  p=p->next;</p><p><b>  }</b></p><p>  if(j==1) </p><p><b>  {</b></p>

47、;<p>  printf("\n");</p><p>  return head;</p><p><b>  }</b></p><p><b>  if(j==2) </b></p><p><b>  {</b></p>

48、<p>  printf("\n");</p><p>  return head;</p><p><b>  }</b></p><p><b>  f=head;</b></p><p><b>  if(j>2)</b></p

49、><p><b>  {</b></p><p>  printf("\n");</p><p>  for(i=1;i<=j;i++)</p><p><b>  { </b></p><p>  while(q->next!=NULL)<

50、/p><p><b>  {</b></p><p>  if(q->zhishu>q->next->zhishu)</p><p>  { t=q->next;</p><p>  t=t->next;</p><p>  q->next->next

51、=q;</p><p>  q=q->next;</p><p>  q->next->next=t;</p><p>  f->next=q;</p><p><b>  }</b></p><p>  f=f->next;</p><p>

52、  q=q->next;</p><p><b>  }</b></p><p><b>  f=head;</b></p><p>  q=head->next;</p><p><b>  j--;</b></p><p><b&g

53、t;  }</b></p><p><b>  }</b></p><p>  return head;</p><p><b>  }</b></p><p>  /*****************************************************/</p

54、><p>  void display(link head)</p><p><b>  {</b></p><p><b>  link p;</b></p><p><b>  p=head;</b></p><p>  p=p->next;<

55、;/p><p>  if(p==NULL)</p><p>  printf("0");</p><p><b>  else </b></p><p><b>  { </b></p><p>  if(p->xishu==0)printf(&quo

56、t;0");</p><p>  else printf("(%d)x^(%d)",p->xishu,p->zhishu);</p><p>  p=p->next;</p><p>  while(p!=NULL)</p><p>  { if(p->xishu==0)printf(&q

57、uot;+0");</p><p>  else printf("+(%d)x^(%d)",p->xishu,p->zhishu);</p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  }</b>

58、;</p><p><b>  }</b></p><p>  /*****************************************************/</p><p>  void jiemian()</p><p>  { int i;</p><p>  syste

59、m("cls");</p><p>  system("color 2");</p><p>  printf("\n ");</p><p>  for(i=0;i<7;i++)</p><p>  printf("★◇☆◆");&l

60、t;/p><p>  for(i=0;i<1;i++)</p><p>  printf("\n ○ ○");</p><p>  printf("\n ● 歡迎使

61、用一元多項式運算器! ●");</p><p>  printf("\n ○ ○");</p><p>  printf("\n ●~`~`~`~`~`~`~`~`~`~`~`~`

62、~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`●"); </p><p>  printf("\n ○ ○"); </p><p>  printf("\n ● 說明:為鏈表輸入

63、數(shù)據(jù),系數(shù)值為零時退出! ●");</p><p>  printf("\n ○ ○"); </p><p>  printf("\n ●~`~`~`~`~`~`~`~`~`~`~`~`~`~`

64、~`~`~`~`~`~`~`~`~`~`~`~`~`●");</p><p>  printf("\n ○ ○");</p><p>  printf("\n ● ---

65、------------ ●");</p><p>  printf("\n ○ (1)加法! ○"); </p><p>  printf("\n ●

66、 --------------- ●"); </p><p>  printf("\n ○ (2)減法! ○"); </p><p>  printf("\n ●

67、 --------------- ●"); </p><p>  printf("\n ○ (3)乘法! ○"); </p><p>  printf("\n ●

68、 --------------- ●"); </p><p>  printf("\n ○ (0)退出運算! ○"); </p><p>  printf("\n ●

69、 --------------- ●"); </p><p>  printf("\n ○ ○"); </p><p>  printf("\n

70、 ");</p><p>  for(i=0;i<7;i++)</p><p>  printf("★◇☆◆");</p><p>  printf("\n\n 請輸入運算法則:");</p><p><b>  }</b></

71、p><p>  int main()</p><p><b>  { </b></p><p>  int q=1,i;</p><p><b>  int f;</b></p><p>  while(q==1)</p><p><b>  {

72、 </b></p><p>  jiemian();</p><p>  scanf("%d",&q);</p><p><b>  if(q!=0)</b></p><p><b>  {</b></p><p>  link hea

73、d1=NULL;</p><p>  link head2=NULL;</p><p>  link head3=NULL;</p><p>  system("cls");</p><p>  system("color 6");</p><p>  if(q>=1&am

74、p;&q<=3)</p><p><b>  {</b></p><p>  printf("\n\n *******************請輸入A(x)的系數(shù)和指數(shù)*************************");</p><p>  head1=create_list(head1);<

75、;/p><p>  printf("輸入任意鍵繼續(xù)! ");</p><p>  scanf("%d",&f);</p><p>  system("cls");</p><p>  printf("\n ********************請輸入B(x)

76、的系數(shù)和指數(shù)************************");</p><p>  head2=create_list(head2);</p><p>  printf("輸入任意鍵繼續(xù)! ");</p><p>  scanf("%d",&f);</p><p>  if(hea

77、d1!=NULL&&head2!=NULL)</p><p><b>  { </b></p><p>  system("cls");</p><p>  printf("\n ********************您輸入的A(x)和B(x)如下*******************

78、*****");</p><p>  printf("\n\n ● A(x)=");</p><p>  display(head1);</p><p>  printf("\n\n ● B(x)=");</p><p&g

79、t;  display(head2);</p><p><b>  switch(q)</b></p><p><b>  {</b></p><p>  case 1:head3=paixu(add_list(head1,head2));</p><p>  printf("\n

80、 ● A(x)+B(x)=");</p><p><b>  break;</b></p><p>  case 2:head3=paixu(minus(head1,head2));</p><p>  printf("\n ● A(x)-B(x)=&quo

81、t;);</p><p><b>  break;</b></p><p>  case 3:paixu(head3=chengfa(head1,head2));</p><p>  printf("\n ● A(x)*B(x)=");</p><p><b

82、>  break;</b></p><p>  default:printf("請輸入正確的序號!");break;</p><p><b>  }</b></p><p>  display(head3);</p><p>  if(head3->next!=NULL&

83、;&head3->next->next!=NULL)</p><p><b>  {</b></p><p>  printf("\n\n 或者:");</p><p>  display(daoxu(head3));</p><p>&

84、lt;b>  }</b></p><p>  printf("\n\n *******************************************************************");</p><p>  printf("\n\n ● 運算結(jié)束了!");&l

85、t;/p><p>  printf("\n\n ● 您需要返回嗎?YES=1 NO=0\n");</p><p>  scanf("%d",&i);</p><p><b>  q=i;</b></p><p><b>  }&l

86、t;/b></p><p><b>  } </b></p><p><b>  else q=1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b> 

87、 }</b></p><p>  六、 主要參考文獻(xiàn):</p><p>  [1] 徐士良. 計算機(jī)軟件技術(shù)基礎(chǔ)[M] . 北京:清華大學(xué)出版社,2004.</p><p>  [2] 廖雷.C程序設(shè)計實踐教程[M].北京: 高等教育出版社,2003.</p><p>  [3] 潭浩強(qiáng). C程序設(shè)計(第三版). 北京:清華大學(xué)出

溫馨提示

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

評論

0/150

提交評論