2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩5頁(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>  課 程 設(shè) 計(jì) 報(bào) 告</p><p>  課程名稱(chēng) 數(shù)據(jù) 結(jié)構(gòu) </p><p>  題 目 長(zhǎng)整數(shù)運(yùn)算 </p><p>  學(xué)生姓名 </p><p>  班級(jí)/學(xué)號(hào) </p&

2、gt;<p><b>  需求分析</b></p><p>  設(shè)計(jì)一個(gè)實(shí)現(xiàn)任意長(zhǎng)的整數(shù)間進(jìn)行四則運(yùn)算的程序,要求完成長(zhǎng)整數(shù)的加運(yùn)算和減運(yùn)算。長(zhǎng)整數(shù)的長(zhǎng)度沒(méi)有限制,可以是任意長(zhǎng)。正確處理好運(yùn)算之后的進(jìn)位和借位。</p><p>  輸入:[-]**,****,****;[-]*,****,****,**** //[-]表示“-”可選</

3、p><p>  輸出:**,****,****,****是否繼續(xù)計(jì)算(Y/N):</p><p>  功能:能正確進(jìn)行相關(guān)數(shù)據(jù)的加減運(yùn)算</p><p><b>  測(cè)試數(shù)據(jù):</b></p><p><b>  0;0;輸出“0”</b></p><p>  2345,6789

4、;7654,3211;輸出“1,0000,0000”</p><p>  1,0000,0000,0000;-9999,9999;輸出“9999,0000,0001”</p><p>  1,0001,00001;-1,0001,0000;輸出“0”</p><p><b>  自選數(shù)據(jù) </b></p><p><

5、;b>  概要設(shè)計(jì)</b></p><p>  使用雙向循環(huán)鏈表實(shí)現(xiàn)長(zhǎng)整數(shù)的運(yùn)算及存儲(chǔ),構(gòu)造雙向循環(huán)鏈表,創(chuàng)建雙向循環(huán)鏈表表示兩個(gè)整數(shù)</p><p>  設(shè)計(jì)兩整數(shù)相加的函數(shù)Add(),addtwo(),其中Add()調(diào)用addtwo()函數(shù),addtwo()具體實(shí)現(xiàn)兩個(gè)整數(shù)的加減操作,進(jìn)位及借位問(wèn)題;設(shè)計(jì)顯示函數(shù)Display()及主函數(shù)main()</p>

6、;<p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  雙向循環(huán)鏈表的構(gòu)造</b></p><p>  typedef struct LinkNode{</p><p>  int data;

7、 //記錄每個(gè)節(jié)點(diǎn)的整數(shù)(小于)</p><p>  LinkNode *next, *pre; //記錄下一個(gè)節(jié)點(diǎn)的地址和前一個(gè)節(jié)點(diǎn)的地址</p><p>  }linklist;</p><p>  創(chuàng)建兩個(gè)長(zhǎng)整數(shù)的鏈表</p><p><b>  偽算法 </b></p>&

8、lt;p>  void Creat(char a[]) //引入字符串,創(chuàng)立兩個(gè)鏈表,分別表示兩個(gè)整數(shù)</p><p><b>  {</b></p><p>  int 記錄字符串i;記錄加數(shù)節(jié)點(diǎn)數(shù)j;記錄被加數(shù)節(jié)點(diǎn)數(shù)s;標(biāo)記字符串中的‘-’號(hào)</p><p>  記錄字符串中的字符轉(zhuǎn)化為整數(shù)的值k,

9、使每個(gè)節(jié)點(diǎn)記錄位l</p><p>  while(指針?biāo)覆皇恰?;?被加數(shù)字符數(shù)m自動(dòng)加1 //m記錄字符串中被加數(shù)的字符數(shù)</p><p>  n=m; </p><p>  while(執(zhí)政沒(méi)有指到結(jié)尾處) 總字符串n位數(shù)自動(dòng)加1; //n記錄字符串的總字符數(shù)<

10、;/p><p><b>  if被加數(shù)不是負(fù)數(shù)</b></p><p><b>  {</b></p><p>  head0->data=(-1); //記錄整數(shù)符號(hào)</p><p><b>  w=1;</b></p><p>

11、;<b>  }</b></p><p>  else {head0->data=1;}</p><p>  for(i=m-1;i>=w;i--) </p><p><b>  {</b></p><p>  If指針?biāo)笧閿?shù)字,而不是“,”

12、 //把字符轉(zhuǎn)化為整數(shù)</p><p><b>  {</b></p><p>  k+=(a[i]-'0')*sum(l); //sum()計(jì)算的乘方</p><p><b>  l++;</b></p><p><b>  }</b>&l

13、t;/p><p>  if(a[i]==','||i==w)</p><p><b>  {</b></p><p>  把整數(shù)存到雙向循環(huán)鏈表中</p><p>  s++; //節(jié)點(diǎn)數(shù)加</p><p>  k=0;

14、 //重新初始化k和l</p><p>  l=0; </p><p><b>  }</b></p><p><b>  }</b></p><p>  head0->pre->data

15、*=s; //存儲(chǔ)整數(shù)符號(hào)和節(jié)點(diǎn)數(shù)</p><p><b>  }</b></p><p><b>  調(diào)試分析</b></p><p>  調(diào)試過(guò)程中,連續(xù)輸入數(shù)字運(yùn)算,速度會(huì)明顯變慢,發(fā)現(xiàn)在初始化鏈表及運(yùn)算后沒(méi)有釋放鏈表,造成系統(tǒng)資源浪費(fèi),經(jīng)改造后自愛(ài)后面添加了析構(gòu)函數(shù)</p&

16、gt;<p><b>  算法的時(shí)空分析</b></p><p>  創(chuàng)建整數(shù)鏈表有三個(gè)循環(huán),次數(shù)都為n。時(shí)間復(fù)雜度和空間復(fù)雜都都為O(n)</p><p><b>  使用說(shuō)明和測(cè)試結(jié)果</b></p><p>  1、使用說(shuō)明:用戶按照屏幕所顯示的提示來(lái)正確輸入數(shù)字</p><p>

17、;  其中[-]表示“-”為可選,從右至左每四位數(shù)字一個(gè)“,”</p><p><b>  2、測(cè)試結(jié)果:</b></p><p><b>  心得體會(huì)</b></p><p>  通過(guò)此實(shí)驗(yàn),加深了我對(duì)鏈表的基本操作,對(duì)雙向鏈表及循環(huán)鏈表的操作及實(shí)際運(yùn)用有了很深的體會(huì),在處理數(shù)字的進(jìn)位借位時(shí)有了進(jìn)一步的提高。</p

18、><p><b>  附錄</b></p><p><b>  鏈表的創(chuàng)建:</b></p><p>  #include<stdio.h></p><p>  #include<math.h></p><p>  #include<stdlib.h

19、></p><p>  typedef struct LinkNode{</p><p>  int data; //記錄每個(gè)節(jié)點(diǎn)的整數(shù)(小于)</p><p>  LinkNode *next, *pre; //記錄下一個(gè)節(jié)點(diǎn)的地址和前一個(gè)節(jié)點(diǎn)的地址</p><p>  }linklist

20、;</p><p>  linklist *head0;</p><p>  linklist *head1; //head0,head1分別記錄兩個(gè)整數(shù)鏈表的頭指針</p><p>  linklist *currptr;</p><p>  linklist *result; //result記錄結(jié)果鏈表的頭指針

21、</p><p>  void Creat(char a[]){ //引入字符串,創(chuàng)立兩個(gè)鏈表,分別表示兩個(gè)整數(shù)</p><p>  int i=0,j=0,m=0,n=0,k=0,l=0,s=0,w=0; </p><p>  //i記錄字符串,j記錄加數(shù)節(jié)點(diǎn)數(shù);s記錄被加數(shù)節(jié)點(diǎn)數(shù);w標(biāo)記字符串中的‘-’號(hào)</p>

22、;<p>  //k記錄字符串中的字符轉(zhuǎn)化為整數(shù)的值,l使每個(gè)節(jié)點(diǎn)記錄位</p><p>  while(a[m]!=';') m++; //m記錄字符串中被加數(shù)的字符數(shù)</p><p>  n=m; </p><p>  while(a[n]!='\

23、0') n++; //n記錄字符串的總字符數(shù)</p><p>  if(a[0]=='-'){</p><p>  head0->data=(-1); //記錄整數(shù)符號(hào)</p><p><b>  w=1;</b></p><p><b>  

24、}</b></p><p>  else {head0->data=1;}</p><p>  for(i=m-1;i>=w;i--){</p><p>  if(a[i]!=',') { //把字符轉(zhuǎn)化為整數(shù)</p><p>  k+=(a[i]-'0'

25、)*sum(l); //sum()計(jì)算的乘方</p><p><b>  l++;</b></p><p><b>  }</b></p><p>  if(a[i]==','||i==w){</p><p>  currptr=(linklist *)malloc(siz

26、eof(linklist)); //把整數(shù)存到雙向循環(huán)鏈表中</p><p>  currptr->data=k;</p><p>  currptr->next=head0;</p><p>  currptr->pre=head0->pre;</p><p>  head0->pre->

27、;next=currptr;</p><p>  head0->pre=currptr;</p><p>  head0=currptr;</p><p>  s++; //節(jié)點(diǎn)數(shù)加</p><p>  k=0; //重新初始

28、化k和l</p><p>  l=0; </p><p><b>  }</b></p><p><b>  }</b></p><p>  head0->pre->data*=s; //存儲(chǔ)整數(shù)符

29、號(hào)和節(jié)點(diǎn)數(shù)</p><p><b>  }</b></p><p><b>  測(cè)試函數(shù):</b></p><p>  void main() //主函數(shù)</p><p><b>  {</b></p><p>  

30、char ch[20];//鏈表對(duì)象</p><p>  char Yes_No;</p><p>  LinkList() ;</p><p>  LinkList1();</p><p>  printf("|輸入兩個(gè)任意長(zhǎng)的整數(shù)。 |\n");</p><p><b&

31、gt;  do{</b></p><p>  printf("|輸入形式為:[-]**,****,****;[-]*,****,****,****|\n");</p><p>  printf("|即符號(hào)+數(shù),每位加一個(gè)',',兩個(gè)數(shù)之間用';'隔開(kāi)|\n");</p><p>  

32、printf("|請(qǐng)輸入你要計(jì)算的兩個(gè)數(shù): \n");</p><p>  scanf("%s",&ch); //輸入任意長(zhǎng)字符串</p><p>  LinkList() ; </p><p>

33、;  Creat(ch); //把字符串轉(zhuǎn)化為整數(shù),并存到鏈表中//調(diào)用轉(zhuǎn)化函數(shù)</p><p>  Add(); //實(shí)現(xiàn)兩個(gè)整數(shù)相加//調(diào)用add()加法運(yùn)算函數(shù)</p><p>  Display(); //輸出結(jié)果//調(diào)用輸出函數(shù)&l

34、t;/p><p>  printf("\n\n是否繼續(xù)計(jì)算(Y/N):"); //詢問(wèn)是否繼續(xù)計(jì)算</p><p>  getchar();</p><p>  Yes_No=getchar();</p><p>  } while(Yes_No=='y'||Yes_No==

溫馨提示

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