Hello, Please help. Below is my assignment and the code I've got so far. I'm still getting errors on overloading the member function on the printDay and prevDay.
Design and implement a class dayType that implements the day of the week in a program. The class dayType should store the day, such as Sun for Sunday. The program should be able to perform the following operations on an object of type dayType:
-Set the day
-Print the day
-Return the day
-Return the next day
-Return the previous day
-Calculate and return the day by adding certain days to the current day. For example if the current day is Monday and we add 4 days, the day to be returned is Friday. Similarly, if today is Tuesday and we add 13 days, the day to be returned is Monday.
-Add the appropriate constructors.
-Then, write the definitions of the functions to implement the operations for the class dayType as defined in Programming above. Also, write a program to test various operations on this class.
header file
#ifndef DAY_TYPE_H
#define DAY_TYPE_H
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
/******* Class dayType Specification ********/
class dayType
{
private:
string days[7];
string currentDay;
int numDays;
public:
void setDay(string newDay);
void printDay() const;
int showDay(int& day);
int nextDay(int day);
int prevDay(int day) const;
int calcDay(int day, int numDays);
dayType()
{
days[0] = "Sunday";
days[1] = "Monday";
days[2] = "Tuesday";
days[3] = "Wednesday";
days[4] = "Thursday";
days[5] = "Friday";
days[6] = "Saturday";
currentDay = days[0];
numDays = 0;
};
~dayType();
};
#endif
implementation file
#include "dayType.h"
void dayType::setDay(string newDay)
{
currentDay = newDay;
}
void dayType::printDay()
{
cout << "Day chosen is " << currentDay << endl;
}
int dayType::showDay(int& day)
{
return day;
}
int dayType::nextDay(int day)
{
day = day++;
if (day > 6)
day = day % 7;
switch (day)
{
case 0: cout << "The next day is Sunday";
break;
case 1: cout << "The next day is Monday";
break;
case 2: cout << "The next day is Tuesday";
break;
case 3: cout << "The next day is Wednesday";
break;
case 4: cout << "The next day is Thursday";
break;
case 5: cout << "The next day is Friday";
break;
case 6: cout << "The next day is Saturday";
break;
}
cout << endl;
return day;
}
int dayType::prevDay(int day)
{
day = day--;
switch (day)
{
case -1: cout << "The previous day is Saturday.";
break;
case 0: cout << "The previous day is Saturday.";
break;
case 1: cout << "The previous day is Saturday.";
break;
case 2: cout << "The previous day is Saturday.";
break;
case 3: cout << "The previous day is Saturday.";
break;
case 4: cout << "The previous day is Saturday.";
break;
case 5: cout << "The previous day is Saturday.";
break;
default: cout << "The previous day is Saturday.";
}
cout << endl;
return day;
}
int dayType::calcDay(int addDays, int numDays)
{
addDays = addDays + numDays;
if (addDays > 6)
addDays = addDays % 7;
switch(addDays)
{
case 0: cout << "The calculated day is Sunday.";
break;
case 1: cout << "The calculated day is Monday.";
break;
case 2: cout << "The calculated day is Tuesday.";
break;
case 3: cout << "The calculated day is Wednesday.";
break;
case 4: cout << "The calculated day is Thursday.";
break;
case 5: cout << "The calculated day is Friday.";
break;
case 6: cout << "The calculated day is Saturday.";
break;
default: cout << "Not valid choice.";
}
cout << endl;
return addDays;
}
Main
#include <iostream>
#include <string>
#include "dayType.h"
using namespace std;
void showSelections();
int main()
{
dayType userDay;
int currentDay;
int addDays;
int test;
string day;
do
{
test = 0;
showSelections();
cin >> currentDay;
cout << endl;
if (currentDay = 0)
{
userDay.setDay("Sunday");
}
else if (currentDay = 1)
{
userDay.setDay("Monday");
}
else if (currentDay = 2)
{
userDay.setDay("Tuesday");
}
else if (currentDay = 3)
{
userDay.setDay("Wednesday");
}
else if (currentDay = 4)
{
userDay.setDay("Thursday");
}
else if (currentDay = 5)
{
userDay.setDay("Friday");
}
else if (currentDay = 6)
{
userDay.setDay("Saturday");
}
else if (currentDay = 9)
{
cout << "Exiting...";
return 0;
}
else
{
cout << "Not a valid choice." << endl;
test = -37;
}
}
while (test < 0);
userDay.printDay();
cout << endl;
userDay.showDay(currentDay);
cout << endl;
userDay.nextDay(currentDay);
cout << endl;
userDay.prevDay(currentDay);
cout << endl;
cout << "Enter the number of days to add: " << endl;
cin >> addDays;
cout << endl;
userDay.calcDay(currentDay, addDays);
cout << endl;
cout << endl << endl;
system("pause");
return 0;
}
// Function to display weekday selections.
void showSelections()
{
cout << "*****Please enter a day of the week*****" << endl;
cout << "0 for Sunday" << endl;
cout << "1 for Monday" << endl;
cout << "2 for Tuesday" << endl;
cout << "3 for Wednesday" << endl;
cout << "4 for Thursday" << endl;
cout << "5 for Friday" << endl;
cout << "6 for Saturday" << endl;
cout << "9 to exit" << endl;
}