[Java]Javaの文法が間違っているのでしょうか・・・?
6人分の小テストの点数を記録し,平均点,最高点,平均点以下の人の一覧を計算するプログラムを作成したいのです。
入力はコマンドラインから行います。
しかし,TEST配列がうまく初期化がうまく記述できないため,コンパイル時点で”シンボルが見つけられません”というエラーが出てしまいます。
Javaの経験が浅いので、文法そのものが間違っているか心配です。C言語についてはある程度知識がありますから、C言語と対比して教えて頂けたりすると大変たすかります。
宜しくお願い致します。
class Lecture {
static Lecture[] TEST;
static double avg=0;
static int max=0;
static int i = 0;
static String kamoku;
int scorebox;
String name;
String student_number;
Lecture(int size){
TEST = new Lecture[size];
for (int i = 0; i < size; i++) {
Exercise a = new Exercise();
Student b = new Student();
TEST[i] = new Lecture(a,b);
}
}
static void add(Exercise score, Student aStudent)
{
TEST[i].name = aStudent.name;
TEST[i].student_number = aStudent.student_number;
TEST[i].scorebox = score.score;
i++;
}
static void avg()
{
int sum=0;
for (int i = 0; i < 6; i++)
{
sum += TEST[i].scorebox;
}
avg = sum / 6;
}
static void max()
{
int max = 0;
int temp = 0;
for (int i = 0; i < 6; i++)
{
if (max < TEST[i].scorebox)
{
temp = i;
max = TEST[i].scorebox;
}
}
max = i;
}
static void show_kamoku(){
System.out.println("科目:"+kamoku);
}
static void show(){
Lecture.max();
System.out.println("平均点:"+avg);
System.out.println("最高得点者:"+TEST[max]);
}
static void under_avg(){
Lecture.avg();
System.out.println("平均点を下回った者");
for(int i=0 ; i<6 ; i++){
if(avg > TEST[i].scorebox){
System.out.println(TEST[i]);
}
}
}
}
class Exercise {
int score;
Exercise(int score) {
this.score = score;
}
Exercise()
{
}
public String toString() {
return " 得点:" + score;
}
}
class Student {
String name;
String student_number;
Student(String student_number,String name ) {
this.name = name;
this.student_number = student_number;
}
Student()
{
}
public String toString() {
return "学籍番号:" + student_number + " 名前:" + name;
}
}
class ExerciseEvaluation {
public static void main(String args[]){
Lecture.kamoku=args[0];
Lecture[] lec = new Lecture[6];
Student Y0 = new Student(args[1],args[2]);
Exercise X0 = new Exercise(Integer.parseInt(args[3]));
lec[0].add(X0, Y0);
Student Y1 = new Student(args[4], args[5]);
Exercise X1 = new Exercise(Integer.parseInt(args[6]));
lec[1].add(X1, Y1);
Student Y2 = new Student(args[7], args[8]);
Exercise X2 = new Exercise(Integer.parseInt(args[9]));
lec[2].add(X2, Y2);
Student Y3 = new Student(args[10], args[11]);
Exercise X3 = new Exercise(Integer.parseInt(args[12]));
lec[3].add(X3, Y3);
Student Y4 = new Student(args[13], args[14]);
Exercise X4 = new Exercise(Integer.parseInt(args[15]));
lec[4].add(X4, Y4);
Student Y5 = new Student(args[16], args[17]);
Exercise X5 = new Exercise(Integer.parseInt(args[18]));
lec[5].add(X5, Y5);
Lecture.show_kamoku();
Lecture.show();
Lecture.under_avg();
}
}
補足
判明してますが平均値の出し方がわかりません。 どこに何を入れたら平均値も出せるプログラムに変更できるかをお願いします