Answer:
See explaination
Explanation:
dateType.h
#ifndef dateType_H
#define dateType_H
class dateType
{
public:
void setDate(int month, int day, int year);
//Function to set the date.
//The member variables dMonth, dDay, and dYear are set
//according to the parameters.
//Postcondition: dMonth = month; dDay = day;
// dYear = year
int getDay() const;
//Function to return the day.
//Postcondition: The value of dDay is returned.
int getMonth() const;
//Function to return the month.
//Postcondition: The value of dMonth is returned.
int getYear() const;
//Function to return the year.
//Postcondition: The value of dYear is returned.
void printDate() const;
//Function to output the date in the form mm-dd-yyyy.
void isLeapYear() const;
dateType(int month = 1, int day = 1, int year = 1900);
//Constructor to set the date
//The member variables dMonth, dDay, and dYear are set
//according to the parameters.
//Postcondition: dMonth = month; dDay = day; dYear = year;
// If no values are specified, the default
// values are used to initialize the member
// variables.
private:
int dMonth; //variable to store the month
int dDay; //variable to store the day
int dYear; //variable to store the year
};
#endif
dateType.cpp
#include <iostream>
#include "dateType.h"
using namespace std;
void dateType::setDate(int month, int day, int year)
{
// Checking month is valid
while(month<1 || month>12)
{
cout << "Enterd month "<<month<< " is wrong"<<endl;
cout << "Enter correct month"<<endl;
cin>>month;
}
dMonth = month;
// Checking date is valid
while(day<1 || day>31)
{
cout << "Enterd date "<<day<<" is wrong"<<endl;
cout<<"Enter correct date"<<endl;
cin>>day;
}
dDay = day;
int count_digits = 0;
int flag=0;
int year1;
// Counting number of digits in year
while(flag==0)
{
year1=year;
count_digits=0;
while (year) {
year /= 10;
count_digits++;
}
if(count_digits != 4)
{
cout << "Enterd year "<<year1<<" is wrong"<<endl;
cout<<"Enter correct year"<<endl;
cin>>year;
flag=0;
}
else
flag=1;
}
dYear = year1;
}
int dateType::getDay() const
{
return dDay;
}
int dateType::getMonth() const
{
return dMonth;
}
int dateType::getYear() const
{
return dYear;
}
void dateType::printDate() const
{
cout << dMonth << "-" << dDay << "-" << dYear;
}
void dateType::isLeapYear() const
{
if ( dYear%400 == 0)
cout<<endl<<dYear<< " is leap year.\n";
else if ( dYear%100 == 0)
cout<<endl<<dYear<< " is leap year.\n";
else if ( dYear%4 == 0 )
cout<<endl<<dYear<< " is leap year.\n";
else
cout<<endl<<dYear<< " is not leap year.\n";
}
//Constructor with parameters
dateType::dateType(int month, int day, int year)
{
// Checking month is valid
while(month<1 || month>12)
{
cout << "Enterd month "<<month<< " is wrong"<<endl;
cout << "Enter correct month"<<endl;
cin>>month;
}
dMonth = month;
// Checking date is valid
while(day<1 || day>31)
{
cout << "Enterd date "<<day<<" is wrong"<<endl;
cout<<"Enter correct date"<<endl;
cin>>day;
}
dDay = day;
int count_digits = 0;
int flag=0;
int year1;
// Counting number of digits in year
while(flag==0)
{
year1=year;
count_digits=0;
while (year) {
year /= 10;
count_digits++;
}
if(count_digits != 4)
{
cout << "Enterd year "<<year1<<" is wrong"<<endl;
cout<<"Enter correct year"<<endl;
cin>>year;
flag=0;
}
else
flag=1;
}
dYear = year1;
}
main.cpp
#include<iostream>
#include "dateType.h"
using namespace std;
int main()
{
dateType *dt1=new dateType();
cout<<"Date is "<<endl;
dt1->printDate();
cout<<endl;
dt1->isLeapYear();
cout<<endl;
dateType *dt2=new dateType(11,14,2019);
cout<<"Date is "<<endl;
dt2->printDate();
cout<<endl;
dt2->isLeapYear();
cout<<endl;
dt2->setDate(13,32,2016);
cout<<"Date is "<<endl;
dt2->printDate();
cout<<endl;
dt2->isLeapYear();
cout<<endl;
dt1->setDate(10,10,198);
cout<<"Date is "<<endl;
dt1->printDate();
cout<<endl;
dt1->isLeapYear();
cout<<endl;
system("pause");
return 0;
}