マルチメディアプログラミング(2006年度) 講義資料

お知らせ | 講義内容 | テキスト / 参考書 | 課題 | その他情報

お知らせ

...ページ先頭へ

2006年度 マルチメディアプログラミング 講義内容

  講義日 内容
第1回 9/27 ガイダンス, Javaとは [PDF]
第2回 10/4 Javaプログラムの実行 [PDF]、Javaの基本 (データ型、制御文など) [PDF] [課題1]
第3回 10/11 オブジェクト指向概要 [PDF] [課題2]
第4回 10/18 Javaの基本(参照型、クラス、配列、APIドキュメント)[PDF] [課題3] [課題4]
第5回 10/25 Javaの基本(クラス定義、コンストラクタ)[PDF] [課題5] [課題6] [課題7]
第6回 11/1 Javaの基本(継承、メソッド)[PDF] [課題8] [課題9]
第7回 11/8 Javaの基本(ポリモフィズム、抽象クラス、インタフェース)[PDF]
第8回 11/15

Javaの基本(例外処理ほか)[PDF] [課題10] [課題11]

第9回 11/29 ファイルI/O [PDF] [課題12] [課題13]
第10回 12/13 GUIアプリケーション(GUIアプリケーションの概要、HelloWorld等)[PDF]
第11回 12/20 GUIアプリケーション(イベント処理、レイアウト処理)
第12回 12/27 GUIアプリケーション(イベント処理、レイアウト処理)[課題14]
第13回 1/10 画像ファイルの扱いとアニメーション処理 [PDF] [課題15]
第14回 1/17 画像ファイルの扱いとアニメーション処理 [PDF] [課題16]

...ページ先頭へ

参考書

...ページ先頭へ

課題

課題1: 自己紹介・PR文のターミナル表示

自己紹介・PR文をターミナルに表示するJavaプログラムを作成せよ

【条件】
  • 表示内容は自由だが、手を抜かないこと(表示の仕方や動作にいろいろ工夫をしてもOK)
  • System.out.println()を使えばよい
  • 提出について
  • 期限:10月9日(月・祝)
  • ソースコード(.javaファイル)をemailで平#へ送ること
  • メールのSubjectは「マルチメディアプログラミング課題1」とすること
  • 課題2: 九九の表のターミナル表示

    九九の表を表示するJavaプログラムを作成せよ

    【条件】
  • ファイル名(クラス名)は各自好きに決めて良い
  • 表示には System.out.println() もしくは System.out.print() を使う
  • 二重ループを使うこと
  • 提出について
  • ソースコードをメールで平#へ送ること
  • メールのSubjectは「マルチメディアプログラミング課題2」とすること
  • メール本文には学生証番号と氏名を書くこと
  • 課題3: 2次元配列を用いた九九のデータ処理と表示

    課題2で作成した九九の表をターミナルに表示するJavaプログラムについて、次の処理条件を追加して作成せよ。

    【プログラムの処理条件】
    提出について
    課題4: ガーベージコレクションについての調査

    「Javaのガーベージコレクション」について調べてレポートとしてまとめよ。

    【注意】
  • Javaならではの話や関連技術があれば、それについても調べてまとめること
  • 単純にWebの情報をコピー&ペーストしただけのものは認めない(自分でまとめ直すこと)
  • 提出について
  • メールタイトル 「マルチメディアプログラミング課題4」
  • レポートがテキストのみの場合はメール本文に含めて提出し、レポートに図などを含めたりワープロソフト等を利用して作成した場合は、その場合は1つのPDFファイルとして提出すること
  • メール本文には学生証番号と氏名を書くこと
  • メール送付先:平井のみ
  • 課題5: APIドキュメントの見方

    次に挙げるクラスで利用できるメソッド(呼び出し可能なメソッド)について調べ、その戻り値の型やメソッド名、処理内容などをまとめよ。

    【注意】
  • APIドキュメントの「メソッド概要」の表を抜き出して、まとめればよい。但し内容は見やすくなるように整形すること。
  • オブジェクト指向なので、親クラスのメソッドも利用できることに注意すること。
  • 提出について
  • メールタイトル 「マルチメディアプログラミング課題5」
  • レポートがテキストのみの場合はメール本文に含めて提出し、ワープロソフトや表計算ソフト等を利用して作成した場合は、1つのPDFファイルとして提出すること
  • メール本文には学生証番号と氏名を書くこと
  • メール送付先:平井のみ
  • 課題6: 簡単なクラス作成

    Humanクラスに対し、人間が一般的に持つと思う属性を各自考えて、それを表すメンバ変数(フィールド)およびその値を取り出すメソッドを追加せよ。

    【注意】
  • どんな立場の人でも持つ属性だけにすること
  • 追加したメンバ変数(フィールド)の型(もしくはクラス)は各自で適切と思うものを使って良い
  • 個々の追加項目が何かわかるようコメントを付けること
  • 提出について
  • ソースコード (Human.java)のみメールに添付して送ること
  • メールのタイトル 「マルチメディアプログラミング課題6」
  • メール本文には学生証番号と氏名を書くこと
  • メール送付先:平井とTA
  • 課題7: 変数・メソッド等の属性

    変数やメソッド等に対して記述する public 等の属性について、次の4つの場合に対する違いについて調べてまとめよ。

    【調べる属性】
  • public
  • private
  • protected
  • 無指定
  • 提出について
  • メールタイトル 「マルチメディアプログラミング課題7」
  • レポートがテキストのみの場合はメール本文に含めて提出し、レポートに図などを含めたりワープロソフト等を利用して作成した場合は、1つのPDFファイルとして提出すること
  • メール本文には学生証番号と氏名を書くこと
  • メール送付先:平井のみ
  • 課題8: Humanクラスの改変と継承

    課題6で各自作成したHumanクラスに対し、各メンバ変数を設定する public なメソッドを追加せよ。
    さらに、その Human クラスを継承して、UniversityStudent クラスを作成せよ。その際、次の条件に従うこと。

    【条件】
  • 大学、学部、学科を表す各文字列と、セメスタ数を表す数値のメンバ変数を追加すること
  • 各メンバ変数を取得、また設定する public なメソッドも追加すること
  • 提出について:
  • 提出物は、ソースコード (Human.java, UniversityStudent.java)およびクラスファイル (Human.class, UniversityStudent.class) をメールに添付して送ること
  • メールのタイトル 「マルチメディアプログラミング課題8」
  • メール本文には学生証番号と氏名を書くこと
  • 課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井とTA
  • 課題9: 継承の例(複素数クラス)

    Complex2クラスに加算用メソッド(add)を付加したのと同様に、減算(sub)、乗算(mul)、除算(div)についてもメソッドを追加せよ。

    【条件】
  • インスタンスメソッド、クラスメソッドの両方を追加すること
  • 複素数の計算であるため、除算の計算時には、分母が0になるかどうかチェックすること
  • 分母が0だった際にどうするかは自由に決めて良い
  • 提出について:
  • ソースコード (Complex2.java) とクラスファイル (Complex2.class) の両方をメールに添付して送ること
  • メールのタイトル 「マルチメディアプログラミング課題9」
  • メール本文には学生証番号と氏名を書くこと
  • 課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書く
  • メール送付先:平井とTA
  • 課題10: 複素数クラスへの例外処理の実装
    1. 課題9の条件を満たす Complex2 クラスに対し、除算のメソッドにてdoubleのゼロで除算が行われる場合に例外を発行するよう改変せよ。但し、Complex2 クラスでは例外捕捉は行わないこと。
      注)本来は double のゼロで除算を実行しても、NaNが返されるだけで例外は発行されないが、あえて発行するように改変する。
    2. また、Complex2クラスを利用して複素数演算を行うプログラム Complex2Test.java を作成せよ。その際、次の条件に従うこと。
    【Complex2Testの条件】
  • Complex2クラスのすべてのメソッドを動作確認して、その計算状況をターミナルに表示させること
  • 除算の部分では例外捕捉を行うよう実装すること
  • 例外捕捉時の振る舞いは各自の裁量に任せる
  • 提出について:
  • ソースコード (Complex2.java, Complex2Test.java) とクラスファイル (Complex2.class, Complex2Test.class) の両方をメールに添付して送ること
  • 提出するプログラムソースコード(*.javaファイル)に、コメント(// もしくは /*...*/)として学生証番号と氏名を書くこと
  • メールSubject「マルチメディアプログラミング課題10」
  • メール本文にも学生証番号と氏名のほか、課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井とTA
  • 課題11: 例外クラスの調査

    次の例外に対して調べ、内容を解釈して要約をまとめよ。(APIドキュメントの内容をコピー&ペーストしただけのものは認めない)
    なお、まとめるファイルはプレインテキストでも、ワープロや表計算ソフトを使って作成しても構わないが、ワープロや表計算の場合はPDFファイルに変換して提出すること。

    提出について:
  • メールタイトル 「マルチメディアプログラミング課題11」
  • レポートがテキストのみの場合はメール本文に含めてよいが、PDFの場合は添付ファイルとして提出すること
  • メール本文には、学生証番号と氏名、課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井のみ
  • 課題12: I/Oストリームの調査とまとめ

    次のI/Oストリームの特徴をまとめよ。まとめるファイルはプレインテキストでも、ワープロや表計算ソフトを使って作成しても構わないが、ワープロや表計算の場合はPDFファイルに変換して提出すること。また、APIドキュメントの文章をコピーしただけのものではなく、書籍やWebサイトなどでいろいろ調べて、自分なりにうまくまとめること。

    提出について:
  • メールタイトル 「マルチメディアプログラミング課題12」
  • レポートがテキストのみの場合はメール本文に含めてよいが、PDFの場合は添付ファイルとして提出すること
  • メール本文には、学生証番号と氏名、課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井のみ
  • 課題13: Humanクラスに関するファイルI/O

    課題8の条件を満足する各自のHumanクラスに関して、次の内容に沿ったデータファイルとプログラムを作成せよ。

    【作成するデータファイルの条件】
  • Human クラスの各メンバ変数に対応するデータを含むデータファイル
  • 1人分のデータは1行で記述し、Humanクラスの各メンバ変数をカンマ(,)で区切るデータ形式とする
  • 最低5人分のデータは作成する
  • ファイルの1行目には、データの人数(数字)だけ記述する(Humanクラスの各データは2行目以降に記述する)
  • データファイル例(氏名,血液型,生年月日,肌の色,髪の色 の順に並ぶデータが10人分あるとした場合)
    10
    角田信朗,AB,1961年4月11日,黄色,黒色
    小泉純一郎,A,1942年1月8日,黄色,灰色
    平井重行,AB,1970年11月3日,黄色,黒色
          :
    (以下、7人分のデータが続く)
    【作成するプログラムの動作概要&条件】
  • 上記の作成したデータファイルを一行ずつ読み込む
  • データファイルの1行目(データの人数)に応じた Humanクラスの配列を作成する
  • データファイルの2行目以降を読み込み、各メンバ変数を Human クラスの配列の各インスタンスに値を設定する(人数分設定する)
  • データファイルを全て読み込んだ後、別のテキストファイルを作成して、 Human の配列のデータを下記に示すデータ形式で出力する
  • ファイルに書き出す内容をターミナル画面にも表示する
  • ファイル入出力に伴う例外処理を適切に記述すること
  • 出力ファイルへのデータの出力形式例
    氏名:角田信朗
    血液型:AB
    生年月日:1961年4月11日
    肌の色:黄色
    髪の色:黒色

    氏名:小泉純一郎
    血液型:A
    生年月日:1942年1月8日
    肌の色:黄色
    髪の色:黒色

      :
    (以下、人数分のデータを個別項目で出力する)
    【作成するプログラムのヒント/その他】
  • BufferedReaderクラスのreadLine()メソッドを使って、テキストファイルを1行ずつ読み込めばよい
  • カンマ (,) で区切られた文字列を取り出すには、次の 2つの手段が使える(どちらを使っても良い)
  • 開くデータファイルの名前をプログラム実行時の引数で指定、もしくは実行後に標準入力から指定できるようにしてもよい
  • 上記の処理内容を区別できる単位に分けて、メソッドとして実装してもよい
  • 提出について:
  • 提出物は、次に挙げるものをメールに添付して送ること
  • メールのタイトル 「マルチメディアプログラミング課題13」
  • メールSubject「マルチメディアプログラミング課題10」
  • メール本文にも学生証番号と氏名のほか、課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井とTA
  • 課題14: Humanクラスに関するファイル読み込みとSwingを利用した表示

    課題13で作成したデータファイルを読み込んで、Humanクラスの配列にデータを格納し、Swingを利用したウィンドウにそのデータを表示するプログラムを作成せよ。
    但し、作成するプログラムは次の処理条件に従うこと。

    【処理条件】
  • ウィンドウはJFrameベースのものとする
  • ウィンドウのクローズボタン(クローズボックス)を押せば、アプリケーションが終了する
  • Human クラスの配列は、作成するウィンドウクラスのメンバ変数とする
  • ファイルを読み込んでHumanのメンバ変数を設定する処理は1つのメソッドとして実装する
  • フォントの種類やサイズ、画面上のどの位置に表示するか、などは自由に決めてよい
  • 【注意】
    要は課題13でターミナルに表示したものを、自分で作成したウィンドウ上に表示するウィンドウアプリとして実装すればよい。但し、オブジェクト指向言語で開発するウィンドウアプリなので、オブジェクト(クラス)を意識したメンバ変数やメソッドの在り方を考慮した作りにすること。
    提出について:
  • 提出物は、次に挙げるものを1つのアーカイブファイルにしてメールに添付して送ること(アーカイブ形式の種類は zip, tar+gzip, tar+bzip2, lha 等)
  • メールSubject「マルチメディアプログラミング課題14」
  • メール本文にも学生証番号と氏名のほか、課題に対する感想や意見(苦労した点、理解できてない点、苦情などなんでもOK)を書くこと
  • メール送付先:平井とTA
  • ...ページ先頭へ