Zusammenfassung - Bankkonto-Manager
Teil des Abschnitts Objektorientierte Programmierung der C#-Journey von Coddy — Lektion 18 von 70.
Aufgabe
EinfachLassen Sie uns ein vollständiges Bankkonten-Verwaltungssystem erstellen, das alles zusammenführt, was Sie über Klassenarchitektur gelernt haben. Sie werden eine BankAccount-Klasse erstellen, die ordnungsgemäß zwischen Instanzdaten (einzigartig für jedes Konto) und statischen Daten (gemeinsam für alle Konten genutzt) unterscheidet, während Validierungen verwendet werden, um die Konten in einem gültigen Zustand zu halten.
Sie werden zwei Dateien erstellen, um Ihren Code zu organisieren:
BankAccount.cs: Definieren Sie eineBankAccount-Klasse im NamespaceBanking. Ihr Konto sollte Folgendes enthalten:- Ein
const-FeldMinimumBalance, das auf100gesetzt ist – das Mindestguthaben, das alle Konten beibehalten müssen - Ein
static-FeldInterestRate(decimal), das bei0.03mbeginnt – gemeinsam von allen Konten genutzt - Ein
static-FeldTotalAccounts(int), das verfolgt, wie viele Konten existieren - Ein
readonly-FeldAccountNumber(string) – wird einmal bei der Erstellung gesetzt und nie geändert - Ein privates Backing-Feld
_ownerNamemit einer EigenschaftOwnerName, die beim Setzen Leerzeichen am Anfang und Ende entfernt (trims) - Ein privates Backing-Feld
_balancemit einer EigenschaftBalance, die verhindert, dass das Guthaben unterMinimumBalancefällt (wenn jemand versucht, es niedriger zu setzen, halten Sie es beiMinimumBalance) - Ein Konstruktor, der Kontonummer, Name des Eigentümers und Anfangsguthaben akzeptiert und
TotalAccountserhöht - Eine statische Methode
SetInterestRate(decimal rate), um den gemeinsamen Zinssatz zu aktualisieren - Eine Methode
CalculateInterest(), die das Guthaben multipliziert mit dem Zinssatz zurückgibt
- Ein
Program.cs: Erstellen Sie in Ihrer Hauptdatei zwei Bankkonten unter Verwendung von Eingabewerten, aktualisieren Sie den Zinssatz und zeigen Sie die Kontoinformationen zusammen mit den gemeinsamen Bankdaten an.
Sie erhalten sieben Eingaben:
- Erste Kontonummer
- Erster Name des Eigentümers
- Erstes Anfangsguthaben
- Zweite Kontonummer
- Zweiter Name des Eigentümers
- Zweites Anfangsguthaben
- Neuer Zinssatz (als Dezimalzahl wie
0.05)
Geben Sie die Ausgabe in diesem Format aus:
--- 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}Wenn die Eingaben beispielsweise ACC001, Alice Smith , 500, ACC002, Bob Jones, 50 und 0.05 sind, sollte die Ausgabe wie folgt aussehen:
--- 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.0Beachten Sie, wie Alices Name von zusätzlichen Leerzeichen befreit wird und Bobs Guthaben von 50 auf das Minimum von 100 angehoben wird. Die Zinsen werden mit dem aktualisierten Zinssatz von 0.05 berechnet, der nach der Erstellung der Konten festgelegt wurde.
Probier es selbst
using System;
using Banking;
class Program
{
public static void Main(string[] args)
{
// Eingaben für das erste Konto lesen
string accountNumber1 = Console.ReadLine();
string ownerName1 = Console.ReadLine();
decimal balance1 = Convert.ToDecimal(Console.ReadLine());
// Eingaben für das zweite Konto lesen
string accountNumber2 = Console.ReadLine();
string ownerName2 = Console.ReadLine();
decimal balance2 = Convert.ToDecimal(Console.ReadLine());
// Neuen Zinssatz lesen
decimal newRate = Convert.ToDecimal(Console.ReadLine());
// TODO: Zwei BankAccount-Objekte mit den Eingabewerten erstellen
// TODO: Den Zinssatz mithilfe der statischen Methode aktualisieren
// TODO: Die Bankzusammenfassung im erforderlichen Format ausgeben
// --- Bank Summary ---
// Interest Rate: {InterestRate}
// Minimum Balance: {MinimumBalance}
// Total Accounts: {TotalAccounts}
// (Leerzeile)
// Account: {AccountNumber}
// Owner: {OwnerName}
// Balance: {Balance}
// Interest Earned: {interest}
// (Leerzeile)
// Account: {AccountNumber}
// Owner: {OwnerName}
// Balance: {Balance}
// Interest Earned: {interest}
}
}
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienNamespaces & DirektivenEinführung in Klassen & ObjekteDas 'this'-SchlüsselwortMethoden und ParameterFelder vs. EigenschaftenKonstruktorenObjekt-InitialisiererZusammenfassung - Einfacher Taschenrechner4Vererbung
Grundlagen der Vererbung (:) SyntaxDas 'base'-SchlüsselwortVirtual & Override SchlüsselwörterVersiegelte KlassenDie 'object'-BasisklasseZusammenfassung – Mitarbeiter-Hierarchie7Fortgeschrittene Funktionen
OperatorüberladungIndexer (this[])ToString() überschreibenErweiterungsmethodenZusammenfassung - Benutzerdefinierte Liste2Eigenschaften & Statische Member
Automatisch implementierte EigenschaftenRead-Only- & Write-Only-EigenschaftenStatische Felder & MethodenStatische KlassenExpression-Bodied Member5Polymorphismus & Interfaces
Compile- vs. Runtime-PolymorphismusInterface vs. abstrakte KlasseMehrfache InterfacesExplizite InterfacesUpcasting & DowncastingRecap – Shape Calculator3Klassenarchitektur
Instanz- vs. statische Daten'readonly' & 'const' SchlüsselwörterBacking FieldsZusammenfassung - Bankkonto-Manager6Kapselung
ZugriffsmodifikatorenProperties zur KapselungImplementierung von Data HidingImmutability-MusterRückblick – Studierendendaten