eins. Dieses System simuliert Bankbenutzer, die ATM -Maschinen verwenden, um ein Konto zu eröffnen, abfragen, einzuzahlen und Geld abzuheben, und erfordert, dass die Programmierung mithilfe der Java -Sprache implementiert wird.
veranschaulichen:
1. Für Dateneingabeausnahmen können Sie den Java -Ausnahmebereichmechanismus verwenden, um damit umzugehen.
2. Die Punktzahl wird so bewertet, dass die funktionale Implementierung mit der Normativität der Code kombiniert wird.
3. Wenn Sie Fragen zu Projektanforderungen haben, können Sie mich jederzeit kontaktieren, indem Sie eine QQ -Nachricht zur Beratung verlassen.
4. Während des Nationalfeiertags sind die Lehrer jeden Tag im Unternehmen im Dienst. Ich bin am 4. Oktober in der Firma im Dienst und gehe normalerweise am 7. Oktober zur Arbeit. Jeder ist herzlich eingeladen, zum Unternehmen zu kommen, um Projekte zu machen.
zwei. Projektfunktionale Anforderungen:
Das Projekt wird ausgeführt und zeigt das Hauptmenü mit:
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Zu diesem Zeitpunkt kann der Benutzer die Funktion auswählen, die er über die Tastatureingabe implementieren möchte. Wenn der Eingang nicht 0, 1, 2, 3, 4 ist, fordert das System auf:
Das von Ihnen ausgewählte Menü existiert nicht!
Bitte wählen Sie erneut aus:
Bitten Sie den Benutzer, die Daten für die Menüauswahl wieder einzutreten!
Wenn der Benutzer 0 eintritt, wird die Abfragefunktion eingegeben: Systemaufforderung:
************************************************************
Sie haben die Kontoöffnungsfunktion ausgewählt
Bitte geben Sie Ihren Namen ein:
Zu diesem Zeitpunkt muss der Benutzer seinen Namen eingeben. Nach Abschluss der Eingabe fordert das System auf:
Bitte geben Sie Ihre ID -Nummer ein:
Zu diesem Zeitpunkt muss der Benutzer die 18-stellige ID-Nummer eingeben. Wenn die Überprüfung fehlschlägt und eine fortgesetzte Eingabe erfordert, fordert das System auf:
Bitte geben Sie Ihr Passwort ein:
Zu diesem Zeitpunkt muss der Benutzer ein 6-stelliges reines digitales Passwort eingeben. Wenn die Überprüfung fehlschlägt und eine fortgesetzte Eingabe erfordert, fordert das System nach der Bestätigung der Überprüfung auf:
Die Kontoeröffnung war erfolgreich, danke, dass Sie es verwendet haben!
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Wenn der Benutzer 1 eintritt, wird die Abfragefunktion eingegeben: Systemaufforderung:
************************************************************
Sie haben die Abfragefunktion gewählt
Bitte geben Sie die Kartennummer ein, die Sie abfragen möchten:
Zu diesem Zeitpunkt muss der Benutzer die Abfragekartennummer eingeben, und das System überprüft die Kartennummer. Wenn die Kartennummer nicht vorhanden ist, fordert sie auf: Die von Ihnen eingegebene Kartennummer gibt es nicht. Bitte gehen Sie wieder ein:
Bitte geben Sie die Kartennummer ein, die Sie abfragen möchten:
Geben Sie die Kartennummer wieder ein. Wenn der Benutzer die richtige Kartennummer eingibt, lautet die Eingabeaufforderung:
Bitte geben Sie Ihr Passwort ein:
Zu diesem Zeitpunkt muss der Benutzer ein 6-stelliges reines digitales Passwort eingeben. Wenn die Überprüfung fehlschlägt und eine weitere Eingabe erfordert (bis zu dreimal), zeigt das System die aktuellen Benutzerkontoinformationen an und geben das Hauptmenü nach der Übergabe der Überprüfung ein:
Die Kontoinformationen, die Sie abfragen, lautet:
************************************************************
NAME ID -Kartennummer -Kartennummer Betrag
Zhang Sanfeng420106198410112062 111111 12800.0
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Wenn der Benutzer 2 eintritt, wird die Einzahlungsfunktion eingegeben: Systemaufforderung:
************************************************************
Ihre Wahl ist die Einzahlungsfunktion
Bitte geben Sie die Kartennummer ein, die Sie einzahlen möchten:
Zu diesem Zeitpunkt muss der Benutzer die Kartennummer der Einzahlung eingeben, und das System überprüft die Kartennummer. Wenn die Kartennummer nicht vorhanden ist, lautet die Eingabeaufforderung:
Die von Ihnen eingegebene Kartennummer existiert nicht. Bitte gehen Sie wieder ein:
Bitte geben Sie die Kartennummer ein, die Sie einzahlen möchten:
Geben Sie die Kartennummer wieder ein. Wenn der Benutzer die richtige Kartennummer eingibt, lautet die Eingabeaufforderung:
Bitte geben Sie Ihr Passwort ein:
Zu diesem Zeitpunkt muss der Benutzer ein 6-stelliges reines digitales Passwort eingeben. Wenn die Überprüfung fehlschlägt und eine weitere Eingabe erfordert (bis zu dreimal), zeigt das System die aktuellen Benutzerkontoinformationen an und geben das Hauptmenü nach der Übergabe der Überprüfung ein:
Die Kontoinformationen, die Sie einzahlen möchten, lautet:
************************************************************
NAME ID -Kartennummer -Kartennummer Betrag
Zhang Sanfeng420106198410112062 111111 12800.0
Bitte geben Sie den Betrag ein, den Sie einzahlen möchten:
Zu diesem Zeitpunkt muss der Benutzer den Einzahlungsbetrag eingeben, und das System beurteilt den Betrag. Wenn die Eingabedaten kleiner oder gleich 0 sind, wird sie aufgefordert:
Die von Ihnen eingegebenen Daten sind ungültig und das System wird automatisch beendet! Danke, dass du benutzt hast
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Wenn der Benutzer legal Daten eingibt, fordert das System auf, dass die Einzahlung erfolgreich ist, und kehrt zum Hauptmenü zurück:
Die Anzahlung war erfolgreich, danke, dass Sie sie benutzt haben!
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Die Daten werden in das Benutzerkonto eingelagert. Wenn der Benutzer die Daten erneut durchsucht, kann er den geänderten Kontobetrag sehen. (Hinweis: Dieses System verwendet Dateien für die Datenspeicherung. Wenn der Benutzer das Programm neu startet, werden die Daten aus der Datei gelesen und wieder in den Speicher initialisiert! Diese Funktion ist optional, Sie können sich auf die Serialisierung und Deserialisierung von Objekten oder JSON beziehen.)
Wenn der Benutzer 3 eintritt, wird die Auszahlungsfunktion eingegeben: Systemaufforderung:
************************************************************
Bitte geben Sie die Kartennummer ein, die Sie als Auszahlungsfunktion zurückziehen möchten:
Zu diesem Zeitpunkt muss der Benutzer die Kartennummer zum Auszug eingeben. Das System überprüft die Kartennummer. Wenn die Kartennummer nicht vorhanden ist, wird sie aufgefordert:
Die von Ihnen eingegebene Kartennummer existiert nicht. Bitte gehen Sie wieder ein:
Bitte geben Sie die Kartennummer ein, die Sie zurückziehen möchten:
Geben Sie die Kartennummer wieder ein. Wenn der Benutzer die richtige Kartennummer eingibt, lautet die Eingabeaufforderung:
Bitte geben Sie Ihr Passwort ein:
Zu diesem Zeitpunkt muss der Benutzer ein 6-stelliges reines digitales Passwort eingeben. Wenn die Überprüfung fehlschlägt und eine weitere Eingabe erfordert (bis zu dreimal), zeigt das System die aktuellen Benutzerkontoinformationen an und geben das Hauptmenü nach der Übergabe der Überprüfung ein:
Die Kontoinformationen, die Sie abheben möchten, lautet:
************************************************************
NAME ID -Kartennummer -Kartennummer Betrag
Zhang Sanfeng420106198410112062 111111 12800.0
Bitte geben Sie den Betrag ein, den Sie abheben möchten:
Zu diesem Zeitpunkt muss der Benutzer den Auszahlungsbetrag eingeben, und das System beurteilt den Betrag. Wenn die Eingabedaten weniger als 0 oder größer sind als der Gesamtbetrag des Kontos, lautet die Eingabeaufforderung:
Die von Ihnen eingegebenen Daten sind ungültig und das System wird automatisch beendet! Danke, dass du benutzt hast
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Wenn der Benutzer legal Daten eingibt, fordert das System auf, dass die Auszahlung erfolgreich ist, und kehrt zum Hauptmenü zurück:
Der Rückzug war erfolgreich, danke, dass Sie es benutzt haben!
Bank-Self-Service-Terminalsystem
************************************************************
0 .----- Öffnen Sie ein Konto
1.
2 .----- Einzahlung
3 .----- Rückzug
4 .------ Beenden
************************************************************
Bitte wählen Sie die Funktion, die Sie ausführen möchten:
Die Daten werden vom Benutzerkonto abgezogen. Wenn der Benutzer die Daten erneut durchsucht, kann er den geänderten Kontobetrag sehen.
Wenn der Benutzer 4 eintritt, wird das System beendet.
drei. Entwurfsanforderungen
(1) Paket eins: com.bank.unionPay bedeutet UnionPay, fügen Sie es unter dieses Paket hinzu:
Es repräsentiert die Schnittstelle zu einer Bankkarte, einschließlich abstrakter Methoden wie Abfragestell, Einzahlung, Auszahlung usw.
Es repräsentiert eine abstrakte Klasse, die die ATM -Maschine darstellt, die Objekte vom Typ Kartentyp als Attribute oder Parameter verwendet, Instanzmethoden wie Abfragestilanzen, Einlagen, Abhebungen usw. implementiert und die Kontoöffnung als abstrakte Methode hinzufügt.
Es repräsentiert die Aufzählungstypen der vier Hauptbanken: einschließlich ABC, ICBC, CCB und BOC; Es vertritt Agricultural Bank of China, Industrial and Commercial Bank of China, CCB und Bank of China.
(2) Paket 2: com.bank.abc repräsentiert die Agricultural Bank of China und füge sie unter dieses Paket hinzu:
Definieren Sie die Bankklasse in einem Singleton -Muster, einschließlich Attributen: Banktyp (Aufzählungstyp, Constant = ABC), Bankname (Zeichenfolge), Bankkartenliste (SET) usw.
Definieren Sie die Implementierungsklasse der Bankkarte - eine Sparkkarte, einschließlich Attribute: Banktyp (Aufzählungstyp = ABC), Name, ID -Nummer, Kartennummer, Passwort, Saldo; Implementieren Sie Methoden zum Abfragestell, Einzahlung, Auszahlung usw.
Definieren Sie die Unterklasse der ATM-Maschine, einschließlich Attribute: Banktyp (Aufzählungstyp, Constant = ABC). Implementieren Sie die Kontoöffnungsmethode, darunter: Nur eine Sparkarte kann geöffnet werden. Die Kartennummer ist eine 6-stellige Zufallszahl, die automatisch generiert wird. Die neu eröffnete Bankkarte wird der Bankkarte der Bank hinzugefügt.
Definieren Sie die Unterklasse der Sparkkarte - Kreditkarte, fügen Sie Attribute hinzu: Überziehungsgrenze, Schreiben Sie die Auszahlungsmethode neu und kontrollieren Sie den maximalen Abhebungsbetrag können nicht größer sein als die Summe der Saldo + Überziehungsgrenze.
(3) Paket 3: com.bank.test repräsentiert Tests, fügen Sie eine Testklasse mit Hauptmethode unter diesem Paket hinzu, um die Funktion simulierter ATM -Maschinen zu realisieren, die vom Projekt erforderlich sind.
Wählen Sie die folgenden Funktionen aus:
Implementieren Sie den ICBC im Einzelstaatmodus, fügen Sie standardmäßig mehrere Bankkarten zur Testklasse hinzu und implementieren Sie die Abfrage- und Einzahlungs- und Auszahlungsfunktionen auf der ATM-Maschine der Agrarbank.
Paket 1: com.bank.unionpay
1. BANK -KARTEN Zusammenfassung Klasse
Paket com.bank.unionpay; öffentliche Schnittstelle Yinhangka {public void cun (); public void qu (); public void getyu ();}2. Aufzählende Banktypen
package com.bank.unionpay;public enum Yinhang {ABC("Agricultural Bank"),ICBC("Industrial and Commercial"),CCB("CCB"),BOC("Bank of China");private final String yinhang;//Private construction method private Yinhang(String yinhang){this.yinhang=yinhang;}public String getname(){return this.yinhang;}}3. ATM -Klasse
Paket com.bank.unionpay; import com.bank.abc.yinhanglei; öffentliche abstrakte Klasse atm {private yinhanglei yhl; // Bankklassenattribut Private Double Yue; // Variable yuepublic double getyue () {return yue;} public void setyue (double yue) {this.yue = yue;} // Abfragemethode public void yue () {System.out.println ("Die Ausgleich auf der Karte ist:" +this.yue); cun){if(cun<0){System.out.println("Input is incorrect");}else{this.yue+=cun;System.out.println("Balance on the card is: "+this.yue);}}// Withdrawal method public void qu(double qu){if(qu>this.yue){System.out.println("Balance is unzureichend ");} else {this.yue- = qu; system.out.println (" Balance auf der Karte ist: "+this.yue);}} // Die abstrakte Methode der Eröffnung von Konto eröffnen öffentliche abstrakte void kaihu ();};4. Hauptschnittstellenklasse
Paket com.bank.unionpay; import Java.util.ArrayList; Import Java.util.List; Import Java.util.Scanner; öffentliche Klasse Zujiemian {public void zhujiemian () {System.out.println ("Bank Selbstversorgung Terminal terminal System "); System.out.println (); System.out.println (" ************************** "); System.out.println (); List <string> li = new ArrayList <string> (); li.Add (" Konto Eröffnung "); li.add (" Abfrage "); li.add (" depony "); li.add (" exit "); i = 0; i <5; i ++) {System.out.println (i+"------"+li.get (i));} System.out.println (); System.out.println ("*****************************************************************************************************************************************************************************). ausführen: ");}}Paket 2: com.bank.abc
1. ATM2 -Kontoeröffnungskategorie
Paket com.bank.abc; import Java.util.random; import Java.util.scanner; import com.bank.unionpay.atm; import com.bank.unionpay.yinhang; öffentliche Klasse ATM2 erweitert ATM {private yinhang yhl = yinhang.abc; @Overridepublic void kaihu () {// Kontoeröffnungsmethode // Geben Sie den Namen cuxuka cxk = new cuxuka (); try {scanner sc1 = new scanner (System.in); System.out.println ("Bitte geben Sie Ihren Namen ein:"); String st = sc1.next (); cxk.setname (ST); Ihre ID -Kartennummer: "); für (int ig = 0; ig> = 0; ig ++) {Scanner sc2 = neuer Scanner (System.in); String str = sc2.Nextline (); String String ST1 = "// d {15} | // d {17} [// dxx]"; if (str.Matches (st1)) {cxk.setshenfen (str); break;} else {system.out.println ("Die eingegebene ID-Nummer ist nicht die 18-Digit-ID-Nummer"}}} // Festlegen der Account-Password-System. Passwort: "); für (int ig = 0; ig> = 0; ig ++) {Scanner sc3 = neuer Scanner (System.in); String pass = sc3.Nextline (); String mm =" // d {6} "; if (pass.matches (mm)) {cxk.setpassword (pass); Passwort ");}} // generieren Sie eine 6-stellige Sparkkarte Random a = new random (); int [] ch = new int [6]; StringBuilder Str = new StringBuilder (); String s; für (int i = 0; i <6; i ++) {ch [i] = A.Nextint (9); C: ch) {str.append (c);} s = str.toString (); YinHanglei.getyinHanglei (). Map.put (cxk.getCard (), cxk); system.out.println ("Ihre neue Kartennummer ist:"+cxk.getCard ()); System.out.println ("Die Account -Öffnung ist erfolgreich, dankt Sie für die Verwendung von"). Falsch ");}}}2. Kategorie Sparkarten
Paket com.bank.abc; import Java.util.scanner; import com.bank.unionpay.yinhang; com.bank.unionpay.yinhangka; public class cuxuka implements yinhangka {// Save Card -Attribute private yinhang yinhang yinhang . getName () {return name;} public void setName (String name) {this.name = name;} public String getshenfen () {return shenfen;} public void setshenfen (string shenfen) {this.shenfen = shenfen; card;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public double getBalance() {return balance;}public void setBalance(double balance) {this.balance = balance;}//Deposit method @Overridepublic void cun() {Cuxuka cu1=new Cuxuka (); Cu1.Chaxun (); Scanner sc2 = neuer Scanner (System.in); System.out.println ("Bitte geben Sie den Betrag ein, den Sie einlegen möchten:"); double Cun = sc2.nextDouble (); // Implementieren Sie die Einzahlungsmethode, wenn (cun <0) {system.out.println ("Die Daten, die Sie eingelegt haben, werden Sie ausgezeichnet. Vielen Dank für die Verwendung von ");} else {this.balance+= cun; yinHanglei.getyinHanglei (). Map.get (cu1.card) .Setbalance (Balance); System.out.println (" Haftungsausschluss, verbleibend Betrag "+yinhanglei.getyinHanglei (). map.get (cu1.card) .getBalance ());}} // Abfragemethode public void chaxun () {while (true) {try {scanner sc = new scanner (system.in); s = sc.Nextline (); // Transf Die Kartensammlung von YinHanglei für (String temp: yinHanglei.getyinHanglei (). MAP.Keyset () {if (S.Equals (temp)) {this.card = s;}} if (s.equals (card) // card) // -karten nummer {int i int i = 0; Passwort: "); while (true) {scanner sc1 = new scanner (System.in); String st1 = sc1.nextline (); if (st1.equals (yinHanglei.getyinHanglei (). map.get (s) .getPassword ()) {system.println (" Die Kontinformationen, die Sie querieren, sind Abzüge. IS: "); System.out.println (); System.out.println (" ********************************************************************************************** Betrag "); System.out.println (); System.out.println (yinHanglei.getyinHanglei (). MAP.get (s)); break;} else {i ++; if (i == 3) {System.out.Out.println (" Passworteingangsfehler mehr als 3 mal "); Fehler ");}}}} else {System.out.println (" Bitte bestätigen Sie, ob die Kartennummer falsch eingegeben wird ";}}} catch (Ausnahme E) {System.out.println (" Eingabe ist falsch ");} Break;}} // Rückzugsmethode @Overridepublic void qu () {cuxuka cu = newal method operation @overridePublic void qu () {cuuka cu = newn method operation | Cuxuka (); Cu.Chaxun (); Scanner sc1 = neuer Scanner (System.in); System.out.println ("Bitte geben Sie den Betrag ein, den Sie zurückziehen möchten:"); Double qu = sc1.nextDouble (); // Implementieren Sie die Abzüchtungsmethode implementieren if (qu <balance) {this.balance- if (qu <0) {System.out.println ("Die von Ihnen eingegebenen Daten sind ungültig, das System wird automatisch beendet! Vielen Dank für die Verwendung ") ;;} else {System.out.println (" unzureichendes Gleichgewicht ");}}@oversidepublic void getyu () {// Balance -Berechnung cuxuka cu = new cuxuka ();3. Kategorie Singleton Model Banking
package com.bank.abc;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.bank.unionpay.Yinhang;public class Yinhanglei {//Bank class attribute private Yinhang yinhang=Yinhang.ABC;private String name;public List<String> list=new ArrayList<>();public Map<String, Cuxuka> map=new HashMap<>();//Private construction method private Yinhanglei() {super();}private static Yinhanglei bank=new Yinhanglei();public static Yinhanglei getYinhangLei(){return bank;}}4. Kategorie Kreditkarten
Paket com.bank.abc; public class xinyongka erweitert Cuxuka {// Konstruieren Sie Ihr eigenes Attribut privates Doppel -Touzhi; public double gettouzhi () {return touzhi;} public void void settouzhi (Double Touzhi) {this.touzhi = touzhi; Entzugsmethode if ((touzhi+getBalance ())> = qu) {System.out.println ("Overdraw-Betrag"+(qu-GetBalance ()) ;;} else {System.out.println ("kann nicht mehr als die maximale Überschreibung zurückziehen") ;;}}}}}}}}}}}Paket 3: com.bank.test
1. Testklasse
Paket com.bank.test; import java.util.arraylist; import Java.util.list; import Java.util.scanner; import com.bank.abc.atm2 import com.bank.abc.cuxuka; import Com.bank.unionpay.atm; args) {// Making der Hauptschnittstelle cuxuka cxk = new Cuxuka (); // Die Hauptschnittstellen -Schnittstelle Zujiemian zjm = neu zujiemian (); // Top An AUCTUR MECK EINE AUSBILDUNG {// eine tote Schleife für (int i = 0; i> = 0; in = sc.NextInt (); // verteidigen ATM2();atm2.kaihu();System.out.println("*********************************");System.out.println("You selected as the account opening function");System.out.println();continue;}//Query function if(in==1){System.out.println("******************************");System.out.println("You selected as the query function");cxk.chaxun();continue;}//Default function if(in ==2){System.out.println("*********************************");System.out.println("Your choice is the deposit function");cxk.cun();continue;}// Withdrawal function if(in==3){System.out.println("***************************");System.out.println("Your choice is the withdrawal function");cxk.qu();continue;}//Exit function if(in==4){System.out.println("Thanks for using! "); break;}} // drucken else {system.out.println (" Das von Ihnen ausgewählte Menü existiert nicht! ");}} // Ausnahme löscht Druck} catch (Ausnahme E) {System.out.println (" Eingabe ist falsch ");}}}}Ergebnis:
Das obige ist das vom Herausgeber eingeführte Java-Simuled-Self-Service-Terminalsystem. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!