課程設(shè)計 長整數(shù)四則運算_第1頁
已閱讀1頁,還剩81頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計實驗報告: 課程設(shè)計實驗報告:1.4 長整數(shù)四則運算 長整數(shù)四則運算題目:長整數(shù)四則運算一、實驗內(nèi)容【問題描述】設(shè)計一個實現(xiàn)任意長的整數(shù)進行加法運算的演示程序【基本要求】利用雙向循環(huán)鏈表實現(xiàn)長整數(shù)的存儲,每個結(jié)點含一個整形變量。任何整形變量的范圍是 -(2^15 - 1)~(2^15 - 1)。輸入和輸出形式:按中國對于長整數(shù)的表示習(xí)慣,每四位一組,組間用逗號隔開?!緦崿F(xiàn)基本功能】(i)是想長整數(shù)的四則運算;(ii)實現(xiàn)長整數(shù)的

2、乘方和階乘運算;(iii)整形量范圍是-(2^n-1)~(2^n-1) ,其中 n 是由程序讀入的參量。輸入數(shù)據(jù)的分組方法另行規(guī)定;【實現(xiàn)加強版本的功能】(i)四則運算在原來版本的基礎(chǔ)上支持小數(shù)運算,除法還可以通過輸入整數(shù)后加小數(shù)點與相應(yīng)要求取的精確位數(shù)求出精確值,如:求取 3666 除以 7 的后三位精確值,可以在輸入時將除數(shù)輸入為 3666.000 或 3666.0000,就能得出相應(yīng)的精確位數(shù),當(dāng)然求取后,沒有余數(shù)的輸出;(ii)

3、乘方的功能也進行了強化,支持小數(shù)操作;(iii)添加了多個出錯處理(即輸入重操作)對相應(yīng)數(shù)據(jù)輸入與輸出進行提示;【加強版的實現(xiàn)原理】(i)加減法運算加強:在原來版本的基礎(chǔ)上依照基本的加減法操作將數(shù)據(jù)用小數(shù)點進行分隔,記錄下連個輸入數(shù)的小數(shù)位長度,并將小數(shù)位較短的一個數(shù)據(jù)后補 0 直至小數(shù)位數(shù)相同,然后用函數(shù)處理輸出的數(shù)據(jù);(ii)乘除法、乘方:其處理方法較為簡單,主要是記錄數(shù)據(jù)中小數(shù)位數(shù)的長度,然后通過每種運算方式不同的運算原理截取小數(shù)

4、位,再按照輸出格式將數(shù)據(jù)處理進行輸出;(iii)根據(jù)定義,階乘保持不變;【特色分析】(i)加強版程序加上了簡單的聲音提示,無論是輸入與輸出均會有八個音符的其中之一對輸入與輸出與否進行提示,同時在輸入輸出數(shù)據(jù)出錯時,還會用三個音符對重輸入進行提示,增強了人性化操作;【測試數(shù)據(jù)】(1)0;0;應(yīng)輸出“0”。(2)-2345,6789;-7654,3211;應(yīng)輸出“-1,0000,0000”。(3)-9999,9999;1,0000,0000

5、,0000;應(yīng)輸出“9999,0000,0001”。(4)1,0001,0001;-1,0001,0001;應(yīng)輸出“0”。(5)1,0001,0001;-1,0001,0000;應(yīng)輸出“1”。(6)-9999,9999,9999;-9999,9999,9999;應(yīng)輸出“1,9999,9999,9998”。(7)1,0000,9999,9999;1;應(yīng)輸出“1,0001,0000,0000”。二、實驗?zāi)康腟tatus Creat(oprr

6、,len)//操作結(jié)果:生成指定長度鏈表compare(opr1,opr2)//操作結(jié)果:比較 opr1、opr2 絕對值的大小Status init(oppr)//初始化鏈表函數(shù)Status distroy(oprr)//銷毀鏈表函數(shù)Status evaluate(opri,i)//操作結(jié)果:鏈表短賦值函數(shù),將 i 的值轉(zhuǎn)換成萬進制類型,i 為整形變量Status add_bas(opr1,opr2,oprr)//操作結(jié)果:加法基本操

7、作,本算法實現(xiàn) A,B 相加的操作。Status sub_bas(opr1,opr2,oprr)//減法基本操作,本算法實現(xiàn) A,B 相減的操作Status add(opr1,opr2,oprr)//操作結(jié)果:帶符號加法運算Status sub(opr1,opr2,oprr)//操作結(jié)果:帶符號減法函數(shù)Status imul(opr1,opr2,oprr)//操作結(jié)果:乘法運算Status idiv(opr1,opr2,quti,rem

8、and)//操作結(jié)果:除法運算Status imul_power(opr1,n,oprr)//操作結(jié)果:乘方運算,運用了二分思想,時間長度為 lgN Status imul_factorial(opr1,oprr)//操作結(jié)果:階乘運算Status output(oprr,str)//操作結(jié)果:輸出的數(shù)據(jù)按四位一組,分隔符為“,“的格式}ADT OrderedOperation鏈表抽象數(shù)據(jù)類型的定義:ADT List{數(shù)據(jù)對象:D

9、={ai|ai∈ElemSet, i=1,2, …,n, n≧0}數(shù)據(jù)關(guān)系:R1={|ai-1,ai∈D, i=1,2, …,n }基本操作:Status initbuf(char str[])//操作結(jié)果:緩沖區(qū)部分初始化函數(shù),返回 OKint cmplinklen(NodeList opr1,NodeList opr2)//操作結(jié)果:opr1 鏈比 opr2 鏈長則返回 1,短則返回-1,否則返回 0int length(NodeL

溫馨提示

  • 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

提交評論