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

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計</b></p><p>  課程設(shè)計題目: 多 項 式 問 題 </p><p><b>  目 錄</b></p><p>  一、問題描述--------------------------------------------3</p><p

2、>  二、需求分析--------------------------------------------4</p><p>  三、概要設(shè)計--------------------------------------------4</p><p>  1.概要設(shè)計目的與要求---------------------------------4</p><p>

3、  2.概要設(shè)計內(nèi)容---------------------------------------4</p><p>  3.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說明-------------------------5</p><p>  四、詳細設(shè)計--------------------------------------------5</p><p>  五、系統(tǒng)測試---

4、-----------------------------------------8</p><p>  六、使用說明--------------------------------------------9</p><p>  七、總結(jié)及心得體會 ------------------------------------10</p><p><b>  多

5、項式問題</b></p><p><b>  一.問題描述</b></p><p>  給你九個整數(shù),這九個整數(shù)分別是x的8次方至0次方的系數(shù),請你按照多項式的一半形式合理地構(gòu)造(去除不必要的)。例如九個系數(shù)分別是為0,0,0,1,22,-333,0,1,-1,你要構(gòu)造并輸出一行多項式:x^5 + 22x^4 – 333x^3 + x – 1。</p

6、><p><b>  它的格式規(guī)則如下:</b></p><p>  1.多項式的項必須按其指數(shù)從高到低排列。</p><p>  2.指數(shù)必須跟在符號“^”后顯示。</p><p>  3.有常數(shù)的只顯示常數(shù)項(無需跟x^0)。</p><p>  4.只顯示系數(shù)不為0的項;若系數(shù)全為0,需顯示常數(shù)

7、項。</p><p>  5.在多項式中唯一需要空格的地方是項與項之間的加號或減號的兩邊需加上空格。</p><p>  6.如果首項的系數(shù)是正數(shù),則系數(shù)前不加符號;如果首項的系數(shù)是負(fù)數(shù),則符號與數(shù)字之間不加空格,就如:-3x^2 + -2x。</p><p>  7.系數(shù)為1,指數(shù)為0時,系數(shù)的1才顯示(推廣到系數(shù)為-1)。</p><p>

8、;<b>  輸入/輸出說明</b></p><p>  1.輸入/輸出方式為文件方式,輸入文件有一行或多行的系數(shù),系數(shù)之間有空格分隔。</p><p>  2.每行共有九個系數(shù),每個系數(shù)的絕對值為小于1000的整數(shù)。輸出文件包含構(gòu)造完地多項式,每行一個多項式。</p><p><b>  輸入范例</b></p&g

9、t;<p>  0 0 0 1 22 -333 0 1 -1</p><p>  0 0 0 0 0 0 -55 5 0</p><p><b>  輸出范例</b></p><p>  x^5 + 22x^4 – 333x^3 + x – 1</p><p>  -55x^2 + 5x</p>

10、<p><b>  二.需求分析</b></p><p><b>  2.1可行性研究</b></p><p>  該程序主要從技術(shù)的角度來分析可行性。技術(shù)上的可行性研究主要分析技術(shù)條件能否順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。該系統(tǒng)采用了Windows 7操作系統(tǒng)結(jié)合Visual C++ 6.0等軟件開發(fā)平臺已成熟可行

11、。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,其硬件平臺也比較能滿足此系統(tǒng)的需要。</p><p>  2.2結(jié)構(gòu)與主要功能模塊</p><p>  從實現(xiàn)多項式輸出過程的角度來分析,至少需要這樣一些子功能模塊。如:</p><p>  1. 多項式創(chuàng)建功能;</p><p>  2. 多項式輸出功能;

12、</p><p>  3. 釋放多項式功能;</p><p>  4. 操作界面顯示功能;</p><p><b>  三.概要設(shè)計</b></p><p>  1.概要設(shè)計目的與要求</p><p>  通過多項式程序設(shè)計,使我們進一步掌握和利用C++語言進行結(jié)構(gòu)化程序設(shè)計的能力;進一步理解和運

13、用結(jié)構(gòu)化程設(shè)計的思想和方法;初步掌握開發(fā)一個小型系統(tǒng)程序設(shè)計的基本方法;學(xué)會調(diào)試一個較長程序的基本方法;以及掌握書寫課程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)??傊?,通過本課程設(shè)計加深對《C++語言》及《數(shù)據(jù)結(jié)構(gòu)》課程所學(xué)知識的理解,進一步鞏固C++語言語法規(guī)則,在程序中體現(xiàn)出算法的思想,提高程序的運行效率。學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃++語言程序,從而具備解決綜合性實際問題的能力。</p><p&g

14、t;<b>  2.概要設(shè)計內(nèi)容</b></p><p>  多項式輸出程序具有以下基本功能:</p><p>  1.創(chuàng)建多項式。接收輸入的數(shù)據(jù),并保存到鏈表中。</p><p>  2.Txt文檔輸入輸出功能。</p><p>  3. 清除內(nèi)存內(nèi)容,釋放創(chuàng)建的鏈表,退出程序。</p><p>

15、;  3.功能算法描述與數(shù)據(jù)結(jié)構(gòu)說明</p><p>  該多項式程序除了main()函數(shù)外,主要有以下函數(shù):</p><p>  node *CreatePolyn()</p><p>  void firstnode(node *p)</p><p>  void othernode(node *p)</p><p&g

16、t;  void PrintPolyn(node *Pa)</p><p>  void deletechain(node *h)</p><p>  下面對這些函數(shù)逐一介紹。</p><p>  ①.main()函數(shù)</p><p>  main函數(shù)主要調(diào)用其他函數(shù),用來實現(xiàn)輸入、顯示功能。</p><p>  在

17、main()函數(shù)中,定義一維數(shù)組p[]用來保存多項式的系數(shù),Pa定義程序所需鏈表的頭指針。在程序開始要求輸入多項式的系數(shù),隨后創(chuàng)建鏈表以保存多項式,再顯示出構(gòu)建的符合要求的多項式。</p><p> ?、?node *CreatePolyn()</p><p>  該函數(shù)功能是創(chuàng)建新的多項式鏈表。使用for語句,控制輸入多項式的每一項。</p><p> ?、?vo

18、id firstnode(node *p)</p><p>  該函數(shù)功能是判斷輸出多項式第一項。對于第一項的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進行討論。</p><p>  ④.void othernode(node *p)</p><p>  該函數(shù)功能是判斷輸出多項式除第一項外的其它項。對于第一項的系數(shù)為1或-1,指數(shù)為0或-1等五種情況進行討論。<

19、;/p><p> ?、?void PrintPolyn(node *Pa)</p><p>  該函數(shù)功能:顯示構(gòu)造的符合要求的多項式鏈表。在該函數(shù)中調(diào)用③、④函數(shù),進行多項式的輸出。</p><p> ?、?void deletechain(node *h)</p><p>  該函數(shù)的功能是釋放掉創(chuàng)建的鏈表,釋放內(nèi)存。</p>

20、<p><b>  。</b></p><p><b>  四.詳細設(shè)計</b></p><p>  下面討論重要函數(shù)具體實現(xiàn)過程:</p><p>  1. node *CreatePolyn() 定義int i=9計數(shù),當(dāng)i>0時,for語句反復(fù)提示用戶輸入該多項式的每一項的指數(shù)。當(dāng)i=1時,輸入完

21、畢,該鏈表也創(chuàng)建完畢。詳細的實現(xiàn)過程如下:</p><p>  node *CreatePolyn()</p><p><b>  {</b></p><p>  node *head,*pa,*s;</p><p><b>  int i; </b></p><p>  p

22、a=head=new node;//創(chuàng)建一個新的結(jié)點</p><p>  head->next=NULL;</p><p>  for (i = 9; i >0;i--) // 依次輸入9項 </p><p><b>  {</b></p><p>  s=new node;</p><p

23、>  s->next=NULL;</p><p>  s->coef = p[9-i];</p><p>  s->exp=i-1;//x指數(shù)從8遞減到0</p><p>  if(s->coef !=0)//系數(shù)不為零時,結(jié)點p鏈接s</p><p><b>  {</b></p&g

24、t;<p>  pa->next=s;</p><p><b>  pa=s;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  return head;</p><p>&l

25、t;b>  }</b></p><p>  2. void firstnode(node *p) 對多項式第一項輸出可能性進行多種分類討論。</p><p>  void firstnode(node *p)//輸出多項式第一個結(jié)點</p><p><b>  {</b></p><p>  //指數(shù)不

26、為1且不為0,系數(shù)絕對值不為1(正常的輸出)</p><p>  if(p->exp!=1&&p->exp&&fabs(p->coef)!=1)</p><p><b>  {</b></p><p>  if(p->coef>0)</p><p><

27、b>  {</b></p><p>  outfile<<p->coef<<"X^"<<p->exp;</p><p><b>  }</b></p><p><b>  else</b></p><p><

28、b>  {</b></p><p>  outfile<<p->coef<<"X^"<<p->exp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(p-

29、>exp==0)//指數(shù)為0,即常數(shù)項</p><p><b>  {</b></p><p>  if(p->coef>0)</p><p><b>  {</b></p><p>  outfile<<p->coef;</p><p>

30、<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  outfile<<p->coef;</p><p><b>  }</b></p><p

31、><b>  }</b></p><p>  //指數(shù)大于0且不為1,系數(shù)絕對值為1</p><p>  if(p->exp>0&&fabs(p->coef)==1&&p->exp!=1)</p><p><b>  {</b></p><

32、p>  if(p->coef>0)</p><p><b>  {</b></p><p>  outfile<<"X^"<<p->exp;</p><p><b>  }</b></p><p><b>  else&l

33、t;/b></p><p><b>  {</b></p><p>  outfile<<"-X^"<<p->exp;</p><p><b>  }</b></p><p><b>  }</b></p>

34、<p>  if(p->exp==1&&fabs(p->coef)!=1)//指數(shù)為1且系數(shù)絕對值不為1</p><p><b>  {</b></p><p>  if(p->coef>0&&p->coef!=1)</p><p><b>  {</b&g

35、t;</p><p>  outfile<<p->coef<<"X";</p><p><b>  }</b></p><p>  if(p->coef<0&&p->coef!=-1)</p><p><b>  {</b

36、></p><p>  outfile<<p->coef<<"X";</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(p->exp==1&&fabs(p->c

37、oef)==1)//指數(shù)為1且系數(shù)絕對值為1</p><p><b>  {</b></p><p>  if(p->coef==1)</p><p>  outfile<<"X";</p><p><b>  else</b></p><p

38、>  outfile<<"-X";</p><p><b>  }</b></p><p><b>  }</b></p><p>  3. void PrintPolyn(node *Pa) 該函數(shù)有一個參數(shù),該指針指向多項式鏈表的頭指針,以下是實現(xiàn)插入的關(guān)鍵代碼:</p&

39、gt;<p>  void PrintPolyn(node *Pa)</p><p><b>  {</b></p><p><b>  node *p;</b></p><p>  if(Pa->next==NULL)//首項判斷,如果首項無,則顯示“0”</p><p>

40、;  outfile<<"0";</p><p><b>  return;</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  firstnode(Pa->next);<

41、/p><p><b>  }</b></p><p>  p=Pa->next->next;//定義指針p指向Pa的下下個指針</p><p>  while(p!=NULL)</p><p><b>  {</b></p><p>  othernode(p);

42、</p><p>  p=p->next;//將p指向下個一個結(jié)點</p><p><b>  }</b></p><p>  outfile<<endl;</p><p><b>  }</b></p><p><b>  五.系統(tǒng)測試&l

43、t;/b></p><p>  該程序在VC6.0中調(diào)試通過,沒有錯誤和警告,運行結(jié)果經(jīng)過檢驗為正確。以下圖為該程序運行結(jié)果效果圖:</p><p><b>  圖5-1 范例</b></p><p><b>  圖5-2 一行輸出</b></p><p><b>  圖5-3 多行

44、輸出</b></p><p><b>  六.使用說明</b></p><p>  1.打開1.txt文件,在里面任意輸入9個整數(shù),每個數(shù)字間要有空格,可以輸入一行或者多行,輸入多行的時候需要換行。</p><p>  2.編譯運行后,打開2.txt文件,即可看到輸出的符合要求的多項式。</p><p>&l

45、t;b>  七.總結(jié)及心得體會</b></p><p>  通過這次課程設(shè)計練習(xí),使我更深刻地理解了C++語言的精髓-----指針的使用。完成整個程序設(shè)計有很大的收獲,對指針掌握的更加熟練。</p><p>  同時通過直接對單鏈表的操作,加深了對數(shù)據(jù)結(jié)構(gòu)的理解和認(rèn)識。并在完成課程設(shè)計的過程作主動查閱了相關(guān)資料,學(xué)到了不少課本上沒有的技術(shù)知識。</p>&l

46、t;p>  經(jīng)過這次課程設(shè)計,我深刻認(rèn)識到算法在程序設(shè)計中的重要性,如何讓程序簡單、易讀是這個課程設(shè)計的難點。程序總是由若干個函數(shù)構(gòu)成的,這些相應(yīng)的函數(shù)體現(xiàn)了算法的基本思想。</p><p>  編程是一件枯燥乏味工作,但是只要認(rèn)真專研,我們會從中學(xué)到很多在課本上學(xué)不到或者無法在課堂上掌握的知識,同時也能從中感受到編程的樂趣。興趣是可以培養(yǎng)的,只要堅持下去,面對困難我們總能夠找到解決問題的方法。</p

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論