-5
public class Student extends Person{
    public double exa1, exa2, exa3, exa4, midexa1, midexa2, midexa3, finexa, finGrade;
    public char finCourseGrd;

    public Student(String f2, String l2, String a2,
            String n2, int edad2, int e1, int e2, int e3, int e4) {
        super(f2, l2, a2, n2, edad2);
        exa1 = e1;
        exa2 = e2;
        exa3 = e3;
        exa4 = e4;
    }

    public void midGrades() {
        midexa1 = (20/100)*(exa1/50);
        midexa2 = (20/100)*(exa2/50);
        midexa3 = (20/100)*(exa3/50);
    }

    public void exafinGrade() {
        finexa = (40/100)*(exa4/100);
    }

    public void finalGrade() {
        finGrade = ( midexa1 + midexa2 + midexa3 + finexa ) * 100;
    }

    public void finalCourseGrade() {
        if (finGrade >= 85 && finGrade <= 100) {
            finCourseGrd = 'A';
        }
        else if (finGrade >= 78 && finGrade <= 84) {
            finCourseGrd = 'B';
        }
        else if (finGrade >= 65 && finGrade <= 77) {
            finCourseGrd = 'C';
        }
        else if (finGrade >= 40 && finGrade <= 64) {
            finCourseGrd = 'D';
        }
        else if (finGrade >= 0 && finGrade <= 39) {
            finCourseGrd = 'F';
        }
    }

    public String toString() {
        return super.toString() + "First midterm Grade: " + midexa1 + "\n" + "Second midterm Grade: " + midexa2 + "\n" 
        + "Third midterm Grade: " + midexa3 + "\n" + "Final term Grade: " + finexa + "\n" + "The students final course grade: " + finGrade + finCourseGrd; 
    }

}

I have a test class everything runs ok, but im having issues displaying the end result of the grades

Juan Carlos Mendoza
  • 5,203
  • 7
  • 21
  • 48

1 Answers1

1

You have some casting problem while calculating the grades. As they are declared integers so the output would be zero. e.g. 20/100 o/p = 0 but if cast them explicitly then (float)20/(float)100 o/p=0.200000

so try this:

public void midGrades() {
        midexa1 = ((double)20/(double)100)*(exa1/50);
        midexa2 = ((double)20/(double)100)*(exa2/50);
        midexa3 = ((double)20/(double)100)*(exa3/50);
    }

    public void exafinGrade() {
        finexa = ((double)40/(double)100)*(exa4/100);
    }
Suvam Roy
  • 873
  • 1
  • 7
  • 18