Classes/Streams – Marketing Software


In this programming assignment, you’ll identify the number of potential customers for a business. The starter program outputs the number of potential customers in a user­entered age range given a file with people’s data.

1. Move the class Person to the separate files: person.h and person.cpp. Make sure you can still compile with separate files.

2. During file reading, the program isn’t storing the gender or yearly income of the people. Instead, the default values are being printed. Fix the program to correctly set the data read from file.

The regions of the code that need to be fixed are marked with: “FIXME Also set gender and yearly income”

3. Allow the user to select the potential customer’s gender: “male”, “female”, or “any”. The program should now output only potential customers with the user­specified gender and age.

Update the GetUserInput function to prompt the user and store the user’s gender selection.

Also, create a function GetPeopleWithSpecificGender that returns only people with the user­specified gender.

Debugging suggestion: Use a function to print main’s vector of Persons so that you can see who is in the vector after each function call. This technique may help debug the newly created function GetPeopleWithSpecificGender.

4. In addition to age and gender, allow the user to select the lower and upper range of a customer’s yearly income.

Update the GetUserInput function to prompt the user and store the user’s specified range.

Also, create a function GetPeopleInIncomeRange that returns only people with the user­specified yearly income.

The main should now look like the following code:

int main(int argc,char* argv[]){

vector people;

bool hadError=false;

int ageLowerRange=0;

int ageUpperRange=0;

string gender=””;

int yILowerRange=0;

int yIUpperRange=0;

hadError=ReadPeopleFromFile(argc, argv, people);

if(hadError){

return1;//indicates error

}

GetUserInput(ageLowerRange, ageUpperRange, gender, yILowerRange, yIUpperRange);

people=GetPeopleInAgeRange(people, ageLowerRange, ageUpperRange);

people=GetPeopleWithSpecificGender(people, gender);

people=GetPeopleInIncomeRange(people, yILowerRange, yIUpperRange);

cout<< “\nNumber of potential customers=”<< people.size() << endl;

return 0;
}

Here is an example program execution with people.txt (user input is highlighted here for clarity):

Opening file people.txt.

Age = 20, gender = male, yearly income = 25000

Age = 25, gender = male, yearly income = 45000

Age = 23, gender = male, yearly income = 30000

Age = 16, gender = male, yearly income = 7000

Age = 30, gender = male, yearly income = 55000

Age = 22, gender = female, yearly income = 27000

Age = 26, gender = female, yearly income = 44000

Age = 21, gender = female, yearly income = 37000

Age = 18, gender = female, yearly income = 17000

Age = 29, gender = female, yearly income = 62000

Finished reading file.

Enter lower range of age: 24

Enter upper range of age: 30

Enter gender (male, female, or any): any

Enter lower range of yearly income: 43000

Enter upper range of yearly income: 57000

Number of potential customers = 3

Leave a Reply

Your email address will not be published. Required fields are marked *



  • File Format: .cpp, .h