I have an assignment...
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). Then print out the name and age for each person in the sorted list.
Sample Output
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: Home, age: 36
I really have no idea how to do this problem. What I thought is I would start with a program that asks for the user to enter ages and stops repeating after entering -1 for the age. I could use a while loop to do this correct? I have been able to write a program with an array to get 5 ages and display them on the screen but cannot figure out how to write it with a while statement having the maximum number of objects in the array be 100 and stopping the user input after -1 is entered.
Would making an array that reads the user input of ages and displays them back be a good starting point for this problem? If so could someone please help me figure out what to do for this and if not please let me know where a good starting point would be. Below is my code for the 5 object array of ages.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#include <iostream>
using namespace std;
int main()
{
int age[5] = {0};
for ( int sub = 0; sub < 5; sub +=1)
{
cout << "Enter the age: ";
cin >> age[sub];
}
for (int sub = 0; sub < 5; sub +=1)
{
cout << "The ages are: ";
cout << age[sub] << endl;
}
system("pause");
return 0;
}
|