PR

問題

問5 銀行口座の管理に関する次の記述を読んで,設問に答えよ。

 ある銀行の個人顧客口座の口座管理手数料,現金自動預払機(以下,ATMという)での預払い及びATM使用手数料に関する口座情報を更新するプログラムである。

 口座は,口座番号で識別される。口座には,所定の口座管理手数料が毎月掛かり,その月の月末処理で残高から引き落とされる。この口座管理手数料は,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。

 口座に対してのATMからの預入れ及び引出しの操作には,1回当たり所定のATM使用手数料が掛かり,操作時に,その口座の残高から自動的に引き落とされる。このATM使用手数料も,その口座の前月末日時点の残高が10万円以上であれば,当月分は掛からない。

 なお,同一口座に対しては,預入れ及び引出しの操作が完了するまで,ほかの操作は行えないものとする。

 データベースには,所定の口座管理手数料及び所定のATM使用手数料と,口座ごとの残高及び手数料マークが格納されている。

 手数料マークは,前月末日時点の残高が10万円未満であった場合に“真”,そうでない場合に“偽”となる。

 プログラムを構成する各モジュール間の関連を図に示す。

〔預払トランザクション構成モジュールの説明〕
 このモジュールには,次の各処理が用意されており,口座ごとに,預払い1件を単位として一つのトランザクションを構成する。
処理A:ATMでの預払操作に対応して,データベースを更新する命令を作成し,データベース更新モジュールに送る。
処理B:残高不足となる場合は,利用者にメッセージで伝え,預払処理を行わない。
処理C:データベースを更新する命令1件に対して,所定のATM使用手数料を口座から引き落とす命令を作成し,データベース更新モジュールに送る。

〔データベース更新モジュールの説明〕
 到着した順番にトランザクションを処理し,データベース上の対応する口座の情報を更新する。

〔月末処理モジュールの説明〕
 このモジュールには,次の各処理が用意されており,月末処理のため,口座ごとに一つのトランザクションを構成し,必要な処理を行う。月末処理は,月末日のATMからの操作受付終了後に行う。
処理D:翌月のために手数料マークを設定する命令を作成し,データベース更新モジュールに送る。
処理E:所定の口座管理手数料を残高から引き落とした新たな残高を計算する。新たな残高を書き戻す命令を作成して,データベース更新モジュールに送る。計算結果の残高が負の値になることもある。