Initial
This commit is contained in:
92
analytic/COUPON.CPP
Normal file
92
analytic/COUPON.CPP
Normal file
@@ -0,0 +1,92 @@
|
||||
#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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user