數(shù)據(jù)結(jié)構(gòu)課程大型實(shí)驗(yàn)大整數(shù)參考模板_第1頁
數(shù)據(jù)結(jié)構(gòu)課程大型實(shí)驗(yàn)大整數(shù)參考模板_第2頁
數(shù)據(jù)結(jié)構(gòu)課程大型實(shí)驗(yàn)大整數(shù)參考模板_第3頁
數(shù)據(jù)結(jié)構(gòu)課程大型實(shí)驗(yàn)大整數(shù)參考模板_第4頁
數(shù)據(jù)結(jié)構(gòu)課程大型實(shí)驗(yàn)大整數(shù)參考模板_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、大類基礎(chǔ)課程大型實(shí)驗(yàn) 2015/2016(1) 實(shí)驗(yàn)題目 大整數(shù)的運(yùn)算 學(xué)生姓名_ * _ 學(xué)生學(xué)號_* _ 學(xué)生班級_ _ 任課教師_ _ 提交日期 _ 2015/5/19 _ _ 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院大整數(shù)的運(yùn)算 實(shí)驗(yàn)報(bào)告一、 大型實(shí)驗(yàn)的內(nèi)容 大整數(shù)的運(yùn)算(BIO:Big Integers Operation)用于兩個(gè)大整數(shù)的四則運(yùn)算,要求完成的主要的功能包括能夠進(jìn)行兩個(gè)大整數(shù)的加法、減法、乘法、除法、乘方及取模運(yùn)算,并有一個(gè)可以自行出入的運(yùn)算上限。要求使用學(xué)習(xí)過的數(shù)據(jù)結(jié)構(gòu)的知識完成大整數(shù)運(yùn)算的設(shè)計(jì)與實(shí)現(xiàn)。二、 運(yùn)行環(huán)境 大整數(shù)的運(yùn)算(BIO)在Visual Studio 2013平臺下開

2、發(fā),操作系統(tǒng):Windows 7 / Windows8。 硬件環(huán)境:(備注:可以查看“計(jì)算機(jī)”屬性) 處理器:Intel(R) Core(TM) i5-2557M CPU 1.70GHz 1.70GHz 內(nèi)存:4.00GB 系統(tǒng)類型:32位操作系統(tǒng)三、 實(shí)驗(yàn)課題分析3.1 大整數(shù)的運(yùn)算的主要功能大整數(shù)的運(yùn)算(BIO)主要功能為:大整數(shù)的加法,大整數(shù)的減法,大整數(shù)的乘法,大整數(shù)的除法、大整數(shù)的乘方、大整數(shù)的取模。詳細(xì)的系統(tǒng)功能結(jié)構(gòu)為圖1所示。大整數(shù)的運(yùn)算(BIO)大整數(shù)的除法模塊大整數(shù)的乘方模塊大整數(shù)的加法模塊大整數(shù)的取模模塊大整數(shù)的乘法模塊大整數(shù)的減法模塊圖1 系統(tǒng)結(jié)構(gòu)圖各模塊的功能具體描述為

3、:1、大整數(shù)的加法模塊用戶輸入需要運(yùn)算的大整數(shù),實(shí)現(xiàn)加法,并及時(shí)輸出結(jié)果。若結(jié)果超過設(shè)置的最大上限,則取模最大上限后輸出。2、33.2 分析及設(shè)計(jì)涉及對象有3個(gè)基本類:節(jié)點(diǎn)類、鏈表類和大整數(shù)類。如下表所示: 表1 涉及的操作對象涉及的對象操作節(jié)點(diǎn)運(yùn)算過程中儲存數(shù)字信息鏈表儲存輸入的大整數(shù)和運(yùn)算過程中新生大整數(shù)的信息大整數(shù)實(shí)現(xiàn)大整數(shù)的運(yùn)算,及相關(guān)的輸入輸出,錯(cuò)誤的提示可以采用面向?qū)ο蟮姆绞綄?shí)現(xiàn)大整數(shù)的運(yùn)算。主要的類結(jié)構(gòu)如圖2所示。數(shù)據(jù)處理(節(jié)點(diǎn)類、鏈表類)大整數(shù)類 用戶圖2 主要類結(jié)構(gòu)圖 3.3運(yùn)算的實(shí)現(xiàn) (1)類的編寫 運(yùn)算工程名為:BIO。包含了Node類(數(shù)字節(jié)點(diǎn)類),List類(整數(shù)鏈表

4、類)和Big類(大整數(shù)類)三個(gè)基本類。其中Big類的函數(shù)實(shí)現(xiàn)中包含了List類,List類里也蘊(yùn)含著Node類。各自分工以完成需要的功能。具體類結(jié)構(gòu)聲明如下:l Node類: class Node /節(jié)點(diǎn)public:int nValue; /值Node* Next; /下個(gè)節(jié)點(diǎn)Node();Node(int); /構(gòu)造函數(shù);l List類:class Listprivate:Node* Head; /頭指針Node* Tail; /尾指針public:bool Empty(); /是否為空List(); /構(gòu)造函數(shù)List(); /析構(gòu)函數(shù)List(List &); /拷貝構(gòu)造函數(shù)i

5、nt Size(); /大小Node* getHead(); /返回頭指針Node* getTail(); /返回尾指針void Push(int); /壓入鏈表void Delete(); /刪除void Insert(List &); /插入List operator=(List &); / 賦值void Pop(); /彈出鏈表int Top(); /返回鏈表頂值void Display(); /顯示; (2)鏈表的使用 運(yùn)算實(shí)現(xiàn)采用用戶的輸入輸出對數(shù)字?jǐn)?shù)據(jù)進(jìn)行讀取,但是由于大整數(shù)信息都是一個(gè)數(shù)字的集合,于是對數(shù)字的存儲組織使用了單向鏈表。 在運(yùn)用時(shí),令當(dāng)前數(shù)字的next

6、節(jié)點(diǎn)指向新的數(shù)字節(jié)點(diǎn),即節(jié)點(diǎn)的指針next保存新的數(shù)字結(jié)點(diǎn)的地址(如下圖3所示),以此類推,所有數(shù)字信息就通過鏈表的形式串聯(lián)起來了。 Figure1 Figure2 Figurendatadata data .*next*next*next 圖3 數(shù)字鏈表的建立功能l 大整數(shù)的加法(每個(gè)算法都要按照這個(gè)流程寫下來): 運(yùn)算時(shí),會讀入用戶輸入的三個(gè)字符串。如果第二個(gè)字符串是“+”,則進(jìn)行加法運(yùn)算。運(yùn)算過程中一旦發(fā)現(xiàn)數(shù)字有問題會立即報(bào)錯(cuò),并拋出異常。運(yùn)算時(shí)從個(gè)位開始循環(huán),依次讀取兩數(shù)相應(yīng)位的值t1,t2,并新增一個(gè)進(jìn)位數(shù)字kTemp。每次相加時(shí)保存kTemp,以用于下一位的運(yùn)算。當(dāng)其中一個(gè)數(shù)字到頭時(shí),t1或t2會被置為0讓加法能繼續(xù)下去。結(jié)果取模最大上限。大整數(shù)的加法的流程圖如下:開始 輸入是否有問題報(bào)錯(cuò) 是 否將兩數(shù)每一位依次相加,期間依靠進(jìn)位數(shù)使加法完善。取模最大上限輸出結(jié)束 (3)交互界面的實(shí)現(xiàn) 系統(tǒng)運(yùn)行開始的界面如圖5所示:圖5 開始界面四、 實(shí)驗(yàn)調(diào)試、測試、運(yùn)行記錄及分析 運(yùn)算在調(diào)試測試過程中遇到若干問題,不過經(jīng)過仔細(xì)反復(fù)的檢查已經(jīng)消除各種bug。 l 加法:l 減法:l 乘法:l 除法:l 乘方:l 取模:l 問題輸入: 遇到的問題及解決方法如下:l 問題1

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論