资源简介
c++ 多功能计算器
代码片段和文件信息
#include“BigInt.h“
BigInt::BigInt()
{
digital[0]=0;
len=0; //当前大整数的长度
sign=0; //符号为正
isLegal=true;
}
BigInt::BigInt(qllong obj)
{
if(obj<0)
{sign=trueobj = -obj;}
else sign =false;
digital[0]=obj%base;len=0;
while(obj/=base)
{digital[++len] = obj%base;}
isLegal=true;
}
BigInt::BigInt(const BigInt &obj)
{
for(len=0sign=obj.sign;len<=obj.len;len++)
digital[len]=obj.digital[len];
len--;
isLegal=obj.isLegal;
}
BigInt& BigInt::operator =(const BigInt &obj)
{
for(len=0sign=obj.sign;len<=obj.len;len++)
digital[len]=obj.digital[len];
len--;
isLegal=obj.isLegal;
return *this;
}
BigInt& BigInt::operator = (QString qstr)
{
int i=0jk;
if(qstr[0]==‘-‘)
{sign=1;}
else
{
sign=0;
if(qstr[0]==‘+‘)
qstr.remove(01);
}
i=qstr.length();
for(i=i-baseLENk=0;i>=sign;i-=baseLEN++k)
{
for(j=0digital[k]=0;jseLEN;++j)
{
if(qstr[i+j]==‘ ‘)continue;
digital[k]=digital[k]*10+qstr[i+j].toLatin1()-‘0‘;
}
}
i+=baseLEN;
for(j=signdigital[k]=0;j {
if(qstr[j]==‘ ‘)continue;
digital[k]=digital[k]*10+qstr[j].toLatin1()-‘0‘;
}
if(i==sign)k--;
len=k;
isLegal=true;
return *this;
}
BigInt BigInt::operator +(const BigInt &obj)
{
BigInt sum;
if(obj.sign==sign)
{ //同号加;
int carry=0i;
for(i=0;i<=len && i <= obj.len;i++)
{
carry = carry +digital[i]+obj.digital[i];
sum.digital[i] = carry%base;
carry= carry/base;
}
for(;i<=len;i++)
{carry = carry + digital[i] sum.digital[i] = carry%base carry/=base;}
for(;i<=obj.len;i++)
{carry = carry +obj.digital[i] sum.digital[i] = carry%basecarry =carry/base;}
if(carry&&i else if(carry&&i==MAXN){isLegal=false;return *this;}
else sum.len=i-1;
sum.sign = sign;
return sum;
}
else
{ //异号变同号减法;
sum = obj;sum.sign= !sum.sign;
return *this-sum;
}
}
BigInt BigInt::operator +(int n)
{
if(n==0)
return *this;
if((sign==1&&n<0)||(sign==0&&n>0))
{
int tempcarry=0i=0;
if(n<0)n=-n;
BigInt sum;
if(len==0&&n>=base){digital[1]=0;}
do
{
temp=n%base;n/=base;
carry+=digital[i]+temp;
sum.digital[i]=carry%base;
carry= carry/base;
i++;
}while(n);
while(i<=len)
{
carry+=digital[i];
sum.digital[i]=carry%base;
carry=carry/base;
i++;
}
if(carry&&i else if(carry&&i==MAXN){isLegal=false;return *this;}
else sum.len=i-1;
sum.sign=sign;
return sum;
}
else
{
n=-n;
return *this-n;
}
}
BigInt BigInt::operator -(const BigInt &obj)
{
const BigInt *sub1*sub2;
BigInt quotient;
if(sign==obj.sign)
{ //同号减;
int i carry=0;
i = this->Cmp(obj1); //绝对值比较;
if(i==0)
return quotient; //返回一个零
el
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 739 2020-09-30 09:52 Calculator\.qmake.stash
文件 4634 2012-10-30 15:00 Calculator\about.ui
文件 15981 2017-12-20 23:03 Calculator\BigInt.cpp
文件 1967 2020-09-30 10:00 Calculator\BigInt.h
文件 16584 2020-09-30 10:45 Calculator\BigInt.o
文件 57994 2017-12-20 23:03 Calculator\Calc.cpp
文件 6179 2017-12-20 22:57 Calculator\Calc.h
文件 57736 2020-09-30 10:45 Calculator\Calc.o
文件 557788 2020-09-30 10:46 Calculator\Calculator
文件 40743 2012-12-18 13:13 Calculator\Calculator.cpp
文件 3302 2012-11-01 00:33 Calculator\Calculator.h
文件 220076 2020-09-30 10:46 Calculator\Calculator.o
文件 720 2017-12-20 22:56 Calculator\Calculator.pro
文件 43129 2020-09-30 10:46 Calculator\Calculator.pro.user
文件 28244 2012-12-18 19:56 Calculator\Calculator.pro.user.2.5pre1
文件 27169 2012-10-07 11:52 Calculator\Calculator.pro.user.2.6pre1
文件 23918 2020-09-30 09:51 Calculator\Calculator.pro.user.8155227.4.8-pre1
文件 155859 2012-11-17 22:56 Calculator\calculator.ui
文件 10104 2012-11-19 16:31 Calculator\ChildWindow.cpp
文件 1314 2012-11-01 00:35 Calculator\ChildWindow.h
文件 85960 2020-09-30 10:45 Calculator\ChildWindow.o
文件 35133 2012-12-12 21:33 Calculator\Chinese.qm
文件 119913 2012-12-12 21:34 Calculator\Chinese.ts
文件 6098 2012-11-10 19:22 Calculator\Complex.cpp
文件 1247 2012-11-10 19:22 Calculator\Complex.h
文件 10144 2020-09-30 10:45 Calculator\Complex.o
文件 14598 2012-12-18 13:13 Calculator\constant.ui
文件 8795 2012-11-10 16:59 Calculator\GeneticAlgorithm.cpp
文件 766 2012-11-10 16:47 Calculator\GeneticAlgorithm.h
文件 6240 2020-09-30 10:45 Calculator\GeneticAlgorithm.o
............此处省略61个文件信息
相关资源
- 计算机远程唤醒和关机
- crc16/32计算(crc16_32.c)
- 交互式计算机图形学 第六版 OpenGL源代
- C语言课设计算器
- 北京化工大学计算方法(C/C++)讲义
- 2015西北大学计算机复试回忆(附机试
- 西北大学2015年计算机网络复试真题回
- 密码学 重合指数计算(IC.cpp)
- 计算机数据采集卡编程
- 基于51单片机的简易计算器
- 深入理解计算机系统-复习-清华课件
- 计算机二级C语言真题.docx
- C++ SHA256加密计算
- 电力系统潮流计算-牛顿拉夫逊法
- QT 计算文件夹内所有代码行数
- 北邮高级计算机体系结构记分牌程序
- 银行计算机专业笔试题目+答案
- 多功能计算器实现C++代码以及代码详
- [BUPT]面向对象程序设计C++ - 平时作业
- 循环冗余校验码(CRC)计算源代码合
- 车站计算机联锁vc++6.0程序代码
- 通用弹道仿真计算程序(简版)V1.0
- C++简单计算器的实现
- C++ AMP 用Visual C++加速大规模并行计算
- 可以在单片机上计算的BP神经网络C语
- 潮流计算C++程序
- 计算机二级C语言机考题库
- vc++课程设计 让计算机来猜测用户“暗
- 东北大学考研计算机真题初试.rar
- 常用数值计算方法c++源代码实现
评论
共有 条评论