int main()
{
AreaNum_t m_num;
int i;
m_num.Init(100,20,3);
for(i=0;i<30;i++)
{
m_num.Add();
printf("%d\n",m_num.Get());
}
for(i=0;i<30;i++)
{
m_num.Minus();
printf("%d\n",m_num.Get());
}
return 1;
}
typedef class AreaNum
{
public:
AreaNum(void);
void Init(int max,int min,int step);
void Add(void);
void Add(int value);
void Minus(void);
void Minus(int value);
int Get(void);
void SetMax(int max);
void SetMin(int min);
void SetStep(int step);
private:
int m_value;
int m_max;
int m_min;
int m_step;
}AreaNum_t;
AreaNum::AreaNum(void)
{
m_value=0;
m_max=0;
m_min=0;
m_step=1;
}
void AreaNum::Init(int max,int min,int step)
{
m_max=max;
m_min=min;
m_step=step;
m_value=m_min;
}
void AreaNum::Add(void)
{
m_value+=m_step;
if(m_value>m_max)
{
m_value=m_max;
}
}
void AreaNum::Add(int value)
{
m_value+=value;
if(m_value>m_max)
{
m_value=m_max;
}
}
void AreaNum::Minus(void)
{
m_value-=m_step;
if(m_value<m_min)
{
m_value=m_min;
}
}
void AreaNum::Minus(int value)
{
m_value-=value;
if(m_value<m_min)
{
m_value=m_min;
}
}
int AreaNum::Get(void)
{
return m_value;
}
void AreaNum::SetMax(int max)
{
m_max=max;
}
void AreaNum::SetMin(int min)
{
m_min=min;
}
void AreaNum::SetStep(int step)
{
m_step=step;
}