The program should ask for the data to fill a studentRec of structure 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.
#include <iostream>
#include <iomanip>
#include <string>
#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 : last_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);
string last_name;
cout << "Last name: ";
getline(cin, last_name);
int year_grad;
cout << "Grad Year: ";
cin >> year_grad;
StudentRec.set_year_grad(year_grad);
student_list.push_back(StudentRec);
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 movies
vector<double> avg;
for (int x = 0; x < avg.size(); x++)
{
avggpa += avg.at(x);
}
avggpa = (avggpa) / (avg.size()); // Use to find the average gpa of the students
const int w = 10;
cout << left
<< setw(w * 3) << " Last Name"
<< setw(w * 3) << "First Name"
<< setw(w) << "YEAR" << endl;
for (StudentRec StudentRec : student_list)
{
cout << setw(w * 3) << StudentRec.get_last_name()
<< setw(w * 3) << StudentRec.get_first_name()
<< setw(w) << StudentRec.get_year_grad() << endl;
}
cout << endl;
// Output with titles in ALL CAPS
for (StudentRec StudentRec : student_list)
{
cout << setw(w * 3) << StudentRec.get_last_name_upper()
<< setw(w * 3) << StudentRec.get_first_name_upper()
<< setw(w) << StudentRec.get_year_grad() << endl;
}
cout << endl;
return 0;
}
Fix and modify the code
- Using the attached code as a "model", write a program where each student record is constructed using the class StudentRec.
- The variables in this case are "private" and the functions are "public."
- Note: only the first_name and last_name variables will require "getter" functions that return the name in all caps:
get_first_name_upper() and get_last_name_upper() functions.
- Your class declaration section should look something like this:
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);
string get_last_name() const;
string get_last_name_upper() const;
// the rest of the "setter" and "getter" functions for each variable above go here
}; // NOTE: a class declaration ends with a semicolon
- The program should ask for the data to fill a studentRec of structure 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.
Instruction we need to follow:
The program should ask for the data to fill a studentRec of structure 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.
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images