ここでは、当社の新人研修受講者に向けて、基本情報のJavaの過去問を掲載しています。

想定しているのは、NetBeansなどのIDEにコピー・ペーストしたうえで、自分の正しいと思う答えを埋めて動作を確認するという使い方です。


プログラムの説明

 飛行機の利用者の種別(一般利用者,ゴールド利用者)と 利用区間からマイレージを求めて積算マイレージを計算するプログラムである。 利用者の各種別のマイレージの計算方法は,次のとおりである。

・一般利用者:  マイレージ=基準距離

・ゴールド利用者:マイレージ=基準距離× 1.25

利用区間とその基準距離を,次表に示す。

  表 利用区間と基準距離  

利用区間 基準距離
成田     - 関西 300
成田     - ロサンゼルス 5,400
成田     - パリ 6,200
関西     - ロサンゼルス 5,700
関西     - パリ 6,100
ロサンゼルス - パリ 4,000

 計算したマイレージを,それまでの積算マイレージに加える。 利用者は積算マイレージを無料往復チケットに交換することができる。

プログラムは,次の五つのクラスと一つのインタフェースで構成されている。

MileageTest
メソッド main をもつテスト用のクラスであり,次の処理を行う。

(1) 一般利用者とゴールド利用者のインスタンスを生成し,利用者名, 積算マイレージの情報を初期化する。

(2) 新しい積算マイレージを計算し,実行結果を出力する。

 コンストラクタ MileageTest の引数は,利用者名,出発地,到着地, 無料往復チケット指定である。 無料往復チケット指定には,無料往復チケットに交換する場合は交換に必要なマイレージを 指定し,無料往復チケットに交換しない場合は 0 を指定する。

 

Passenger
利用者を表す抽象クラスである。 抽象メソッド addMileage は,積算マイレージを計算する。 メソッド awardTravel は,無料往復チケットの交換が可能か否かの判定を行い, 可能であれば積算マイレージから無料往復チケット交換に必要なマイレージを減算し, 不可能であれば例外処理によってメッセージを出力する。 メソッド
getMileage は,積算マイレージを返す。メソッド getName は,利用者名を返す。

 

NormalPassenger
一般利用者を表すクラスであり,積算マイレージを計算するメソッド addMileageを実装する。

 

GoldPassenger
ゴールド利用者を表すクラスであり,積算マイレージを計算するメソッド addMileage を実装する。

 

NotEnoughMileageException
無料往復チケットに交換できない場合の処理を行うクラスである。

 

MileageServices
プログラムで使用する定数を宣言しているインタフェースである。

[プログラム]※問題の箇所をコメント/* */で示している

プログラムの実行結果を図に示す。

図 実行結果

設問1  プログラム中の に入れる正しい答えを, 解答群の中から選べ。

解答群

ア abstract     イ awardTrip

ウ GoldPassenger  エ NormalPassenger

オ Passenger    カ private

キ public      ク totalMileage

設問2 プログラムの行番号 5 を次のとおりに変更した場合, 行番号 11 を実行した後の,利用者 June の積算マイレージの値として正しい 答えを, 解答群の中から選べ。

解答群

ア 3900     イ 10000

ウ 16100     エ 96100

設問3 プログラムの行番号 37 ~ 41 を次のとおりに変更したとき, 同じ結果を得るために,行番号 78 の直後及び行番号 87 の直後に 挿入する内容として正しい答えを,解答群の中から選べ。

解答群