The class dateType defined in Programming Exercise 6 prints the date in numerical form. Some applications might require the date to be printed in another form, such as March 24, 2019. Derive the class extDateType so that the date can be printed in either form. Add a member variable to the class extDateType so that the month can also be stored in string form. Add a member function to output the month in the string format, followed by the year—for example, in the form March 2019. Write the definitions of the functions to implement the operations for the class extDateType. Note: you may write a main.cpp to test your class but will not be graded on the main.cpp. I do not have/need main.cpp, I am needing extDateTypeImp.cpp. I have dateType.h, dateTypeImp.cpp, extDateType.h. dateTypeImp.cpp:

EBK JAVA PROGRAMMING
9th Edition
ISBN:9781337671385
Author:FARRELL
Publisher:FARRELL
Chapter9: Advanced Array Concepts
Section: Chapter Questions
Problem 3PE
icon
Related questions
Question

The class dateType defined in Programming Exercise 6 prints the date in numerical form. Some applications might require the date to be printed in another form, such as March 24, 2019. Derive the class extDateType so that the date can be printed in either form.

Add a member variable to the class extDateType so that the month can also be stored in string form. Add a member function to output the month in the string format, followed by the year—for example, in the form March 2019.

Write the definitions of the functions to implement the operations for the class extDateType.

Note: you may write a main.cpp to test your class but will not be graded on the main.cpp.

I do not have/need main.cpp, I am needing extDateTypeImp.cpp.

I have dateType.h, dateTypeImp.cpp, extDateType.h.

dateTypeImp.cpp:

 
#include <iostream>
#include "dateType.h"

using namespace std; 
 
void dateType::setDate(int month, int day, int year)
{
    if (year >= 1)
        dYear = year;
    else
        dYear = 1900;

    if (1 <= month && month <= 12)
        dMonth = month; 
    else
        dMonth = 1;

    switch (dMonth)
    {
    case 1: 
    case 3: 
    case 5: 
    case 7:
    case 8: 
    case 10: 
    case 12: 
        if (1 <= day && day <= 31)
            dDay = day;
        else
            dDay = 1;
            break;
    case 4: 
    case 6: 
    case 9: 
    case 11: 
        if (1 <= day && day <= 30)
            dDay = day;
        else
            dDay = 1;
            break;
    case 2: 
        if (isLeapYear())
        {
            if (1 <= day && day <= 29)
                dDay = day;
            else
                dDay = 1;
        }
        else
        {
            if (1 <= day && day <= 28)
                dDay = day;
            else
            dDay = 1;
        }
    }
}

void dateType::setMonth(int  m)
{
    dMonth = m;
}

void dateType::setDay(int d)
{
    dDay = d;
}

void dateType::setYear(int y)
{
    dYear = y;
}


void dateType::print() const
{
    cout << dMonth << "-" << dDay << "-" << dYear;
}

int dateType::getMonth()  const
{
    return dMonth;
}

int dateType::getDay()  const
{
    return dDay;
}

int dateType::getYear()  const
{
    return dYear;
}

int dateType::getDaysInMonth()
{
    int noOfDays;

    switch (dMonth)
    {
    case 1: 
    case 3: 
    case 5: 
    case 7: 
    case 8: 
    case 10: 
    case 12: 
        noOfDays = 31;
        break;
    case 4: 
    case 6: 
    case 9: 
    case 11:  
        noOfDays = 30;
        break;
    case 2: 
        if (isLeapYear())
            noOfDays = 29;
        else
            noOfDays = 28;
    }

    return noOfDays;
}

bool dateType::isLeapYear()
{
    if (((dYear % 4 == 0) && (dYear % 100 != 0)) || dYear % 400 == 0)
        return true;
    else
        return false;
}

dateType::dateType(int month, int day, int year) 
    setDate(month, day, year);
}

int dateType::numberOfDaysPassed()
{
    int monthArr[13] = {0, 31, 28, 31, 30, 31, 30, 
                        31, 31, 30, 31, 30, 31};

    int sumDays = 0;
    int i;

    for (i = 1; i < dMonth; i++)
        sumDays = sumDays + monthArr[i];

    if (isLeapYear() && dMonth > 2)
        sumDays = sumDays + dDay + 1;
    else
        sumDays = sumDays + dDay;

    return sumDays;
}

int dateType::numberOfDaysLeft()
{
    if (isLeapYear())
        return 366 - numberOfDaysPassed();
    else
        return 365 - numberOfDaysPassed();
}

void dateType::incrementDate(int nDays)
{
    int monthArr[13] = {0, 31, 28, 31, 30, 31, 30, 
                       31, 31, 30, 31, 30, 31};
    int daysLeftInMonth;

    daysLeftInMonth = monthArr[dMonth] - dDay;

    if (daysLeftInMonth >= nDays)
        dDay = dDay + nDays;
    else
    {
        dDay = 1;
        dMonth++;
        nDays = nDays - (daysLeftInMonth + 1);

        while (nDays > 0)
            if (nDays >= monthArr[dMonth])
            {
                nDays = nDays - monthArr[dMonth];

                if ((dMonth == 2) && isLeapYear())
                    nDays--;
         
                dMonth++;
                if (dMonth > 12)
                {
                    dMonth = 1;
                    dYear++;
                }

            }
            else
            {
                dDay = dDay+nDays;
                nDays = 0;
            }
    }
}
 I am needing extDateTypeImp.cpp
dateTyp. dateTyp.. extDate.
main.cpp +
extDate.
1 #ifndef dateType_H
2 #define dateType_H
3
4 class dateType
5 {
6 public:
void setDate(int, int, int);
void setMonth(int);
void setDay(int);
void setYear(int);
8
10
11
12
void print() const;
13
14
int numberOfDaysPassed();
15
16
int numberofDaysLeft();
17
18
void incrementDate(int nDays);
19
int getMonth() const;
int getDay() const;
int getYear() const;
20
21
22
23
24
int getDaysInMonth();
25
26
bool isLeapYear();
27
28
dateType (int = 1, int = 1, int = 1900);
29
30 private:
31
int dMonth;
32
int dDay;
33
int dYear;
34 };
35
36 #endif
Transcribed Image Text:dateTyp. dateTyp.. extDate. main.cpp + extDate. 1 #ifndef dateType_H 2 #define dateType_H 3 4 class dateType 5 { 6 public: void setDate(int, int, int); void setMonth(int); void setDay(int); void setYear(int); 8 10 11 12 void print() const; 13 14 int numberOfDaysPassed(); 15 16 int numberofDaysLeft(); 17 18 void incrementDate(int nDays); 19 int getMonth() const; int getDay() const; int getYear() const; 20 21 22 23 24 int getDaysInMonth(); 25 26 bool isLeapYear(); 27 28 dateType (int = 1, int = 1, int = 1900); 29 30 private: 31 int dMonth; 32 int dDay; 33 int dYear; 34 }; 35 36 #endif
date Typ.. dateTyp. extDate.
main.cpp +
extDate.
2 #ifndef extDateType_H
3 #define extDateType_H
4
5 #include <string>
7 #include "dateType.h"
8
9 using namespace std;
10
11 string months[] = {"January", "February",
"March", "April",
12
"May", "June", "July",
II
"August",
13
"September", "October",
"November", "December"};
14
15 class extDateType: public dateType
16 {
17 public:
void printLongDate();
void setDate(int, int, int);
void setMonth(int m);
18
19
20
21
22
void printLongMonthYear();
23
extDateType();
extDateType (int, int, int);
24
25
26
27 private:
28
string month;
29 };
30
31 #endif
32
Transcribed Image Text:date Typ.. dateTyp. extDate. main.cpp + extDate. 2 #ifndef extDateType_H 3 #define extDateType_H 4 5 #include <string> 7 #include "dateType.h" 8 9 using namespace std; 10 11 string months[] = {"January", "February", "March", "April", 12 "May", "June", "July", II "August", 13 "September", "October", "November", "December"}; 14 15 class extDateType: public dateType 16 { 17 public: void printLongDate(); void setDate(int, int, int); void setMonth(int m); 18 19 20 21 22 void printLongMonthYear(); 23 extDateType(); extDateType (int, int, int); 24 25 26 27 private: 28 string month; 29 }; 30 31 #endif 32
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Data members
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
EBK JAVA PROGRAMMING
EBK JAVA PROGRAMMING
Computer Science
ISBN:
9781337671385
Author:
FARRELL
Publisher:
CENGAGE LEARNING - CONSIGNMENT