请设计角度类 ANGLE,实现角度的输入、输出和加法运算。

本文介绍了如何在C++中创建一个名为ANGLE的类,用于处理角度的输入、输出以及加法操作,展示了类的构造函数、成员变量和自定义运算符等关键部分。

编译器:C++ (g++)

输入样例

16 28 57

32 49 15

输出样例

49 18 12
 

#include  <iostream>
#include  <iomanip>
using  namespace  std;

/*  你提交的代码将被嵌在这里  */
int  main()
{
        ANGLE  a,  b,  c;
        a.Input();
        b.Input();
        c  =  a.Add(b);
        c.Output();
        cout  <<  endl;
        return  0;
}

Ans:

class ANGLE {
private:
    int deg;
    int min;
    int sec;

public:
    ANGLE(int d, int m, int s) :deg(d), min(m), sec(s) {};
    ANGLE() :deg(0), min(0), sec(0) {};

    void Input() {
        cin >> deg >> min >> sec;
    }

    void Output() {
        cout << deg << " " << min << " " << sec << endl;
    }

    ANGLE& Add(ANGLE a) {
        sec += a.sec;
        if (sec > 59) {
            sec = sec % 60;
            min++;
            if (min > 59) {
                min = min % 60;
                deg++;
            }
        }
        min += a.min;
        if (min > 59) {
            min = min % 60;
            deg++;
        }
        deg += a.deg;
        return *this;
    }

    /*ANGLE& operator=(const ANGLE& a) {
        sec = a.sec;
        min = a.min;
        deg = a.min;
        return *this;
    }*/


};

#include <iostream> #include <string> using namespace std; struct CPoint { int x ; int y ; }; class CRectangle { private: const int id;//常量数据成员 static int total;//静态数据成员 const static string sclass; const static int f=1.0f; CPoint lefttop ; CPoint rightdown ; public: CRectangle( ); CRectangle( CPoint& lt, CPoint& rd ); CPoint GetLefttop() const { return lefttop; } CPoint GetRightdown() const { return rightdown; } void SetLefttop(CPoint & pt) { lefttop=pt; } void SetRightdown(CPoint & pt) { rightdown=pt; } int Getid() const { return id; } static int Gettotal() { return total; } int Area( ) const; int Perimeter( ) const; }; int CRectangle::total=0;//静态数据成员必须在的外部定义(正好一次)。 const string CRectangle::sclass="CRectangle"; CRectangle::CRectangle( ):id(++total) { lefttop.x=0; lefttop.y=0; rightdown.x=1; rightdown.y=1; } CRectangle::CRectangle( CPoint& lt, CPoint& rd ):id(++total) { lefttop = lt ; rightdown = rd ; } int CRectangle::Area( ) const { int wd= rightdown.x - lefttop.x ; int ht= rightdown.y - lefttop.y ; return wd * ht ; } int CRectangle::Perimeter( ) const { int wd= rightdown.x - lefttop.x ; int ht= rightdown.y - lefttop.y ; return 2 * ( wd + ht ) ; } int main() { CPoint lt, rd; cin >> lt.x >> lt.y; cin >> rd.x >> rd.y; CRectangle crt(lt,rd);//调用有参构造函数 CRectangle crt2;//调用默认构造函数 //创建常量对象 const CRectangle crt3(lt,rd); cout<<"当前创建的矩形个数为:"; cout<<CRectangle::Gettotal()<<endl; //返回矩形的左上右下点 CPoint lt1=crt.GetLefttop(); CPoint lt2=crt.GetRightdown(); //显示矩形的坐标 cout<<crt.Getid()<<"号矩形的坐标是:"<<"("<<lt1.x<<","<<lt1.y<<"), "; cout<<"("<<lt2.x<<","<<lt2.y<<")"<<endl; //显示矩形的面积周长 cout << "Area:"<<crt.Area( )<<endl; cout <<"Perimeter:"<<crt.Perimeter( )<<endl; //修改矩形的左上角点 cout<<"输入矩形新的左上点坐标:"; cin>> lt.x>>lt.y; crt.SetLefttop(lt); lt1=crt.GetLefttop(); //显示修改后矩形的坐标 cout<<"矩形的坐标是:"<<"("<<lt1.x<<","<<lt1.y<<"), "; cout<<"("<<lt2.x<<","<<lt2.y<<")"<<endl; //显示修改后矩形的面积周长 cout << "Area:"<<crt.Area( )<<endl; cout <<"Perimeter:"<<crt.Perimeter( )<<endl; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值