This is my assignment: Classes and Data Abstraction Design and implement a class
ID: 3739442 • Letter: T
Question
This is my assignment:
Classes and Data Abstraction
Design and implement a class dayType that implements the day of the week in a program. The class dayTypeshould store the day, such as Sunday for Sunday. The program should be able to perform the following operations on an object of type dayType:
Step a: Set the day.
Step b: Print the day.
Step c: Return the day.
Step d: Return the next day.
Step e: Return the previous day.
Step f: 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.
Step g: Add the appropriate constructors.
Write the definitions of the functions to implement the operations for the class dayType.
The only part I am having problems with is Step F. I am using an online teaching tool called MindTap and it is very particular with the way it wants the code written. Right now I have the function as string function but MindTap wants it to be a void function. Here's the code I have now:
string dayType::addDay(int nDays)
{
string weekDays[] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int index;
for(int i = 0; i < 7; i++)
{
if (weekDay == weekDays[i])
{
index = i;
break;
}
}
return weekDays[ (index + nDays) % 7 ];
}
Any help would be greatly appreciated!
Explanation / Answer
main program
#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;
}
implementation program
#include <iostream>
#include <iomanip>
#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;
}
header file addType.h
#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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.