(1) トピック選択分析
(2) 開発環境
開発環境は、JDK1 ベースの Java 開発ソフトウェア IDEA を選択します。 8 バージョンでは、この ATM シミュレーション プログラムをローカル ウィンドウ上で開発します。
(1) 機能モジュール設計
トピックを分析した結果、この ATM シミュレーション プログラムは、管理者側とユーザー モードの 2 つの主要な部分に分割されます。モジュール。このうち、管理者は、すべてのアカウントのクエリ、すべてのアカウント情報のファイルへのエクスポート、およびログアウトの機能を備えています。ユーザーモジュールには、残高照会、ATM振込、ATM入金、ATM出金、パスワード変更、取引記録照会、輸出記録、カード払い戻しなどの機能があります。
システム全体の機能モジュール図は以下のとおりです。
(2) フローチャート
システム全体の処理は以下の通りです。 : ユーザーはメインインターフェイスを通過します。管理者ログインまたはユーザーモードログインを選択し、システムによって設定されたアカウントとパスワードを入力してログインします。ログインに成功したら、対応するメイン機能ページに入り、関連する操作を実行します。
管理者がバックエンドにログインするとき、パスワードとアカウントが正しいかどうかを確認し、正しい場合はログインします。正しい場合は、ログインに失敗します。バックグラウンドでログインすると、すべてのユーザー機能の操作と表示が可能になり、システムは設定されているすべてのユーザー情報を照会し、コンソール パネルに出力します。レコードのエクスポート機能をクリックすると、すべてのアカウント情報が現在の jar プログラムと同じディレクトリ内の txt ファイルに出力されます。
ユーザーがログインすると、アカウントのパスワードが正しいかどうかが判定され、間違っている場合はアカウントエラー回数が1回、3回になるとアカウントがロックされログインできなくなります。ログインしました。入力されたアカウントのパスワードが正しい場合は、アカウントがロックされているかどうかが判断され、そうでない場合は、ログインしてユーザーのメインインターフェイスにジャンプし、関連する操作を実行します。
管理者モジュールのフローチャートは次のとおりです。
ユーザー モジュールの全体的なフローチャートは次のとおりです。
(3) ファイル構造とクラス設計
このATMシミュレーションプログラムはアイデア編集ソフトを使用して開発されています。プロジェクトは、admin (管理者)、customer (ユーザー)、data (ATM データ) の 3 つのパッケージに分かれています。
AdminManage クラスは admin パッケージの下に記述され、管理者インターフェイスの初期化と管理者のすべての機能の実現を担当します。 Customer パッケージ配下の customer クラスは、ユーザー モジュール インターフェイスを実装し、関連する操作ボタンを定義し、各監視機能を実装します。インターフェイスの設計を削減するために、ユーザー インターフェイスの途中に出力情報パネルが使用され、機能が実装されます。結果がパネルに表示されるので、出てきて ATM マシンのインターフェイス情報をシミュレートします。
Data パッケージの下には、ATMData クラス、Card クラス、CustomerAccount クラスがあります。 Card クラスはユーザーの銀行カードをコードで表現したもので、銀行カードの関連情報を Java のオブジェクト指向特性に準拠した基本的な Java オブジェクトにカプセル化します。このうちcustomerAccountはカードクラスのサブクラスであり、カードをベースに入金、出金、残高照会など多くのユーザーの動作が追加されます。 ATMData クラスはこのプログラムにとって非常に重要なクラスであり、このプログラムのすべての初期アカウント情報と、転送、すべてのアカウントの取得、ログインなどの操作がカプセル化されています。このように設計すると、データ処理とインターフェイス設計を分離して、過剰で長いユーザー インターフェイス コードを回避できます。
ファイル構成は以下のとおりで、このプログラムで必要な画像情報はリソースフォルダに格納されています:
このシステムの機能モジュールについては、ここでは詳しくは書きませんが、いくつかの主要な機能を説明のために列挙します:
(1) 出金機能
##のコード出金関数は customerAccount クラスで設計されており、入力パラメータは出金額です。まず、金額が 100 の倍数であるかどうかを判断し、次に 5,000 より大きいかどうかを判断し (質問では、1 回の引き出しが 5,000 を超えることはできないことを要求しています)、次に当座預金残高が以下であるかどうかを判断します。得られた金額。これらの条件が満たされた後、当座預金の金額が再計算され、出金記録が当座預金の取引記録に追加されます。 コア コード ロジックは次のとおりです: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) デポジット関数このメソッドのパラメーターは、デポジットされた金額です。検証に合格した場合は、当座預金残高を再計算し、当座預金口座にトランザクションを追加します。 コア コード ロジックは次のとおりです:
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) ユーザー ログイン関数ユーザー ログイン メソッドの入力パラメータはアカウントとパスワードです。アカウントが存在する場合は、入力して参加します。システムによって設定されたすべてのアカウントが一致しますが、一致しない場合は失敗します。ロックされている場合は、アカウントがロックされているかどうかを確認します。ロックされている場合は、ログインできません。ロックされていない場合は、パスワードが正しいかどうかを確認します。間違っている場合、現在のアカウントのエラー数は 1 (アカウント エラーの数 = 3 の場合、アカウントはロックされます)。パスワードが正しければ、ログインはメイン インターフェイスに正常にジャンプします。 コアコードは次のとおりです: //アカウントの有無
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. プログラムのデモ機能がたくさんあるので勝ちましたここに一つ一つ記録しません。ここには、いくつかの主要な機能のテストのみが記録されています。 (1) ATM引き出し
以下の図に示すように、引き出し機能をテストします。初回金額は10,000元です。それぞれ 3000、6000、5000 を引き出します。最後の 2 つはエラー データです。 1回の出金は5,000元を超えることはできません、その後、残高が3,000元になったら5,000元出金されます、テスト出金機能は当座貸越できません。 ######試験結果:######################################### #機能は正常であり、合法的および違法なデータ入力テストの結果は期待どおりであることがわかります。
(2) ATM 送金
送金テスト。ターゲット口座が存在し、残高が送金金額より大きい必要があり、当座貸越は許可されません。テストデータは、存在しない口座と現在の残高を超える送金額を入力するものです。
存在しない口座を入力すると、テスト結果は次のようになります。#通常の口座と金額を入力すると、テスト結果は次のようになります。このとき、対象口座にログインし、取引記録を確認すると、送金が完了していることが確認できます。 対象口座に正常に到着しました。
現在の残高より大きい誤差データを入力すると、テスト結果は次のようになります。テストは正常です。(3) パスワードの変更
パスワードを変更するには、元のパスワードを入力する必要があり、同じ場合のみ変更できます。新しいパスワードは 6 文字より長くする必要があり、6 文字をまったく同じにすることはできません。 3 回目に入力するパスワードは新しいパスワードを確認するためのものであり、2 回目に入力するパスワードと同じである必要があります。 元のパスワードはすべて 123456 で、間違ったデータは 111111 です。テストは次のとおりです: 6 桁未満のデータを入力し、通常のデータを正しく入力した場合のテスト結果は次のとおりです。以上がJava で ATM シミュレーション システムを実装する手順とコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。