(1) Analisis pemilihan topik
(2) Persekitaran pembangunan
Persekitaran pembangunan, pilih IDEA, perisian pembangunan Java, berdasarkan JDK1. 8, bangunkan program simulasi ATM ini pada tetingkap tempatan.
(1) Reka bentuk modul fungsi
Selepas menganalisis topik, program simulasi ATM ini dibahagikan kepada dua bahagian: mod pentadbir dan modul mod pengguna . Antaranya, pentadbir mempunyai fungsi menyoal semua akaun, mengeksport semua maklumat akaun ke fail, dan log keluar. Modul pengguna mempunyai fungsi seperti pertanyaan baki, pemindahan ATM, deposit ATM, pengeluaran ATM, pengubahsuaian kata laluan, pertanyaan rekod transaksi, rekod eksport, bayaran balik kad, dll.
Jumlah rajah modul berfungsi sistem adalah seperti berikut:
(2) Carta alir
Proses keseluruhan sistem ialah: pengguna melalui antara muka utama Pilih log masuk pentadbir atau log masuk mod pengguna, dan kemudian masukkan akaun dan kata laluan yang ditetapkan oleh sistem untuk log masuk. Selepas log masuk berjaya, masukkan halaman fungsi utama yang sepadan untuk melaksanakan operasi berkaitan.
Apabila pentadbir log masuk ke bahagian belakang, dia akan menentukan sama ada kata laluan dan nombor akaun adalah betul, log masuk, jika tidak, ia akan menyebabkan kegagalan. Selepas log masuk ke latar belakang, anda boleh mengendalikan dan melihat semua fungsi pengguna Kemudian sistem akan menanyakan semua maklumat pengguna yang ditetapkan dan mengeluarkannya ke panel konsol. Klik fungsi rekod eksport untuk mengeluarkan semua maklumat akaun ke fail txt dalam direktori yang sama dengan program jar semasa.
Apabila pengguna log masuk, ia dinilai sama ada kata laluan akaun adalah betul Jika ia salah, bilangan ralat akaun akan menjadi +1 Apabila nombor mencapai 3, akaun akan dikunci dan tidak boleh dilog masuk. Apabila kata laluan akaun yang dimasukkan adalah betul, ia akan ditentukan sama ada akaun itu dikunci. Jika tidak, log masuk, lompat ke antara muka utama pengguna dan lakukan operasi yang berkaitan.
Carta alir modul pentadbir adalah seperti berikut:
Carta alir keseluruhan modul pengguna adalah seperti berikut:
(3) Struktur fail dan reka bentuk kelas
Program simulasi ATM ini dibangunkan menggunakan perisian penyuntingan idea. Projek ini dibahagikan kepada tiga pakej: pentadbir (pentadbir), pelanggan (pengguna), dan data (data ATM).
Kelas AdminManage ditulis di bawah pakej pentadbir, yang bertanggungjawab untuk memulakan antara muka pentadbir dan melaksanakan semua fungsi pentadbir. Kelas pelanggan di bawah pakej Pelanggan melaksanakan antara muka modul pengguna, mentakrifkan butang operasi yang berkaitan, dan melaksanakan fungsi pemantauan masing-masing Untuk mengurangkan reka bentuk antara muka, panel maklumat output digunakan di tengah antara muka pengguna, supaya fungsi tersebut keputusan dicetak dalam panel Keluar dan simulasikan maklumat antara muka mesin ATM.
Terdapat kelas ATMData, kelas Kad dan kelas Akaun Pelanggan di bawah pakej Data. Kelas Kad ialah perwakilan kod kad bank pengguna Ia merangkum maklumat berkaitan kad bank ke dalam objek Java asas, yang mematuhi ciri berorientasikan objek Java. Antaranya, akaun pelanggan adalah subkelas kelas kad Berdasarkan kad, banyak gelagat pengguna ditambah, seperti deposit, pengeluaran, pertanyaan baki, dll. Kelas ATMData ialah kelas yang sangat penting untuk program ini Ia merangkumi semua maklumat akaun awal program ini, serta operasi seperti pemindahan, mendapatkan semua akaun, dan log masuk. Reka bentuk ini boleh memisahkan pemprosesan data dan reka bentuk antara muka, mengelakkan kod antara muka pengguna yang terlalu banyak dan panjang.
Struktur fail adalah seperti yang ditunjukkan di bawah, di mana maklumat imej yang diperlukan oleh program ini disimpan dalam folder sumber:
Modul berfungsi sistem ini tidak diterangkan secara terperinci di sini, tetapi beberapa fungsi utama disenaraikan untuk penerangan:
(1) Fungsi pengeluaran
Kod untuk fungsi pengeluaran direka dalam kelas Akaun pelanggan, lulus Parameter input ialah jumlah pengeluaran. Mula-mula tentukan sama ada jumlah itu adalah gandaan 100, kemudian tentukan sama ada ia lebih besar daripada 5,000 (soalan memerlukan pengeluaran tunggal tidak boleh lebih daripada 5,000), dan kemudian tentukan sama ada baki akaun semasa lebih besar daripada atau sama dengan jumlah yang diperolehi. Selepas syarat-syarat ini dipenuhi, jumlah akaun semasa dikira semula dan rekod pengeluaran ditambah pada rekod transaksi akaun semasa.
Logik kod teras adalah seperti berikut:
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) Fungsi deposit
Parameter kaedah ini ialah jumlah deposit Pertama, tentukan sama ada amaun ialah gandaan 100 dan sahkan Jika lulus, baki akaun semasa akan dikira semula, dan kemudian transaksi akan ditambah dan direkodkan pada akaun semasa.
Logik kod teras adalah seperti berikut:
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) Fungsi log masuk pengguna
Parameter input kaedah log masuk pengguna ialah akaun dan kata laluan. tentukan sama ada akaun itu wujud, dan kemudian Masukkan semua akaun yang ditetapkan oleh sistem yang mengambil bahagian untuk pemadanan, jika tidak, ia akan gagal. Jika ya, ia akan dinilai sama ada akaun itu dikunci Jika ia dikunci, ia tidak boleh dilog masuk. Jika ia tidak dikunci, ia akan dinilai sama ada kata laluan itu betul dalam akaun semasa akan menjadi +1 (jika bilangan ralat akaun = 3, akaun akan dikunci). Jika kata laluan adalah betul, log masuk akan berjaya melompat ke antara muka utama.
Kod teras adalah seperti berikut:
//Sama ada akaun wujud
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); }
Terdapat banyak fungsi, jadi Saya tidak akan merakamnya satu persatu di sini. Hanya ujian untuk beberapa fungsi utama direkodkan di sini.
(1) Pengeluaran ATM
Uji fungsi pengeluaran seperti yang ditunjukkan dalam gambar di bawah. Jumlah permulaan ialah 10,000 yuan. Keluarkan 3000, 6000 dan 5000 masing-masing. Dua yang terakhir ialah data ralat. Pengeluaran tunggal tidak boleh melebihi 5,000 yuan Kemudian, apabila baki adalah 3,000, 5,000 akan ditarik balik.
Keputusan ujian:
Dapat dilihat bahawa fungsinya adalah normal, dan keputusan ujian input data yang sah dan tidak sah adalah selaras dengan jangkaan.
(2) Pindahan ATM
Ujian pemindahan, akaun sasaran mesti wujud, dan baki mestilah lebih besar daripada jumlah yang hendak dipindahkan, dan tiada overdraf dibenarkan. Data ujian adalah untuk memasukkan akaun yang tidak wujud dan jumlah pemindahan lebih besar daripada baki semasa.
Masukkan akaun yang tidak sedia ada dan keputusan ujian adalah seperti berikut:
Masukkan akaun biasa dan amaun keputusan ujian adalah seperti berikut kali ini, log masuk ke akaun sasaran dan semak rekod transaksi untuk melihat bahawa pemindahan telah berjaya mencapai akaun sasaran.
Masukkan data yang salah yang lebih besar daripada baki semasa Keputusan ujian adalah seperti berikut ujian adalah perkara biasa.
(3) Tukar kata laluan
Anda mesti memasukkan kata laluan asal untuk menukar kata laluan Jika sama, ia boleh ditukar. Kata laluan baharu mestilah lebih besar daripada 6 aksara dan 6 aksara tidak boleh sama persis. Kata laluan yang dimasukkan untuk kali ketiga adalah untuk mengesahkan kata laluan baru dan mestilah sama dengan kata laluan yang dimasukkan untuk kali kedua.
Kata laluan asal semuanya 123456, dan data yang salah ialah 111111. Ujiannya adalah seperti berikut:
Masukkan data kurang daripada 6 digit , dan keputusan ujian memasukkan data normal dengan betul adalah seperti berikut:
Atas ialah kandungan terperinci Langkah dan contoh kod untuk melaksanakan sistem simulasi ATM di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!