11/9 課題

課題

yukidaruma

上の絵と似ていない月と雪ダルマが描かれた絵を描くプログラム Kadai1109.javaを「~/java」以下に作りなさい.なお,描くだけでなく以下のような 処理もおこなうこと.

プログラムがちゃんと動くことを確かめたら,

/home08/ktanaka/bin/report1109 1
を実行すること.このプログラムは, ~/java/Kadai1109.javaの有無,コンパイルできるかどうかなどをチェッ クする.なお,自分の名前,学生証番号,プログラムに関する説明を Kadai1109.java の先頭にコメントとして入れること.

なお,今回のチェックプログラムは,すでに提出した他の人のプログラムと 比較して,最も似ているプログラムとの類似度を表示するようにしている.ヒ ントを参考にした場合は,関係のないプログラムとでも高い類似度が出ること があるので,身に覚えがなければ心配することはない.


課題の提出期限は11月26日(金)の21:00.それ以前であれば,何度でも再提出 できる. 11/20-11/23は駒場祭で駒場地区で教育用計算機システムが使えなかったようなので, 締切を延長します.

ヒント

一からプログラムを書くのが大変な人のために,典型的なプログラムのパター ンを後ろにつける.この穴埋めでプログラムを作成しても良い.なお,コメン トアウトしてあるコードのある行の「//」を取り除くと動くプログラムはでき るが,月と雪ダルマが書かれていないので,課題の条件は満たされない.


// 名前:
// 学生証番号:
// 説明  

  // AWTを使うので java.awt.*を import する
import java.awt.*;
  // イベント駆動関係のクラスを用いるため
import java.awt.event.*;

  // 独立したウィンドウを開くので,Frameクラスのサブクラスにする
class Kadai1109 extends Frame{

  // この中で, 表示する際に必要なインスタンス変数を宣言しておく
  // int x=100,y=100;

  public Kadai1109(String title){
    super(title);
      // GUI部品と,Event Listenerを関連づける
      // KeyAdapterは,KeyListenerを実装して中身は何もないクラス
      // new クラス名(){} で,「クラス名」の名前のない子クラスを定義すると同時に
      // インスタンスを作る
    addKeyListener(new KeyAdapter(){
      public void keyPressed(KeyEvent e){
	int key=e.getKeyChar();
	System.out.println("keyPressed("+e+","+key+")");
	if(key=='q') System.exit(0);
      }
    });
  }
  public static void main(String[] args){
    Kadai1109 frame=new Kadai1109("Kadai1109");
    frame.setSize(400,400);
    frame.setVisible(true);    
  }
  public void paint(Graphics g){

    // インスタンス変数にしたがって描画するコードを書く
    // g.setColor(Color.white);
    // g.fillRect(0,0,400,400);
    // g.setColor(Color.gray);
    // g.fillOval(x,y,100,100);

  }
}

オプション課題

この課題ではもの足りない人は,以下のような拡張をしてみると良いだろう. プログラムができたら,
ktanaka-cp1@lecture.ecc.u-tokyo.ac.jp
に送ると良い.良い ものは講義で紹介して,加点する.なお,オプション課題は本課題よりも1週間早い11月16日(火)に締切を設定する.