平成14年 春期 基本情報技術者 午後 問12
問12 Java
〔プログラムの説明〕 飛行機の利用者の種別(一般利用者,ゴールド利用者)と 利用区間からマイレージを求めて積算マイレージを計算するプログラムである。 利用者の各種別のマイレージの計算方法は,次のとおりである。 ・一般利用者: マイレージ=基準距離 ・ゴールド利用者:マイレージ=基準距離× 1.25 利用区間とその基準距離を,次表に示す。 表 利用区間と基準距離
計算したマイレージを,それまでの積算マイレージに加える。 利用者は積算マイレージを無料往復チケットに交換することができる。
プログラムは,次の五つのクラスと一つのインタフェースで構成されている。 MileageTest メソッド main をもつテスト用のクラスであり,次の処理を行う。 (1) 一般利用者とゴールド利用者のインスタンスを生成し,利用者名, 積算マイレージの情報を初期化する。 (2) 新しい積算マイレージを計算し,実行結果を出力する。 コンストラクタ MileageTest の引数は,利用者名,出発地,到着地, 無料往復チケット指定である。 無料往復チケット指定には,無料往復チケットに交換する場合は交換に必要なマイレージを 指定し,無料往復チケットに交換しない場合は 0 を指定する。 Passenger 利用者を表す抽象クラスである。
抽象メソッド addMileage は,積算マイレージを計算する。
メソッド awardTravel は,無料往復チケットの交換が可能か否かの判定を行い,
可能であれば積算マイレージから無料往復チケット交換に必要なマイレージを減算し,
不可能であれば例外処理によってメッセージを出力する。
メソッド NormalPassenger 一般利用者を表すクラスであり,積算マイレージを計算するメソッド addMileageを実装する。 GoldPassenger ゴールド利用者を表すクラスであり,積算マイレージを計算するメソッド addMileage を実装する。 NotEnoughMileageException 無料往復チケットに交換できない場合の処理を行うクラスである。 MileageServices プログラムで使用する定数を宣言しているインタフェースである。
〔プログラム〕
(行番号)
1 public class MileageTest implements MileageServices {
2 public static void main(String args[]) {
3 NormalPassenger taro = new NormalPassenger("Taro", 0);
4 GoldPassenger mark = new GoldPassenger("Mark", 100000);
5 NormalPassenger june = new NormalPassenger("June", 0);
6 GoldPassenger jiro = new GoldPassenger("Jiro", 50000);
7 new MileageTest(taro, NARITA, PARIS,
8 DOMESTIC_ROUND_TRIP);
9 new MileageTest(mark, LOSANGELES, PARIS,
10 ASIA_PACIFIC_ROUND_TRIP);
11 new MileageTest(june, PARIS, KANSAI, US_ROUND_TRIP);
12 new MileageTest(jiro, KANSAI, NARITA, 0);
13 new MileageTest(taro, PARIS, NARITA, DOMESTIC_ROUND_TRIP);
14 }
15 public MileageTest(Passenger passenger, int from, int to,
16 int awardTrip) {
17 passenger.addMileage(from, to);
18 System.out.println("\n" + passenger.getName() +
19 "'s mileage: " + passenger.getMileage());
20 if (
プログラムの実行結果を図に示す。
図 実行結果 設問1
プログラム中の
解答群 ア abstract イ awardTrip ウ GoldPassenger エ NormalPassenger オ Passenger カ private キ public ク totalMileage
設問2 プログラムの行番号 5 を次のとおりに変更した場合, 行番号 11 を実行した後の,利用者 June の積算マイレージの値として正しい答えを, 解答群の中から選べ。 NormalPassenger june = new NormalPassenger("June", 50000); 解答群 ア 3900 イ 10000 ウ 16100 エ 96100 設問3 プログラムの行番号 37 〜 41 を次のとおりに変更したとき, 同じ結果を得るために,行番号 78 の直後及び行番号 87 の直後に 挿入する内容として正しい答えを,解答群の中から選べ。 final static int[][] MILEAGE = {{ 0},
{ 300, 0},
{5400, 5700, 0},
{6200, 6100, 4000, 0}
};
解答群
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||||||||||||||||
