Java Program to Calculate Grades of Students

This post covers a program in Java that finds and prints the grade of a student based on the marks entered by the user at run-time of the program.

The grades of students must be calculated as per the following table:

Average Mark Range Grade
>= 94 A
>= 90 and < 94 A-
>= 87 and < 90 B+
>= 83 and < 87 B
>= 80 and < 83 B-
>= 77 and < 80 C+
>= 73 and < 77 C
>= 70 and < 73 C-
>= 67 and < 70 D+
>= 63 and < 67 D
>= 60 and < 63 D-
< 60 F

Note: In the above table, the range >= 90 and < 94 means that if the average mark is greater than or equal to 90 and less than 94, then the grade should be A-. Under this range, some marks may lie between 90, 90.23, 92, 93.89, etc. That is, in the range of 90-94 here, 90 is included, whereas 94 is excluded.

Find Grades of Students in Java: Basic Version

The question is: write a program in Java to find the grade of a student using if-else. The program given below has its answer:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      float[] marks = new float[8];
      float sum=0, avg;
      int i;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter Marks Obtained in 8 Subjects: ");
      for(i=0; i<8; i++)
         marks[i] = scan.nextFloat();
      
      for(i=0; i<8; i++)
         sum = sum + marks[i];
      avg = sum/8;
      
      System.out.print("\nGrade = ");
	  
      if(avg>=94)
         System.out.println("A");
      else if(avg>=90 && avg<94)
         System.out.println("A-");
      else if(avg>=87 && avg<90)
         System.out.println("B+");
      else if(avg>=83 && avg<87)
         System.out.println("B");
      else if(avg>=80 && avg<83)
         System.out.println("B-");
      else if(avg>=77 && avg<80)
         System.out.println("C+");
      else if(avg>=73 && avg<77)
         System.out.println("C");
      else if(avg>=70 && avg<73)
         System.out.println("C-");
      else if(avg>=67 && avg<70)
         System.out.println("D+");
      else if(avg>=63 && avg<67)
         System.out.println("D");
      else if(avg>=60 && avg<63)
         System.out.println("D-");
      else
         System.out.println("F");
   }
}

The snapshot given below shows the initial output produced by the above Java program:

java calculate grades of student

Now supply the marks obtained in 8 subjects. Here is its sample run, after providing marks like 94, 97, 92, 89, 86, 98, 99, and 88 as eight subject marks:

java find grades of student

The above program can also be created in this way:

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      float[] marks = new float[8];
      float sum=0;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter Marks Obtained in 8 Subjects: ");
      for(int i=0; i<8; i++)
      {
         marks[i] = scan.nextFloat();
         sum += marks[i];
      }
	  
      float avg = sum/8;
      String grade = "";
      
      if(avg>=94)
         grade = "A";
      else if(avg>=90 && avg<94)
         grade = "A-";
      else if(avg>=87 && avg<90)
         grade = "B+";
      else if(avg>=83 && avg<87)
         grade = "B";
      else if(avg>=80 && avg<83)
         grade = "B-";
      else if(avg>=77 && avg<80)
         grade = "C+";
      else if(avg>=73 && avg<77)
         grade = "C";
      else if(avg>=70 && avg<73)
         grade = "C-";
      else if(avg>=67 && avg<70)
         grade = "D+";
      else if(avg>=63 && avg<67)
         grade = "D";
      else if(avg>=60 && avg<63)
         grade = "D-";
      else
         grade = "F";
		 
      System.out.println("\nGrade = " +grade);
   }
}

Find Grades of Students in Java: Complete Version

Since the program given above has some limitations, such as what if the user enters a mark greater than 100?
Also, the program only covers eight subjects?
Therefore, keeping in mind these types of limitations, I've modified the program and created a new one, as given below.

import java.util.Scanner;

public class CodesCracker
{
   public static void main(String[] args)
   {
      float[] marks = new float[8];
      float sum=0;
      Scanner scan = new Scanner(System.in);
      
      System.out.print("Enter Total Number of Subjects: ");
      int tot = scan.nextInt();
      System.out.print("Enter Marks Obtained in " +tot+ " Subjects: ");
      for(int i=0; i<tot; i++)
      {
         marks[i] = scan.nextFloat();
         sum += marks[i];
      }
	  
      float avg = sum/tot;
      String grade = "";
      
      if(avg>=94 && avg<=100)
         grade = "A";
      else if(avg>=90 && avg<94)
         grade = "A-";
      else if(avg>=87 && avg<90)
         grade = "B+";
      else if(avg>=83 && avg<87)
         grade = "B";
      else if(avg>=80 && avg<83)
         grade = "B-";
      else if(avg>=77 && avg<80)
         grade = "C+";
      else if(avg>=73 && avg<77)
         grade = "C";
      else if(avg>=70 && avg<73)
         grade = "C-";
      else if(avg>=67 && avg<70)
         grade = "D+";
      else if(avg>=63 && avg<67)
         grade = "D";
      else if(avg>=60 && avg<63)
         grade = "D-";
      else if(avg>=0 && avg<60)
         grade = "F";
      else
         grade = "Invalid Input!";
		 
      if(grade.equals("Invalid Input!"))
         System.out.println("\nInvalid Input!");
      else
         System.out.println("\nGrade = " +grade);
   }
}

Here is its sample run with user input 5 as the number of subjects and 70, 78, 90, 94, and 88 as the five subject marks:

student grade program in java

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »


Liked this post? Share it!