Using C Write a program that will define a structure consist
Using C++:
Write a program that will define a structure consisting of the following data members, “fields”:
Name - a string
Student id number – an integer.
Three test scores – positive short integers.
Average –a float
Grade – a character.
Input to the program consists of:
name
id number
three test scores
Requirements:
Use a function to read the name, id number and three test scores, the function will return a structure.
A function to find the average, the function is a void function that takes the entire structure as an argument (by reference) and calculates the average.
A function that takes the average as argument and returns the grade (‘A’,’B’,’C’,’D’, or ’F’) using standard grading.
A function that prints each data member of the structure on a separate line and calls another function that prints the message “You Passed” or “You Failed”.
Display should be like this:
Employee Name : Roberth Schultz
Id Number : 2345
Tests :
1-78
2-88
3-98
Average : 88.00
Grade : B You Passed.
Solution
#include <iostream>
 #include <string>
 using namespace std;
struct studentDetails {
 string name;
 int studentID;
 int score[3];
 float average;
 char grade;
 };
studentDetails input()
 {
    studentDetails student;
   cout<<\"Enter the student name: \";
    cin>>student.name;
    cout<<\"\ Enter student ID: \";
    cin>>student.studentID;
    cout<<\"\ Enter the three test scores\";
    for(int i=0;i<3;i++)
    {
        cout<<\"\ Test \"<<i+1<<\" mark: \";
        cin>>student.score[i];
    }
 return student;
 }
void calculateAverage(studentDetails *data)
 {
    int sum=0;
    for(int i=0;i<3;i++)
    {
        sum+=data->score[i];
    }
    data->average=sum/3;
    cout<<\"Average of marks scored in 3 subjects is :\";
    cout<<data->average;  
 }
char calculateGrade(float avg)
 {
    if(avg>=90)
    {
        return \'A\';
    }
    else if(avg>=80 && avg<90)
    {
        return \'B\';
    }
    else if(avg>=70 && avg<80)
    {
        return \'C\';
    }
    else if(avg>=60 && avg<70)
    {
        return \'D\';
    }
    else
    {
        return \'E\';
    }
 }
void display()
 {
    studentDetails sd;
    cout<<\"\ Employee Name: \"<<sd.name;
    cout<<\"\ Id Number: \"<<sd.studentID;
    cout<<\"\ Tests: \";
    for(int j=0;j<3;j++)
    {
        cout<<j+1<<\"-\"<<sd.score[j];
        cout<<\"\ \";
    }
    cout<<\"Average: \"<<sd.avg;
    cout<<\"\ Grade: \"<<sd.grade<<getMessage(sd.grade);
 }
String getMessage(grade)
 {
    if(grade=\'A\' || grade=\'B\' || grade=\'C\')
    {
        return \"You Passed.\";
    }
    else
    {
        return \"You Failed.\";
    }
 }
int main()
 {
    input();
    studentDetails data;
    calculateAverage(&data);
    calculateGrade(data.average);
    display();
 }



