C Program To Process Marks Of Student And Display Grade

The C program to process marks of student and display grade checks for multiple conditions on the input marks and then decides the grade of a student.

This program is written using Dev C++ compiler version 4.9.9.2 installed on Windows 7 64-bit computer. You can use any standard C compiler and this program should work.

Advertisements

To help you understand the program we have the following sections – problem definition, a flowchart of the program, the source code for the program and a verified output. When you practice the program by yourself, make sure that you compare the output value from this article.

Problem Definition

This program is a simple C program that makes use of structures. The program when executed asks for “Total number of students for whom marks should be processed”. Upon receiving the number of student value, it asks for each student details such as

  • Rollno
  • Name
  • Marks

When all the details are entered it is stored in an array of structures. You can learn about structures from the following link.C Programming Tutorial – Structure and Union

Advertisements

The marks of student is used to process the grades and stored in the variable grade of each student. The program prints the results for each student.

The grade is calculated based on the following logic.

If grade is less than or equal to 50, the student gets 'F',
If grade is greater than 50, but less than or equal to 55, student gets a 'D',
If grade is greater than 55, but less than or equal to 60, student gets a 'C',
If grade is greater than 60, but less than or equal to 75, student gets a 'B',
if grade is grater than 75, but less than or equal to 90, then student gets 'A',
if grade is above 90, the student get the highest grade - 'A+'. 
You may change the evaluation criteria as per your need.

Program Code – Processing Student Marks and Display Results

/* Program to process marks of students and display Grades */
#include <stdio.h>
#include <conio.h>
struct student{
    char name[25];
    int rollno;
    int marks;
    char grade;
};
main()
{
    struct student stud[15];
    int i,n;
/* Get the number of students */
    printf("ENTER THE NUMBER OF STUDENTS:");
    scanf("%d",&n);
/* Get the value of Students marks*/
    for(i=0;i<n;i++)
    {
        printf("ENTER STUDENT INFORMATION:\n");
        printf("NAME:");
        scanf("%s",&stud[i].name);
        printf("ROLLNO:");
        scanf("%d",&stud[i].rollno);
        printf("MARKS(In Percentage):");
        scanf("%d",&stud[i].marks);
        printf("\n");
    }
/* Print student information*/
    for(i=0;i<n;i++)
    {
        if(stud[i].marks <= 50) 
        { 
            stud[i].grade = 'F'; 
        } 
        else if(stud[i].marks > 50 && stud[i].marks <= 55) 
        { 
            stud[i].grade = 'D'; 
        } 
        else if(stud[i].marks > 55 && stud[i].marks <= 60) 
        { 
            stud[i].grade = 'C'; 
        } 
        else if(stud[i].marks > 60 && stud[i].marks <= 75) 
        { 
            stud[i].grade = 'B'; 
        } 
        else if (stud[i].marks > 75 && stud[i].marks <= 90) 
        { 
            stud[i].grade = 'A'; 
        } 
        else if(stud[i].marks > 90)
        {
            stud[i].grade = 'S';
        }
    }
    for(i = 0;i<40;i++)
    printf("_");printf("\n");
    printf("Name\tRollNo\tMarks\tGrade\n");
    for(i = 0;i<40;i++)
    printf("_");printf("\n");
    for(i=0;i<n;i++)
        {
        printf("%s\t%d\t%d\t%c\n",stud[i].name,stud[i].rollno,stud[i].marks,stud[i].grade);
   }
   for(i = 0;i<40;i++)
   printf("_");printf("\n");
   getch();
       return 0;
}

Output – Processing Student Marks and Display Results

ENTER THE NUMBER OF STUDENTS:4
ENTER STUDENT INFORMATION:
NAME:Peter
ROLLNO:233
MARKS(In Percentage):56

ENTER STUDENT INFORMATION:
NAME:John
ROLLNO:234
MARKS(In Percentage):86

ENTER STUDENT INFORMATION:
NAME:Kate
ROLLNO:235
MARKS(In Percentage):45

ENTER STUDENT INFORMATION:
NAME:Larry
ROLLNO:236
MARKS(In Percentage):90

_________________________________________________________
Name      RollNo     Marks     Grade
_________________________________________________________
Peter     233        56         C
John      234        86         A
Kate      235        45         F
Larry     236        90         A
_________________________________________________________
Advertisements

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Exit mobile version