//structures passing to functions as pointer // create a Student structure that
ID: 3778485 • Letter: #
Question
//structures passing to functions as pointer
// create a Student structure that contains an ID number (integer), student name (string class),
//number of courses taken (integer) and GPA (double). Use a function getStudent to enter data for a student.
//Use a function showStudent to show the data. Pass the Student structure to the functions by REFERENCE, not by value.
/*
Enter the student ID (integer): 1234
Enter the student name: Ernst Bekkering
Enter the number of courses taken: 16
Enter the GPA: 3.75
Student number: 1234
Name: Ernst Bekkering
Course taken: 16
GPA: 3.75
Press any key to continue . . .
*/
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
struct Student
{
int studentID;
string studentName;
int coursesTaken;
double GPA;
};
void getStudent (?????????);
void showStudent (?????????);
int main()
{
Student nsuStudent;
getStudent(?????????);
showStudent(?????????);
return 0;
}
//**********************
//definition of getStudent (as pointer)
//*************************
void getStudent(?????????)
{
cout << "Enter the student ID (integer): ";
cin >> ?????????;
cout << "Enter the student name: ";
cin.ignore();
getline(cin, ?????????);
cout << "Enter the number of courses taken: ";
cin >> ?????????;
cout << "Enter the GPA: ";
cin >> ?????????;
}
//**************************************
// definition of showStudent (as pointer)
//**************************************
void showStudent(?????????)
{
cout << fixed << showpoint << setprecision(2);
cout << "Student number: " <<????????? << endl;
cout << "Name: " <<????????? << endl;
cout << "Course taken: " << ????????? << endl;
cout << "GPA: " << ????????? << endl;
}
Explanation / Answer
#include<iostream.h> // for inpit and output
#include<string.h> // for string nama...
using namespace std; // for name space..
struct student // declare struct
{
string name,no_matric;
string sub_code[10],sub_name[10],sub_grade[10];
float credit_hour[10];
}student1;
main()
{
int credit_hours[10];
int sem,total_subject; //'b', 'a',total_credit_hours and total_point
//are removed
float value[10],gpa[10],get_point[10];
float cgpa;
float total_point_sem = 0; //Initialise value
int total_credit_hours_sem = 0; //Initialise value
cin.ignore();
cout << " ================ ";
cout << " STUDENT'S REKOD " << endl;
cout << " ================ " << endl;
cout << " 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; //newly added
cout << " 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 GRED : "; //Enter grade gained by student for every subject
getline(cin,student1.sub_grade[b]);
if(student1.sub_grade[b]=="A")
value[b]=4;
else if(student1.sub_grade[b]=="A-")
value[b]=3.75;
else if(student1.sub_grade[b]=="B+")
value[b]=3.5;
else if(student1.sub_grade[b]=="B")
value[b]=3;
else if(student1.sub_grade[b]=="B-")
value[b]=2.75;
else if(student1.sub_grade[b]=="C+")
value[b]=2.5;
else if(student1.sub_grade[b]=="C")
value[b]=2;
else if(student1.sub_grade[b]=="C-")
value[b]=1.75;
else if(student1.sub_grade[b]== "D+")
value[b]=1.5;
else if(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 = total_point_sem / total_credit_hours_sem; //calculate CGPA
cout << " =================================================== ";
cout <<" 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 " << " SUBJECT NAME " << " 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;
cout << " =================================================== ";
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.