Write a c++ program that stores lists of names


Write a C++ program that stores lists of names (the last name first) and ages in parallel arrays and sorts the names into alphabetical order keeping the ages with the correct names. The original arrays of names and ages should remain no changes. Therefore, you need to create an array of character pointers to store the addresses of the names in the name array initially. Apply the selection sort to this array of pointers so that the corresponding names are in alphabetical order. You should use another array of pointers to age array to make sure the age is corresponding to the correct name. Please see the additional program requirements at the bottom of this page.

Hint: Create a class named Student which contains name array and age array.

Problem Requirement
a) You must create three separate files: Student.h, Student.cpp, and Lab5.cpp files.
b) Your program should run correctly with the same inputs and outputs as given in the sample run.

Please Help!
Here is the code I have so far:

#include
#include
#include
#define STRSIZ 30
#define MAXAPP 50

int alpha_first(char *list[], int min_sub, int max_sub);
void select_sort_str(char *list[],int*numlist[], int n);


void main(void)
{
char applicants[MAXAPP][STRSIZ];
int ages [MAXAPP];
char *alpha[MAXAPP];
int *numeric[MAXAPP];
int num_app,i,j;
char one_char;

/* Gets applicant list */
printf("Enter number of people (0 . . %d)n> ", MAXAPP);
scanf("%d", &num_app);

for (i = 0; i < num_app; ++i)

{
j=0;
printf("nEnter name %d (Lastname, firstname): ", i + 1);
fflush(stdin);
while((one_char=(char)getchar())!='n')
applicants[i][j++]=one_char;
applicants[i][j]='';
printf("Enter age %d: ",i+1);
scanf("%d",&ages[i]);
}
for (i = 0; i < num_app; ++i)
{
alpha[i] = applicants[i];
numeric[i] =&ages[i];
}
select_sort_str(alpha, numeric, num_app);

printf("n%-30sn", "Original List");
printf ("-------------n");


for (i = 0; i < num_app; ++i)
printf("%-30s%dn", applicants[i],ages[i]);
printf("n%-30sn", "Alphabetized list");
printf ("-------------n");

for (i = 0; i < num_app; ++i)
printf("%-30s%dn", alpha[i],*numeric[i]);
printf("n%-30sn", "Original List");
printf ("-------------n");

for (i = 0; i < num_app; ++i)
printf("%-30s%dn", applicants[i],ages[i]);
fflush(stdin);
getchar();

}

int alpha_first(char *list[], int min_sub, int max_sub)

{

int first, i;

first = min_sub;

for (i = min_sub + 1; i <= max_sub; ++i)

if (strcmp(list[i], list[first]) <0)

first = i;

return (first);

}

void select_sort_str(char *list[], int *numList[], int n)

{

int fill,index_of_min;

char *temp;

int *numTemp;

for (fill = 0; fill < n - 1; ++fill){

index_of_min = alpha_first(list, fill, n-1);

if (index_of_min != fill){

temp = list[index_of_min];

list[index_of_min] = list[fill];

list[fill] = temp;

numTemp =numList[index_of_min];

numList[index_of_min]=numList[fill];

numList[fill]=numTemp;

}

}

}

Request for Solution File

Ask an Expert for Answer!!
C/C++ Programming: Write a c++ program that stores lists of names
Reference No:- TGS0119945

Expected delivery within 24 Hours