Description
Create a Student class in a new C++ project with the following private members:
first_ (type string)
last_ (type string)
gpa_ (type float)
id_ (type int)
Note: The use of trailing underscore for these private data member identifiers follows the Google style guide.
and the following public methods:
full_name() const: string
id() const: int
gpa() const: float
print_info() const: void
// print_info() should print in the format (GPA has 2 decimal places):
// Chris Jones, GPA: 3.50, ID: 20146
Use an initializer list in the Student constructor.
Write a function that returns a vector of failing students (those whose gpa is < 1.0). Here is part of the implementation:
/**
* Takes a vector of Student objects, and returns a new vector
* with all Students whose GPA is < 1.0.
*/
vector<Student> find_failing_students(const vector<Student> &students) {
vector<Student> failing_students;
// Iterates through the students vector, appending each student whose gpa is
// less than 1.0 to the failing_students vector.
return failing_students;
}
Write a function that prints all the students in the supplied vector:
/**
* Takes a vector of Student objects and prints them to the screen.
*/
void print_students(const vector<Student> &students) {
// Iterates through the students vector, calling print_info() for each student.
}
Here’s the main function, which is to be placed at the bottom of the source file:
/**
* Allows the user to enter information for multiple students, then
* find those students whose GPA is below 1.0 and prints them to the
* screen.
*/
int main() {
string first_name, last_name;
float gpa;
int id;
char repeat;
vector<Student> students;
do {
cout << “Enter student’s first name: “;
cin >> first_name;
cout << “Enter student’s last name: “;
cin >> last_name;
gpa = -1;
while (gpa < 0 || gpa > 4) {
cout << “Enter student’s GPA (0.0-4.0): “;
cin >> gpa;
}
cout << “Enter student’s ID: “;
cin >> id;
students.push_back(Student(first_name, last_name, gpa, id));
cout << “Add another student to database (Y/N)? “;
cin >> repeat;
} while (repeat == ‘Y’ || repeat == ‘y’);
cout << endl << “All students:” << endl;
print_students(students);
cout << endl << “Failing students:”;
// TODO
// Print a space and the word ‘None’ on the same line if no students are
// failing.
// Otherwise, print each failing student on a separate line.
return 0;
}