Это не мой основной класс, а мой класс объектов.Кажется, у всех остальных есть ошибка в их главном.
Вот мой основной
package com.company;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
/**
*
*/
public class HW6{
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
StudentGrade[] studentGradesA = initialize("grade.txt");
process(studentGradesA);
}
/**
* @param inputFileName
* @throws FileNotFoundException
*/
public static StudentGrade[] initialize( String inputFileName) throws FileNotFoundException {
File f = new File(inputFileName);
Scanner reader = new Scanner(f);
int size = reader.nextInt();
String[] names = new String[size];
double[] grades = new double[size];
StudentGrade[] studentGrades = new StudentGrade[grades.length];
int index = 0;
while (reader.hasNext()) {
names[index] = reader.next();
grades[index] = reader.nextDouble();
index++;
}
for(int i = 0; i < studentGrades.length; i++) {
studentGrades[i] = new StudentGrade(grades, names);
}
return studentGrades;
}
/**
* @param studentGrades
* @throws FileNotFoundException
*/
public static void process(StudentGrade[] studentGrades)
throws FileNotFoundException{
// Get the student with min grade
StudentGrade studentGradeMin = findMinIndex(studentGrades);
// Get the student with max grade
StudentGrade studentGradeMax = findMaxIndex(studentGrades);
// get the average grade
double average = findAverage(studentGrades);
// flush these details to the file
flush(studentGradeMin, studentGradeMax, average, "output.txt");
}
/**
* @param studentGrades
* @return
*/
public static StudentGrade findMinIndex(StudentGrade[] studentGrades) {
StudentGrade studentGradeMinimum = studentGrades[0];
for(int i=0; i < studentGrades.length; i++) {
if(studentGradeMinimum.getGrade()[0] > studentGrades[i].getGrade()[i]) {
studentGradeMinimum.getGrade()[0] = studentGrades[i].getGrade()[i];
}
}
System.out.println(studentGradeMinimum.getGrade()[0]);
return studentGradeMinimum;
}
/**
* @param studentGrades
* @return
*/
public static StudentGrade findMaxIndex(StudentGrade[] studentGrades) {
StudentGrade studentGradeMaximum = studentGrades[0];
for(int i=0; i < studentGrades.length; i++) {
if(studentGradeMaximum.getGrade()[0] > studentGrades[i].getGrade()[i]) {
studentGradeMaximum.getGrade()[0] = studentGrades[i].getGrade()[i];
}
}
System.out.println(studentGradeMaximum.getGrade()[0]);
return studentGradeMaximum;
}
/**
* @param studentGrades
* @return
*/
public static double findAverage(StudentGrade[] studentGrades) {
double average = 0;
double sum = 0;
for (int i = 0; i < studentGrades.length; i++) {
sum += studentGrades[i].getGrade()[i];
}
average = Math.round((sum / studentGrades.length) * 100.0) / 100.0;
return average;
}
/**
* @param studentGradeMinimum
* @param studentGradeMaximum
* @param average
* @param outputFileName
* @throws FileNotFoundException
*/
public static void flush(StudentGrade studentGradeMinimum, StudentGrade studentGradeMaximum, double average, String outputFileName)
throws FileNotFoundException {
PrintWriter writer = new PrintWriter(outputFileName);
writer.write("-------------------------------" + "\n");
writer.write("Minimum: " + studentGradeMinimum.getName() + " , " +
studentGradeMinimum.getGrade() + "\n");
writer.write("Maximum: " + studentGradeMaximum.getName() + " , " +
studentGradeMaximum.getGrade() + "\n");
writer.write("Average: " + String.valueOf(average) + "\n");
writer.write("-------------------------------" + "\n");
writer.close();
}
}
Вот мой объект
package com.company;
import javafx.application.Application;
public class StudentGrade {
private String[] name;
private double[] grade;
public StudentGrade(double[] grade, String[] name) {
this.name = name;
this.grade = grade;
}
public String[] getName() {
return name;
}
public void setName(String[] name) {
this.name = name;
}
public double[] getGrade() {
return grade;
}
public void setGrade(double[] grade) {
this.grade = grade;
}
@Override
public String toString() {
StringBuilder push = new StringBuilder();
for (String name : name){
push.append(name);
push.append(",");
}
for (int i = 0; i<grade.length -1;i++) {
push.append(grade[i]);
push.append(",");
}
push.append(grade[grade.length-1]);
return push.toString();
}
}
Очевидно, это домашняя работа для класса.Самая большая проблема заключается в том, что не следует вызывать main в объектном классе, я попытался переустановить IDE ... Основное верное, я считаю ... Любые предложения будут хорошими!