From d2d751306ee9fcc9eec7704d579e3d1971ae8ba0 Mon Sep 17 00:00:00 2001 From: cdez Date: Tue, 12 Nov 2024 08:09:55 -0700 Subject: [PATCH] Finish assignment 5 with HTML Converter. (This one is actually really neat!) --- assignmentFive/htmlConvert | Bin 16072 -> 35088 bytes assignmentFive/htmlConvert.cpp | 63 +++++++ assignmentFive/test.cpp | 309 +++++++++++++++++++++++++++++++++ 3 files changed, 372 insertions(+) create mode 100644 assignmentFive/test.cpp diff --git a/assignmentFive/htmlConvert b/assignmentFive/htmlConvert index 45ae822f0ca4008e22431ca4fc6b196fe50896c8..da3127573dea2e36bd08db3c240d1fdddf05e0f4 100755 GIT binary patch literal 35088 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 literal 16072 zcmeHOU2Ggz6~1f7$)-(gC#_qPwDkZ<)DS%JUyKWwtbf)SBRes+BSJ(o%f z#XVv>*xMwg{0XJNtK??QW*sNI7Bupju~0?dqhM%33HJ~+^0tyJb_j&Epz}ap9XiMk z>rrZeHT(VcG$ey)^62ZIk;yv9!>%m1s(|I*&AN^9(nFegXd-Wwc&o%?{UY^~HRls^ zf}bABXIQs^4~2D@mnB|U4=S2qjcuSzyzFM)OnYO*i)*qP5!UZkuwc#YeF%7TX({5? ziZAmxwYSxE&?x_`DZS!o&PjE59nEE0b55Z$+dA9R-P+xymy3FbY#95c!3W3GiIb-V zRI`W}rBT$(E1T;>-<{;g_^&_q>~mv}G%mgHodZulx9*FDU zHjfXCQTg~3!c-RGhW+!r1hzP&0pDB2H?#$g{n4t#WBb)`yl&O-3gGX6&%cRjPUnjS zv+P&EKIc1)I#2J3V@_%Epy5#SUKl{Ex=uNGwCBo@bY$}nO3C}Bg6dzXU>?NdY9hW zA*5+`=$&1Du|q$GXH*OKUQGV+wL~vJ${~ zY@=^AfaADjSqtFu`<5M%jxrEsAj&|LfhYq}2BHi^8F))%;Li>B{oT0uhq&>0-LH=d zVSHxMt?^zoF8(OKB>U$bdlF#p;J4t|(2@`s?;ZRmSW^uxgF@Qve;i)8an4wH$+-C2 z)v?KB`(pb~jLW@0g$lf;M9}!it=5QLH*T!EcR~fNR6*QZR{df=_IJMbAh<>4 z$Z6wZ?@KxqjfI!pUB=_R+W}uW?0Mcw1`gNj{t3?5gTVFMNB-~5gA)s&8N5 z_50Y#2bbje%l!EnLq{Z02BHi^8Hh3vWgyBxlz}J%Q3j$6L>Y)O5M|)4l>vMY6@&Nx zvHi90!*_T1E~k0b^F9Xpe$bad_kcD)zx`Fudjd2HzRN_3T^JX!*~ZxZT|45RhZjeP z<2(D6S3K_!1`O_yZ=?=Du?s%W04{<0#-aM=4>sI>K0Ysw?|a}~od@LWLF9iFK40ZH zD5GGVE_~*oFLxo3tZ)2m&A{&MqtGzgkwh7YG7x1T%0QHXC<9Rjq6|bCh%yjm;Qu@W zyiSnU1@hWH^)^^!c!Kbn#GB;5O~FFFjTYi|vYSaak!D3Su}JF>caY;MHN^c`Bpeo5 zO5ytMBb(#?;i>*Y-Xye6_8F=V-VDq0;dP(zcq;8d^8bx&?iW@6KU2Ie{J*V`*N2`M z7Z%5Z*~Rk8_S6hC)mLq)>KOdDg2$=y3h@ajV7q+ZFn&qK z-{G&rW&GPvsMdd6w;L0UVwTZE&zOwgD}GGzP^~Z3`g2Zp zV2{7vo`WBf^)!j_IJzM5yZrlzrc@5 zk^iFt_iM5q_;v}6tJkSr9zR@D9O}V5gwMB0;?1Ht!I4VuBRpKsA;7Dx#~%k=+gydT z3R~chZh?!5bjfYki?HV1N;#%$O$z|ZZe?mpPm7I(_NJRR)40^W43U|lIh`w}telx~ zi>0z@Rc1xHn4ihnuAR}_sz=~@ddIX%C2P*K3vOvnOqHy>ZDuO@{2WjMmRy*>DKzWm za|6Y~!*jV8_H$wAz$V8T8PGieZL42}zP@FOStMu!K4d1B;Lf8U6CYG`O8 zIcZMz^^YWhVP`DYf~^dvU_(O2DVUYAoq>9S8xj({(ExWB(1wLfxoBpsLI$@%V4{H% z+STB*V0(g0FoeMN3BRY5+{!y?=nh_e9WpO;xTErLqg1)c-vos7F!-v1-!3KLeRVt!Be#s@GU|82 z2j@!6-)jFD#-i~2NLfO3Lm|iy?;|_Ffu#9&fMNWd4)S@Pz*^%#(qaCG0e=nVTHJr0 zU$W-*d43u0zXg1pTQZ;LpRBJ^yVys}GxK@g=m3UO8|Keb2U#zHFDO_?P#yvU=aS6l z`6KIk3g-TE9P3YlALpiQ^ZboowQVRfL6z;p2f5=Bvf%!r0kG()_4^?=TI)?W#K67(_`2ODs823Fu7t8oy27 #include #include +#include +#include #include #include #include @@ -27,14 +29,75 @@ using namespace std; // main program int main(int argc, char **argv) { + string fileName; + filesystem::path filePath; + ifstream inputFile; + ofstream outputFile; + char currentChar; // menu for user + cout << "CPP to HTML Converter" << endl; // ask the user for a cpp file. (check to see if valid?) + cout << "Please enter a CPP source file: "; + cin >> fileName; + + // check if the file has the .cpp extension + filePath = fileName; + if(filePath.extension() != ".cpp" && filePath.extension() != ".cp" && + filePath.extension() != ".C" && filePath.extension() != ".cc") + { + cout << "Invalid File, please enter something else and try again." << endl; + return -1; + } + + // check if the file exists + if(!filesystem::exists(fileName)) + { + cout << "File is valid, but does not exist." << endl; + return -1; + } + + // the file exists, start the parsing according to the comment below. + inputFile.open(fileName); + outputFile.open(filePath.replace_extension(".html")); // add the

 tag, read each character, check to see if the character is one that needs to be
     // modified, like '<' and '>' and turned into '<' and '>' once at the end of input file,
     // add the 
tag, and output to a new html file that uses the file name // and rids itself of everything after the dot and replaces it with '.html' and writes it out. + + // add the '
' tag to the output file
+    outputFile << "
" << endl;
+    // read in the characters one at a time, check if the character is a '<' or a '>' and replace.
+    currentChar = inputFile.get();
+    // outputFile << (char)inputFile.get();
+    while(!inputFile.eof())
+    {
+        if(currentChar == '<' || currentChar == '>')
+        {
+            //
+            if(currentChar == '<')
+            {
+                outputFile << "<";
+            }
+            else
+            {
+                outputFile << ">";
+            }
+        }
+        else
+        {
+            outputFile << currentChar;
+        }
+        currentChar = inputFile.get();
+        // outputFile << (char)inputFile.get();
+    }
+    // add the '
tag to the output file + outputFile << "
"; + + // close the input and output files + inputFile.close(); + outputFile.close(); // return 0 return 0; diff --git a/assignmentFive/test.cpp b/assignmentFive/test.cpp new file mode 100644 index 0000000..cc36fe6 --- /dev/null +++ b/assignmentFive/test.cpp @@ -0,0 +1,309 @@ +/* +Program Name: Date (exception handling) +Process: ??? +Function Input/Parameters: ??? +Function Output/Parameters: ??? +Function Output/Returned: ??? +Device Input/Device: ??? +Device Output/Monitor: ??? +Dependencies: ??? +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +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: + int month; + int day; + int year; +public: + 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 + +// 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