Question
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
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
unsigned int i = 0;
vector
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
vector
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 vector 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 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 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 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 One or more variable names are not meaningful. 0points All variable names are meaningful. 1points 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 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 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 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
Grade
Indents
Code comments
Variable names meaningful
Person class in separate files
Print gender and yearly income
Output persons with user-entered gender
Doesn't work for "any" Output persons with user-entered yearly income
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started