C++简单角度类

来源:互联网 发布:国际期货软件 编辑:程序博客网 时间:2024/06/05 09:33

[代码] 角度类的定义与实现文件,Angle.h

01#include <string>
02using namespace std;
03const double pi=3.1415926;
04 
05class Angle
06{
07public:
08    enum Unit
09    {
10        degree,
11        radian
12    };
13private:
14    double value;
15    Unit unit;
16public:
17    Angle(double v=0,Unit u=degree);
18    double getValue();
19    Unit getUnit();
20    string getUnitName();
21    void setValue(double v);
22    void setUnit(Unit u);
23    void convertTo(Unit u);
24};
25 
26Angle::Angle(double v,Unit u)
27{
28    value=v;
29    unit=u;
30}
31 
32double Angle::getValue()
33{
34    return value;
35}
36 
37Angle::Unit Angle::getUnit()
38{
39    return unit;
40}
41 
42string Angle::getUnitName()
43{
44    string result;
45    switch(unit)
46    {
47    case degree:
48        result="degree";
49        break;
50    case radian:
51        result="radian";
52        break;
53    default:
54        result="wrong,undefined unit";
55        break;
56    }
57    return result;
58}
59 
60void Angle::setValue(double v)
61{
62    value=v;
63}
64 
65void Angle::setUnit(Unit u)
66{
67    unit=u;
68}
69 
70void Angle::convertTo(Unit u)
71{
72    if(unit!=u)
73    {
74        if(u==Unit::degree)
75        {
76            value*=180/pi;
77        }
78        else
79        {
80            value*=pi/180;
81        }
82    }
83}

[代码] 测试代码

01#include <iostream>
02#include "Angle.h"
03using namespace std;
04 
05int main()
06{
07    Angle a(180,Angle::degree);
08    cout<<a.getValue()<<endl;
09    a.convertTo(Angle::radian);
10    cout<<a.getValue()<<endl;
11    cout<<a.getUnitName()<<endl;
12 
13    return 0;
14}
原创粉丝点击