Question: C++ Help. Please make sure the code below FOLLOWS ALL DIRECTIONS- PLEASE CORRECT IF IT DOES NOT. PLEASE ADD COMMENTS TO CODE FOR BETTER CLARITY.

C++ Help. Please make sure the code below FOLLOWS ALL DIRECTIONS- PLEASE CORRECT IF IT DOES NOT. PLEASE ADD COMMENTS TO CODE FOR BETTER CLARITY. THANK YOU.

Instructions:

Implement a class Person with the following data members:

name (string) - name of this person

age (integer) age of this person

Write a program that reads in a list of names and ages and stores them in a one-dimensional array of Person objects. The maximum number of names that will be entered is 100 names. After reading in the list of names and ages, sort the list of people from the youngest (lowest age) to oldest (highest age) using the Bubble Sort. Then print out the name and age for each person in the sorted list.

Sample Output (user input is bold) :

Enter name (-1 to stop): Bart

Enter age of Bart: 10

Enter name (-1 to stop): Lisa

Enter age of Lisa: 8

Enter name (-1 to stop): Maggie

Enter age of Maggie: 1

Enter name (-1 to stop): Homer

Enter age of Homer: 36

Enter name (-1 to stop): Marge

Enter age of Marge: 34

Enter name (-1 to stop): -1

Name: Maggie, age: 1

Name: Lisa, age: 8

Name: Bart, age: 10

Name: Marge, age: 34

Name: Homer, age: 3

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Code:

#include #include #define MAX_PERSON 100

using namespace std;

//Person Class class Person { private: string name; int age; public: Person() {} Person(string n, int a) { name = n; age = a; }

//bubble sort method for sorting static void sort(Person *array, int size) { for (int i = 1; i < size; i++) { for (int j = 0; j < (size - i); ++j) { if (array[i].getAge() > array[j].getAge()) { Person temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } }

//getters for nam and age string getName() { return name; } int getAge() { return age; }

//method to print name and age static void printPerson(Person p) { cout << "Name: " << p.getName() << ", Age: " << p.getAge() << endl; } };

//Main Class int main(int argc, char const *argv[]) { //created array for MAX PERSON Person *array = new Person[MAX_PERSON]; int i = 0; for(i=0; i> name; if (name=="-1") break; cout << "Enter age of " << name << ": "; cin >> age; array[i] = Person(name, age);

}

//sorting the person Person::sort(array, i);

//printing the person for (int j = 0; j < i; j++) { Person::printPerson(array[j]); } return 0; }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!