首页 > 试题广场 >

定义一个整数计算类Integer,实现短整数+、-、*、基

[问答题]

定义一个整数计算类Integer,实现短整数+、-、*、/基本算术运算。要求:可以进行数据范围检查(-32 768~32 767,或自行设定),数据溢出时显示错误信息并中断程序运行。

推荐
#include <iostream>
using namespace std;
class Integer
{
 private:
    short a;
  public:
Integer (short n=0){ a=n;}
    Integer operator +(Integer);
    Integer operator -(Integer);
    Integer operator *(Integer);
    Integer  operator /(Integer);
    Integer operator =(Integer);
    void display()
{ cout<<a<<endl; }
};
Integer Integer::operator+(Integer x)
{
 Integer temp;
  if(a+x.a<-32768||a+x.a>32767)
{ cout<<"Data overflow!"<<endl; abort(); }
  temp.a=a+x.a;
  return temp;
}
Integer Integer::operator-(Integer x)
{
 Integer temp;
if(a-x.a<-32768||a-x.a>32767)
{ cout<<"Data overflow!"<<endl; abort(); }
temp.a=a-x.a;
return temp;
}
Integer Integer::operator*(Integer x)
{
 Integer temp;
if(a*x.a<-32768||a*x.a>32767)
 {cout<<"Data overflow!"<<endl; abort();}
temp.a=a*x.a;
return temp;
}
Integer  Integer::operator/(Integer x)
{
 Integer temp;
 if(a/x.a<-32768||a/x.a>32767)
{ cout<<"Data overflow!"<<endl; abort(); }
 temp.a=a/x.a;
 return temp;
}
 Integer Integer::operator=(Integer x)
 {
 a=x.a;
       return *this;
 }
int main()
{
 Integer A(90),B(30),C;
cout<<"A=";A.display();
cout<<"B=";B.display();
C=A+B;
cout<<"C=A+B="; C.display();
C=A-B;
cout<<"C=A-B="; C.display();
C=A*B;
cout<<"C=A*B="; C.display();
C=A/B;
cout<<"C=A/B="; C.display();
}

发表于 2018-05-07 15:13:34 回复(0)