三角形_运算符重载/整数类_运算符重载

【三角形_运算符重载】
描述
定义三角形类,该类有两个私有的数据成员底和高。要求重载>,<,>=,<=,!=, == 6个运算符,能比较两个三角形面积的大小。编写主函数进行测试。

输入
两个三角形的底和高
输出
按照面积从小到大的顺序输出这两个三角形的面积(保留小数点后2位数)
样例输入
1 2
3 4
样例输出
1
6.00

#include
#include
using namespace std;
class tri
{
private:
    double d,h;
public:
    double s;
    tri(double dd,double hh)
    {
        d=dd;h=hh;
    }
    double area(double dd,double hh)
    {
        s=(d*h)/2;
        return s;
    }
    bool operator >(const tri&t)
    {
        if(s>t.s) return true;
        else return false;
    }
    bool operator < (const tri&t)
    {
        if(s<t.s) return true;
        else return false;
    }
     bool operator <= (const tri&t)
    {
        if(s<=t.s) return true;
        else return false;
    }
     bool operator >= (const tri&t)
    {
        if(s>=t.s) return true;
        else return false;
    }
     bool operator == (const tri&t)
    {
        if(s==t.s) return true;
        else return false;
    }
     bool operator != (const tri&t)
    {
        if(s!=t.s) return true;
        else return false;
    }
};
int main()
{
    double d1,d2,h1,h2;
    cin>>d1>>h1>>d2>>h2;
    tri T1(d1,h1);
    T1.area(d1,h1);
    tri T2(d2,h2);
    T2.area(d2,h2);
    if(T1.s<T2.s)
    {
        cout<<fixed<<setprecision(2)<<T1.s<<endl;
        cout<<fixed<<setprecision(2)<<T2.s<<endl;
    }
    if(T1.s>T2.s)
    {
        cout<<fixed<<setprecision(2)<<T2.s<<endl;
        cout<<fixed<<setprecision(2)<<T1.s<<endl;
    }
}

【整数类_运算符重载】
描述
在前面定义的整数类的基础上,重载+,-,*,/,支持数类型的相关运算(整数相除的结果依然是整数 )

输入
两个整数
输出
输出两个整数


乘积
整除
的值
样例输入
4 2
样例输出
6
2
8
2

#include
#include
using namespace std;
class integer
{
private:
    int x1,x2;

public:
    int y;
    integer(int xx1=0,int xx2=0)
    {
        x1=xx1;x2=xx2;
    }
    
    friend integer operator + (const integer&i1);
    friend integer operator - (const integer&i1);
    friend integer operator / (const integer&i1,const integer&i2);
    friend integer operator * (const integer&i1);
};

integer operator + (const integer&i1)
{
    return i1.x1+i1.x2;
}
integer operator - (const integer&i1)
{
    return i1.x1-i1.x2;
}
integer operator * (const integer&i1)
{
    return i1.x1*i1.x2;
}
integer operator / (const integer&i1,const integer&i2)
{
    return i1.x1/i1.x2;
}
int main()
{
    int x1,x2;
    cin>>x1>>x2;
    integer(x1,x2);
    cout<<(x1+x2)<<endl;
    cout<<(x1-x2)<<endl;
    cout<<(x1*x2)<<endl;
    cout<<(x1/x2)<<endl;

}

你可能感兴趣的:(openjudge)