Files
Work/analytic/COUPON.CPP
2024-08-07 09:12:07 -04:00

93 lines
1.4 KiB
C++

#include <analytic/coupon.hpp>
Coupon::Coupon(void)
: mRate(0.00), mDecimalRate(0.00), mFrequency(Annual)
{
}
Coupon::Coupon(const Coupon &coupon)
{
*this=coupon;
}
Coupon::Coupon(double rate,Frequency frequency)
: mRate(rate), mDecimalRate(rate/100.00), mFrequency(frequency)
{
}
Coupon::~Coupon()
{
}
BOOL Coupon::operator==(const Coupon &coupon)const
{
return (rate()==coupon.rate()&&
frequency()==coupon.frequency());
}
BOOL Coupon::operator>(const Coupon &coupon)const
{
Coupon cpn(coupon);
cpn.frequency(frequency());
return rate()>cpn.rate();
}
BOOL Coupon::operator<(const Coupon &coupon)const
{
Coupon cpn(coupon);
cpn.frequency(frequency());
return rate()<cpn.rate();
}
Coupon &Coupon::operator=(const Coupon &coupon)
{
rate(coupon.rate());
frequency(coupon.frequency());
return *this;
}
double Coupon::rate(void)const
{
return mRate;
}
void Coupon::rate(double rate)
{
mRate=rate;
mDecimalRate=mRate/100.00;
}
double Coupon::decimalRate(void)const
{
return mDecimalRate;
}
Frequency Coupon::frequency(void)const
{
return mFrequency;
}
void Coupon::frequency(const Frequency &frequency)
{
mFrequency=frequency;
}
void Coupon::makeAnnual(void)
{
mRate*=(double)mFrequency;
mDecimalRate=mRate/100.00;
mFrequency=Annual;
}
void Coupon::makeSemiAnnual(void)
{
mRate*=(double(mFrequency)/double(SemiAnnual));
mDecimalRate=mRate/100.00;
mFrequency=SemiAnnual;
}