#include #include #include #include #include using namespace std; class StudentRec { private: string last_name = ""; // Last name string first_name = ""; // First name int year_grad = 0; // Year expected to graduate float gpa = 0.0; // Current gpa public: void set_last_name(string last_name_param); void set_first_name(string first_name_param); string get_last_name() const; string get_first_name()const; string get_last_name_upper() const; string get_first_name_upper() const; void set_year_grad(int year_grad_param); int get_year_grad() const; // the rest of the "setter" and "getter" functions for each variable above go here }; void StudentRec::set_last_name(string last_name_param) { last_name = last_name_param; } void StudentRec::set_first_name(string first_name_param) { first_name = first_name_param; } string StudentRec::get_last_name() const { return last_name; } string StudentRec::get_first_name() const { return first_name; } string StudentRec::get_last_name_upper() const { string last_name_upper; for (char c : last_name) { last_name_upper.push_back(toupper(c)); } return last_name_upper; } string StudentRec::get_first_name_upper() const { string first_name_upper; for (char c : first_name) { first_name_upper.push_back(toupper(c)); } return first_name_upper; } void StudentRec::set_year_grad(int year_param) { year_grad = year_param; } int StudentRec::get_year_grad() const { return year_grad; } int main() { float avggpa = 0; cout << "The Student List Program\n\n"; cout << "Enter a Student Record \n\n"; // Get vector of StudentRec objects vector student_list; char another = 'y'; while (tolower(another) == 'y') { StudentRec StudentRec; // make temporary new (initialized) StudentRec object string first_name; cout << "First Name: "; getline(cin, first_name); StudentRec.set_first_name(first_name); string last_name; cout << "Last name: "; getline(cin, last_name); StudentRec.set_last_name(last_name); int year_grad; cout << "Grad Year: "; cin >> year_grad; StudentRec.set_year_grad(year_grad); student_list.push_back(StudentRec); cout << "\nEnter another Student Record? (y/n): "; cin >> another; cin.ignore(); // Only one character should be extracted; the others should be ignored (flush the buffer) cout << endl; } // display the list vector avg; const int w = 5; cout << left << setw(w * 3) << "First Name" << setw(w * 3) << "Last Name" << setw(w * 3) << "Grad Year" << setw(w * 3)<< endl; cout << endl; for (StudentRec StudentRec : student_list) { cout << setw(w * 3) << StudentRec.get_first_name() << setw(w * 3) << StudentRec.get_last_name() << setw(w * 3) << StudentRec.get_year_grad() << setw(w * 3)<< endl << endl; } cout << endl; cout << endl; // Output with titles in ALL CAPS for (StudentRec StudentRec : student_list) { cout << setw(w * 3) << StudentRec.get_first_name_upper() << setw(w * 3) << StudentRec.get_last_name_upper() << setw(w * 3) << StudentRec.get_year_grad() << setw(w * 3)<< endl << endl; } cout << endl; return 0; } Modify to do the following: The program should ask for the data to fill a studentRec of class StudentRec and then ask y/n if they want to add another studentRec. Each studentRec will go into the vector of type StudentRec called student_list. After the student records have been entered into the vector student_list, find the average gpa of all the students in the vector. Output all the student records and give the average gpa for the students. Use the iomanip tools to make the data look as nice a possible.
OOPs
In today's technology-driven world, computer programming skills are in high demand. The object-oriented programming (OOP) approach is very much useful while designing and maintaining software programs. Object-oriented programming (OOP) is a basic programming paradigm that almost every developer has used at some stage in their career.
Constructor
The easiest way to think of a constructor in object-oriented programming (OOP) languages is:
#include <iostream>
#include <iomanip>
#include <string>
#include <
#include <cmath>
using namespace std;
class StudentRec
{
private:
string last_name = ""; // Last name
string first_name = ""; // First name
int year_grad = 0; // Year expected to graduate
float gpa = 0.0; // Current gpa
public:
void set_last_name(string last_name_param);
void set_first_name(string first_name_param);
string get_last_name() const;
string get_first_name()const;
string get_last_name_upper() const;
string get_first_name_upper() const;
void set_year_grad(int year_grad_param);
int get_year_grad() const;
// the rest of the "setter" and "getter" functions for each variable above go here
};
void StudentRec::set_last_name(string last_name_param)
{
last_name = last_name_param;
}
void StudentRec::set_first_name(string first_name_param)
{
first_name = first_name_param;
}
string StudentRec::get_last_name() const
{
return last_name;
}
string StudentRec::get_first_name() const
{
return first_name;
}
string StudentRec::get_last_name_upper() const
{
string last_name_upper;
for (char c : last_name) {
last_name_upper.push_back(toupper(c));
}
return last_name_upper;
}
string StudentRec::get_first_name_upper() const
{
string first_name_upper;
for (char c : first_name) {
first_name_upper.push_back(toupper(c));
}
return first_name_upper;
}
void StudentRec::set_year_grad(int year_param)
{
year_grad = year_param;
}
int StudentRec::get_year_grad() const
{
return year_grad;
}
int main()
{
float avggpa = 0;
cout << "The Student List Program\n\n";
cout << "Enter a Student Record \n\n"; // Get vector of StudentRec objects
vector<StudentRec> student_list;
char another = 'y';
while (tolower(another) == 'y')
{
StudentRec StudentRec; // make temporary new (initialized) StudentRec object
string first_name;
cout << "First Name: ";
getline(cin, first_name);
StudentRec.set_first_name(first_name);
string last_name;
cout << "Last name: ";
getline(cin, last_name);
StudentRec.set_last_name(last_name);
int year_grad;
cout << "Grad Year: ";
cin >> year_grad;
StudentRec.set_year_grad(year_grad);
student_list.push_back(StudentRec);
cout << "\nEnter another Student Record? (y/n): ";
cin >> another;
cin.ignore(); // Only one character should be extracted; the others should be ignored (flush the buffer)
cout << endl;
}
// display the list
vector<double> avg;
const int w = 5;
cout << left << setw(w * 3) << "First Name" << setw(w * 3) << "Last Name" << setw(w * 3) << "Grad Year" << setw(w * 3)<< endl;
cout << endl;
for (StudentRec StudentRec : student_list)
{
cout << setw(w * 3) << StudentRec.get_first_name()
<< setw(w * 3) << StudentRec.get_last_name() << setw(w * 3) << StudentRec.get_year_grad() << setw(w * 3)<< endl << endl;
}
cout << endl;
cout << endl;
// Output with titles in ALL CAPS
for (StudentRec StudentRec : student_list)
{
cout << setw(w * 3) << StudentRec.get_first_name_upper()
<< setw(w * 3) << StudentRec.get_last_name_upper() << setw(w * 3) << StudentRec.get_year_grad() << setw(w * 3)<< endl << endl;
}
cout << endl;
return 0;
}
Modify to do the following:
- The program should ask for the data to fill a studentRec of class StudentRec and then ask y/n if they want to add another studentRec.
- Each studentRec will go into the vector of type StudentRec called student_list.
- After the student records have been entered into the vector student_list, find the average gpa of all the students in the vector.
- Output all the student records and give the average gpa for the students. Use the iomanip tools to make the data look as nice a possible.

Step by step
Solved in 2 steps with 1 images









