C#大学课程(第五版)课后习题10.5储蓄账户类
/*10.5
(储蓄账户类)创建一个SavingsAccount 类。,利用一个静态变量anaualInterestRate 来保存全部账户持有人的年利率。类的每一个对象都包含一个私有实例变量savingsBalance,表示该存款账户当前的存款余额。提供一个计算月利息的CalculateMonthlyInterest方法,方法是将savingsBalance与annualInterestRate 相乘并除以12,并将这个利息添加到savingsBalance 中。提供一个静态方法ModifyInterestRate将annualInterestRate 设置成一个新值。编写一个程序,测试这个SavingsAccount类。创建两个savingsAccount 对象 saver1和saver2,它们分别具有余额2000.00 美元和3000.00 美元。将annualInterestRate 设置成4%,然后计算月利息并为这两个账户显示新的余额。然后,将anaualInterestRate 设置成5%,计算下一个月的月利息并为这两个账户显示新的余额。
*/
using System;
public class SavingAccount
{
private static decimal annualInterestRate = 0M;
private decimal savingsBalance; // balance for current account
public SavingAccount( decimal balance )
{
savingsBalance = balance;
}
public void CalculateMonthlyInterest()
{
savingsBalance += savingsBalance * ( annualInterestRate / 12M );
}
public static void ModifyInterestRate( decimal newRate )
{
if ( newRate >= 0M && newRate <= 1M )
annualInterestRate = newRate;
else
throw new ArgumentOutOfRangeException( "annualInterestRate",
newRate, "interest rate must be in the range 0 to 1" );
}
public override string ToString()
{
return string.Format( "{0:C}", savingsBalance );
}
}
using System;
public class SavingAccountTest
{
public static void Main( string[] args )
{
SavingAccount saver1 = new SavingAccount( 2000M );
SavingAccount saver2 = new SavingAccount( 3000M );
SavingAccount.ModifyInterestRate( 0.04M );
Console.WriteLine( "Monthly balances for one year at .04" );
Console.WriteLine( "Balances:" );
Console.WriteLine( "{0,10}{1,10}{2,10}", string.Empty,
"Saver 1", "Saver 2" );
Console.WriteLine( "{0,-10}{1,10}{2,10}", "Base",
saver1.ToString(), saver2.ToString() );
for ( int month = 1; month <= 12; month++ )
{
string monthLabel = string.Format( "Month {0}:", month );
saver1.CalculateMonthlyInterest();
saver2.CalculateMonthlyInterest();
Console.WriteLine( "{0,-10}{1,10}{2,10}", monthLabel,
saver1.ToString(), saver2.ToString() );
}
SavingAccount.ModifyInterestRate( .05M );
saver1.CalculateMonthlyInterest();
saver2.CalculateMonthlyInterest();
Console.WriteLine( "\nAfter setting interest rate to .05" );
Console.WriteLine( "Balances:" );
Console.WriteLine( "{0,10}{1,10}{2,10}", string.Empty,
"Saver 1", "Saver 2" );
Console.WriteLine( "{0,-10}{1,10}{2,10}", "Month 13:",
saver1.ToString(), saver2.ToString() );
}
}

浙公网安备 33010602011771号