Question
C++ Write a program that prints a calendar for one year, given the day of the week that January 1 falls on. Each successive month
C++
Write a program that prints a calendar for one year, given the day of the week that January 1 falls on. Each successive month starts on the day of the week that follows the last day of the preceding month. Days of the week will be numbered 0 through 6 for Sunday through Saturday. Do not use classes, arrays, or structs in this project!!
- Your program must determine whether a year is a leap year exactly, not just by checking for divisibility by 4. Also remember that you are free to steal the isLeapYear function --
bool isLeapYear(int year) { if (year % 400 == 0){ return true; } if (year % 100 == 0){ return false; } if (year % 4 == 0){ return true; } return false; }
-The number of days in each month and the numbers in the leap year formula are not good candidates for using global constants. You should just use the literals directly in your code.
-It is extremely important that you use stepwise refinement when designing this program. Insufficient decomposition may result in a grade of 0.
-You MUST have a single function named "printMonth()" that prints out ANY month, given (1) the year, (2) the month number, and (3) the day of week that the month starts on. (Think about why the printMonth() function will need to know the year.) For example, don't create 12 separate functions, one named "printJanuary", one named "printFebruary," and so on. In addition, you must have only ONE call to this printMonth function, in a loop that calls the function 12 times. This printMonth() function must print the entire month, including the month name and header.
-Let me describe my solution to this problem, not so that you can try to match it exactly, but so that you'll know if you are going way off into the wrong direction. I had 8 functions all together including main. 4 of them were 5 lines or less. 2 of them were fairly long functions but only because they were switch statements with 12 branches -- hard if not impossible to decompose further. That leaves 2 functions which were 8 - 10 lines long. One of these was the printMonth function.
-When I count lines I count only the body of the function and I don't count declaration statements or blank lines or comments, but I do count a line if it has only a } on it.
-Make sure each of your functions performs a single logical task (not two). If you find yourself trying to name a function with the word AND, it probably means the function should be divided into two.
-Printing out the month names: They don't need to be centered. Each month name should start right above the letter "T", as illustrated in the sample output.
Sample Output:
For this assignment, start every month on the same day (the day entered by the user), and just print all of the dates out on a single line. So, the output for this assignment will look like this:
What year do you want a calendar for? 2002 What day of the week does January 1 fall on (0 for Sunday, 1 for Monday, etc.)? 2 2002 January S M T W T F S --------------------- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 February S M T W T F S --------------------- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 . . . . December S M T W T F S --------------------- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
// if you could leave a few comments that would be very helpful, thanks!
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started