「Lesson4」 練習問題 5を
「Java入門教室」
に記載してあった ”汎用性のあるメソッド”を使った物を使って
作ってみよう。
また、txtに 出力させてみよう。
元々の問題は 科目1~5 の点数を入力して、5科目の合計点と 平均点を表示するもの。
🌟練習問題 4-5
import java.io.*;
class SampleP5_4
{
static int[] test = new int[5]; //フィールド クラス変数 各点数入力用
static String[] curriculum = {"国語", "算数", "理科", "社会", "外国語"}; //クラス変数 教科名
static String comm1 = "の点数は?"; //クラス変数 教科名 + "の点数は?"
static int sum = 0; //クラス変数 合計点
static int max = 0; //クラス変数 最高点
public static void main(String[] args)
{
System.out.println("5科目のテストの点数を入力して下さい。(0〜100点)");
calcTest(); //点数の入力と集計
testOutput(); //txtに書き込み
}
public static void calcTest()
{
for(int i=0; i<test.length; i++){
test[i] = input(curriculum[i] + comm1);
}
//test[0] = input(" 国語" + comm1);
//test[1] = input(" 算数" + comm1);
//test[2] = input(" 理科" + comm1);
//test[3] = input(" 社会" + comm1);
//test[4] = input(" 外国語" + comm1);
for(int i=0; i<test.length; i++){ //合計点・最高点 の計算。
sum += test[i];
if(max<test[i]) max = test[i];
}
System.out.println("5科目の合計点は" + sum + "点です。");
System.out.println("5科目の平均点は" + (sum / (double)test.length) + "点です。");
System.out.println("最高点は" + max + "点です。");
}
public static void testOutput()
{
try{
PrintWriter pw = new PrintWriter
(new BufferedWriter(new FileWriter("test.txt")));
for(int i=0; i<test.length; i++){
pw.println(curriculum[i] + "の点数は" + test[i] + "点です。");
}
pw.println("5科目の合計点は" + sum + "点です。");
pw.println("5科目の平均点は" + (sum / (double)test.length) + "点です。");
pw.println("最高点は" + max + "点です。");
System.out.println("test.txt に書き込みました。");
pw.close();
}catch(IOException e){
System.out.println("入出力エラーです。");
}
}
public static int input(String txt)
{
System.out.println(txt);
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = null; //入力用 初期化 null
int num = 0; //入力用
try{
str = br.readLine();
}catch(IOException e){
System.out.println("入出力エラーです。");
}
try{
num = Integer.parseInt(str);
}catch(Exception e){
System.out.println("数値以外が入力されました。 0点を代入します。");
num = 0;
}
if(num<0 || num>100){ //入力した点数の確認
System.out.println("0点から 100点で入力して下さい。");
num = 0;
}
return num;
}
}
とりあえず、txtに出力できた。。
今日の教訓
クラスを分けたらどうなるのかな。
考えてみよう。
0 件のコメント:
コメントを投稿