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<iostream>
#include<string>
#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<MAX_PERSON; i++)
{
string name;
int age;
cout << “Enter name(-1 to stop): “;
cin >> 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;
}