From d0c2763a234b8f1bec9046fec217bbf41de1eeda Mon Sep 17 00:00:00 2001 From: cdez Date: Thu, 7 Nov 2024 08:47:39 -0700 Subject: [PATCH] Completed 'date' program of Assignment 5. --- assignmentFive/date | Bin 16064 -> 23248 bytes assignmentFive/date.cpp | 275 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 272 insertions(+), 3 deletions(-) diff --git a/assignmentFive/date b/assignmentFive/date index 6483c5903fa9e336ede9f39681a39cd45b47f393..4fd2f9c34209b436cf4bc4b38c36d4cf83cdc0e0 100755 GIT binary patch literal 23248 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 P{@TwQi3Q?l0sa32D=7qc literal 16064 zcmeHOYit}>6~1f7i9;QG^Q=iqy@e!d2%h*A<5HQdAM1?4PD1R^P|;pycgO3g_TkRX zrgnK5rJ!0RQhA615>QnLBEgR!A+_R9T?JKu3Tog7`GrhMB_jcG1x2QShjZ>dXEUCz zg97}h#2jnq-1D9D-FxTEo!vX0dq15T8>x%M1WUbmzd$P)*GQ5a^Y5hssHEr<+u-;P zafjFp_9lgCe^M*(YPnjsUN;h64;p!`Sg4`z&@i;1g?oq^c^kv3v;HT$dWC6Ek~P{*o%iA>f(9(HA^T?Z`nuh$)vmp;zApYtT~^U z6a4g1KEt{Ld?>8LylLWv^{}Q1*4PHh#H(KRKWXn2@fs7V8WGm-(Xe36?R^M%bZIH# z=87-#X=-ny>yV)Qv!?WlBY7v?+jAtJZO=Q!%53{=UvGPFk5MieU8-U1R{}mbrjDOD zBcPf^#3+rTZeH75ANqEYALBp#^;7-34mSD8oc)`-e)aGh*E*iN7h|yB$iWyCtdEBX z+B`lmM(5)*2vb>zEA}r63fSO~0enXd-^d0y_9syz9^0>l<8`ZrR{(z}eBLBd<_e{v zEPIygNh##$U2tFnYPNdglp$o?woXr zj(1K-v@_H~!E%a#WM(Zn!-w(m_M(~5rQ>6xgF|P}%5I~_=M@Pu*wN!h+e-l)uPw`R0Ozrd zzLfxuEq(S<7ynhV#=^S@g; zHJR#M?EI;Dq5o%4fxr9X5c-!XqooaJ!_dHm{;vUIUTF9ts(V(w-O%)dScayz`b#Zs z^B8xTG{ie9{%9K2p*3@1#eCsU$IKU2>&@7U=9M*X7gW$r6*T%wx?jx4{?7Lw0Jo?d zK4YHmzh*$uTzJ)MGN0(*4EXXP-}jfZaCoudpWuu=0NiT($p8H#;Kafi;4OUeALc@3 zuZqSc|?gMRtzUwvLe;PCjzRN_3J$hQiX5+DaO%M;w1BSP#H&Xkd*aM$SfGeOmKGNL!ftK4IX`C0w_TKaE?)~cZAo4#7pRaNp zlu@uw4?c6ympurin&Y3V8``#c92!PDk|+aF2BHi^8Hh3vWgyBxlz}J%Q3j$6{GVrl z*9r2vKwjIY-^S{-rkEmJi-^*sRdt>8HnNkn-tg^Y^LoU6Wb-rFUb1;zB0jgFu>bWn zzl8QBT1?1m1n2R=6NJ|!UM2tAG%WPnXd!MRyOs2A(yWLk7HJ*g7IIvqhPWS#gu^0B zC0yT~WOLl#ecfNkn}XKJK1=n%n_+c6yzUboPnA7P{=bpU{i5psXNuQ_|F;$L`q1M; zL+?x6eI{KgdX+?Hx6x&Ew0Ct^l-+ZPkef7y<7<<6%@2oQo@3zoJS8GQ0Xsq0ipT3v zCz{0!t!Jfhks$o(5Z+BVk8_S6g+ffUig;2ZJpOTYbqxMn!Q)hWh4=&%uwA}y7=K*F z@2sxFW&FEPsMY^VDn2eYC3GaW`wHO=A$$)6#6(=S5I>=KsJ1G#`g5P^ z!1n5Tdk%g`)w5fK$5C0~d#d*l$1eaL7q?gQ$#^~7013cFk`b-(e?r@V0Zt`!n~QG& zuKwYp;p*{6fbW3(AENIY^}inQK9BX(-7a{XGT|kRuWJ$f{lxe$RXuFo&|9FNSbvhn zkNO`KxUZ{v;M*lMu3o2hdHirqF{lUg5I)~#g|~{Gq}{g43XKA%;igID=)KN z$t_E(GAlBr!c5-w?5xpII|A3!JJNDpYfjol&z%!fu2ryQwo)j}0VQCmh5743vzBKY znVA_O?>{l&^+6YG&vNqJ9TH+aJ7>GnE6L2X1-)^~vQjKNxuTsNeJGW>RZ8L3DRW4X zBc}((Q!;g87`G`%*q|X(CV}SgX(5L{a$;b7bV$hKV~ zuy3N;Q*2l7et=FCvCVY3%)m`HPUw1XY=5}v){GjvIBM?H5Jq{f;8|(Vo~!jVm+(rv zGr}mAU@+v06=TLN&DgFt7l6_g2lnJRS%L-zN852stMF;7JS~juToIbk+HB#c~<-yWoR!B<63lZwzBm zcwVF}A$p+@nv|{_5{1{f_eU0ac^g z;xcO74;ADmh{rnga~!T-JQLz~5P|i-<9{#2PZEK3cp@9F?+0N%&0Bar!p~0-rX)Om zp9K`ppYtygDon7(>lTzS|9Nl*`Hcx3%^Kh71trY?IXHv-zJ!iu{pBDT%6$D9{xuYE zjN(0j!q0`g-!dG}HtSb_(*hsn^L%`{9cz1Yd(2~f9b$0oF`wtLynmMW$#Nc<$Jg;Y zz{T@tK0h}u9sv*}sg5@e%xAp{t{}fk=+GQ)hihOS+iOrjjN9k=VVwBkcx)>u^#CA7 z;Z+y&4^|OfV17_n$6g?|k1D)K9mD$=pS8I^eE)9+jQbv-izR#@19>u3Ik&65_-s&{ PKZ8FkAWb1c$Q1tqNYDrq diff --git a/assignmentFive/date.cpp b/assignmentFive/date.cpp index a896607..cc36fe6 100644 --- a/assignmentFive/date.cpp +++ b/assignmentFive/date.cpp @@ -21,13 +21,240 @@ Dependencies: ??? using namespace std; // class definitions +class InvalidDay : public exception +{ +public: + virtual const char *what() const noexcept + { + return "InvalidDay: Day should be between 1 and 31 (integers)."; + } +}; +class InvalidMonth : public exception +{ +public: + virtual const char *what() const noexcept + { + return "InvalidMonth: Month should be between 1 and 12 (integers)."; + } +}; + class Date { private: - /* data */ + int month; + int day; + int year; public: - Date(/* args */); - ~Date(); + Date() + { + month = 1; + day = 1; + year = 1970; + } + Date(int inMonth, int inDay, int inYear) + { + try + { + if(inMonth > 1 || inMonth < 12) + { + month = inMonth; + } + else + { + throw InvalidMonth(); + } + } + catch(const InvalidMonth& e) + { + std::cerr << e.what() << '\n'; + } + // next try statement + try + { + if(inDay > 1 || inDay < 31) + { + day = inDay; + } + else + { + throw InvalidDay(); + } + } + catch(const InvalidDay& e) + { + std::cerr << e.what() << '\n'; + } + year = inYear; + } + ~Date() + { + // + } + // accessor functions + int getDay() + { + return day; + } + int getMonth() + { + return month; + } + int getYear() + { + return year; + } + // mutator functions + void setDay(int inputDay) + { + try + { + if (inputDay > 1 || inputDay < 31) + { + day = inputDay; + } + else + { + throw InvalidDay(); + } + } + catch (const InvalidDay &e) + { + std::cerr << e.what() << '\n'; + } + } + void setMonth(int inputMonth) + { + try + { + if (inputMonth > 1 || inputMonth < 12) + { + month = inputMonth; + } + else + { + throw InvalidMonth(); + } + } + catch (const InvalidMonth &e) + { + std::cerr << e.what() << '\n'; + } + } + void setYear(int inputYear) + { + year = inputYear; + } + // date printing functions + void printNumericalMonthDayYear() + { + cout << month << "/" << day << "/" << year << endl; + } + void printStringMonthNumericalDayYear() + { + switch (month) + { + case 1: + cout << "January"; + break; + case 2: + cout << "February"; + break; + case 3: + cout << "March"; + break; + case 4: + cout << "April"; + break; + case 5: + cout << "May"; + break; + case 6: + cout << "June"; + break; + case 7: + cout << "July"; + break; + case 8: + cout << "August"; + break; + case 9: + cout << "September"; + break; + case 10: + cout << "October"; + break; + case 11: + cout << "November"; + break; + case 12: + cout << "December"; + break; + + default: + break; + } + cout << " " << day << ", " << year << endl; + } + void printNumericalDayStringMonthYear() + { + cout << day << " "; + switch (month) + { + case 1: + cout << "January"; + break; + case 2: + cout << "February"; + break; + case 3: + cout << "March"; + break; + case 4: + cout << "April"; + break; + case 5: + cout << "May"; + break; + case 6: + cout << "June"; + break; + case 7: + cout << "July"; + break; + case 8: + cout << "August"; + break; + case 9: + cout << "September"; + break; + case 10: + cout << "October"; + break; + case 11: + cout << "November"; + break; + case 12: + cout << "December"; + break; + + default: + break; + } + cout << " " << year << endl; + } + // shorthand print functions + void printNMDY() + { + printNumericalMonthDayYear(); + } + void printSMNDY() + { + printStringMonthNumericalDayYear(); + } + void printNDSMY() + { + printNumericalDayStringMonthYear(); + } }; // function prototypes @@ -35,6 +262,48 @@ public: // main program int main(int argc, char **argv) { + int tempDay, tempMonth, tempYear; + Date linuxEpoch = Date(); + Date steveBirthday = Date(2, 24, 1955); + Date christmasThisYear = Date(12, 25, 2024); + Date emptyDate = Date(); // values will be set be accessor/mutators + // ask the user for the values for emptyDate. + cout << "Start date entry:" << endl; + cout << "\tPlease enter in a month: "; + cin >> tempDay; + + cout << "\tPlease enter in a day: "; + cin >> tempMonth; + + cout << "\tPlease enter in a year: "; + cin >> tempYear; + // finish the user entry. + cout << endl; + + // attempt to enter in the date into empty date. + emptyDate.setDay(tempDay); + emptyDate.setMonth(tempMonth); + emptyDate.setYear(tempYear); + + // print out each date in different formats. + cout << "Date of Linux Epoch: "; + linuxEpoch.printNumericalDayStringMonthYear(); + cout << endl; + + cout << "Date of Steve Job's Birthday: "; + steveBirthday.printNumericalMonthDayYear(); + cout << endl; + + cout << "Date of Christmas this year: "; + christmasThisYear.printStringMonthNumericalDayYear(); + cout << endl; + + cout << "User inputted date in all formats: " << endl; + emptyDate.printNumericalDayStringMonthYear(); + emptyDate.printNumericalMonthDayYear(); + emptyDate.printStringMonthNumericalDayYear(); + cout << endl; + // return 0 return 0; } \ No newline at end of file