Programme Java du carnet de notes. Aide à appeler la classe?


L'affectation va comme suit.

Un enseignant a cinq élèves qui ont passé quatre tests. L'enseignant utilise l'échelle de notes suivante pour attribuer une note de lettre à un élève, en fonction de la moyenne de ses quatre résultats aux tests.

90-100:  A
80-79:  B
70-79:  C
60-69:  D
0-59:  F

Écrivez une classe qui utilise un tableau de chaînes sur un objet arraylist pour contenir les noms des cinq étudiants, un tableau de cinq caractères pour contenir les notes des lettres des cinq étudiants et cinq tableaux de quatre doubles chacun pour contenir l'ensemble de tests de chaque étudiant scores. La classe doit avoir des méthodes qui renvoient le nom d'un élève, le score moyen au test et une note de lettre basée sur la moyenne.

Démontrer la classe dans un programme qui permet à l'utilisateur d'entrer le nom de chaque élève et ses quatre résultats aux tests. Il devrait ensuite afficher le score moyen de chaque élève au test et la note de la lettre.

Le programme ne doit pas accepter un score inférieur à 0 ou supérieur à 100

Le code suivant est ici:

Étudiant classe:

public class Student{
    private String name;
    private double[] test = new double[4];


    public Student(){
        name = " ";
    }

    public Student(String n, double[] t){
        name = n;
        test = t;
    }

    public void setName(String n)
    {
        name = n;
    }

    public String getName(){
        return name;
    }

    public void setTest(double t,int i)
    {
        test[i] = t;
    }

    public double getTest(int i)
    {
        return test[i];
    }


    public double getTestAvg(){

        double sum = 0;
        double avg;
        for(int i = 0; i < test.length; i++)
        {
            sum += test[i];
        }
         avg = sum / test.length;
         return avg;
    }

    public char getLetterGrade(){

        double average = getTestAvg();
        char grade=0;

        if(average >= 90)
            grade = 'A';
        else if (average >= 80)
            grade = 'B';
        else if (average >= 70)
            grade = 'C';
        else if (average >=60)
            grade = 'D';
        else if (average < 60)
            grade = 'F';

        return grade;
    }

    public String toString(){
        String str = "";
        str += "\nName of student: " + name;
        str += "\nAverage test score: " + getTestAvg();
        str += "\nLetter grade: " + getLetterGrade();
        return str;
    }
}       

Le Programme principal:

import java.util.Scanner;
import java.io.*;

public class GradeBook {

    public static void main(String[] args) throws IOException {

        Student[] students = new Student[5];

        getStudentData(students);

    }

    public static double getStudentData(Student[] array) {
        Scanner scan = new Scanner(System.in);
        String[] student = new String[5];
        double[] test = new double[4];
        for (int i = 0; i < student.length; i++) {
            System.out.println("Enter the name of the student : ");
            student[i] = scan.nextLine();
            for (int j = 0; j < test.length; j++) {
                System.out.println("Enter score " + (j + 1) + " for the student");
                test[j] = scan.nextDouble();
                scan.nextLine();
            }
            array[i] = new Student(student[i], test);

        }
        return 0;

    }
}

Le problème est que je peux entrer toutes les informations, mais rien ne s'affichera après que tous les numéros ont été entrés. Toute aide serait grandement appréciée!

Author: afzalex, 2014-11-12

1 answers

Vous ne voyez rien affiché parce que vous ne faites jamais l'appel pour afficher quoi que ce soit. Vous remplissez le "tableau", vous devez donc le parcourir maintenant.

Après la boucle for externe (la première), vous voudrez parcourir le tableau rempli et imprimer les objets student. Cela fonctionnera puisque vous avez déjà une méthode toString ().

Ex:

for(Student student : array)
{
    System.out.println(student);
}
 4
Author: Ben Minton, 2014-11-12 22:14:59