前提・実現したいこと
五人の名前と、数学、英語、物理のテストの結果をそれぞれ表示したうえで集計し、平均を出すプログラムを書いています。
方針としては、まず一人一人のオブジェクトを作成し、配列に入れます。さらに一人一人の各教科の点数と合計をそれぞれを配列に入れます。全体の合計は新たに変数sumを宣言し、最後に表示させています。
今まであまり長いコードを書いたことがなかったからかもしれませんが、この動きにここまで長いコードが必要なものなのでしょうか。
よりスマートにできる方法があれば教えていただきたいです。
よろしくお願いします。
(セッタ・ゲッタは今回は使用しませんが、必要になる場合もあるかもしれないということで一応書いています。)
該当のソースコード
public class Start { public static void main(String[] args) { //生徒オブジェクト作成 Student tanaka = new Student("田中", 77, 62, 80); Student yamada = new Student("山田", 60, 82, 89); Student takahashi = new Student("高橋", 86, 75, 90); Student satoh = new Student("佐藤", 70, 75, 70); Student kobayashi = new Student("小林", 90, 88, 89); //オブジェクトを配列に入れる Student[] student = {tanaka, yamada, takahashi, satoh, kobayashi}; //名前、点数、各人の合計を配列に入れるために配列を作る String[] names = new String[5]; int[] mathPoint = new int[5]; int[] engPoint = new int[5]; int[] sciPoint = new int[5]; int[] totalPoint = new int[5]; //配列に入れる for(int i = 0; i < student.length; i++) { names [i] = student[i].getName(); mathPoint[i] = student[i].getMath(); engPoint[i] = student[i].getEnglish(); sciPoint[i] = student[i].getScience(); totalPoint[i] = student[i].getTotal(); } //表示 for(int i = 0; i < student.length; i++) { System.out.println("名前:" + names[i] + " " + mathPoint[i] + " " + engPoint[i] + " " + sciPoint[i] + " 合計:" + totalPoint[i]); } //平均を出すために全体の合計を出す int sum = 0; for(int i = 0; i < student.length; i++) { sum += student[i].getTotal(); } System.out.println("平均:" + sum/student.length); } }
public class Student { //メンバ変数宣言 private String name; private int math; private int english; private int science; //コンストラクタ Student(){ this("無記名"); } Student(String name){ this(name, 0); } Student(String name, int math){ this(name, math, 0); } Student(String name, int math, int english){ this(name, math, english, 0); } Student(String name, int math, int english, int science){ this.name = name; this.math = math; this.english = english; this.science = science; } //セッタ public void setName(String name){ this.name = name; } public void setMath(int math) { this.math = math; } public void setEnglish(int english) { this.english = english; } public void setScience(int science) { this.science = science; } public String getName() { return name; } public int getMath() { return math; } public int getEnglish() { return english; } public int getScience() { return science; } //合計を出す public int getTotal() { return math + english + science; } }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/23 14:00 編集
2018/04/24 13:57
2018/04/24 14:47 編集
2018/04/24 14:48
2018/04/29 12:57
2018/04/29 12:59
2018/04/29 14:12