#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
class Dog
{
private:
double licenseFee;
string name;
string breed;
int age;
public:
Dog(){
licenseFee = 13.45;
}
Dog(string name, string breed, int age) {
this->licenseFee = 13.45;
this->name = name;
this->breed = breed;
this->age = age;
}
void setName(string name)
{
this->name = name;
}
void displayName()
{
cout << name;
}
void setBreed(string breed)
{
this->breed = breed;
}
void displayBreed()
{
cout << breed;
}
void setAge(int age)
{
this->age = age;
}
void displayAge()
{
cout << age;
}
void Display() {
cout << "Dog's name: " << this->name<< endl;
cout << "Dog's Breed: " << this->breed<< endl;
cout << "Dog's age: " << this->age<< endl;
cout << "Dog's license fee: $" << this->licenseFee << endl;
}
};
class Date{
private:
int month;
int day;
int year;
public:
Date() {
this->day = 0;
this->month = 0;
this->year = 0;
}
Date(int day, int month, int year)
{
this->month = month;
this->day = day;
this->year = year;
}
void Display()
{
cout << this->day << "." <<this->month<< "." <<this->year<< endl;
}
};
class Time
{
private:
int h;
int m;
public:
Time() { h = 0, m = 0; }
Time(int hours, int minutes)
{
if (hours < 0) h = 0;
else h = hours % 24;
if (minutes < 0) m = 0;
else m = minutes % 60;
}
void AddMinutes(int minutes)
{
if (m + minutes < 60){
m += minutes;
}else
{
m = (m + minutes) % 60;
h = (h + 1) % 24;
}
}
void Display()
{
cout << h / 10 << h % 10 << ":" << m / 10 << m % 10 << endl;
}
};
class DogCare{
private:
Dog dog;
Date dateAppointment;
Time startTimeAppointment;
//duration of the appointment in minutes
int duration;
//include a field that contains the ending time of the appointment;
//this field will be calculated based on the start and the duration
//using Time class function that adds minutes to a Time object.
Time endTimeAppointment;
public:
DogCare(){}
//The DogCare constructor requires dog name, a month, day, year, hour and minute for the appointment.
DogCare(string name, string breed, int age,int month,int day,int year,int hour,int minute,int duration){
// The constructor does not allow any appointment over 240 minutes.
if(duration<=240){
this->dog=Dog(name,breed,age);
this->dateAppointment=Date(day,month,year);
this->startTimeAppointment=Time(hour,minute);
this->endTimeAppointment=Time(hour,minute);
//The constructor calculates the appointment ending time based on the start time and the duration.
this->endTimeAppointment.AddMinutes(duration);
this->duration=duration;
}else{
cout<<"\nAppointment over 240 minutes.\n";
}
}
//Also include a display function for the DogCare class.
void Display()
{
if(duration<=240){
this->dog.Display();
cout<<"Date appointment: ";
this->dateAppointment.Display();
cout<<"Start time appointment: ";
this->startTimeAppointment.Display();
cout<<"End time appointment: ";
this->endTimeAppointment.Display();
cout<<"Duration of the appointment: "<<duration<<" minutes.";
}else{
cout<<"\nAppointment over 240 minutes.\n";
}
}
};
int main(){
//Write a main() function that loops at least 5 times,
//prompting the user for DogCare data and displaying all the info
DogCare dogCare[5];
for(int i=0;i<5;i++){
cout << "Enter details information for a dog "<<(i+1)<<"\n";
string name;
cout << "Enter a dog name: ";
getline(cin, name);
string breed;
cout << "Enter a dogbreed: ";
getline(cin, breed);
int age;
cout << "Enter a dog age: ";
cin >> age;
int day;
cout << "Enter a day of appointment: ";
cin >> day;
int month;
cout << "Enter a month of appointment: ";
cin >> month;
int year;
cout << "Enter a year of appointment: ";
cin >> year;
int hour;
cout << "Enter a hour of appointment: ";
cin >> hour;
int minute;
cout << "Enter a minute of appointment: ";
cin >> minute;
int duration;
cout << "Enter a duration of appointment: ";
cin >> duration;
cin.ignore();
dogCare[i]=DogCare(name, breed, age,month,day, year, hour, minute, duration);
cout<<"\n";
}
for(int i=0;i<5;i++){
dogCare[i].Display();
cout<<"\n\n";
}
system("pause");
return 0;
}
Comments
Leave a comment