Ошибка: метод Main не найден в классе com.company.StudentGrade, определите метод main следующим образом: public static void main (String [] args) - PullRequest
0 голосов
/ 05 декабря 2018

Это не мой основной класс, а мой класс объектов.Кажется, у всех остальных есть ошибка в их главном.

Вот мой основной

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 ... Основное верное, я считаю ... Любые предложения будут хорошими!

...