复习:银行账户管理器
本课属于 Coddy C# 学习旅程的“面向对象编程”单元。第 18 课,共 70 课。
挑战
简单让我们构建一个完整的银行账户管理系统,整合你学过的关于类架构的所有知识。你将创建一个 BankAccount 类,正确区分实例数据(每个账户独有)和静态数据(所有账户共享),并使用验证来确保账户始终处于有效状态。
你将创建两个文件来组织代码:
BankAccount.cs:在Banking命名空间中定义一个BankAccount类。你的账户应包含:- 一个
const字段MinimumBalance,值为100,这是所有账户必须维持的最低余额 - 一个
static字段InterestRate(decimal),初始值为0.03m,由所有账户共享 - 一个
static字段TotalAccounts(int),用于跟踪现有账户的数量 - 一个
readonly字段AccountNumber(string),在创建时设置一次,之后不能更改 - 一个私有的后备字段
_ownerName,以及一个设置时会去除空白字符的OwnerName属性 - 一个私有的后备字段
_balance,以及一个能防止余额低于MinimumBalance的Balance属性(如果有人尝试将余额设置得更低,就让它保持为MinimumBalance) - 一个接受账户号码、所有者姓名和初始余额的构造函数,并递增
TotalAccounts - 一个静态方法
SetInterestRate(decimal rate),用于更新所有账户共享的利率 - 一个
CalculateInterest()方法,返回余额乘以利率的结果
- 一个
Program.cs:在主文件中,使用输入值创建两个银行账户,更新利率,并显示账户信息和共享的银行数据。
你将收到 7 个输入:
- 第一个账户号码
- 第一个账户所有者姓名
- 第一个账户的初始余额
- 第二个账户号码
- 第二个账户所有者姓名
- 第二个账户的初始余额
- 新的利率(小数,例如
0.05)
请按以下格式输出:
--- Bank Summary ---
Interest Rate: {InterestRate}
Minimum Balance: {MinimumBalance}
Total Accounts: {TotalAccounts}
Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}
Account: {AccountNumber}
Owner: {OwnerName}
Balance: {Balance}
Interest Earned: {interest}例如,如果输入是 ACC001、 Alice Smith 、500、ACC002、Bob Jones、50 和 0.05,输出应为:
--- Bank Summary ---
Interest Rate: 0.05
Minimum Balance: 100
Total Accounts: 2
Account: ACC001
Owner: Alice Smith
Balance: 500
Interest Earned: 25.0
Account: ACC002
Owner: Bob Jones
Balance: 100
Interest Earned: 5.0注意,Alice 的姓名会去除多余空格,而 Bob 的余额会从 50 提高到最低余额 100。利息使用创建账户后设置的新利率 0.05 计算。
亲手试试
using System;
using Banking;
class Program
{
public static void Main(string[] args)
{
// 读取第一个账户的输入
string accountNumber1 = Console.ReadLine();
string ownerName1 = Console.ReadLine();
decimal balance1 = Convert.ToDecimal(Console.ReadLine());
// 读取第二个账户的输入
string accountNumber2 = Console.ReadLine();
string ownerName2 = Console.ReadLine();
decimal balance2 = Convert.ToDecimal(Console.ReadLine());
// 读取新的利率
decimal newRate = Convert.ToDecimal(Console.ReadLine());
// TODO:使用输入值创建两个 BankAccount 对象
// TODO:使用静态方法更新利率
// TODO:按要求的格式输出银行汇总信息
// --- Bank Summary ---
// Interest Rate: {InterestRate}
// Minimum Balance: {MinimumBalance}
// Total Accounts: {TotalAccounts}
// (空行)
// 账户:{AccountNumber}
// 户主:{OwnerName}
// 余额:{Balance}
// Interest Earned: {interest}
// (空行)
// 账户:{AccountNumber}
// 户主:{OwnerName}
// 余额:{Balance}
// Interest Earned: {interest}
}
}
面向对象编程中的所有课
自己练习: C# 在线编译器