javaについて質問です。情報処理検定第53回のプログラミング部門1級のjavaの問題をやっているんですけど、そのjavaに平均値を追加したいです。どのように追加すれば良いのでしょうか?
###該当のソースコード
//クラスSportsDay
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class SportsDay {
private static String[] name = {"", "玉入れ", "二人三脚", "徒競走", "騎馬戦", "リレー", "棒倒し", "大縄跳び", "総合ポイント"};
private static EventInfo[] event = new EventInfo[9];
public static void main(String[] args) {
try {
for(int i = 1; i <= 8; i++) {
event[i] = new EventInfo(name[i]);
}
BufferedReader fileIn = new BufferedReader(new FileReader("c:\Poi.csv"));
String line;
while((line = fileIn.readLine()) != null) {
String[] str = line.split(",");
int code = Integer.parseInt(str[0]);
int gradeIndex = Integer.parseInt(str[1]);
int classIndex = Integer.parseInt(str[2]);
int point = Integer.parseInt(str[3]);
event[code].addPoint(gradeIndex, classIndex, point);
event[8].addPoint(gradeIndex, classIndex, point);
}
fileIn.close();
} catch(Exception e) {
System.out.println("エラーが発生しました" + e);
}
Scanner keyboardIn = new Scanner(System.in);
System.out.print("コード(1~8)を入力してください。→");
int code = keyboardIn.nextInt();
while(code != 0) {
if(event[code].getFlag() != 1) {
event[code].sort();
}
event[code].printPoint();
System.out.print("コード(1~8)を入力してください。→");
code = keyboardIn.nextInt();
}
keyboardIn.close();
}
}
//クラスEventInfo
public class EventInfo {
private String name;
private int[][] classNumber = new int[4][7];
private int[][] classPoint = new int[4][7];
private int sortFlag;
public EventInfo(String name) {
this.name = name;
for(int i = 1; i <= 3; i++) {
for(int j = 1; j <= 6; j++) {
classNumber[i][j] = j;
}
}
}
public void addPoint(int i, int j, int point) {
classPoint[i][j] = classPoint[i][j] + point;
}
public int getFlag() {
return sortFlag;
}
public void sort() {
for(int i = 1; i <= 3; i++) {
for(int j = 5; j >= 1; j--) {
for(int k = 1; k <= j; k++) {
if(classPoint[i][j] < classPoint[i][k + 1]) {
classNumber[i][0] = classNumber[i][k];
classNumber[i][k] = classNumber[i][k + 1];
classNumber[i][k + 1] = classNumber[i][0];
classPoint[i][0] = classPoint[i][k];
classPoint[i][k] = classPoint[i][k + 1];
classPoint[i][k + 1] = classPoint[i][0];
}
}
}
}
sortFlag = 1;
}
public void printPoint() {
System.out.println(name);
System.out.printf("\t1年 \t\t2年 \t\t3年\n");
int[] ranking = new int[4];
for(int i = 1; i <= 6; i++) {
for(int j = 1; j <= 3; j++) {
if(classPoint[j][i] != classPoint[j][i - 1] || i == 1) {
ranking[j] = i;
}
System.out.printf("\t%d位 %d組 %3dポイント", ranking[j], classNumber[j][i], classPoint[j][i]);
}
System.out.println();
}
}
}
###試したこと
http://www.zensho.or.jp/puf/download/exam/pastexam/2015/info_53_1_pro.pdf リンクです。java選択者の問題をやってます。学年の横に平均値追加したいです。どのようにjavaに加えれば良いのでしょうか?
###補足情報
java初心者です。出来れば分かりやすくお願いします。本当によろしくお願いします。
回答1件
あなたの回答
tips
プレビュー