課題 (04:スプレッドシート)

作業について

今回の課題は以下のパッケージに作成してください。

パッケージの名前
j1.lesson04

作成するクラスの名前は問題ごとに指示があります。下記を参照してください

課題の提出方法については下記を参照してください。

また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。

新しい内容

今回、スプレッドシートに関する新しい内容はありません。

問題

1. クリックした位置のマスの値を変更するプログラム

作成するクラスの名前
CellEditorS1

スプレッドシート上のクリックした位置のマスに好きな文字列を入力できるプログラムを作成してください。まず、マスをクリックで選択させて、入力ダイアログに好きな文字列を表示させ、選択したマスにその文字列を記憶させます。

たとえば、3行目1列目を選択して「1回目」と入力すると、次のようになります。

         
         
1回目        
         
         

この操作は5回連続して行えるようにしてください。2回目に1行目2列目を選択して「2回目」と入力した場合、次のようになります。

  2回目      
         
1回目        
         
         

これをあと3回繰り返して、全体で5マスを埋められるようにしてください。すでに埋まっているマスを選択した場合、入力した文字列でそのマスの内容を上書きしてください。

3回目 2回目      
         
1回目        
    5回目    
  4回目      

ヒント

「選択して文字列を入力→マスの内容を変更」という一連の操作をメソッドにすると楽です。メソッドを作ったらあとはそれを5回起動しましょう。

2. ファイルから読み出した得点表から成績を算出するプログラム

作成するクラスの名前
GradingS1

score04-1.txtの内容をスプレッドシート上に読みだして、合計6人の成績を判定するプログラムを作成してください。

名前 得点      
Alice 81      
Bob 98      
Charley 75      
David 59      
Elvis 64      
Fahrenheit 0      

成績の付け方は

  • 90点以上を「A+」、
  • 80点以上90点未満を「A」、
  • 70点以上80点未満を「B」、
  • 60点以上70点未満を「C」、
  • 60点未満を「D」

として、該当する行の得点の右隣のマスにそれぞれ成績を表す文字列(A+, A, B, C, D)を表示してください。

名前 得点 成績    
Alice 81 A    
Bob 98 A+    
Charley 75 B    
David 59 D    
Elvis 64 C    
Fahrenheit 0 D    

プログラムが完成したら、同じプログラムで別のファイルscore04-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください。このファイルはそれぞれの得点が変わっているだけの内容です。

ヒント

「ある行の得点(2列目)を読む→成績を判定する→成績(3列目)を書く」という処理をメソッドに宣言すると楽です。どの行かは実引数で指定しましょう。

3. ファイルから読み出した得点表から合否を判定するプログラム

作成するクラスの名前
PassFailS1

score04-1.txtの内容をスプレッドシート上に読みだして、合計6人の合否を判定してください。

名前 得点      
Alice 81      
Bob 98      
Charley 75      
David 59      
Elvis 64      
Fahrenheit 0      

今回は合否の基準を入力ダイアログで入力できるようにしてください。それぞれ入力した得点以上で合格として、該当する行の得点の右隣のマスにそれぞれ「合格」と表示してください。不合格の場合はなにも表示しないで構いません (「不合格」と表示してもいいです)。

下記は合格基準を80とした場合の結果です。

名前 得点 合否    
Alice 81 合格    
Bob 98 合格    
Charley 75      
David 59      
Elvis 64      
Fahrenheit 0      

こちらは60と入力しています。

名前 得点 合否    
Alice 81 合格    
Bob 98 合格    
Charley 75 合格    
David 59      
Elvis 64 合格    
Fahrenheit 0      

プログラムが完成したら、同じプログラムで別のファイルscore04-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください。このファイルはそれぞれの得点が変わっているだけの内容です。

4. クイズを3問出題するプログラム

作成するクラスの名前
YesNoQuizS1

スプレッドシート上に問題文とYes, Noのマスを表示し、問題文に対してYesかNoかをクリックして解答するクイズを作成してください。

まず、スプレッドシート上に次のように表示します。ただし、(問題文)の部分には実際の問題文を表示してください。

(問題文)
Yes No      

ここでスプレッドシート上のマスをクリックしたとき、正解ならば「正解です」、不正解ならば「不正解です」、関係ないマスが選択されたら「YesかNoかで選んでください」とメッセージダイアログに表示します。

このプログラムでは、上記のクイズを3問出題してください。1問目を答えてメッセージダイアログを表示し終わったら、問題文を書き換えて次のクイズに挑戦できるようにしてください。

以下、クイズのサンプルです。

  • メソッドの仮引数を5つ以上宣言するとエラーになる
  • Eclipseは満月を表す英単語である
  • mainメソッドのnew …の部分を書き換えると、別のプログラムを実行できる

ヒント

このプログラムは今回のある例題に非常に似ています。ただし正解は「2行目1列目 (1, 0)」か「2行目2列目 (1, 1)」のいずれかに固定されています。