satu. Sistem ini mensimulasikan pengguna bank menggunakan mesin ATM untuk membuka akun, meminta, menyetor, dan menarik uang, dan mengharuskan pemrograman untuk dilaksanakan menggunakan bahasa Java.
menjelaskan:
1. Untuk pengecualian input data, Anda dapat menggunakan mekanisme penanganan pengecualian Java untuk menanganinya.
2. Skor akan dievaluasi dengan cara yang menggabungkan implementasi fungsional dengan normatif kode.
3. Jika Anda memiliki pertanyaan tentang persyaratan proyek, Anda dapat menghubungi saya kapan saja dengan meninggalkan pesan QQ untuk konsultasi.
4. Selama liburan Hari Nasional, para guru bertugas di perusahaan setiap hari. Saya bertugas di perusahaan pada tanggal 4 Oktober dan saya pergi bekerja secara normal pada 7 Oktober. Semua orang dipersilakan untuk datang ke perusahaan untuk melakukan proyek.
dua. Persyaratan Fungsional Proyek:
Proyek mulai berjalan dan menampilkan menu utama sebagai:
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Pada saat ini, pengguna dapat memilih fungsi yang ingin ia terapkan melalui input keyboard. Jika inputnya bukan 0, 1, 2, 3, 4, sistem meminta:
Menu yang Anda pilih tidak ada!
Harap pilih kembali:
Minta pengguna untuk memasukkan kembali data untuk pemilihan menu!
Ketika pengguna masuk 0, fungsi kueri akan dimasukkan: prompt sistem:
**********************************
Anda memilih fungsi pembukaan akun
Harap masukkan nama Anda:
Pada saat ini, pengguna perlu memasukkan namanya. Setelah input selesai, sistem meminta:
Harap masukkan nomor ID Anda:
Pada saat ini, pengguna perlu memasukkan nomor ID 18 digit. Jika verifikasi gagal dan membutuhkan input lanjutan, sistem meminta:
Harap masukkan kata sandi Anda:
Pada saat ini, pengguna perlu memasukkan kata sandi digital murni 6 digit. Jika verifikasi gagal dan membutuhkan input lanjutan, sistem meminta setelah verifikasi dilewati:
Pembukaan akun berhasil, terima kasih telah menggunakannya!
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Ketika pengguna masuk 1, fungsi kueri akan dimasukkan: prompt sistem:
**********************************
Anda memilih fungsi kueri
Harap masukkan nomor kartu yang ingin Anda minta:
Pada saat ini, pengguna perlu memasukkan nomor kartu kueri, dan sistem akan memeriksa nomor kartu. Jika nomor kartu tidak ada, itu akan meminta: nomor kartu yang Anda masukkan tidak ada, mohon masukkan kembali:
Harap masukkan nomor kartu yang ingin Anda minta:
Masukkan kembali nomor kartu. Ketika pengguna memasukkan nomor kartu yang benar, prompt adalah:
Harap masukkan kata sandi Anda:
Pada saat ini, pengguna perlu memasukkan kata sandi digital murni 6 digit. Jika verifikasi gagal dan membutuhkan input lanjutan (hingga 3 kali), sistem akan menampilkan informasi akun pengguna saat ini dan memasukkan menu utama setelah verifikasi dilewati:
Informasi akun yang Anda minta adalah:
**********************************
Nama Nomor Kartu ID Jumlah Nomor Kartu
Zhang Sanfeng420106198410112062 111111 12800.0
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Ketika pengguna masuk 2, fungsi setoran akan dimasukkan: prompt sistem:
**********************************
Pilihan Anda adalah fungsi setoran
Harap masukkan nomor kartu yang ingin Anda setor:
Pada saat ini, pengguna perlu memasukkan nomor kartu setoran, dan sistem akan memeriksa nomor kartu. Jika nomor kartu tidak ada, prompt adalah:
Nomor kartu yang Anda masukkan tidak ada, mohon masukkan kembali:
Harap masukkan nomor kartu yang ingin Anda setor:
Masukkan kembali nomor kartu. Ketika pengguna memasukkan nomor kartu yang benar, prompt adalah:
Harap masukkan kata sandi Anda:
Pada saat ini, pengguna perlu memasukkan kata sandi digital murni 6 digit. Jika verifikasi gagal dan membutuhkan input lanjutan (hingga 3 kali), sistem akan menampilkan informasi akun pengguna saat ini dan memasukkan menu utama setelah verifikasi dilewati:
Informasi akun yang ingin Anda setor adalah:
**********************************
Nama Nomor Kartu ID Jumlah Nomor Kartu
Zhang Sanfeng420106198410112062 111111 12800.0
Harap masukkan jumlah yang ingin Anda setor:
Pada saat ini, pengguna diharuskan memasukkan jumlah setoran, dan sistem akan menilai jumlahnya. Jika data input kurang dari atau sama dengan 0, itu akan diminta:
Data yang Anda masukkan tidak valid dan sistem akan secara otomatis keluar! Terima kasih telah menggunakannya
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Jika pengguna memasukkan data secara legal, sistem meminta setoran berhasil dan kembali ke menu utama:
Setoran berhasil, terima kasih telah menggunakannya!
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Data akan disimpan ke akun pengguna. Jika pengguna mencari data lagi, ia dapat melihat jumlah akun yang diubah. (Catatan: Sistem ini menggunakan file untuk penyimpanan data, jadi jika pengguna memulai kembali program, data akan dibaca dari file dan diinisialisasi ulang ke memori! Fungsi ini opsional, Anda dapat merujuk pada serialisasi dan deserialisasi objek atau JSON)
Ketika pengguna masuk 3, fungsi penarikan akan dimasukkan: Sistem prompt:
**********************************
Harap masukkan nomor kartu yang ingin Anda tarik sebagai fungsi penarikan:
Saat ini, pengguna perlu memasukkan nomor kartu untuk penarikan. Sistem akan memeriksa nomor kartu. Jika nomor kartu tidak ada, itu akan diminta:
Nomor kartu yang Anda masukkan tidak ada, mohon masukkan kembali:
Harap masukkan nomor kartu yang ingin Anda tarik:
Masukkan kembali nomor kartu. Ketika pengguna memasukkan nomor kartu yang benar, prompt adalah:
Harap masukkan kata sandi Anda:
Pada saat ini, pengguna perlu memasukkan kata sandi digital murni 6 digit. Jika verifikasi gagal dan membutuhkan input lanjutan (hingga 3 kali), sistem akan menampilkan informasi akun pengguna saat ini dan memasukkan menu utama setelah verifikasi dilewati:
Informasi akun yang ingin Anda tarik adalah:
**********************************
Nama Nomor Kartu ID Jumlah Nomor Kartu
Zhang Sanfeng420106198410112062 111111 12800.0
Harap masukkan jumlah yang ingin Anda tarik:
Pada saat ini, pengguna diharuskan memasukkan jumlah penarikan, dan sistem akan menilai jumlahnya. Jika data input kurang dari 0 atau lebih besar dari jumlah total akun, prompt adalah:
Data yang Anda masukkan tidak valid dan sistem akan secara otomatis keluar! Terima kasih telah menggunakannya
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Jika pengguna memasukkan data secara legal, sistem meminta penarikan berhasil dan kembali ke menu utama:
Penarikan itu berhasil, terima kasih telah menggunakannya!
Sistem terminal swalayan bank
**********************************
0 .----- Buka akun
1 .-----------------------------------------------------------------------------------------------------------------------
2 .----- Setoran
3 .----- Penarikan
4 .------ Keluar
**********************************
Pilih fungsi yang ingin Anda lakukan:
Data akan dikurangkan dari akun pengguna. Jika pengguna mencari data lagi, ia dapat melihat jumlah akun yang diubah.
Ketika pengguna masuk 4, sistem akan keluar.
tiga. Persyaratan Desain
(1) Paket satu: com.bank.unionpay berarti UnionPay, tambahkan di bawah paket ini:
Ini mewakili antarmuka ke kartu bank, termasuk metode abstrak seperti saldo kueri, setoran, penarikan, dll.
Ini mewakili kelas abstrak yang mewakili mesin ATM, menggunakan objek tipe kartu bank sebagai atribut atau parameter, mengimplementasikan metode instan seperti saldo kueri, deposito, penarikan, dll., Dan menambahkan pembukaan akun sebagai metode abstrak.
Ini mewakili jenis enumerasi dari empat bank besar: termasuk ABC, ICBC, CCB, dan BOC; Ini mewakili Bank Pertanian Tiongkok, Industri dan Komersial Bank Tiongkok, CCB, dan Bank China masing -masing.
(2) Paket 2: com.bank.ABC mewakili Bank Pertanian Tiongkok, tambahkan di bawah paket ini:
Tentukan kelas bank dalam pola singleton, termasuk atribut: tipe bank (jenis enumerasi, konstanta = ABC), nama bank (string), daftar kartu bank (set), dll.
Tentukan kelas implementasi kartu bank - kartu tabungan, termasuk atribut: tipe bank (tipe enumerasi = ABC), nama, nomor ID, nomor kartu, kata sandi, saldo; Menerapkan metode untuk menanyakan saldo, setoran, penarikan, dll.
Tentukan subkelas mesin ATM, termasuk atribut: tipe bank (tipe enumerasi, konstanta = ABC), mengimplementasikan metode pembukaan akun, di antaranya: hanya kartu tabungan yang dapat dibuka, nomor kartu adalah nomor acak 6 digit, yang secara otomatis dihasilkan. Kartu bank yang baru dibuka ditambahkan ke daftar kartu bank bank.
Tentukan subkelas kartu tabungan - kartu kredit, tambahkan atribut: batas cerukan, tulis ulang metode penarikan, dan mengontrol jumlah penarikan maksimum tidak boleh lebih besar dari jumlah batas saldo + overdraft.
(3) Paket 3: com.bank.test mewakili pengujian, tambahkan kelas uji dengan metode utama di bawah paket ini untuk mewujudkan fungsi mesin ATM yang disimulasikan yang diperlukan oleh proyek.
Pilih fungsi berikut:
Menerapkan ICBC dalam mode satu negara bagian, tambahkan beberapa kartu bank ke kelas pengujian secara default, dan mengimplementasikan permintaan lintas bank dan fungsi setoran dan penarikan pada mesin ATM Bank Pertanian.
Paket 1: com.bank.unionpay
1. Kelas Abstrak Kartu Bank
Paket com.bank.unionpay; antarmuka publik yinhangka {public void cun (); public void qu (); public void getYu ();}2. Hitung Jenis Bank
Paket com.bank.unionpay; public enum yinhang {abc ("Bank Pertanian"), ICBC ("Industri dan Komersial"), CCB ("CCB"), BOC ("Bank of China"); String Final Yinhang; // Metode Konstruksi Pribadi Yinhang (String Yinhang) {ini. this.yinhang;}}3. Kelas ATM
Paket com.bank.unionpay; import com.bank.abc.yinhangli; kelas abstrak publik atm {private yinhangliei yhl; // Atribut Kelas Bank Private Double Yue; // variabel yuepublic getyue ganda () {return yue;} public void setyue (double yue) {this.yue = yue;} // Metode kueri public void yue () {System.out.println ("Balance pada kartu adalah:" +this.yue);}//Default Metode Public void pada kartu adalah: " +this.yue);}//Default Metode Public Void adalah: Double (" +this.yue);}//Default Metode Public Void adalah: Double (" +this.yue);}//Default Metode Public void cun) {if (cun <0) {System.out.println ("Input tidak benar");} else {this.yue+= cun; System.out.println ("Balance pada kartu adalah:"+ini. tidak cukup ");} else {this.yue- = qu; System.out.println (" Balance pada kartu adalah: "+this.yue);}} // Tentukan metode abstrak pembukaan akun abstrak public void kaihu ();}4. Kelas Antarmuka Utama
Paket com.bank.unionpay; impor java.util.arraylist; impor java.util.list; import java.util.scanner; kelas publik zujiemian {public void zhujiemian () {System.out.println ("terminal layanan mandiri bank bank swalayan bank Bank Bank Bank System "); System.out.println (); System.out.println (" ****************************** "); System.out.println (); Daftar <String> Li = ArrayList baru <string> (); li.add (" akun Pembukaan "); li.add (" kueri "); li.add (" setoran "); li.add (" keluar "); li.add (" faktur "); li.add (" keluar "); untuk (int i = 0; i <5; i ++) {System.out.println (i+"------"+li.get (i));} System.out.println (); System.out.println ("*******************"); System.out.println ("*****************"); System.out.println (); System. Lakukan: ");}}Paket 2: com.bank.abc
1. Kategori Pembukaan Akun Atm2
Paket com.bank.abc; import java.util.random; import java.util.scanner; import com.bank.unionpay.atm; import com.bank.unionpay.yinhang; kelas publik ATM2 memperluas atm {private yinhang yhl = yinhang.abc; @Overridepublic void kaihu () {// Metode pembukaan akun // Masukkan nama cuxuka cxk = cuxuka baru (); coba {pemindai sc1 = pemindai baru (System.in); System.out.println ("Harap masukkan nama Anda:"); string st = sc1.nextline (); cxk. System.out.println ("Harap masukkan nomor kartu ID Anda:"); untuk (int ig = 0; ig> = 0; ig ++) {pemindai sc2 = pemindai baru (system.in); string str = sc2.nextline (); string st1 = "// d {15} | // d {17} [// dxx]"; if (str.matches (st1)) {cxk.setshenfen (str); break;} else {System.out.println ("Nomor ID yang dimasukkan bukan nomor ID 18 digit"); Kata sandi: "); for (int ig = 0; ig> = 0; ig ++) {pemindai sc3 = pemindai baru (system.in); string pass = sc3.nextline (); string mm =" // d {6} "; ifer (pleass.matches (mm)) {cxk.setpassword (pleation); pound); miring; bregnint (mm)) {cxk.setpassword (pleation); pound); bregnint (mm)) {cxk.setpassword (PLASE); PLEAST); Kata sandi 6 digit ");}} // menghasilkan nomor kartu penghematan 6 digit acak a = random baru (); int [] ch = int baru [6]; stringBuilder str = new stringBuilder (); string s; for (int i = 0; i <6; i ++) {ch [i] = a.nextint (9); c:ch){str.append(c);}s=str.toString();cxk.setCard(s);//Import the generated data into the bank card list Yinhanglei.getYinhangLei().list.add(cxk.getCard());//Import the generated data into the bank card Map list Yinhangli.getyinhanglei (). Map.put (cxk.getCard (), cxk); System.out.println ("Nomor kartu baru Anda adalah:"+cxk.getCard ()); System.out.println ("Pembukaan akun berhasil, terima kasih untuk menggunakan");} catch (pengecualian e) {Opening. salah ");}}}2. Kategori Kartu Tabungan
package com.bank.abc;import java.util.Scanner;import com.bank.unionpay.Yinhang;import com.bank.unionpay.Yinhangka;public class Cuxuka implements Yinhangka {//Save card attribute private Yinhang yinhang;private String name;private String shenfen;private String card;private String password;private double balance;//Generate toString );@Overridepublic string toString () {return "name =" + name + "/t/n" + "id card =" + shenfen + "/t/n" + "nomor kartu =" + kartu + "/t/n" + "public nock =" + balance;} // Dapatkan set untuk atribut public yinhang getyinin. " getName() {return name;}public void setName(String name) {this.name = name;}public String getShenfen() {return shenfen;}public void setShenfen(String shenfen) {this.shenfen = shenfen;}public String getCard() {return card;}public void setCard(String card) {this.card = 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 (); pemindai sc2 = pemindai baru (System.in); System.out.println ("Harap masukkan jumlah yang ingin Anda setor:"); double cun = sc2.nextdouble (); // menerapkan metode setoran jika cun <0) {System.out.println ("The Data! Terima kasih telah menggunakan ");} else {this.balance+= cun; yinhangli.getyinhangliei (). Map.get (cu1.card) .setbalance (balance); System.out.println (" Penafian berhasil, tersisa Jumlah "+yinhanglei.getyinhanglei (). Map.get (cu1.card) .getBalance ());}} // Metode kueri void public chaxun () {while (true) {coba {scanner sc = scanner baru (System.in); System.out.println (" Harap masukkan NOMOR SCANNER (System.in); System.out.println ("Harap masukkan NOUME KARK = System.") Koleksi peta yinhangli for (string temp Scanner (System.in); String st1 = sc1.nextline (); if (st1.equals (yinhangliei.getyinhangliei (). Map.get (s) .getPassword ())) {System.out.println ("Informasi Akun yang Anda Permintaan () adalah: "); System.out.println (); System.out.println (" ******************************** "); System.out.println (); System.out.println (" Nomor Nomor Nomor Nomor Kartu Nomor Kartu Name Nomor Kartu ID Nama Nomor Nama Nomor Nama Nomor Nama ID Nama Name ID jumlah "); System.out.println (); System.out.println (yinhangli .getyinhanglei (). Map.get (s)); break;} else {i ++; if (i == 3) {System.out.println (" Kata sandi input kesalahan lebih dari 3 kali "); break. Kesalahan ");}}}} else {System.out.println (" Harap konfirmasi jika nomor kartu dimasukkan secara tidak benar ");}}} catch (Exception e) {System.out.println (" input tidak benar ");} break;}} // Metode penarikan @eVenRIDEPUBER PUBLIC");} break;}}// Metode penarikan operasi @overridepublublublub "); Cuxuka (); cu.chaxun (); pemindai sc1 = pemindai baru (System.in); System.out.println ("Harap masukkan jumlah yang ingin Anda tarik:"); ganda qu = sc1.nextdouble (); // menerapkan metode penarikan tersebut if (qu <balance) {this.balance- = qu; yinhangli.getyinhangliei (). map.get (cu.card) .setalance (balance); System.out.println ("penarikan berhasil, quare (cuby). {System.out.println ("Data yang Anda masukkan tidak valid, sistem akan secara otomatis keluar! Terima kasih telah menggunakan ") ;;} else {System.out.println (" Saldo yang tidak mencukupi ");}}@overridepublic void getYu () {// Saldo Perhitungan cuxuka cu = cuxuka baru ();}}}}}}};3. Kategori Perbankan Model Singleton
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 <> (); peta publik <string, cuxuka> peta = hashmap baru <> (); // metode konstruksi pribadi private yinhangei () {super ();} private static yinhangei bank = return yinhangli (); public static yinhanglei getyinhangli () {return bank;} public static yinhanglei getyinhangli () {return bank;}4. Kategori Kartu Kredit
Paket com.bank.abc; kelas publik xinyongka memperluas cuxuka {// membangun atribut Anda sendiri touzhi ganda pribadi; publik ganda gettouzhi () {return touzhi;} public void settouzhi (double touzhi) {this.touzhi = touzhi;}} publis {this.touzhi = touzhi; if ((touzhi+getbalance ())> = qu) {System.out.println ("Jumlah overdraw"+(qu-getBalance ())) ;;} else {System.out.println ("tidak dapat menarik lebih dari jumlah overdrawal maksimum") ;;}}}Paket 3: com.bank.test
1. Kelas Uji
Paket com.bank.test; impor java.util.arraylist; import java.util.list; import java.util.scanner; com.bank.abc.atm2; com.bank.abc.cuxuka; import com.bank.unionpay.atm; impor com.bank.bank.bank.bank.bank. main (string [] args) {// membuat antarmuka utama cuxuka cxk = cuxuka baru (); // instantiate antarmuka utama zujiemian zjm = new zujiemian (); // Top pengecualian coba {// Buat loop dead for (int i = 0; i> = 0; i ++) {// Buat dead loop untuk (int i = 0; i> = 0; i ++) {// Buat dead loop untuk (int i = 0; i> = 0; i ++) {// Buat dead loop untuk (int i = 0; i> = 0; i ++) {// Buat dead loop untuk (int i = 0; i> = 0; i ++ Scanner (System.in); int in = sc.nextInt (); // Pertahankan apakah nomor input memenuhi nomor antarmuka jika (dalam == 0 || di == 1 || in == 2 || di == 3 || di == 4) {// Fungsi pembukaan jika (dalam == 0) {atm2 atm2 = baru == Atm2 (); atm2.kaihu (); System.out.println ("*******************************"); System.out.println ("Anda memilih sebagai fungsi pembukaan akun"); System.out.println (); lanjutkan;} // Fungsi kueri query "); if (in == 1) {System.out.println ("****************************"); System.out.println ("Anda memilih sebagai fungsi kueri"); cxk.chaxun (); lanjut;} // fungsi default jika (masuk == 2) {System.out.println ("*******************************"); System.out.println ("Pilihan Anda adalah fungsi setoran"); cxk.cun (); lanjutkan;} // fungsi penarikan if (in == 3) {System.out.println ("*************************"); System.out.println ("Pilihan Anda adalah fungsi penarikan"); cxk.qu (); lanjutkan;} // keluar fungsi jika (in == 4) {System.out.println ("terima kasih untuk menggunakan! "); break;}} // cetak else {System.out.println (" Menu yang Anda pilih tidak ada! ");}} // Pengecualian melempar cetak} (pengecualian e) {System.out.println (" Input tidak benar ");}}}hasil:
Di atas adalah sistem terminal swalayan bank simulasi Java yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!