Hey guys i need your help. I have a class assignment to write a program that compute students cgpa and i don't have the least idea on how to go about it. I am only a beginner with C++
I'm sure your professor/teacher has given you instructions on how to do certain functions. In order to calculate GPA, you probably need to do the following:
1. Input a set of grades. This could be reading from a file or asking the user for input.
2. Convert each grade to a numeric value
3. Get the average value (note - make sure you don't end up with an integer result)
4. Handle the result. This could be writing to an output file or displaying the value on the screen.
What you should do is write the program in steps. Write code for the step and test it to make sure that it works.
Show us your code when you have something started and we can help. We are not going to do your homework for you.
Try using a while loop to add up all of the values and average them out. I'll post a link to a video where this is done just with test scores instead of gpa.
#include<iostream> // for input and output
#include<cstring> // for string nama...
#include<cmath> //for mathematical operations
usingnamespace std; // for name space..
struct student // declare struct
{
/*this program will calculate students CGPA*/
string name,no_matric;
string sub_code[10],sub_name[10],sub_grade[10];
float credit_hour[10];
}student1;
int main()
{
int credit_hours[10];
int sem,total_subject;
float value[10],gpa[10],get_point[10],cgpa[10];
float total_point_sem = 0; //Initialise value
int total_credit_hours_sem = 0; //Initialise value
cin.ignore();
cout << "\n ENTER STUDENT'S NAME : "; //Enter student's name
getline(cin,student1.name);
cout << " ENTER STUDENT'S MATRIC NUMBER : "; //Enter student's matric number
getline(cin,student1.no_matric);
cout << " ENTER TOTAL SEM TAKEN :"; //Total semester taken by the student
cin >> sem;
for(int a=0; a<sem ; a++) //'a' declared as int in for()[newly added]
{
int b; //newly added line,'b' choose to add it here because, if not, error will be occured : 'b' for gpa[b] will become undefined...
int total_credit_hours = 0; //newly added
float total_point = 0, gpa[b]; //newly added
float cgpa;
cgpa==gpa[b];
cout << "\n ENTER SUBJECT TAKEN FOR SEM : " << a+1 << ":"; //Enter total number of subject taken for each sem
cin >> total_subject;
for(int b=0; b<total_subject; b++) //loop for the courses
{
cin.ignore();
cout << " ENTER SUBJECT CODE : "; //Enter subject code
getline(cin,student1.sub_code[b]);
cout << " ENTER SUBJECT NAME : "; //Enter subject name
getline(cin,student1.sub_name[b]);
cout << " ENTER SUBJECT'S CREDIT HOUR : "; //Enter credit hours of the subject
cin >> student1.credit_hour[b];
cin.ignore();
cout << " ENTER SUBJECT GRADE : "; //Enter grade gained by student for every subject
getline(cin,student1.sub_grade[b]);
if(student1.sub_grade[b]=="A")
value[b]=4;
elseif(student1.sub_grade[b]=="A-")
value[b]=3.75;
elseif(student1.sub_grade[b]=="B+")
value[b]=3.5;
elseif(student1.sub_grade[b]=="B")
value[b]=3;
elseif(student1.sub_grade[b]=="B-")
value[b]=2.75;
elseif(student1.sub_grade[b]=="C+")
value[b]=2.5;
elseif(student1.sub_grade[b]=="C")
value[b]=2;
elseif(student1.sub_grade[b]=="C-")
value[b]=1.75;
elseif(student1.sub_grade[b]== "D+")
value[b]=1.5;
elseif(student1.sub_grade[b]=="D")
value[b]=1;
else
value[b]=0;
get_point[b] = student1.credit_hour[b] * value[b]; //multiply of credit hours and grade get for each subject
total_credit_hours +=student1.credit_hour[b]; //total cerdit hours for a sem
total_point += get_point[b]; //total points(multiple of credits hours and grade)get for a sem
}
gpa[b] = total_point / total_credit_hours; //calculate GPA for each sem
total_point_sem += total_point; //Total points(multiple of grade and credit hours) get for all semester
total_credit_hours_sem += total_credit_hours; //credits hour get for all semester
}
cgpa [10]= total_point_sem / total_credit_hours_sem; //calculate CGPA
cout << "\n =================================================== ";
cout <<"\n NAME : " << student1.name << endl; //display name of student
cout <<" NO MATRIC : "<< student1.no_matric << endl;
for(int a=0; a<sem; a++) //Declaration of 'a' as int in for()
{
cout <<" SUBJECT CODE \t" << " SUBJECT NAME \t" << " SUBJECT CREDIT HOURS " <<endl;
for(int b=0; b<total_subject; b++) //Declaration of 'b' as int in for()
{
cout << " " << student1.sub_code[b] << " : " << student1.sub_name[b]<< " : " << student1.credit_hour[b] << endl;
}
cout << " GPA" <<a+1<< " : " <<gpa[a] << endl;
}
cout << " CGPA : "<<cgpa<<endl;
return 0;
}
#include<iostream> // for input and output
#include<cstring> // for string nama...
#include<cmath> //for mathematical operations
usingnamespace std; // for name space..
struct student // declare struct
{
/*this program will calculate students CGPA*/
string name,no_matric;
string sub_code[10],sub_name[10],sub_grade[10];
float credit_hour[10];
}student1;
int main()
{
int credit_hours[10];
int sem,total_subject;
float value[10],gpa[10],get_point[10],cgpa[10];
float total_point_sem = 0; //Initialise value
int total_credit_hours_sem = 0; //Initialise value
cin.ignore();
cout << "\n ENTER STUDENT'S NAME : "; //Enter student's name
getline(cin,student1.name);
cout << " ENTER STUDENT'S MATRIC NUMBER : "; //Enter student's matric number
getline(cin,student1.no_matric);
cout << " ENTER TOTAL SEM TAKEN :"; //Total semester taken by the student
cin >> sem;
for(int a=0; a<sem ; a++) //'a' declared as int in for()[newly added]
{
int b; //newly added line,'b' choose to add it here because, if not, error will be occured : 'b' for gpa[b] will become undefined...
int total_credit_hours = 0; //newly added
float total_point = 0, gpa[b]; //newly added
float cgpa;
cgpa==gpa[b];
cout << "\n ENTER SUBJECT TAKEN FOR SEM : " << a+1 << ":"; //Enter total number of subject taken for each sem
cin >> total_subject;
for(int b=0; b<total_subject; b++) //loop for the courses
{
cin.ignore();
cout << " ENTER SUBJECT CODE : "; //Enter subject code
getline(cin,student1.sub_code[b]);
cout << " ENTER SUBJECT NAME : "; //Enter subject name
getline(cin,student1.sub_name[b]);
cout << " ENTER SUBJECT'S CREDIT HOUR : "; //Enter credit hours of the subject
cin >> student1.credit_hour[b];
cin.ignore();
cout << " ENTER SUBJECT GRADE : "; //Enter grade gained by student for every subject
getline(cin,student1.sub_grade[b]);
if(student1.sub_grade[b]=="A")
value[b]=4;
elseif(student1.sub_grade[b]=="A-")
value[b]=3.75;
elseif(student1.sub_grade[b]=="B+")
value[b]=3.5;
elseif(student1.sub_grade[b]=="B")
value[b]=3;
elseif(student1.sub_grade[b]=="B-")
value[b]=2.75;
elseif(student1.sub_grade[b]=="C+")
value[b]=2.5;
elseif(student1.sub_grade[b]=="C")
value[b]=2;
elseif(student1.sub_grade[b]=="C-")
value[b]=1.75;
elseif(student1.sub_grade[b]== "D+")
value[b]=1.5;
elseif(student1.sub_grade[b]=="D")
value[b]=1;
else
value[b]=0;
get_point[b] = student1.credit_hour[b] * value[b]; //multiply of credit hours and grade get for each subject
total_credit_hours +=student1.credit_hour[b]; //total cerdit hours for a sem
total_point += get_point[b]; //total points(multiple of credits hours and grade)get for a sem
}
gpa[b] = total_point / total_credit_hours; //calculate GPA for each sem
total_point_sem += total_point; //Total points(multiple of grade and credit hours) get for all semester
total_credit_hours_sem += total_credit_hours; //credits hour get for all semester
}
cgpa [10]= total_point_sem / total_credit_hours_sem; //calculate CGPA
cout << "\n =================================================== ";
cout <<"\n NAME : " << student1.name << endl; //display name of student
cout <<" NO MATRIC : "<< student1.no_matric << endl;
for(int a=0; a<sem; a++) //Declaration of 'a' as int in for()
{
cout <<" SUBJECT CODE \t" << " SUBJECT NAME \t" << " SUBJECT CREDIT HOURS " <<endl;
for(int b=0; b<total_subject; b++) //Declaration of 'b' as int in for()
{
cout << " " << student1.sub_code[b] << " : " << student1.sub_name[b]<< " : " << student1.credit_hour[b] << endl;
}
cout << " GPA" <<a+1<< " : " <<gpa[a] << endl;
}
cout << " CGPA : "<<cgpa<<endl;
return 0;
}
At line 32, you declare a variable b, but you don't initialize it.
At line 35, you attempt to use it as the dimension of the array gpa. This is wrong for 2 reasons:
- it's not legal C++. You can only use constants to specify the size of an array.
- even if it were constant, you haven't given it a value. What size do you think your gpa array will be?
Then, at line 40, you declare a new variable, also called b. This is a different variable from the one at line 32, and is only in scope inside the loop. For lines 40 - 79, you are using this new b, which has a value that is incremented with each time around the look.
However, at line 81, you're outside the loop, and back to using the b that you declared at line 35. You still haven't given it a value, so which element of gpa do you think you're accessing here?
There are 2 things to learn here:
1) Don't use variables that you haven't initialised. Always initialise your variables with a value.
2) Don't hide a variable with another one of the same name. This will confuse you, and lead to errors.
EDIT: Thanks for going back and editing your posts to use code tags. That really helps us read your code more easily :)