第7講・その2(1) 解答例のプログラム

/**
  *  LocalMain.java
  *  ユーザーから指定された曜日と時限に該当する時間割の情報を表示する
  **/

import java.io.*;	// 入出力関連パッケージの利用を宣言する
import java.util.*;	// ユーティリティパッケージの利用を宣言する

public class LocalMain {

	/**
	  * データファイルから読み込んだ時間割の中から
	  * キーボードから読み込まれた曜日・時限に該当する情報を特定し、
	  * ディスプレイに表示する
	  **/
	public static void main (String args[]){ 
		try{
			/* データファイルから時間割を読み込む */
			FileInputStream fis =			// ファイルを入力する準備をする
				new FileInputStream ("Week.data");
			ObjectInputStream ois =			//  インスタンスを入力する準備をする
				new ObjectInputStream(fis);
			Vector week = (Vector)ois.readObject();	// 「時間割」の内容をVectorに格納する

			/* キーボードから曜日・時限を読み込む */
			BufferedReader kbd =					// キーボード入力の準備をする
				new BufferedReader(new InputStreamReader(System.in));
			System.out.println("該当する番号を入力してください。");	// メッセージを表示して入力を促す
			System.out.print("曜日:1)月 --  5)金 > ");	// 「曜日」の入力を促す
			int dayOfWeek = Integer.parseInt(kbd.readLine());	// 「曜日」を読み込む
			System.out.print("時限:1)1限 -- 5)5限 > ");	// 「時限」の入力を促す
			int number = Integer.parseInt(kbd.readLine());		// 「時限」を読み込む

			/* 指定された曜日・時限に該当する時間割の情報を特定する */
			Vector day = (Vector)week.elementAt(dayOfWeek - 1);	// 「時間割」から、指定された曜日の「1日分の時間割」を取り出す
			ClassTable ct = (ClassTable)day.elementAt(number - 1);	// 「1日分の時間割」から、指定された時限の「授業の情報」を取り出す

			/* 特定した時間割の情報を表示する */
			ct.showData();

		}// エラーが起こったらエラーメッセージを表示する
		catch(Exception e){ System.out.println("エラー発生");}

	}

}

>>第7講・その2(1)へ戻る