問題

問10 次のCOBOLプログラムの説明及びプログラムを読んで、設問1、2に答えよ。

〔プログラムの説明〕

 ある遊園地では、ICカードを利用した精算システムを導入した。入園時に、入園者から入園料を受け取ると、入園者番号を記録したICカードを渡し、入園者番号と年齢層の情報を入園者ファイルに格納する。各施設では、提示されたICカードから入園者番号を読み取り、施設利用実績をイベントファイルに格納する。退園時に、入園者からICカードが返却されたときに、施設利用料金を一括で徴収する。

 このプログラムは、入園者ファイル及びイベントファイルに格納されたデータを読み込み、入園者に関する情報を集計して表示する。

(1)入園者ファイルは、図1に示すレコード様式の、入園者番号を主キーとする索引ファイルである。ファイルは、営業日ごとに作成する。

図1 入園者ファイルのレコード様式
図1 入園者ファイルのレコード様式

[1] 入園者番号は、営業日ごとに一意となる、1から始まる4桁の数字である。
[2] 年齢層コードには、4~12歳は1、13~18歳は2、19~29歳は3、30~49歳は4、50歳以上は5を格納する。4歳未満は入園料及び遊戯施設利用料金が無料となるので、ICカードは発行せず、入園者ファイルにも格納しない。

(2)イベントファイルは、図2に示すレコード様式の順ファイルである。入園者のICカード利用状況(以下、イベントという)を格納する。ファイルは、営業日ごとに作成する。

図2 イベントファイルのレコード様式
図2 イベントファイルのレコード様式

[1] イベントコードには、発生したイベントに応じて、表1に示すイベントコードを格納する。

表1 イベントとイベントコード
表1 イベントとイベントコード

[2] 時刻には、イベントが発生した時刻の時、分、秒を24時間表記で格納する。時系列で格納するので、レコードは時刻の昇順になっている。
  なお、この遊園地は10時に開園し、全ての入園者は20時になるまでに退園する。20時台の時刻が格納されることはない。
[3] 金額には、該当するイベントを利用した際の金額を格納する。
  なお、入退園(イベントコード01、02)の場合は、0を格納する。
[4] 一旦退園した入園者が、その日のうちに同じ入園者番号で再入園することはない。

(3)集計結果の表示例を図3に示す。

図3 集計結果の表示例
図3 集計結果の表示例
[画像のクリックで拡大表示]

[1] TOTAL GUESTSには、入園者数を表示する。1日の入園者数が5,000人を超えることはない。

[2] STAY GUESTSには、左端に表示した時間帯の滞在者数を、年齢層別に棒グラフで表示する。例えば、10時ちょうどに入園し. 11時ちょうどに退園した者は、10時台と11時台の滞在者として数える。

[3] 棒グラフを構成する各記号は、表2に示すとおり滞在者の年齢層と対応している。記号一つは100人を表し、100人未満の端数は切り捨てる。

表2 年齢層と対応する記号
表2 年齢層と対応する記号

〔プログラム〕

プログラム
[画像のクリックで拡大表示]