算法分析與設(shè)計(jì)的課程設(shè)計(jì)(一元多項(xiàng)式的加法、減法、乘法的實(shí)現(xiàn))_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  一元多項(xiàng)式的加法、減法、乘法的實(shí)現(xiàn)</p><p>  注:此表格內(nèi)容中的任務(wù)要求為指導(dǎo)教師提供的課程設(shè)計(jì)要求,主要實(shí)施步驟是指課程設(shè)計(jì)的時(shí)間安排,結(jié)論是指通過課程設(shè)計(jì)得出的有關(guān)結(jié)論及課程設(shè)計(jì)不足之處或進(jìn)一步開發(fā)方向。</p><p><b>  目 錄</b></p><p><b>  1引言4</

2、b></p><p>  1.1課程設(shè)計(jì)目標(biāo)4</p><p>  1.2編程工具(編程環(huán)境)介紹5</p><p>  1.3實(shí)施時(shí)間及主要實(shí)施步驟5</p><p><b>  2需求分析5</b></p><p>  3系統(tǒng)總體設(shè)計(jì)6</p><

3、p>  4數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)7</p><p>  5詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)9</p><p>  5.1功能模塊1輸入一元多項(xiàng)式詳細(xì)設(shè)計(jì)10</p><p>  5.1.1詳細(xì)設(shè)計(jì)10</p><p>  5.1.2界面設(shè)計(jì)及測試結(jié)果10</p><p>  5.2功能模塊2 創(chuàng)建一元多項(xiàng)式 詳細(xì)設(shè)計(jì)

4、10</p><p>  5.2.1詳細(xì)設(shè)計(jì)10</p><p>  5.2.2界面設(shè)計(jì)及測試結(jié)果11</p><p>  5.3功能模塊3主菜單詳細(xì)設(shè)計(jì)11</p><p>  5.3.1詳細(xì)設(shè)計(jì)11</p><p>  5.3.2界面設(shè)計(jì)及測試結(jié)果12</p><p> 

5、 5.4功能模塊4 順序存儲(chǔ)的一元多項(xiàng)式運(yùn)算 詳細(xì)設(shè)計(jì)12</p><p>  5.4.1詳細(xì)設(shè)計(jì)12</p><p>  5.4.2算法流程12</p><p>  5.4.3界面設(shè)計(jì)及測試結(jié)果13</p><p>  5.5功能模塊5順序存儲(chǔ)的一元多項(xiàng)式運(yùn)算 詳細(xì)設(shè)計(jì)13</p><p>  5

6、.5.1詳細(xì)設(shè)計(jì)13</p><p>  5.5.2算法流程13</p><p>  5.5.3界面設(shè)計(jì)及測試結(jié)果14</p><p>  6 算法分析……………………………………………………………………………(5)</p><p>  7 用戶手冊 …………………………………………….…………………………….(5&l

7、t;/p><p>  8 結(jié)論 …………………………………………………………………………………)</p><p>  9 參考文獻(xiàn)……………………………………………………………………………….</p><p>  10 附錄……………………………………………………………………………………</p><p><b>  1

8、引言</b></p><p>  課程設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)一元多項(xiàng)式運(yùn)算的系統(tǒng),主要包括:加減乘法的運(yùn)算。 本文是關(guān)于一個(gè)一元稀疏多項(xiàng)式計(jì)算器的問題。內(nèi)容包括輸入并建立多項(xiàng)式,多項(xiàng)式相加,多項(xiàng)式求導(dǎo),多項(xiàng)式求值以及輸出多項(xiàng)式。本文使用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)存儲(chǔ)一元稀疏多項(xiàng)式,可以方便的計(jì)算簡單的一元稀疏多項(xiàng)式的基本

9、運(yùn)算。本課程設(shè)計(jì)運(yùn)用所學(xué)的一些C++知識(shí),構(gòu)成整個(gè)計(jì)算器的形成框架。在程序中定義了各種類型的運(yùn)算的模塊,通過主程序的調(diào)用來完成他們之間的配合,進(jìn)而完善了計(jì)算器。</p><p>  編程工具(編程環(huán)境)介紹</p><p>  編程工具:Microsoft Visual C++</p><p>  編程環(huán)境:Microsoft Windows xp</p>

10、;<p>  實(shí)施時(shí)間及主要實(shí)施步驟</p><p><b>  實(shí)施時(shí)間:</b></p><p>  9月13日至9月25日</p><p><b>  基本步驟大致為:</b></p><p><b>  前期分析</b></p><p&

11、gt;<b>  中期編碼</b></p><p><b>  后期調(diào)試</b></p><p><b>  需求分析</b></p><p><b>  本問題描述</b></p><p>  本實(shí)驗(yàn)要求利用帶頭結(jié)點(diǎn)的有序鏈表實(shí)現(xiàn)任意兩個(gè)一元實(shí)系數(shù)的加減

12、乘法運(yùn)算。基本功能要求</p><p>  1.首先,根據(jù)鍵盤輸入的一元實(shí)系數(shù)多項(xiàng)式的系數(shù)與指數(shù)序列,對多項(xiàng)式進(jìn)行初始化,并按未知數(shù)x的升冪形式排序。</p><p>  2.對于從鍵盤輸入的任意兩個(gè)一元多項(xiàng)式,正確計(jì)算它們的和,差,積多項(xiàng)式,并輸出結(jié)果。</p><p><b>  測試數(shù)據(jù)</b></p><p>

13、<b>  見Test.txt</b></p><p><b>  系統(tǒng)總體設(shè)計(jì)</b></p><p>  進(jìn)入界面,系統(tǒng)提示用戶輸入多項(xiàng)式的指數(shù)和系數(shù)并選擇存儲(chǔ)方式。然后出現(xiàn)操作界面,由用戶選擇相關(guān)操作以及按照升冪還是降冪輸出。</p><p><b>  具體實(shí)現(xiàn)見流程圖:</b></p&

14、gt;<p>  本程序包括5個(gè)模塊:</p><p><b>  輸入一元多項(xiàng)式</b></p><p>  該模塊主要是用戶根據(jù)提示輸入一元多項(xiàng)式的指數(shù)和系數(shù)</p><p>  根據(jù)輸入創(chuàng)建一元多項(xiàng)式并存儲(chǔ)并且判斷是否稀疏</p><p>  該模塊主要是將輸入的一元多項(xiàng)式按順序存儲(chǔ)方式存儲(chǔ),并判斷是

15、否稀疏,如果稀疏,則轉(zhuǎn)換為鏈?zhǔn)椒绞酱鎯?chǔ)</p><p><b>  主菜單</b></p><p>  該模塊主要是顯示菜單信息,并且由用戶顯示要進(jìn)行的步驟</p><p>  順序存儲(chǔ)的一元多項(xiàng)式的加減乘法并輸出結(jié)果</p><p>  該模塊主要是實(shí)現(xiàn)多項(xiàng)式的運(yùn)算</p><p>  鏈?zhǔn)酱鎯?chǔ)

16、的一元多項(xiàng)式的加減乘法并輸出結(jié)果</p><p>  該模塊主要是實(shí)現(xiàn)多項(xiàng)式的運(yùn)算</p><p><b>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  本程序主要應(yīng)用了鏈表,結(jié)構(gòu)體和類模板。用結(jié)構(gòu)體來定義多項(xiàng)式的結(jié)點(diǎn)(即每一項(xiàng)),它包含三個(gè)域,分別存放該項(xiàng)的系數(shù)、指數(shù)以及指向下一項(xiàng)結(jié)點(diǎn)的指針;用鏈表來存儲(chǔ)多項(xiàng)式,為了節(jié)省空間,只存儲(chǔ)多項(xiàng)式中系

17、數(shù)非0 的項(xiàng),用多項(xiàng)式鏈表類來實(shí)現(xiàn)設(shè)定的程序的基本功能。</p><p>  為實(shí)現(xiàn)上述功能定義一元多項(xiàng)式的抽象數(shù)據(jù)類型如下:ADT  Polynomial{數(shù)據(jù)對象:D={ai |aiTermSet,  i=1,2,…,m,  m≥10,TermSet中的元素包含一個(gè)實(shí)系數(shù)和一個(gè)表示指數(shù)的整數(shù)}數(shù)據(jù)關(guān)系:R1={<ai-1,ai> |ai-1,aiD, 且ai-1

18、中的指數(shù)值< ai中的指數(shù)值,i=2,…,n}} ADT  Polynomial</p><p><b>  定義結(jié)構(gòu)體:</b></p><p>  typedef struct LNode</p><p><b>  {</b></p><p>  float ceof;

19、 ////系數(shù)</p><p>  int expn,xs; ////指數(shù) 項(xiàng)數(shù) </p><p>  struct LNode *next;</p><p>  }LNode,*LinkList;</p><p>  typedef struct </p><p><b>  {</b>

20、</p><p>  float a[N];////////下標(biāo)表示指數(shù),值表示系數(shù)//////// </p><p>  int len,Nz;////////記錄多項(xiàng)式的長度,非零項(xiàng)////////////////</p><p>  }polynomial;</p><p><b>  函數(shù)功能描述:</b><

21、;/p><p><b>  Menu()</b></p><p><b>  操作菜單</b></p><p><b>  cmp()</b></p><p><b>  對系數(shù)進(jìn)行比較</b></p><p>  AddPolyn()

22、</p><p>  順序存儲(chǔ)的一元多項(xiàng)式相加</p><p>  CreatPolyn()</p><p>  創(chuàng)建鏈?zhǔn)酱鎯?chǔ)的一元多項(xiàng)式</p><p><b>  ADD()</b></p><p>  鏈?zhǔn)酱鎯?chǔ)的一元多項(xiàng)式相加</p><p>  AscendPrin

23、t( )</p><p><b>  升冪輸出 </b></p><p>  Getpoly ()</p><p>  創(chuàng)建順序存儲(chǔ)的一元多項(xiàng)式</p><p><b>  LAscend()</b></p><p>  鏈?zhǔn)酱鎯?chǔ)的一元多項(xiàng)式升冪排序</p>

24、<p>  PrintPolyn()</p><p>  打印鏈?zhǔn)酱鎯?chǔ)的一元多項(xiàng)式</p><p><b>  詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  一元多項(xiàng)式計(jì)算器各功能模塊的詳細(xì)介紹。</p><p><b>  功能模塊1詳細(xì)設(shè)計(jì)</b></p><p>

25、;<b>  詳細(xì)設(shè)計(jì)</b></p><p>  1、模塊名稱:輸入一元多項(xiàng)式</p><p>  2、功能說明:用戶根據(jù)提示輸入一元多項(xiàng)式的系數(shù)和指數(shù)</p><p>  3、輸入?yún)?shù):輸入指數(shù)和系數(shù),系數(shù)為負(fù)數(shù)就結(jié)束</p><p><b>  界面設(shè)計(jì)及測試結(jié)果</b></p>

26、<p><b>  功能模塊2詳細(xì)設(shè)計(jì)</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  模塊名稱:根據(jù)輸入創(chuàng)建一元多項(xiàng)式并存儲(chǔ)并且判斷是否稀疏</p><p>  功能說明:主要是創(chuàng)建一元多項(xiàng)式</p><p><b>  界面設(shè)計(jì)及測試結(jié)果</

27、b></p><p><b>  功能模塊3詳細(xì)設(shè)計(jì)</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  模塊名稱:主菜單</b></p><p>  功能說明:該模塊主要是顯示菜單信息,并且由用戶顯示要進(jìn)行的步驟</p>&l

28、t;p><b>  界面設(shè)計(jì)及測試結(jié)果</b></p><p><b>  功能模塊4詳細(xì)設(shè)計(jì)</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  模塊名稱:順序存儲(chǔ)的一元多項(xiàng)式的加減乘法并輸出結(jié)果</p><p>  功能說明:該模塊主要是實(shí)現(xiàn)多項(xiàng)

29、式的運(yùn)算</p><p><b>  算法流程</b></p><p>  void ADD(polynomial A,polynomial B,polynomial &M)</p><p><b>  {</b></p><p>  int la=A.len,lb=B.len,i;<

30、;/p><p>  M.len=la>lb?la:lb;</p><p>  for(i=0;i<=la&&i<=lb;i++)</p><p><b>  {</b></p><p>  M.a[i]=A.a[i]+B.a[i]; ///////////此處若為稀疏式,則會(huì)浪費(fèi)大量時(shí)間

31、 </p><p><b>  }</b></p><p>  while(i<=la) {M.a[i]=A.a[i];i++;}</p><p>  while(i<=lb) {M.a[i]=B.a[i];i++;}</p><p><b>  print(M);</b></

32、p><p><b>  }</b></p><p>  //==================================================================</p><p>  ///////M(x)=A(m)-B(n)//////</p><p>  void SUB(polynomia

33、l A,polynomial B,polynomial &M)</p><p><b>  {</b></p><p>  int la=A.len,lb=B.len,i;</p><p>  M.len=la>lb?la:lb;</p><p>  for(i=0;i<=la&&i&

34、lt;=lb;i++)</p><p><b>  {</b></p><p>  M.a[i]=A.a[i]-B.a[i];</p><p><b>  }</b></p><p>  while(i<=la) {M.a[i]=A.a[i];i++;}</p><p&g

35、t;  while(i<=lb) {M.a[i]=0-B.a[i];i++;} ///////B的相反數(shù)</p><p>  print(M); </p><p><b>  }</b></p><p>  //==========================

36、========================================</p><p>  ///////M(x)=A(m)*B(n)//////</p><p>  void MUL(polynomial A,polynomial B,polynomial &M)</p><p><b>  {</b></p>

37、<p><b>  int i,j;</b></p><p>  for(i=0;i<=A.len+B.len+1;i++) M.a[i]=0; ////////////////為什么要多1 </p><p>  for(i=0;i<=A.len;i++)</p><p>  for(j=0;j<=B.le

38、n;j++)</p><p><b>  {</b></p><p>  M.a[i+j]+=A.a[i]*B.a[j];</p><p><b>  }</b></p><p>  M.len=A.len+B.len;</p><p>  print(M); </p

39、><p><b>  }</b></p><p><b>  界面設(shè)計(jì)及測試結(jié)果</b></p><p><b>  功能模塊5詳細(xì)設(shè)計(jì)</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p>  模塊名稱:鏈?zhǔn)酱鎯?chǔ)的一元

40、多項(xiàng)式的加減乘法并輸出結(jié)果</p><p>  功能說明:該模塊主要是實(shí)現(xiàn)多項(xiàng)式的運(yùn)算</p><p><b>  算法流程</b></p><p>  Lpolynomial AddPolyn(Lpolynomial Pa,Lpolynomial Pb)</p><p><b>  { </b>

41、</p><p>  float sum;</p><p>  Lpolynomial ha,hb,hc,qa,qb,qc,pc;</p><p>  if(Pa->xs>Pb->xs){</p><p>  ha=Pb; hb=Pa;</p><p><b>  }</b>&

42、lt;/p><p><b>  else {</b></p><p>  ha=Pa; hb=Pb; </p><p><b>  }</b></p><p>  hc=pc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  qa=ha-

43、>next; </p><p>  qb=hb->next;</p><p>  while((qa->next!=NULL)&&(qb->next!=NULL))</p><p><b>  { </b></p><p>  qc=(Lpolynomial)malloc(siz

44、eof(LNode));</p><p>  qc->next=NULL;</p><p>  switch(cmp(qa->expn,qb->expn))</p><p><b>  {</b></p><p><b>  case -1: </b></p><

45、;p>  qc->ceof=qa->ceof;</p><p>  qc->expn=qa->expn;</p><p>  pc->next=qc; </p><p><b>  pc=qc; </b></p><p>  qa=qa->next; </p>&l

46、t;p><b>  break;</b></p><p><b>  case 0: </b></p><p>  sum=qa->ceof+qb->ceof;</p><p>  if(sum!=0.0)</p><p><b>  {</b></p

47、><p>  qc->ceof=sum; </p><p>  qc->expn=qa->expn; </p><p>  pc->next=qc;</p><p><b>  pc=qc; </b></p><p>  qa=qa->next; </p>

48、<p>  qb=qb->next; </p><p><b>  break;</b></p><p><b>  }</b></p><p>  else {free(qc); </p><p>  qa=qa->next; </p><p> 

49、 qb=qb->next; </p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 1: </b></p><p>  qc->ceof=qb->ceof; </p>&

50、lt;p>  qc->expn=qb->expn; </p><p>  pc->next=qc; </p><p><b>  pc=qc; </b></p><p>  qb=qb->next; </p><p><b>  break; </b></p>

51、;<p><b>  }</b></p><p><b>  }</b></p><p>  if(qa->next!=NULL)</p><p><b>  { </b></p><p>  while(qa!=NULL) </p><

52、p><b>  { </b></p><p>  qc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  qc->next=NULL;</p><p>  qc->ceof=qa->ceof; qc->expn=qa->expn;</p><p&g

53、t;  pc->next=qc; pc=qc; qa=qa->next; </p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p><p><b>  { </b>

54、</p><p>  while(qb!=NULL) </p><p><b>  { </b></p><p>  qc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  qc->next=NULL;</p><p>  qc->ceof=q

55、b->ceof; qc->expn=qb->expn; </p><p>  pc->next=qc; pc=qc; qb=qb->next; </p><p><b>  }</b></p><p><b>  }</b></p><p>  qc=(Lpolynom

56、ial)malloc(sizeof(LNode));</p><p>  qc->next=NULL;</p><p>  prints(hc);</p><p>  pc->next=qc;</p><p>  qc->ceof=0;</p><p>  Pa=ha; Pb=hb;</p>

57、;<p><b>  }</b></p><p>  //==================================================================</p><p>  //------------------相減,構(gòu)成和多項(xiàng)式 hc-----------------//</p><p>

58、  Lpolynomial SubtractPolyn(Lpolynomial Pa,Lpolynomial Pb)</p><p><b>  {</b></p><p>  float result;</p><p>  Lpolynomial ha,hb,hc,qa,qb,qc,pc;</p><p>  if(

59、Pa->xs>Pb->xs){ha=Pb; hb=Pa;}</p><p>  else {ha=Pa; hb=Pb; }</p><p>  qa=ha->next; qb=hb->next;hc=pc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  while((qa->next!

60、=NULL)&&(qb->next!=NULL))</p><p><b>  { </b></p><p>  qc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  qc->next=NULL;</p><p>  switch(cmp(qa-&g

61、t;expn,qb->expn))</p><p><b>  {</b></p><p>  case -1: qc->ceof=qa->ceof; qc->expn=qa->expn;</p><p>  pc->next=qc; pc=qc; qa=qa->next; break;</p&g

62、t;<p>  case 0: result=qa->ceof-qb->ceof;</p><p>  if(result!=0.0)</p><p><b>  {</b></p><p>  qc->ceof=result; qc->expn=qa->expn; pc->next=qc

63、;</p><p>  pc=qc; qa=qa->next; qb=qb->next; break;</p><p><b>  }</b></p><p>  else free(qc); qa=qa->next; qb=qb->next; break;</p><p>  case 1:

64、qc->ceof=0-qb->ceof; qc->expn=qb->expn;</p><p>  pc->next=qc; pc=qc; qb=qb->next; break; </p><p><b>  }</b></p><p><b>  }</b></p&

65、gt;<p>  if(qa->next!=NULL)</p><p><b>  { </b></p><p>  while(qa!=NULL) </p><p><b>  { </b></p><p>  qc=(Lpolynomial)malloc(sizeof(LNo

66、de));</p><p>  qc->next=NULL;</p><p>  qc->ceof=qa->ceof; qc->expn=qa->expn; pc->next=qc; pc=qc; qa=qa->next; </p><p><b>  }</b></p><p>

67、;<b>  }</b></p><p><b>  else </b></p><p><b>  { </b></p><p>  while(qb!=NULL) </p><p><b>  { </b></p><p>  

68、qc=(Lpolynomial)malloc(sizeof(LNode));</p><p>  qc->next=NULL;</p><p>  qc->ceof=0-qb->ceof; </p><p>  qc->expn=qb->expn;</p><p>  cout<<qc->ceo

69、f;</p><p>  pc->next=qc; pc=qc; qb=qb->next; </p><p><b>  }</b></p><p><b>  }</b></p><p>  if(Pa->xs>Pb->xs) {for(qc=hc;qc->ne

70、xt!=NULL;qc=qc->next) qc->ceof=0-qc->ceof; qc->ceof=0-qc->ceof; cout<<qc->ceof;}</p><p>  prints(hc);</p><p>  Pa=ha; Pb=hb;</p><p><b>  }</b><

71、;/p><p>  Lpolynomial MultiplyPolyn(Lpolynomial Pa,Lpolynomial Pb)/////////////相乘,Pa構(gòu)成積多項(xiàng)式hc</p><p><b>  {</b></p><p>  Lpolynomial s,hc,q,p,r,ha,hb;</p><p>  

72、ha=Pa; hb=Pb;</p><p>  hc=(Lpolynomial)malloc(sizeof(LNode));</p><p><b>  r=hc;</b></p><p>  for(p=Pa->next;p!=NULL;p=p->next)</p><p>  for(q=Pb->n

73、ext;q!=NULL;q=q->next)</p><p>  { s=(Lpolynomial)malloc(sizeof(LNode));</p><p>  s->ceof=p->ceof*q->ceof;</p><p>  s->expn=p->expn+q->expn;</p><p>

74、  r->next=s;</p><p><b>  r=s;</b></p><p><b>  }</b></p><p>  r->next=NULL;</p><p>  for(int i=20; i!=0;i--) </p><p>

75、;<b>  {</b></p><p>  for(q=hc;q->next!=NULL;q=q->next)//合并同類項(xiàng)</p><p>  for(p=q->next;p!=NULL&&p->next!=NULL;p=p->next)</p><p>  if(q->expn==p-&

76、gt;next->expn)</p><p>  { q->ceof=q->ceof+p->next->ceof;</p><p>  r=p->next;</p><p>  p->next=p->next->next; free(r);</p><p><b>  }<

77、;/b></p><p><b>  }</b></p><p>  LAscend(hc);</p><p>  prints(hc); </p><p>  Pa=ha; Pb=hb;</p><p><b>  }</b></p><p>

78、  計(jì)算多項(xiàng)式加減,其算法思想是相同的。以多項(xiàng)式加法為例,先對兩多項(xiàng)式排序,再將兩多項(xiàng)式的每一項(xiàng)逐項(xiàng)相加,在相加之前,先比較兩項(xiàng)的指數(shù)是否相等,若相等則將系數(shù)相加,再判斷系數(shù)是否為零,若為零則刪除,否則存儲(chǔ)在和多項(xiàng)式中。若兩項(xiàng)指數(shù)不相等,當(dāng)多項(xiàng)式pa指數(shù)大于多項(xiàng)式pb指數(shù)時(shí),則將pa結(jié)點(diǎn)副本插入到和多項(xiàng)式PolyC尾部;當(dāng)pa指數(shù)小于pb指數(shù)時(shí),則將pb結(jié)點(diǎn)副本插入到和多項(xiàng)式PolyC尾部,最后插入剩余結(jié)點(diǎn)。</p>&l

79、t;p> ?。?)計(jì)算多項(xiàng)式乘法時(shí),先判斷兩多項(xiàng)式是否為空,若為空,則返回乘多項(xiàng)式,否則要先對兩多項(xiàng)式進(jìn)行合并排序,先將兩多項(xiàng)式的第一項(xiàng)相乘,即系數(shù)相乘,指數(shù)相加,其值作為乘多項(xiàng)式的第一結(jié)點(diǎn),其后使用雙重循環(huán)將一多項(xiàng)式的每一項(xiàng)與另一多項(xiàng)式的每一項(xiàng)分別相乘,結(jié)果存到乘多項(xiàng)式中。</p><p><b>  界面設(shè)計(jì)及測試結(jié)果</b></p><p><b&g

80、t;  算法分析</b></p><p>  主要的算法是對多項(xiàng)式的計(jì)算,分別有</p><p>  1、A+B:用了一個(gè)循環(huán),循環(huán)n次,即T=O(n)</p><p>  2、A-B:A-B即為A+(-B),即T=O(n)</p><p>  3、A*B:用了兩個(gè)循環(huán)來完成計(jì)算,第二個(gè)循環(huán)嵌套在第一個(gè)循環(huán)里面,即時(shí)間復(fù)雜度T=O

81、(n2)</p><p><b>  結(jié)論</b></p><p>  課程設(shè)計(jì)終于做完了,雖然有些疲勞和困倦,但帶給我很多的收獲。數(shù)絕結(jié)構(gòu)已經(jīng)學(xué)了一個(gè)學(xué)期,大概三個(gè)多月了,有許多知識(shí)都存在似懂非懂的現(xiàn)象,這種現(xiàn)象通過實(shí)際的上機(jī)操作,實(shí)際應(yīng)用,已經(jīng)減少了許多。對這些知識(shí)也有了更深的理解和很好的掌握。許多困惑,有許多已經(jīng)通過實(shí)際操作解決了,并能夠深刻認(rèn)識(shí),但也有很多沒有

82、明白。通過課程設(shè)計(jì),明白到了原來開發(fā)一個(gè)小小的實(shí)用系統(tǒng),是需要考慮到很多方面的問題的,這些都是要在實(shí)踐中摸索的,這與平時(shí)做練習(xí)是不同的,但也因?yàn)槠綍r(shí)有許多的練習(xí)基礎(chǔ),會(huì)使你做起程序來,更加得心應(yīng)手。另外就是要把錯(cuò)誤總結(jié),有許多錯(cuò)誤或者陷阱是平時(shí)自己陷進(jìn)去的,因此很深刻,但也有些錯(cuò)誤或者陷阱是自己還沒有接觸或者犯過的,這就應(yīng)該看多些別人的總結(jié),使自己不犯這些錯(cuò)誤。不讓自己掉進(jìn)這些陷阱。這樣長期總結(jié),會(huì)對自己有很大的幫助。 主要

83、內(nèi)容是對一元多項(xiàng)式存儲(chǔ)結(jié)構(gòu)的選擇,輸入多項(xiàng)式采用頭插法的方式,輸入多項(xiàng)式中一個(gè)項(xiàng)的系數(shù)和指數(shù),就產(chǎn)生一個(gè)新的節(jié)點(diǎn),建立起它的右指針,并用頭節(jié)點(diǎn)指向它;雖然一元多項(xiàng)式可以用順序和鏈?zhǔn)絻煞N存儲(chǔ)結(jié)構(gòu)表示,但順序結(jié)構(gòu)的最大長度很難確定。比如當(dāng)多項(xiàng)式的系數(shù)較大時(shí),此時(shí)就會(huì)</p><p><b>  8參考文獻(xiàn)</b></p><p>  [1]嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語

溫馨提示

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

最新文檔

評論

0/150

提交評論