資源簡介
【基本要求】
1. 要求采用鏈表來實現大整數的存儲和運算,不允許使用標準模板類的鏈表類(list)和函數。同時要求可以從鍵盤輸入大整數,也可以文件輸入大整數,大整數可以輸出至顯示器,也可以輸出至文件。大整數的存儲、運算和顯示,可以同時支持二進制和十進制,但至少要支持十進制。大整數輸出顯示時,必須能清楚地表達出整數的位數。測試時,各種情況都需要測試,并附上測試截圖;要求測試例子要比較詳盡,各種極限情況也要考慮到,測試的輸出信息要詳細易懂,表明各個功能的執行正確;
2. 要求大整數的長度可以不受限制,即大整數的十進制位數不受限制,可以為十幾位的整數,也可以為500多位的整數,甚至更長;大整數的運算和顯示時,只需要考慮正的大整數。如果可能的話,請以秒為單位顯示每次大整數運算的時間;
3. 要求采用類的設計思路,不允許出現類以外的函數定義,但允許友元函數。主函數中只能出現類的成員函數的調用,不允許出現對其它函數的調用。
4. 要求采用多文件方式:.h文件存儲類的聲明,.cpp文件存儲類的實現,主函數main存儲在另外一個單獨的cpp文件中。如果采用類模板,則類的聲明和實現都放在.h文件中。
5. 不強制要求采用類模板,也不要求采用可視化窗口;要求源程序中有相應注釋;
6. 要求采用Visual C 6.0及以上版本進行調試;
二、設計思路:
主要采用小學生豎式的思路。
加法:從最小的位開始逐位相加,十進制逢十進一(二進制,逢二進一)
減法:從最小位開始,逐位相減,位數不夠則從高位退位,低位加十(二進制則加二)
乘法:和豎式乘法的原理相同,建立在加法的基礎上,逐位相乘,再按位相加
除法:除法是建立在減法的基礎上,但逐個相減的效率太低,先把除數乘以兩數的位數之差的10的乘方倍。被除數能夠減去除數的個數,即為商,剩下的即為余數,再把余數當做被除數,除數不變,如此循環,把每個循環的得到的商乘以除數擴大的倍數,相加。直到所得的余數小于除數結束運算。
乘方:建立在乘法的基礎上,執行指數-1次底數的乘法,每次執行完都指數減一。最后累乘的結果即為最后的結果
三、設計結構:
主要包括兩個類,一個list類,一個calculate類。
List類中包括所有的單獨對一條鏈表的操作,如創立鏈表,輸出,添加節點,刪除節點,以及對鏈表數值的操作。
Calculate類中包括所有的涉及兩條鏈表的操作,如兩條鏈表大小的比較,大整數的加減乘除和乘方操作,以及運算結果的輸出。
詳細操作與分析見源代碼的注釋
代碼片段和文件信息
#include“calculate.h“
#include
#include
#include
using?namespace?std;
calculate::calculate(list?aa?list?bbchar?ope)//定義構造函數?
{
a=aa;//第一個大整數?
b=bb;//第二個大整數?
optor=ope;//運算符?
}
void?calculate::display1()//輸出式子;?
{
a.display()?;
cout<<‘(‘< if(optor==‘+‘)cout<<“?+?“;
else?if(optor==‘-‘)cout<<“?-?“;
else?if(optor==‘*‘)cout<<“?*?“;
else?if(optor==‘/‘)cout<<“?/?“;
else?if(optor==‘^‘)cout<<“?^?“;
b.display()?;
cout<<‘(‘< cout<<“?=?“;
}
void?calculate::display2()//輸出結果?
{
a.display()?;
cout<<‘(‘< if(optor==‘/‘)//如果為除法,那么既要輸出商,又要輸出余數?
{
cout<<“.......“;
b.display()?;
cout<<‘(‘< }
cout< }?
void?calc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-11-30?23:01??.vs\
?????目錄???????????0??2019-11-30?23:01??.vs\ConsoleApplication1\
?????目錄???????????0??2019-12-15?19:57??.vs\ConsoleApplication1\v16\
?????文件???????32256??2019-12-15?19:57??.vs\ConsoleApplication1\v16\.suo
?????文件?????5750784??2019-12-15?19:57??.vs\ConsoleApplication1\v16\Browse.VC.db
?????目錄???????????0??2019-11-30?23:01??.vs\ConsoleApplication1\v16\ipch\
?????目錄???????????0??2019-12-15?19:57??.vs\ConsoleApplication1\v16\ipch\AutoPCH\
?????目錄???????????0??2019-12-15?19:46??.vs\ConsoleApplication1\v16\ipch\AutoPCH\3c473eeef39155e0\
?????文件????33030144??2019-12-15?19:46??.vs\ConsoleApplication1\v16\ipch\AutoPCH\3c473eeef39155e0\CONSOLEAPPLICATION1.ipch
?????目錄???????????0??2019-12-15?19:53??.vs\ConsoleApplication1\v16\ipch\AutoPCH\6bb87eb27a034fae\
?????文件????34209792??2019-12-15?19:53??.vs\ConsoleApplication1\v16\ipch\AutoPCH\6bb87eb27a034fae\LIST.ipch
?????目錄???????????0??2019-12-15?19:57??.vs\ConsoleApplication1\v16\ipch\AutoPCH\9caaeb4cc7e052d7\
?????文件????34537472??2019-12-15?19:57??.vs\ConsoleApplication1\v16\ipch\AutoPCH\9caaeb4cc7e052d7\MAIN.ipch
?????目錄???????????0??2019-12-15?19:50??.vs\ConsoleApplication1\v16\ipch\AutoPCH\e19b06c896f16467\
?????文件????34537472??2019-12-15?19:50??.vs\ConsoleApplication1\v16\ipch\AutoPCH\e19b06c896f16467\MAIN.ipch
?????目錄???????????0??2019-12-15?19:55??ConsoleApplication1\
?????文件?????????910??2019-12-15?19:48??ConsoleApplication1\ConsoleApplication1.cpp
?????文件????????7906??2019-12-15?19:57??ConsoleApplication1\ConsoleApplication1.vcxproj
?????文件????????1503??2019-12-15?19:57??ConsoleApplication1\ConsoleApplication1.vcxproj.filters
?????文件?????????225??2019-12-15?19:57??ConsoleApplication1\ConsoleApplication1.vcxproj.user
?????目錄???????????0??2019-12-15?19:50??ConsoleApplication1\Debug\
?????目錄???????????0??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\
?????文件????????5940??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\CL.command.1.tlog
?????文件???????72730??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\CL.read.1.tlog
?????文件????????6474??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\CL.write.1.tlog
?????文件?????????215??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\ConsoleApplication1.lastbuildstate
?????文件????????2030??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\li
?????文件????????3564??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\li
?????文件????????1184??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\li
?????文件?????????320??2019-12-15?19:57??ConsoleApplication1\Debug\ConsoleApplication1.log
?????文件?????????861??2019-12-15?19:49??ConsoleApplication1\Debug\ConsoleApplication1.obj
............此處省略16個文件信息
- 上一篇:傳智掃地僧C提高課程講義
- 下一篇:數字電子技術基礎 第3版 資源
評論
共有 條評論