Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

i wrote this code and it builds but missed some points on the ruburic.. can anyone help me out on this?? #include #include #include #include

i wrote this code and it builds but missed some points on the ruburic.. can anyone help me out on this??

#include

#include

#include

#include

using namespace std;

// Define a Person class, including age, gender, and yearlyIncome.

class Person {

public:

Person();

void Print();

void SetData(int a); // FIXME Also set gender and yearly income

void SetGender(string gender);

void SetIncome(int income);

int GetAge();

string GetGender();

int GetIncome();

private:

int age;

string gender;

int yearlyIncome;

};

// Constructor for the Person class.

Person::Person() {

age = 0;

gender = "default";

yearlyIncome = 0;

return;

}

// Print the Person class.

void Person::Print() {

cout << "Age = " << this->age

<< ", gender = " << this->gender

<< ", yearly income = " << this->yearlyIncome

<< endl;

return;

}

// Set the age, gender, and yearlyIncome of a Person.

void Person::SetData(int a) { // FIXME Also set gender and yearly income

this->age = a;

return;

}

void Person::SetGender(string gender){

this->gender = gender;

}

void Person::SetIncome(int income){

this->yearlyIncome = income;

}

// Get the age of a Person.

int Person::GetAge() {

return this->age;

}

string Person::GetGender(){

return this->gender;

}

int Person::GetIncome() {

return this->yearlyIncome;

}

// 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 << " Usage: [EXECUTABLE FILE] [TEXT DATA FILE], e.g. myprog.exe dev_people.txt" << endl;

return true; // indicates error

}

cout << "Opening file " << argv[1] << ". ";

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

if (!inFS.is_open()) {

cout << "Could not open file " << argv[1] << ". ";

return true; // indicates error

}

while (!inFS.eof()) {

inFS >> tmpAge;

inFS >> tmpGender;

inFS >> tmpYI;

tmpPrsn.SetData(tmpAge); // FIXME Also set gender and yearly income

tmpPrsn.SetGender(tmpGender);

tmpPrsn.SetIncome(tmpYI);

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 &yILowerIncome,int &yIHigherIncome) {

cout<<" Enter lower range of age: ";

cin >> ageLowerRange;

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

cin >> ageUpperRange;

cout << "Enter the gender: ";

cin >> gender;

cout << "Enter the lower range of yearlyIncome: ";

cin >> yILowerIncome;

cout << "Enter the higher range of yearlyIncome: ";

cin >> yIHigherIncome;

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 same Gender.

vector GetPeopleWithSpecificGender(vector ptntlCstmrs,string gender){

vector pplWithSameGender;

string gndr;

for (int i=0;i

gndr = ptntlCstmrs.at(i).GetGender();

if (gndr.compare(gender) == 0){

pplWithSameGender.push_back(ptntlCstmrs.at(i));

}

}

return pplWithSameGender;

}

// Return people within the given income range.

vector GetPeopleInIncomeRange(vector ptntlCstmrs,int lowerRange, int higherRange){

vector pplInIncomeRange;

int range = 0;

for (int i=0;i

range = ptntlCstmrs.at(i).GetIncome();

cout << range << endl;

if ((range >= lowerRange) && (range <= higherRange)){

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

}

}

return pplInIncomeRange;

}

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

vector ptntlCstmrs;

bool hadError = false;

int ageLowerRange = 0;

int ageUpperRange = 0;

string gender;

int yILowerIncome = 0;

int yIHigherIncome = 0;

hadError = ReadPeopleFromFile(argc, argv, ptntlCstmrs);

if( hadError ) {

return 1; // indicates error

}

GetUserInput(ageLowerRange, ageUpperRange, gender, yILowerIncome, yIHigherIncome );

ptntlCstmrs = GetPeopleInAgeRange(ptntlCstmrs, ageLowerRange, ageUpperRange);

ptntlCstmrs = GetPeopleWithSpecificGender(ptntlCstmrs,gender);

ptntlCstmrs = GetPeopleInIncomeRange(ptntlCstmrs,yILowerIncome,yIHigherIncome);

cout << " Number of potential customers = "<

return 0;

}

***The graded ruburic and missing points.....

Feedback

Grade
Indents

5 or more indents are incorrect.

0points

3 or 4 indents are incorrect.

1points

1 or 2 indents are incorrect.

2points

All indents are correct.

3points

Code comments

One or more functions do not have a comment explaining what the purpose of that function is.

0points

Each function has a comment explaining what the purpose of that function is.

1points

Variable names meaningful

One or more variable names are not meaningful.

0points

All variable names are meaningful.

1points

Person class in separate files

Person class not in separate files.

0points

Person class is in separate files and the program does not compile.

2points

Person class is in separate files and the program compiles.

5points

Print gender and yearly income

Program prints neither gender nor yearly income read from file.

0points

Program only prints gender or yearly income read from file.

3points

Program prints gender and yearly income read from file.

5points

Output persons with user-entered gender

Does not output persons with user-entered gender, regardless of gender.

0points

Output persons with user-entered gender only works for one of "male", "female", or "any"

1points

Output persons with user-entered gender only works for two of "male", "female", or "any"

3points

Output persons with user-entered gender works for "male", "female", and "any"

5points

Doesn't work for "any"
Output persons with user-entered yearly income

Does not outputs persons with neither user-entered yearly income lower nor upper range.

0points

Outputs persons with user-entered yearly income only lower or only upper range.

3points

Outputs persons with user-entered yearly income within lower and upper range.

5points

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

For the function in Exercise 5, find f(- 7 / 8), f(5), and f(-4).

Answered: 1 week ago

Question

Describe the types of power that effective leaders employ

Answered: 1 week ago

Question

Describe how leadership styles should be adapted to the situation

Answered: 1 week ago