ITの基礎知識|ITパスポート・基本情報

基本情報技術者 平成21年春 午後 問5

2026.05.21

午後問題に共通する注意事項(表記ルールなど)については、下記のリンク先を参照してください。

基本情報技術者 平成21年春 午後問題の注意事項


問題

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

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

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

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

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

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

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

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

【預払トランザクション構成モジュールの説明】

このモジュールには,次の各処理が用意されており,口座ごとに,預払い1件を単位として一つのトランザクションを構成する。

  • 処理A:ATMでの預払操作に対応して,データベースを更新する命令を作成し,データベース更新モジュールに送る。
  • 処理B:残高不足となる場合は,利用者にメッセージで伝え,預払処理を行わない。
  • 処理C:データベースを更新する命令1件に対して,所定のATM使用手数料を口座から引き落とす命令を作成し,データベース更新モジュールに送る。

【データベース更新モジュールの説明】

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

【月末処理モジュールの説明】

このモジュールには,次の各処理が用意されており,月末処理のため,口座ごとに一つのトランザクションを構成し,必要な処理を行う。月末処理は,月末日のATMからの操作受付終了後に行う。

  • 処理D:翌月のために手数料マークを設定する命令を作成し,データベース更新モジュールに送る。
  • 処理E:所定の口座管理手数料を残高から引き落とした新たな残高を計算する。新たな残高を書き戻す命令を作成して,データベース更新モジュールに送る。計算結果の残高が負の値になることもある。

設問

次の各モジュールに関する記述中の【】内に入れる正しい答えを,解答群の中から選べ。

預払トランザクション構成モジュールでは,それぞれの実行条件に従って処理A~C及びデータベースへのアクセスが実行される。その順番は,次のとおりである。

【 a 】→【 b 】→【 c 】→ 処理C

月末処理モジュールの処理Dでの手数料マークの設定に最低限必要なデータは,【 d 】である。また,処理Eは実行される場合とされない場合がある。処理Eの実行判定に必要なデータと,処理Eの実行に最低限必要なデータは,【 e 】である。

ここで,月末処理モジュールの処理D,処理Eの両方が実行される場合,その順番は,【 f 】である。

a〜cに関する解答群

  • ア:処理A
  • イ:処理B
  • ウ:データベースの検索
  • エ:データベースの項目内容変更
  • オ:データベースのレコード削除

d,eに関する解答群

  • ア:所定の口座管理手数料
  • イ:所定の口座管理手数料,その口座の残高
  • ウ:所定の口座管理手数料,その口座の残高,その口座の手数料マークの値
  • エ:その口座の残高
  • オ:その口座の手数料マークの値

fに関する解答群

  • ア:処理Dの次に処理E
  • イ:処理Eの次に処理D
  • ウ:任意

Show answer

解答

  • a:ウ(データベースの検索)

  • b:イ(処理B)

  • c:ア(処理A)

  • d:エ(その口座の残高)

  • e:ウ(所定の口座管理手数料,その口座の残高,その口座の手数料マークの値)

  • f:イ(処理Eの次に処理D)

解説

a〜c(処理順序)

預払処理の流れ:

  1. まず残高等をDBから確認(ウ:データベースの検索)
  2. 残高不足なら処理Bでメッセージ通知して終了(イ:処理B)
  3. 問題なければ処理A(DB更新命令作成)(ア:処理A)
  4. 最後に処理C(ATM手数料の引落命令作成)

d(処理Dに必要なデータ)

処理Dは「翌月の手数料マーク(当月末残高が10万円未満かどうか)」を設定する。必要なのは判定材料となる「その口座の残高」のみ。→ エ

e(処理Eの判定・実行に必要なデータ)

  • 実行判定:手数料を徴収するか否かは「手数料マークの値(真/偽)」で決まる
  • 実行:「所定の口座管理手数料」を「残高」から差し引く計算が必要→ 3つすべて必要。ウ

f(処理D→E の順序)

処理Dは「当月末残高」に基づいて翌月のマークを設定する。

処理Eは「口座管理手数料」の引き落とし処理となるが、この処理条件となるのは「前月末時点の残高が10万円以上」かどうか、となっている。
「前月末時点」ということは、前月末に行われた処理Dの結果に依存することになるので、処理Dを先に実行すると判定用のマーク(フラグ)が「当月末時点」の残高に基づく結果に変わってしまい、処理Eを行うかどうかの判定が誤ってしまう場合がある。

よって 処理E(手数料引き落とし)→ 処理D(手数料マークの設定) の順。→ イ(処理Eの次に処理D)