Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

main.cpp file #include #include #include Date.h #include Person.h #include DateException.h #include PersonExceptions.h int main() { std::string firstName; std::string lastName; int birthMonth; int birthDay; int birthYear;

image text in transcribed

main.cpp file

#include

#include

#include "Date.h"

#include "Person.h"

#include "DateException.h"

#include "PersonExceptions.h"

int main() {

std::string firstName;

std::string lastName;

int birthMonth;

int birthDay;

int birthYear;

float height;

float weight;

char answer = 'y';

std::vector<:person> personDatabase; // vector of Person Objects

// input person objects

// You must catch exceptions properly

while (toupper(answer) == 'Y') {

std::cin >> firstName;

std::cin >> lastName;

std::cin >> birthMonth;

std::cin >> birthDay;

std::cin >> birthYear;

std::cin >> weight;

std::cin >> height;

// place person objects into vector

// ENTER CODE HERE

std::cin >> answer;

}

// output the person objects

// ENTER CODE HERE

return 0;

}

Date.cpp file

#include "Date.h"

#include "DateException.h"

#include

namespace CIST2362 {

Date::Date() {

// ENTER CODE HERE

}

Date::Date(int m, int d, int y) {

// ENTER CODE HERE

}

void Date::setNames() {

names[0] = "January";

names[1] = "Febraury";

names[2] = "March";

names[3] = "April";

names[4] = "May";

names[5] = "June";

names[6] = "July";

names[7] = "August";

names[8] = "September";

names[9] = "October";

names[10] = "November";

names[11] = "December";

}

void Date::setMonth(int m) {

// ENTER CODE HERE

}

void Date::setDay(int d) {

// ENTER CODE HERE

}

void Date::setYear(int y) {

// ENTER CODE HERE

}

std::string Date::getDateShort() {

// ENTER CODE HERE

return "M/D/Y";

}

std::string Date::getDateLong() {

// ENTER CODE HERE

return "Month Day, Year";

}

} // CIST2362

DateException.cpp file

#include "DateException.h"

namespace CIST2362 {

// ENTER CODE HERE

} // CIST2362

DateException.h file

#ifndef LESSON_5_PROGRAMMING_ASSIGNMENT_DATEEXCEPTION_H

#define LESSON_5_PROGRAMMING_ASSIGNMENT_DATEEXCEPTION_H

#include

namespace CIST2362 {

// Exception classes

class InvalidDay: public std::exception {

public:

// ENTER CODE HERE

};

class InvalidMonth: public std::exception {

public:

// ENTER CODE HERE

};

class InvalidYear: public std::exception {

public:

// ENTER CODE HERE

};

} // CIST2362

#endif //LESSON_5_PROGRAMMING_ASSIGNMENT_DATEEXCEPTION_H

Person.cpp file

#include

#include

#include "Person.h"

#include "PersonExceptions.h"

namespace CIST2362 {

const std::string &Person::getFirstName() const {

// ENTER CODE HERE

}

void Person::setFirstName(const std::string &firstName) {

// ENTER CODE HERE

}

const std::string &Person::getLastName() const {

// ENTER CODE HERE

}

void Person::setLastName(const std::string &lastName) {

// ENTER CODE HERE

}

const Date &Person::getBirthdate() const {

// ENTER CODE HERE

}

void Person::setBirthdate(const Date &birthdate) {

// ENTER CODE HERE

}

float Person::getHeight() const {

// ENTER CODE HERE

}

void Person::setHeight(float height) {

// ENTER CODE HERE

}

float Person::getWeight() const {

// ENTER CODE HERE

}

void Person::setWeight(float weight) {

// ENTER CODE HERE

}

Person::Person(const std::string &firstName, const std::string &lastName, int birthday,

int birthmonth, int birthyear, float height, float weight) : firstName(firstName),

lastName(lastName), birthdate(birthday, birthmonth, birthyear) {

// ENTER CODE HERE

}

std::string Person::toString() {

// ENTER CODE HERE

return "string of Person Data";

}

} // CIST2362

Person.h file

#ifndef LESSON_5_PROGRAMMING_ASSIGNMENT_PERSON_H

#define LESSON_5_PROGRAMMING_ASSIGNMENT_PERSON_H

#include

#include "Date.h"

namespace CIST2362 {

class Person {

private:

std::string firstName;

std::string lastName;

Date birthdate;

float height;

float weight;

public:

Person(const std::string &firstName, const std::string &lastName, int birthday, int birthmonth,

int birthyear, float height, float weight);

const std::string &getFirstName() const;

void setFirstName(const std::string &firstName);

const std::string &getLastName() const;

void setLastName(const std::string &lastName);

const Date &getBirthdate() const;

void setBirthdate(const Date &birthdate);

float getHeight() const;

void setHeight(float height);

float getWeight() const;

void setWeight(float weight);

std::string toString();

};

} // CIST2362

#endif //LESSON_5_PROGRAMMING_ASSIGNMENT_PERSON_H

PersonExceptions.cpp file

#include "PersonExceptions.h"

namespace CIST2362 {

// ENTER CODE HERE

} // CIST2362

PersonExceptions.h file

#ifndef LESSON_5_PROGRAMMING_ASSIGNMENT_PERSONEXCEPTIONS_H

#define LESSON_5_PROGRAMMING_ASSIGNMENT_PERSONEXCEPTIONS_H

#include

namespace CIST2362 {

class badHeight: public std::exception {

public:

// ENTER CODE HERE

};

class badWeight: public std::exception {

public:

// ENTER CODE HERE

};

} // CIST2362

#endif //LESSON_5_PROGRAMMING_ASSIGNMENT_PERSONEXCEPTIONS_H

14.16 CIST2362 Programming Project: Processing a Vector of People This program allows users to input person data, storing that data in a vector. Then after the last person the program outputs the person data. The data collected for each person is first and last name, date of birth as month, day, and year, and the weight and height. Ex: if input is: the output is: |Anne|Niebuhr|Febraury 15, 19965.7 feet|104.9 lbs| |Jesse|Choi|December 4,19625.1 feet|l61.9 lbs| This is what will happen if all the data is entered correctly. However, your program should use exceptions to potential input errors: - if the month is out of range 1 to 12, your exception should produce the message: Invalid Month assigned - must be 1 to 12 - if the day is out of range of 1 to 31 , your exception should produce the message: Invalid Day assigned - must be 1 to 31 - if the year is a negative value, your exception should produce the message: Invalid Year assigned-must be a positive number - if the height is negative, your exception should produce the message: Invalid Height assigned - must be a positive number - if the weight is negative, your exception should produce the message: Invalid Weight assigned - must be a positive number In order to get this program working properly, you will need to insert missing code in all of the files. There are quite a few files, but take it one at a time. Remember, there are quite a few unit tests to test your classes before you need to get the main working. Take advantage of this to incrementally build and test your classes. Also, remember that you can build stubs that will allow you to compile the program until you are able to completely fill in the code. Note that this program makes use of Namespaces. You are expected to explicitly use the namespaces versus employing the "using" statement. This means you will have code like std: : cin that says you are referencing cin from the standard namespace. The other namespace you will have in this program is the CIST2362 namespace. All of the classes in your program belong to this namespace, and so you will see CIST2362: : Person referring to the Person class in the CIST2362 namespace. Namespaces are covered in Chapter 9 if you need to refer back

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

Spomenik Monument Database

Authors: Donald Niebyl, FUEL, Damon Murray, Stephen Sorrell

1st Edition

0995745536, 978-0995745537

More Books

Students also viewed these Databases questions

Question

3 > O Actual direct-labour hours Standard direct-labour hours...

Answered: 1 week ago

Question

5. If yes, then why?

Answered: 1 week ago

Question

6. How would you design your ideal position?

Answered: 1 week ago