用c++来定义一个简单的银行类:
//编程实例:BankAccount类(简单版本)
#include <iostream>
using namespace std;
//定义银行账户的类:
class BankAccount
{
public:
void set(int dollars, int cents, double rate);
//后条件:将余额设为$dollars.cents,将利率设为百分之rate
void set(int dollers, double rate);
//后条件:将余额设为$dollers,将利率设为百分之rate
void update();
//后条件:将一年的单利添加到账户余额上
double get_balance();
//返回当前账户余额
double get_rate();
//将当前账户利率作为一个百分比返回
void output(ostream& outs);
//前条件:如果outs是一个文件输出流,那么outs已经连接到一个文件
//后条件:账户余额和利率写入outs流
private:
double balance;
double interest_rate;
double fraction(double perect);
//将百分比转换为小数,例如,fraction(50.3)返回0.503
};
int main()
{
BankAccount account1, account2;
cout << "Start of Test:\n";
account1.set(123, 99, 3.0);
cout << "account1 initial statement:\n";
account1.output(cout);
account1.set(100, 5.0);
cout << "account1 with new setup:\n";
account1.output(cout);
account1.update();
cout << "account1 after update:\n";
account1.output(cout);
account2 = account1;
cout << "account2:\n";
account2.output(cout);
return 0;
}
void BankAccount::set(int dollars, int cents, double rate)
{
if((dollars < 0) || (cents < 0) || (rate < 0))
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
balance = dollars + 0.01*cents;
interest_rate = rate;
}
void BankAccount::set(int dollars, double rate)
{
if((dollars < 0) || (rate < 0))
{
cout << "Illegal values for money or interest rate.\n";
exit(1);
}
balance = dollars;
interest_rate = rate;
}
void BankAccount::update()
{
balance = balance + fraction(interest_rate)*balance;
}
double BankAccount::fraction(double percent_value)
{
return(percent_value/100.00);
}
double BankAccount::get_balance()
{
return balance;
}
double BankAccount::get_rate()
{
return interest_rate;
}
//使用iostream:
void BankAccount::output(ostream& outs)
{
outs.setf(ios::fixed);
outs.setf(ios::showpoint);
outs.precision(2);
outs << "Account balance $ " << balance << endl;
outs << "Interest rate " << interest_rate << "%" <<endl;
}