Best writers. Best papers. Let professionals take care of your academic papers

Order a similar paper and get 15% discount on your first order with us
Use the following coupon "FIRST15"
ORDER NOW

Programming Assignment 7 Instructions: Marketing Software

include

include

include

include

include “Person.h”

using namespace std;

// Get a filename from program arguments, then make a Person for each line in the file.

bool ReadPeopleFromFile(int argc, char* argv[], vector &people) {

Person tmpPrsn;

ifstream inFS;

int tmpAge = 0;

string tmpGender = “”;

int tmpYI = 0;

if (argc != 2) {

cout << “\nUsage: [EXECUTABLE FILE] [TEXT DATA FILE], e.g. myprog.exe dev_people.txt” << endl;

return true; // indicates error

}

cout << “Opening file ” << argv[1] << “.\n”;

inFS.open(argv[1]); // Try to open file

if (!inFS.is_open()) {

cout << “Could not open file ” << argv[1] << “.\n”;

return true; // indicates error

}

while (!inFS.eof()) {

inFS >> tmpAge;

inFS >> tmpGender;

inFS >> tmpYI;

tmpPrsn.SetData(tmpAge,tmpGender,tmpYI); //Updated member function call to set gender,age

//and yearly income of a person

tmpPrsn.Print();

people.push_back(tmpPrsn);

}

inFS.close();

cout << “Finished reading file.” << endl;

return false; // indicates no error

}

// Ask user to enter age range.

void GetUserInput(int &ageLowerRange, int&ageUpperRange, string &gender, int &yIncomeLowerRange, int &yIncomeUpperRange) {

cout<<“\nEnter lower range of age: “;

cin >> ageLowerRange;

cout << “Enter upper range of age: “;

cin >> ageUpperRange;

cout << “Enter gender: “;

cin >> gender;

cout << “Enter lower range of yearly Income: “;

cin >> yIncomeLowerRange;

cout << “Enter upper range of yearly Income: “;

cin >> yIncomeUpperRange;

return;

}

// Return people within the given age range.

vector GetPeopleInAgeRange(vector ppl, int lowerRange, int upperRange) {

unsigned int i = 0;

vector pplInAgeRange;

int age = 0;

for (i = 0; i < ppl.size(); ++i) {

age = ppl.at(i).GetAge();

if ((age >= lowerRange) && (age <= upperRange)) {

pplInAgeRange.push_back(ppl.at(i));

}

}

return pplInAgeRange;

}

// Return people with the given gender.

vector GetPeopleWithSpecificGender(vector ppl, string userGender)
{
unsigned int i = 0;

/* If the user specified gender is any, then all the customers are selected as potential irrespection of male or female */

if(userGender == “any”)
return ppl;
else
{

/* If the customer’s gender is matching the user specified gender then, the person is selected as potential customer */
vector pplForGender;

string gender = “”;

for (i = 0; i < ppl.size(); ++i) {

gender = ppl.at(i).GetGender();
if ( gender == userGender) {

pplForGender.push_back(ppl.at(i));
}
}
return pplForGender;
}
}

// Return people within the user specified yearly income range.

vector GetPeopleInIncomeRange(vector ppl, int lowerRange, int upperRange) {

unsigned int i = 0;

vector pplInIncomeRange;

int yearlyIncome = 0;

for (i = 0; i < ppl.size(); ++i) {

yearlyIncome = ppl.at(i).GetYearlyIncome();

if ((yearlyIncome >= lowerRange) && (yearlyIncome <= upperRange)) {

pplInIncomeRange.push_back(ppl.at(i));

}

}

return pplInIncomeRange;

}

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

vector ptntlCstmrs;

bool hadError = false;

int ageLowerRange = 0;

int ageUpperRange = 0;

string gender = “”;
int yILowerRange = 0;
int yIUpperRange = 0;

hadError = ReadPeopleFromFile(argc, argv, ptntlCstmrs);

if( hadError ) {

return 1; // indicates error

}

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

ptntlCstmrs = GetPeopleInAgeRange(ptntlCstmrs, ageLowerRange, ageUpperRange);

ptntlCstmrs=GetPeopleWithSpecificGender(ptntlCstmrs,gender);

ptntlCstmrs=GetPeopleInIncomeRange(ptntlCstmrs,yILowerRange,yIUpperRange);

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

return 0;

}

 
Looking for a Similar Assignment? Order now and Get 10% Discount! Use Coupon Code "Newclient"