課題 (02:スプレッドシート)
作業について
今回の課題は以下のパッケージに作成してください。
パッケージの名前 |
---|
j1.lesson02 |
作成するクラスの名前は問題ごとに指示があります。下記を参照してください
課題の提出方法については下記を参照してください。
また、別のコンピューター上に移動する際には、下記を参考にプログラムを持ち帰ってください。
新しい内容
ファイルからデータを読み取る
1つ目は、ファイルの内容をスプレッドシート上に表示する機能です。
この機能を試すために、次の2つのファイルをダウンロードしてコンピューター上に保存しておいてください。(ブラウザによりますが、右クリックしてコンテキストメニューから「対象をファイルに保存」などを選択します)
下記のように、「Spreadsheet.show();」に続いて「Spreadsheet.load();」という命令を書きます。
package j1.lesson02; import gpjava.Spreadsheet; public class LoadS1 { public static void main(String[] args) { new LoadS1().start(); } void start() { Spreadsheet.show(); Spreadsheet.load(); } }
するとファイルを選択するダイアログが表示されますので、先ほどダウンロードしたファイルを選択してください。ファイルの読み出しに成功すると、スプレッドシートには次のように表示されます (example02-1.txt)。
このように | ファイルから | |||
スプレッドシートの | データを | |||
読みだして利用することができます | ||||
整数や | 実数も | |||
100 | 15.2 | |||
このように | 使えます |
数値を取り扱う
2つ目は、スプレッドシートに整数や実数を記憶させたり、記憶させた値をコピーして使ったりする機能です。
package j1.lesson02; import gpjava.Spreadsheet; import javax.swing.JOptionPane; public class GetSetS1 { public static void main(String[] args) { new GetSetS1().start(); } void start() { Spreadsheet.show(); Spreadsheet.setInt(0, 0, 100); Spreadsheet.setDouble(1, 0, 0.05); int v1 = Spreadsheet.getInt(0, 0); JOptionPane.showMessageDialog(null, "(0, 0) = " + v1); double v2 = Spreadsheet.getDouble(1, 0); JOptionPane.showMessageDialog(null, "(1, 0) = " + v2); } }
スプレッドシートは縦横に並んだ変数のような機能を持っていて、「Spreadsheet.setInt」や「Spreadsheet.setDouble」という命令でそれぞれ整数と実数を記憶させられます。
これらは次のように使います。行番号や列番号は、「Spreadsheet.setString」と同様に0から始まることに注意してください。
Spreadsheet.setDouble([行番号], [列番号], [記憶させる実数]);
また、記憶させた整数や実数を取り出すには、「Spreadsheet.getInt」や「Spreadsheet.getDouble」という命令を利用します。
これらは次のように使います。
double [変数の名前] = Spreadsheet.getDouble([行番号], [列番号]);
さらに、先ほどの「Spreadsheet.load();」という命令で読みだした内容も、これらの命令を使って整数や実数を取り出せます。
問題
1. ファイルから読み出したデータをメッセージダイアログに表示
作成するクラスの名前 |
---|
ShowLoadedS1 |
literals02-1.txtの内容をスプレッドシート上に読みだして、そこに含まれる文字列、整数、実数の内容をそれぞれメッセージダイアログ上に表示してください。
literals02-1.txtは、次のように1行目の最初の列に文字列が、2行目の最初の列に整数が、3行目の最初の列に実数がそれぞれ入っています。
(文字列) | ||||
(整数) | ||||
(実数) |
これを表示させる際には、次のようにメッセージダイアログを3回表示してください。
ただし、上記の「(文字列)」「(整数)」「(実数)」の部分は、それぞれファイルから読み出した文字列、整数、実数の内容を表示するようにしてください。
プログラムが完成したら、同じプログラムで別のファイルliterals02-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください (違う内容が表示されるはずです)。
念のため、「Spreadsheet.load();」命令を使うところまでのプログラムを下記に示します。
package j1.lesson02; import gpjava.Spreadsheet; import javax.swing.JOptionPane; public class ShowLoadedS1 { public static void main(String[] args) { new ShowLoadedS1().start(); } void start() { Spreadsheet.show(); Spreadsheet.load(); } }
2. ファイルから読み出したデータをの合計を計算
作成するクラスの名前 |
---|
SumS1 |
earnings02-1.txtの内容をスプレッドシート上に読みだして、Alice, Bob, Charleyの3人の売り上げの合計を計算してください。
売上一覧 | ||||
Alice | 980000 | |||
Bob | 1500000 | |||
Charley | 30000 |
計算した結果は、次のようにスプレッドシートのCharleyの行の直後に表示してください。1列目には解りやすいように「合計」という文字列を表示しましょう。
売上一覧 | ||||
Alice | 980000 | |||
Bob | 1500000 | |||
Charley | 30000 | |||
合計 | 2510000 |
ただし、それぞれの売り上げは整数として保存しています。
プログラムが完成したら、同じプログラムで別のファイルearnings02-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください。このファイルは3人の売上高が変わっているだけの内容です。
3. ファイルから読み出したデータをの税込み価格を計算
作成するクラスの名前 |
---|
TaxS1 |
earnings02-1.txtの内容をスプレッドシート上に読みだして、Alice, Bob, Charleyの3人の売り上げの合計と税込み価格を計算してください。
売上一覧 | ||||
Alice | 980000 | |||
Bob | 1500000 | |||
Charley | 30000 |
計算する内容は、小計、税額、税込の合計の3種類です。税率は入力ダイアログから実数で入力できるようにしてください。計算した結果は、次のようにスプレッドシートのCharleyの行の直後に順に表示してください。それぞれの1列目には解りやすいように「小計」「税額」「合計」という文字列を表示しましょう。
売上一覧 | ||||
Alice | 980000 | |||
Bob | 1500000 | |||
Charley | 30000 | |||
小計 | 2510000 | |||
税額 | 125500 | |||
合計 | 2635500 |
なお、上記の例は入力ダイアログに「0.05」という税率を入力した場合の結果です。
プログラムが完成したら、同じプログラムで別のファイルearnings02-2.txtの内容をスプレッドシート上に読みだして正しく動作するか確認してください。このファイルは3人の売上高が変わっているだけの内容です。
ヒント
整数と実数の掛け算の結果は実数になります。「Spreadsheet.setInt」命令の3つ目の値に実数を指定すると、小数部を切り捨てて整数として表示するので、活用してください。