(1)ローカル版「時間割表示システム」の処理の流れ
今回作成するローカル版「時間割表示システム」(今回はLocalMainと名付けます)の基本的な目的は「ユーザーから指定された曜日・時限の「授業の情報」をディスプレイに表示すること」です。この目的を実現するためには、いったいどのような処理が必要となるのでしょうか。必要となりそうな処理をあらかじめリストアップしてみましょう。
- 1データファイルの読み込み
- まず第一に、「授業の情報」を表示するためには「時間割」のデータの内容を知らなければなりません。この「時間割」のデータは、今回の場合ClassTableWriterによって作成されるデータファイル「Week.data」に保存されていることになっています。したがってまずは「Week.data」を読み込まなければなりません。
-
- 2ユーザーからの「曜日」「時限」の読み込み
- ユーザーから指定された曜日・時限の「授業の情報」を表示するためには、表示を希望する「曜日」「時限」を事前にユーザーから聞き出す必要があります。その方法としては、すぐにキーボードからの入力を思いつきます。それではつぎに、「曜日」や「時限」をキーボードから入力させる際に、これらの項目をユーザーにどのような形式で表現させれば良いでしょうか。たとえばユーザーの希望が「水曜、4限」の場合、これらをなんらかの文字列で表すようにすればいいのか、それとも数字で表すようにすればよいのか、そしてもしどちらかをとるならばどうやって「水曜」と「4限」を表すようにすればいいのか、をあらかじめ仕様として考えなくてはなりません。ユーザーにとってわかりやすく、なおかつ後々適切な「授業の情報」を選び出す処理に用いるときに便利なように、これらのデータの表現を考えなければなりません。これは「授業の情報」を探し出す方法とワンセットで考えてみて下さい。
-
- 3「授業の情報」の特定
- 入力されたデータをもとにデータファイルの中から適切な「授業の情報」を探し出す方法ですが、これはデータがすべてVectorに格納されていることを考えれば自ずとやり方が決まってくるはずです。Vectorを用いる理由のひとつに、簡単に必要なデータを特定できるという点があります。ちなみに先ほどのユーザーからどのようなデータを入力してもらうべきかという問題は、このVectorの特徴を考慮すれば解決されるはずです。
-
- 4「授業の情報」の表示
- 最後に選んだ「授業の情報」を表示する訳ですが、「授業の情報」とはプログラム上ではClassTableクラスのインスタンスでした。ClassTableには属性の値を表示するためのメソッドがあることを思い出して下さい。
以上がLocalMainに含まれる、基本的な処理に関する考察です。これらをヒントにしながら、まずは処理の枠組みを「ブロックコメント」という形で書き出してみて下さい。プログラムは、書き出した「ブロックコメント」に従って、それを実現する処理の記述をしてゆけばほぼ完成するはずです。
>>解答例のプログラム
|