NAME | Circle your lab section | Section 8, Thurs 6:30PM. |
Section 3, Thurs 8:30AM. | Section 9, Fri 2:00PM. | |
EMAIL ID | Section 4, Thurs10:30AM | Section 10, Thurs 8:30PM. |
Section 5, Thurs 12:30PM. | Section 11, Fri at Noon. | |
STUDENT ID | Section 6, Thurs 2:30PM. | Section 12, Fri 4:00PM. |
Section 7, Thurs 4:30PM. | Section 13, Fri 10:AM |
FINAL GRADING CRITERIA |
POINTS |
SCORE |
Initial program comments identify, student ID, email, lab section number (no partial credit allowed) |
20 |
|
Program submitted electronically under mydate.cpp (no partial credit allowed) |
20 |
|
Program compiles without serious warning messages, e.g., ones that indicate program incorrectness. (no partial credit allowed) |
50 |
|
All member functions only use member inspectors to access day, month, year attributes (no partial credit allowed) | 50 | |
All member functions only use member mutators to set day, month, year attributes (no partial credit allowed) | 50 | |
Member function setDay() correctly reacts to day value less than 1 | 10 | |
Member function setDay() correctly reacts to day value of 31 or greater for months with 30 days. | 10 | |
Member function setDay() correctly reacts to day value of 32 or greater for months with 31 days. | 10 | |
Member function setDay correctly reacts to day value of 29 or greater for February when the year is not a leap year. | 10 | |
Member function setDay correctly reacts to day value of 30 or greater for February when the year is a leap year. | 10 | |
Member function setMonth() detects illegal months | 10 | |
Member function setMonth() reacts correctly when existing day value is legal | 20 | |
Member function setMonth() reacts correctly when existing day value is now illegal | 20 | |
Member function setYear() reacts correctly when year value is less than 1 | 10 | |
Member function setYear() reacts correctly when year value is a leap year | 10 | |
Member function setYear() reacts correctly when year value is a leap year and existing day value is now illegal | 10 | |
Member function extract() does not falsely report transient illegal values in updating object (e.g, update from 11/29/2000) | 20 | |
Member function extract() sets date to 1/1/2000 when user does not type '/' to separate day/month/year in the input | 10 | |
Global function isLeapYear() reacts correctly when year value is a multiple of 400 | 5 | |
Global function isLeapYear() reacts correctly when year is a multiple of 100 but not 400 | 5 | |
Global function isLeapYear() reacts correctly when year value is a multiple of 4 but not 100 | 5 | |
Global function isLeapYear() reacts correctly when year value is not a multiple of 4 | 5 | |
Member operator == reacts correctly when the two dates match | 10 | |
Member operator == reacts correctly when the two dates mismatch | 10 | |
Member operator ++ reacts correctly when current day value is in the middle of the month | 10 | |
Member operator ++ reacts correctly when current day value is end of month and month value is middle of the year | 10 | |
Member operator ++ react correctly for New Year's Eve | 10 | |
Extra credit | ||
Member operator + reacts correctly to number of days less than 0 | 10 | |
Member operator + reacts correctly to number of days greater than 0 | 10 | |
Member operator + reacts correctly to number of days greater than 0 and does not use recursion or loops either directly or indirectly |
20 |
|
Total |
420 |