资源简介
【基本要求】
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版 资源
相关资源
- 传智扫地僧C提高课程讲义
- c++ 推箱子(带背景音乐小游戏源码)
- 课程信息VC操作Access数据库(实现增删
- 各种排序算法可视化.rar
- Effective C++第三版
- C++程序设计原理与实践附录
- C++Primer题解
- C++ Templates 2nd(c++模板)
- C++ 读取文件内容
- 高级程序设计 (C&C++)\\C++语言程序
- [新标准C++程序设计教程].郭炜.扫描版
- Effective C++ 3rd 中文版
- C++与数据结构(第四版)
- C++ Reference.chm
- C++ Crash Course A Fast-Paced Introduction.202
- Scott Meyers - Effective C++ 3rd Edition
-
Advanced C++ Programming st
yles and Idioms - 二叉树和森林之间的转换
- c++ 疫情传播仿真
- 在windows下实现neko
- C++ Primer Plus(第6版)中文版.epub
- 高质量c++编程指南.pdf7918
- VC++ 实现WIFI共享工具 源代码(无线承
- C++语言程序设计-郑莉-清华大学本科教
- 21天学通C++_第8版
- C++库函数(C++ LibraryFunctions + STL.chm)
- [C++入门经典(第3版)
- C++面向对象高效编程pdf
- C和C++代码精粹
- C语言经典编程282例
评论
共有 条评论