• 大小: 25.18M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-24
  • 语言: C/C++
  • 标签: c++  

资源简介

【基本要求】

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\link.command.1.tlog
     文件        3564  2019-12-15 19:57  ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\link.read.1.tlog
     文件        1184  2019-12-15 19:57  ConsoleApplication1\Debug\ConsoleA.9F0070BC.tlog\link.write.1.tlog
     文件         320  2019-12-15 19:57  ConsoleApplication1\Debug\ConsoleApplication1.log
     文件         861  2019-12-15 19:49  ConsoleApplication1\Debug\ConsoleApplication1.obj
............此处省略16个文件信息

评论

共有 条评论