第5回 Smalltalkの総合練習(5月17日)

■ 課題

色々な形をしたクッキーをオブジェクトで扱ってみよう。クッキーごとに、「製造日」を決めて管理したいので、MyCookie オブジェクトを定義する。また、クッキーは面積に応じた値段が付けられるものとする。面積 1 に対して値段は 3 とする。

クッキーの形は、「丸 MaruCookie」、「三角形 SankakuCookie」、「四角形 ShikakuCookie」があるものとする。形状を指定するパラメータについて、丸の場合は半径、三角形と四角形の場合は底辺と高さとする。

具体的には、次のメソッドを作成せよ。

クッキーを入れる袋を扱うオブジェクト MyCookieBag を定義しよう。このオブジェクトは、1個以上のクッキーを順序不問で格納する。次の処理をする:

Workspace 上で動作確認をする様子を示す:
b := MyCookieBag new
b add: (MaruCookie new pdate: 18; radius: 5)
b add: (SankakuCookie new pdate: 18; width: 4; height: 3)
b add: (SankakuCookie new pdate: 18; width: 4; height: 3)
b add: (ShikakuCookie new pdate: 20; width: 4; height: 4)
Transcript show: b showPrice; cr
Transcript show: b showBestBeforeDate; cr

□ レポート課題

上記の課題に対するプログラムと実行結果を提出せよ。

プログラムについて、クラスの定義とメソッド定義を示し、要所にコメントを手書きすること。実行結果は、上記の確認の様子に加えて、工夫した点がわかるように示し、必要に応じてコメントを手書きすること。

5月24日の授業開始時に集めます。


(C) 2007.5.15 by tokuhisa