Heim >Java >javaLernprogramm >Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

王林
王林nach vorne
2023-04-24 18:19:081867Durchsuche

1. Übersicht

(1) Themenauswahlanalyse

(2) Entwicklungsumgebung

Entwicklungsumgebung, wählen Sie IDEA, die Java-Entwicklungssoftware, basierend auf der JDK1.8-Version, um dieses ATM-Simulationsprogramm im lokalen Fenster zu entwickeln.

2. Programmentwurfsentwurf

(1) Funktionsmodulentwurf

Nach der Analyse des Themas ist dieses Geldautomatensimulationsprogramm in zwei Module unterteilt: Administratorseite und Benutzermodus. Unter anderem verfügt der Administrator über die Funktionen, alle Konten abzufragen, alle Kontoinformationen in Dateien zu exportieren und sich abzumelden. Das Benutzermodul verfügt über Funktionen wie Kontostandabfrage, Geldautomatenüberweisung, Geldautomateneinzahlung, Geldautomatenabhebung, Passwortänderung, Transaktionsdatensatzabfrage, Exportdatensatz, Kartenrückerstattung usw.

Das gesamte Funktionsmoduldiagramm des Systems sieht wie folgt aus:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

(2) Flussdiagramm

Der Gesamtprozess des Systems ist: Der Benutzer wählt über die Hauptschnittstelle die Administrator-Anmeldung oder die Benutzermodus-Anmeldung aus und gibt sie dann ein Das vom System festgelegte Kontopasswort. Rufen Sie nach erfolgreicher Anmeldung die entsprechende Hauptfunktionsseite auf, um entsprechende Vorgänge auszuführen.

Wenn sich der Administrator am Backend anmeldet, stellt er fest, ob das Passwort und die Kontonummer korrekt sind. Melden Sie sich an, andernfalls kommt es zu einem Fehler. Nach der Anmeldung im Hintergrund können Sie alle Benutzerfunktionen bedienen und einsehen. Anschließend fragt das System alle eingestellten Benutzerinformationen ab und gibt diese an das Konsolenpanel aus. Klicken Sie auf die Funktion „Datensatz exportieren“, um alle Kontoinformationen in eine TXT-Datei im selben Verzeichnis wie das aktuelle JAR-Programm auszugeben.

Wenn sich der Benutzer anmeldet, wird beurteilt, ob das Kontokennwort korrekt ist. Wenn die Anzahl der Kontofehler 3 erreicht, wird das Konto gesperrt und kann nicht angemeldet werden. Wenn das eingegebene Kontokennwort korrekt ist, wird festgestellt, ob das Konto gesperrt ist. Wenn nicht, melden Sie sich an, springen Sie zur Hauptoberfläche des Benutzers und führen Sie die entsprechenden Vorgänge aus.

Das Flussdiagramm des Administratormoduls lautet wie folgt:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Das Gesamtflussdiagramm des Benutzermoduls lautet wie folgt:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

(3) Design der Dateistruktur und Klassen

Dieses ATM-Simulationsprogramm wird mithilfe einer Ideenbearbeitungssoftware entwickelt. Das Projekt ist in drei Pakete unterteilt: admin (Administrator), Kunde (Benutzer) und Daten (ATM-Daten).

Die AdminManage-Klasse ist unter dem Admin-Paket geschrieben, das für die Initialisierung der Administratorschnittstelle und die Realisierung aller Funktionen des Administrators verantwortlich ist. Die Kundenklasse unter dem Kundenpaket implementiert die Benutzermodulschnittstelle, definiert relevante Bedienschaltflächen und implementiert entsprechende Überwachungsfunktionen. Um das Schnittstellendesign zu reduzieren, wird in der Mitte der Benutzeroberfläche ein Ausgabeinformationsfeld verwendet, sodass die Funktion Die Ergebnisse werden im Panel ausgedruckt und simulieren die Schnittstelleninformationen des Geldautomaten.

Im Datenpaket gibt es die Klassen ATMData, Card und CustomerAccount. Die Card-Klasse ist die Codedarstellung der Bankkarte des Benutzers. Sie kapselt die relevanten Informationen der Bankkarte in ein grundlegendes Java-Objekt, das den objektorientierten Eigenschaften von Java entspricht. Darunter ist customerAccount eine Unterklasse der Kartenklasse. Basierend auf der Karte werden viele Benutzerverhalten hinzugefügt, wie z. B. Einzahlungen, Abhebungen, Kontostandsabfragen usw. Die ATMData-Klasse ist eine sehr wichtige Klasse für dieses Programm. Sie kapselt alle anfänglichen Kontoinformationen dieses Programms sowie Vorgänge wie Übertragung, Abrufen aller Konten und Anmelden. Dieses Design kann Datenverarbeitung und Schnittstellendesign trennen und so zu viel und langen Benutzeroberflächencode vermeiden.

Die Dateistruktur ist wie unten dargestellt, in der die von diesem Programm benötigten Bildinformationen im Ressourcenordner gespeichert sind:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

3. Detaillierter Entwurf des Programms

Die Funktionsmodule dieses Systems sind nicht eingeschrieben Details hier, aber einige der wichtigsten werden hier aufgelistet Funktionsbeschreibung:

(1) Auszahlungsfunktion

Der Code für die Auszahlungsfunktion ist in der customerAccount-Klasse entworfen und der eingehende Parameter ist der Auszahlungsbetrag. Bestimmen Sie zunächst, ob der Betrag ein Vielfaches von 100 ist, bestimmen Sie dann, ob er größer als 5.000 ist (die Frage erfordert, dass eine einzelne Auszahlung nicht größer als 5.000 sein darf) und bestimmen Sie dann, ob der Saldo des Girokontos größer oder gleich ist der erhaltene Betrag. Nachdem diese Bedingungen erfüllt sind, wird der Betrag des Girokontos neu berechnet und der Auszahlungsdatensatz zum Transaktionsdatensatz des Girokontos hinzugefügt.

Die Kerncodelogik lautet wie folgt:

if (money % 100 != 0) {
     return false;
}
if (money > 5000) {
  return false;
}
int currentMoney = getMoney();
if (currentMoney < money) {
  return false;
}
//取款
int result = currentMoney - money;
setMoney(result);
//添加交易记录
List<String> operationRecod = getOperationRecod();
operationRecod.add("【" + LocalDateTime.now().format(dateTimeFormatter) + "】 ATM 取款 [" + money + "]元,当前余额[" + result + "]元");

(2) Einzahlungsfunktion

Der Parameter dieser Methode ist der Einzahlungsbetrag. Stellen Sie zunächst fest, ob der Betrag ein Vielfaches von 100 ist. Wenn die Überprüfung erfolgreich ist, führen Sie eine Neuberechnung durch Berechnen Sie den Saldo des Girokontos und fügen Sie dann den Transaktionsdatensatz zum Girokonto hinzu.

Die Kerncodelogik lautet wie folgt:

 if (money % 100 != 0) {
 	return false;
}
//余额
int countMoney = getMoney() + money;
setMoney(countMoney);
//记录交易记录
List<String> operationRecod = getOperationRecod();
operationRecod.add("【" + LocalDateTime.now().format(dateTimeFormatter) + "】 ATM 存款 [" + money + "]元,当前余额[" + countMoney + "]元");
return true;

(3) Benutzeranmeldefunktion

Die Eingabeparameter der Benutzeranmeldemethode sind Konto und Passwort. Stellen Sie zunächst fest, ob das Konto vorhanden ist, und stimmen Sie alle von der Benutzeranmeldemethode festgelegten Konten ab Wenn nicht, schlägt es fehl. Wenn dies der Fall ist, wird beurteilt, ob das Konto gesperrt ist. Wenn es nicht gesperrt ist, wird beurteilt, ob das Passwort korrekt ist im aktuellen Konto beträgt +1 (wenn die Anzahl der Kontofehler = 3 ist, wird das Konto gesperrt). Wenn das Passwort korrekt ist, ist die Anmeldung erfolgreich und Sie werden zur Hauptoberfläche weitergeleitet.

Der Kerncode lautet wie folgt:

//Existiert ein Konto?

if (allAccount.containsKey(number)) {
  CustomerAccount account = allAccount.get(number);
  //判断账号是否被锁定
  if (account.getErrorCount() >= 3) {
    JOptionPane.showMessageDialog(null, "登录失败!该账号疑似已被锁定", "提示消息", JOptionPane.WARNING_MESSAGE);
    return null;
    //密码是否一致
  } else if (account.getPassword().equals(pwd)) {
    //重置错误次数
    account.setErrorCount(0);
    return account;
  }
  account.setErrorCount(account.getErrorCount() + 1);
  if (account.getErrorCount() >= 3) {
   //锁定账户
    account.setStatus(1);
  }
} else {
   //提示错误消息
  JOptionPane.showMessageDialog(null, "登录失败!卡号或密码错误", "提示消息", JOptionPane.WARNING_MESSAGE);
}

4. Programmdemonstration

Es gibt viele Funktionen, daher werde ich sie hier nicht einzeln aufzeichnen. Hier werden nur Tests für mehrere Hauptfunktionen erfasst.

(1) Abhebung am Geldautomaten

Testen Sie die Auszahlungsfunktion wie im Bild unten gezeigt. Der anfängliche Betrag beträgt 10.000 Yuan. Heben Sie jeweils 3000, 6000 und 5000 ab. Die letzten beiden sind Fehlerdaten. Eine einzelne Auszahlung darf 5.000 Yuan nicht überschreiten. Wenn der Restbetrag später 3.000 beträgt, werden 5.000 Yuan abgehoben. Die Testabhebungsfunktion kann nicht überzogen werden.

Testergebnisse:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Es ist ersichtlich, dass die Funktion normal ist und die Ergebnisse der Tests zur Eingabe legaler und illegaler Daten den Erwartungen entsprechen.

(2) Geldautomatenüberweisung

Übertragungstest, das Zielkonto muss vorhanden sein und der Saldo muss größer sein als der zu überweisende Betrag, und eine Überziehung ist nicht zulässig. Die Testdaten bestehen darin, ein nicht vorhandenes Konto und einen Überweisungsbetrag einzugeben, der größer als der aktuelle Kontostand ist.

Geben Sie ein nicht vorhandenes Konto ein und die Testergebnisse lauten wie folgt:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Geben Sie ein normales Konto und einen normalen Betrag ein. Melden Sie sich zu diesem Zeitpunkt beim Zielkonto an und überprüfen Sie die Transaktionsaufzeichnungen um zu sehen, dass die Überweisung erfolgreich das Zielkonto erreicht hat.

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Geben Sie falsche Daten ein, die größer als der aktuelle Saldo sind. Die Testergebnisse sind wie folgt. Es ist ersichtlich, dass der Übertragungsfunktionstest normal ist.

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

(3) Passwort ändern

Um das Passwort zu ändern, müssen Sie das ursprüngliche Passwort eingeben. Wenn es identisch ist, kann es geändert werden. Das neue Passwort muss länger als 6 Zeichen sein und die 6 Zeichen dürfen nicht genau gleich sein. Das beim dritten Mal eingegebene Passwort dient der Bestätigung des neuen Passworts und muss mit dem beim zweiten Mal eingegebenen Passwort identisch sein.

Die ursprünglichen Passwörter lauten alle 123456 und die eingegebenen falschen Daten lauten 111111. Die Testergebnisse lauten wie folgt:

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Die Testergebnisse bei der Eingabe von Daten mit weniger als 6 Ziffern und der korrekten Eingabe normaler Daten lauten wie folgt :

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Schritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java

Das obige ist der detaillierte Inhalt vonSchritte und Codebeispiele zur Implementierung eines ATM-Simulationssystems in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen