get nullptr'd lol

master
Caleb Fontenot 2024-03-04 11:54:27 +07:00
parent 9bbae8730d
commit 5088bded35
26 changed files with 1540 additions and 10 deletions

2
.gitignore vendored

@ -4,3 +4,5 @@
/Assignments/MP1_CalebFontenot/dist/
/Assignments/MP2_CalebFontenot/build/
/Assignments/MP2_CalebFontenot/dist/
/Assignments/Pointers_CalebFontenot/build/
/Assignments/Pointers_CalebFontenot/dist/

@ -0,0 +1,235 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>main.cpp</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace}
table {color: #888888; background-color: #313335; font-family: monospace}
.ST0 {color: #808080; background-color: #323232}
.comment {color: #808080}
.preprocessor {color: #009b00}
.whitespace {color: #505050}
.ST6 {color: #808080; font-family: monospace; font-weight: bold}
.pragma-omp-keyword-directive {color: #2e92c7}
.ST2 {font-family: monospace; font-weight: bold}
.ST3 {color: #6a8759; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.ST5 {color: #6a8759; background-color: #364135}
.ST4 {color: #6a8759; background-color: #364135; font-family: monospace; font-weight: bold}
.ST1 {color: #287bde}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Cpp/Assignments/MP1_CalebFontenot/main.cpp</td></tr></table>
<pre>
<span class="ST0">/*</span>
<span class="comment">* </span><span class="comment">Click</span> <span class="ST1">nbfs</span><span class="ST1">://</span><span class="ST1">nbhost</span><span class="ST1">/</span><span class="ST1">SystemFileSystem</span><span class="ST1">/</span><span class="ST1">Templates</span><span class="ST1">/</span><span class="ST1">Licenses</span><span class="ST1">/</span><span class="ST1">license</span><span class="ST1">-</span><span class="ST1">default</span><span class="ST1">.</span><span class="ST1">txt</span> <span class="comment">to</span> <span class="comment">change</span> <span class="comment">this</span> <span class="comment">license</span>
<span class="comment">* </span><span class="comment">Click</span> <span class="ST1">nbfs</span><span class="ST1">://</span><span class="ST1">nbhost</span><span class="ST1">/</span><span class="ST1">SystemFileSystem</span><span class="ST1">/</span><span class="ST1">Templates</span><span class="ST1">/</span><span class="ST1">cppFiles</span><span class="ST1">/</span><span class="ST1">main</span><span class="ST1">.</span><span class="ST1">cc</span> <span class="comment">to</span> <span class="comment">edit</span> <span class="comment">this</span> <span class="comment">template</span>
<span class="comment">*/</span>
<span class="comment">/*</span>
<span class="comment">* </span><span class="comment">File</span><span class="comment">: </span><span class="comment">main</span><span class="comment">.</span><span class="comment">cpp</span>
<span class="comment">* </span><span class="comment">Author</span><span class="comment">: </span><span class="comment">caleb</span>
<span class="comment">*</span>
<span class="comment">* </span><span class="comment">Created</span> <span class="comment">on</span> <span class="comment">February</span><span class="comment"> 26, 2024, 11:30</span><span class="comment">AM</span>
<span class="comment">*/</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;iomanip&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;cstdlib&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;iostream&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;tuple&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;cmath&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;boost/algorithm/string.hpp&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;regex&gt;</span>
<span class="preprocessor">#</span><span class="preprocessor">include</span> <span class="string">&lt;vector&gt;</span>
<span class="literal">using</span> <span class="literal">namespace</span> std;
<span class="comment">/*</span>
<span class="comment">*</span>
<span class="comment">*/</span>
<span class="literal">int</span> <span class="ST2">milesPerGallon</span>(<span class="literal">int</span> gallons, <span class="literal">int</span> milesDriven) {
<span class="literal">return</span> milesDriven / gallons;
}
std::tuple&lt;<span class="literal">double</span>, <span class="literal">double</span>&gt; <span class="ST2">maleFemalePercentages</span>(<span class="literal">int</span> maleStudents, <span class="literal">int</span> femaleStudents) {
<span class="literal">int</span> totalStudents = maleStudents + femaleStudents;
<span class="literal">double</span> malePercentage = (<span class="literal">double</span>) maleStudents / totalStudents;
<span class="literal">double</span> femalePercentage = (<span class="literal">double</span>) femaleStudents / totalStudents;
<span class="literal">return</span> {malePercentage, femalePercentage};
}
<span class="literal">double</span> <span class="ST2">celciusToFahrenheit</span>(<span class="literal">double</span> celcius) {
<span class="literal">return</span> <span class="number">9.0</span> / <span class="number">5.0</span> * celcius + <span class="number">32.0</span>;
}
std::<span class="pragma-omp-keyword-directive">string</span> <span class="ST2">getMonthName</span>(<span class="literal">int</span> month) {
std::<span class="pragma-omp-keyword-directive">string</span> returnString = <span class="ST3">&quot;</span><span class="ST3">&quot;</span>;
<span class="literal">switch</span> (month) {
<span class="literal">case</span> <span class="number">1</span>:
returnString = <span class="ST3">&quot;</span><span class="string">January</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">2</span>:
returnString = <span class="ST3">&quot;</span><span class="string">February</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">3</span>:
returnString = <span class="ST3">&quot;</span><span class="string">March</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">4</span>:
returnString = <span class="ST3">&quot;</span><span class="string">April</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">5</span>:
returnString = <span class="ST3">&quot;</span><span class="string">May</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">6</span>:
returnString = <span class="ST3">&quot;</span><span class="string">June</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">7</span>:
returnString = <span class="ST3">&quot;</span><span class="string">July</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">8</span>:
returnString = <span class="ST3">&quot;</span><span class="string">August</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">9</span>:
returnString = <span class="ST3">&quot;</span><span class="string">September</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">10</span>:
returnString = <span class="ST3">&quot;</span><span class="string">October</span><span class="ST3">&quot;</span>;
<span class="literal">case</span> <span class="number">11</span>:
returnString = <span class="ST3">&quot;</span><span class="string">November</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
<span class="literal">case</span> <span class="number">12</span>:
returnString = <span class="ST3">&quot;</span><span class="string">December</span><span class="ST3">&quot;</span>;
<span class="literal">break</span>;
}
<span class="literal">return</span> returnString;
}
<span class="literal">void</span> <span class="ST2">prettyPrintSalesTax</span>(<span class="literal">int</span> month, <span class="literal">int</span> year, <span class="literal">int</span> total, <span class="literal">double</span> totalIncome, <span class="literal">double</span> stateSalesTax, <span class="literal">double</span> countySalesTax, <span class="literal">double</span> totalSalesTax) {
printf(<span class="ST3">&quot;</span><span class="string">%s %d</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, getMonthName(month).c_str(), year);
printf(<span class="ST4">&quot;</span><span class="ST5">---------------------------------------</span><span class="ST4">\n</span><span class="ST4">&quot;</span>);
printf(<span class="ST3">&quot;</span><span class="string">Total collected:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">5</span>, totalIncome);
printf(<span class="ST3">&quot;</span><span class="string">Sales:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">16</span>, stateSalesTax);
printf(<span class="ST3">&quot;</span><span class="string">County Sales tax:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">5</span>, countySalesTax);
printf(<span class="ST3">&quot;</span><span class="string">Total sales tax:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">6</span>, totalSalesTax);
}
<span class="literal">void</span> <span class="ST2">monthlySalesTax</span>(<span class="literal">int</span> month, <span class="literal">int</span> year, <span class="literal">double</span> total) {
<span class="literal">double</span> totalIncome = total / <span class="number">1.06</span>;
<span class="literal">double</span> stateSalesTax = total * <span class="number">0.04</span>;
<span class="literal">double</span> countySalesTax = total * <span class="number">0.02</span>;
<span class="literal">double</span> totalSalesTax = stateSalesTax + countySalesTax;
prettyPrintSalesTax(month, year, total, totalIncome, stateSalesTax, countySalesTax, totalSalesTax);
}
<span class="literal">bool</span> <span class="ST2">is_integer</span>(<span class="literal">const</span> std::<span class="pragma-omp-keyword-directive">string</span> &amp; s) {
<span class="literal">return</span> std::regex_match(s, std::regex(<span class="ST3">&quot;</span><span class="string">[-+]?[0-9]+</span><span class="ST3">&quot;</span>));
}
<span class="literal">void</span> <span class="ST2">mathTutor</span>() {
<span class="pragma-omp-keyword-directive">string</span> userInput = <span class="ST3">&quot;</span><span class="ST3">&quot;</span>;
<span class="literal">int</span> rand1, rand2 = <span class="number">0</span>;
<span class="literal">do</span> {
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">Enter Q/q to quit.</span><span class="ST3">&quot;</span> &lt;&lt; endl;
rand1 = (rand() % <span class="number">100</span>);
rand2 = (rand() % <span class="number">100</span>);
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">What</span><span class="string">&#39;</span><span class="string">s </span><span class="ST3">&quot;</span> &lt;&lt; rand1 &lt;&lt; <span class="ST3">&quot;</span><span class="string"> + </span><span class="ST3">&quot;</span> &lt;&lt; rand2 &lt;&lt; <span class="ST3">&quot;</span><span class="string">?</span><span class="ST3">&quot;</span> &lt;&lt; endl;
cin &gt;&gt; userInput;
boost::algorithm::to_lower(userInput);
<span class="literal">if</span> (is_integer(userInput)) {
<span class="literal">if</span> (rand1 + rand2 == stoi(userInput)) {
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">You are correct!</span><span class="ST3">&quot;</span> &lt;&lt; endl;
} <span class="literal">else</span> {
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">Sorry, the answer is </span><span class="ST3">&quot;</span> &lt;&lt; (rand1 + rand2) &lt;&lt; <span class="ST3">&quot;</span><span class="string">. Try again.</span><span class="ST3">&quot;</span> &lt;&lt; endl;
}
}
} <span class="literal">while</span> (userInput.compare(<span class="ST3">&quot;</span><span class="string">q</span><span class="ST3">&quot;</span>) != <span class="number">0</span>);
}
<span class="literal">void</span> <span class="ST2">prettyPrintMonthlyPayments</span>(<span class="literal">double</span> payment, <span class="literal">double</span> rate, <span class="literal">double</span> numOfPayments, <span class="literal">double</span> loanAmount, <span class="literal">double</span> annualRate, <span class="literal">double</span> amountPaid, <span class="literal">double</span> amountPaidBack) {
printf(<span class="ST4">&quot;</span><span class="ST5">---------------------------------------</span><span class="ST4">\n</span><span class="ST4">&quot;</span>);
printf(<span class="ST3">&quot;</span><span class="string">Loan amount:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">15</span>, loanAmount);
printf(<span class="ST3">&quot;</span><span class="string">Monthly Interest Rate:%*c%.0f%%</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">14</span>, rate);
printf(<span class="ST3">&quot;</span><span class="string">Number of Payments:%*c%.0f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">17</span>, numOfPayments);
printf(<span class="ST3">&quot;</span><span class="string">Monthly Payment:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">12</span>, payment);
printf(<span class="ST3">&quot;</span><span class="string">Amount Paid Back:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">11</span>, amountPaidBack);
printf(<span class="ST3">&quot;</span><span class="string">Interest Paid:%*c$ %.2f</span><span class="ST3">\n</span><span class="ST3">&quot;</span>, <span class="number">14</span>, amountPaid);
}
<span class="literal">void</span> <span class="ST2">monthlyPayments</span>(<span class="literal">double</span> annualRate, <span class="literal">double</span> numOfPayments, <span class="literal">double</span> loanAmount, <span class="literal">double</span> amountPaid, <span class="literal">double</span> amountPaidBack) {
<span class="literal">double</span> rate = (annualRate / <span class="number">12.0</span>);
<span class="literal">double</span> topHalf = rate * pow((<span class="number">1.0</span> + rate), numOfPayments);
<span class="literal">double</span> bottomHalf = pow((<span class="number">1.0</span> + rate), numOfPayments) - <span class="number">1.0</span>;
<span class="literal">double</span> payment = (topHalf / bottomHalf) * loanAmount;
prettyPrintMonthlyPayments(payment, rate, numOfPayments, loanAmount, annualRate, amountPaid, amountPaidBack);
}
<span class="comment">//</span> <span class="comment">Function</span> <span class="comment">to</span> <span class="comment">replace</span> <span class="comment">placeholders</span> <span class="comment">in</span> <span class="comment">the</span> <span class="comment">story</span> <span class="comment">with</span> <span class="comment">user</span> <span class="comment">inputs</span>
std::<span class="pragma-omp-keyword-directive">string</span> <span class="ST2">replacePlaceholders</span>(<span class="literal">const</span> std::<span class="pragma-omp-keyword-directive">string</span>&amp; story, <span class="literal">const</span> std::vector&lt;std::<span class="pragma-omp-keyword-directive">string</span>&gt;&amp; inputs) {
std::<span class="pragma-omp-keyword-directive">string</span> result = story;
std::regex placeholderRegex(<span class="ST3">&quot;</span><span class="string">&lt;([^&gt;]+)&gt;</span><span class="ST3">&quot;</span>);
<span class="literal">auto</span> inputIter = inputs.begin();
<span class="literal">for</span> (std::sregex_iterator iter(story.begin(), story.end(), placeholderRegex), end; iter != end; ++iter) {
<span class="literal">const</span> std::<span class="pragma-omp-keyword-directive">string</span>&amp; placeholder = iter-&gt;str();
<span class="literal">if</span> (inputIter != inputs.end()) {
result.replace(result.find(placeholder), placeholder.length(), *inputIter);
++inputIter;
} <span class="literal">else</span> {
<span class="comment">//</span> <span class="comment">Handle</span> <span class="comment">the</span> <span class="comment">case</span> <span class="comment">where</span> <span class="comment">there</span> <span class="comment">are</span> <span class="comment">more</span> <span class="comment">placeholders</span> <span class="comment">than</span> <span class="comment">inputs</span>
<span class="literal">break</span>;
}
}
<span class="literal">return</span> result;
}
<span class="literal">void</span> <span class="ST2">madLib</span>() {
<span class="pragma-omp-keyword-directive">string</span> storyTemplate = <span class="ST3">&quot;</span><span class="string">There once was a person named &lt;name&gt; who lived in &lt;city&gt;. At the age of &lt;age&gt;, &lt;name&gt; went to a collage at &lt;college&gt;. &lt;Name&gt; graduated and went to work as a &lt;profession&gt;. Then, &lt;name&gt; adopted a(n) &lt;animal&gt; named &lt;pet name&gt;. They both lived happily ever after!</span><span class="ST3">&quot;</span>;
std::regex placeholderRegex(<span class="ST3">&quot;</span><span class="string">&lt;([^&gt;]+)&gt;</span><span class="ST3">&quot;</span>);
std::vector&lt;std::<span class="pragma-omp-keyword-directive">string</span>&gt; placeholders;
<span class="literal">for</span> (std::sregex_iterator iter(storyTemplate.begin(), storyTemplate.end(), placeholderRegex), end; iter != end; ++iter) {
placeholders.push_back(iter-&gt;str());
}
std::vector&lt;std::<span class="pragma-omp-keyword-directive">string</span>&gt; inputs;
<span class="literal">for</span> (<span class="literal">const</span> <span class="literal">auto</span>&amp; placeholder : placeholders) {
std::<span class="pragma-omp-keyword-directive">string</span> input;
std::cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">Enter </span><span class="ST3">&quot;</span> &lt;&lt; placeholder &lt;&lt; <span class="ST3">&quot;</span><span class="string">: </span><span class="ST3">&quot;</span>;
std::getline(std::cin, input);
inputs.push_back(input);
}
<span class="comment">//</span> <span class="comment">Replace</span> <span class="comment">placeholders</span> <span class="comment">with</span> <span class="comment">user</span> <span class="comment">inputs</span> <span class="comment">and</span> <span class="comment">print</span> <span class="comment">the</span> <span class="comment">complete</span> <span class="comment">story</span>
std::<span class="pragma-omp-keyword-directive">string</span> completedStory = replacePlaceholders(storyTemplate, inputs);
std::cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">Completed story:</span><span class="ST3">\n</span><span class="ST3">&quot;</span> &lt;&lt; completedStory &lt;&lt; std::endl;
}
<span class="literal">int</span> <span class="ST2">main</span>(<span class="literal">int</span> argc, <span class="literal">char</span>** argv) {
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">The car that drove 375 miles and burned 15 gallons of gasoline consumed the fuel at a rate of </span><span class="ST3">&quot;</span> &lt;&lt; milesPerGallon(<span class="number">15</span>, <span class="number">375</span>) &lt;&lt; <span class="ST3">&quot;</span><span class="string"> MPG.</span><span class="ST3">\n</span><span class="ST3">&quot;</span>;
<span class="literal">int</span> maleStudents, femaleStudents = <span class="number">0</span>;
<span class="comment">//</span><span class="comment">double</span> <span class="comment">malePercentage</span><span class="comment">, </span><span class="comment">femalePercentage</span><span class="comment"> = 0</span><span class="comment">.</span><span class="comment">0;</span>
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">Enter the number of male students, followed by the number of female students: </span><span class="ST3">&quot;</span>;
<span class="comment">//</span><span class="comment">cin</span><span class="comment"> &gt;&gt; </span><span class="comment">maleStudents</span><span class="comment"> &gt;&gt; </span><span class="comment">femaleStudents</span><span class="comment">;</span>
<span class="comment">//</span><span class="comment">auto</span><span class="comment"> [</span><span class="comment">malePercentage</span><span class="comment">, </span><span class="comment">femalePercentage</span><span class="comment">] = </span><span class="comment">maleFemalePercentages</span><span class="comment">(</span><span class="comment">maleStudents</span><span class="comment">, </span><span class="comment">femaleStudents</span><span class="comment">);</span>
<span class="comment">//</span><span class="comment">cout</span> <span class="ST6">&lt;&lt; &quot;The ratio of male to female students is &quot; &lt;&lt; setprecision(2) &lt;&lt; (malePercentage * 10) &lt;&lt; &quot;/&quot; &lt;&lt; setprecision(2) &lt;&lt;(femalePercentage * 10) &lt;&lt; endl;</span>
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">0C is </span><span class="ST3">&quot;</span> &lt;&lt; std::to_string(celciusToFahrenheit(<span class="number">0</span>)) &lt;&lt; <span class="ST3">&quot;</span><span class="string">F.</span><span class="ST3">&quot;</span> &lt;&lt; endl;
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">100C is </span><span class="ST3">&quot;</span> &lt;&lt; std::to_string(celciusToFahrenheit(<span class="number">100</span>)) &lt;&lt; <span class="ST3">&quot;</span><span class="string">F.</span><span class="ST3">&quot;</span> &lt;&lt; endl;
cout &lt;&lt; <span class="ST3">&quot;</span><span class="string">23.8889C is </span><span class="ST3">&quot;</span> &lt;&lt; std::to_string(celciusToFahrenheit(<span class="number">23.8889</span>)) &lt;&lt; <span class="ST3">&quot;</span><span class="string">F.</span><span class="ST3">&quot;</span> &lt;&lt; endl;
monthlySalesTax(<span class="number">3</span>, <span class="number">2024</span>, <span class="number">100000.08</span>);
<span class="comment">//</span><span class="comment">mathTutor</span><span class="comment">();</span>
monthlyPayments(<span class="number">12</span>, <span class="number">36</span>, <span class="number">10000.00</span>, <span class="number">1957.15</span>, <span class="number">11957.15</span>);
madLib();
<span class="literal">return</span> <span class="number">0</span>;
}
</pre></body>
</html>

@ -14,7 +14,9 @@
#include <iostream>
#include <tuple>
#include <cmath>
#include <boost/algorithm/string.hpp>
#include <regex>
#include <vector>
using namespace std;
/*
@ -26,7 +28,7 @@ int milesPerGallon(int gallons, int milesDriven) {
}
std::tuple<double, double> maleFemalePercentages(int maleStudents, int femaleStudents) {
int totalStudents = maleStudents + femaleStudents;
int totalStudents = maleStudents + femaleStudents;
double malePercentage = (double) maleStudents / totalStudents;
double femalePercentage = (double) femaleStudents / totalStudents;
return {malePercentage, femalePercentage};
@ -36,7 +38,147 @@ double celciusToFahrenheit(double celcius) {
return 9.0 / 5.0 * celcius + 32.0;
}
double monthlySalesTax(int month, int year, double total) {
std::string getMonthName(int month) {
std::string returnString = "";
switch (month) {
case 1:
returnString = "January";
break;
case 2:
returnString = "February";
break;
case 3:
returnString = "March";
break;
case 4:
returnString = "April";
break;
case 5:
returnString = "May";
break;
case 6:
returnString = "June";
break;
case 7:
returnString = "July";
break;
case 8:
returnString = "August";
break;
case 9:
returnString = "September";
break;
case 10:
returnString = "October";
case 11:
returnString = "November";
break;
case 12:
returnString = "December";
break;
}
return returnString;
}
void prettyPrintSalesTax(int month, int year, int total, double totalIncome, double stateSalesTax, double countySalesTax, double totalSalesTax) {
printf("%s %d\n", getMonthName(month).c_str(), year);
printf("---------------------------------------\n");
printf("Total collected:%*c$ %.2f\n", 5, totalIncome);
printf("Sales:%*c$ %.2f\n", 16, stateSalesTax);
printf("County Sales tax:%*c$ %.2f\n", 5, countySalesTax);
printf("Total sales tax:%*c$ %.2f\n", 6, totalSalesTax);
}
void monthlySalesTax(int month, int year, double total) {
double totalIncome = total / 1.06;
double stateSalesTax = total * 0.04;
double countySalesTax = total * 0.02;
double totalSalesTax = stateSalesTax + countySalesTax;
prettyPrintSalesTax(month, year, total, totalIncome, stateSalesTax, countySalesTax, totalSalesTax);
}
bool is_integer(const std::string & s) {
return std::regex_match(s, std::regex("[-+]?[0-9]+"));
}
void mathTutor() {
string userInput = "";
int rand1, rand2 = 0;
do {
cout << "Enter Q/q to quit." << endl;
rand1 = (rand() % 100);
rand2 = (rand() % 100);
cout << "What's " << rand1 << " + " << rand2 << "?" << endl;
cin >> userInput;
boost::algorithm::to_lower(userInput);
if (is_integer(userInput)) {
if (rand1 + rand2 == stoi(userInput)) {
cout << "You are correct!" << endl;
} else {
cout << "Sorry, the answer is " << (rand1 + rand2) << ". Try again." << endl;
}
}
} while (userInput.compare("q") != 0);
}
void prettyPrintMonthlyPayments(double payment, double rate, double numOfPayments, double loanAmount, double annualRate, double amountPaid, double amountPaidBack) {
printf("---------------------------------------\n");
printf("Loan amount:%*c$ %.2f\n", 15, loanAmount);
printf("Monthly Interest Rate:%*c%.0f%%\n", 14, rate);
printf("Number of Payments:%*c%.0f\n", 17, numOfPayments);
printf("Monthly Payment:%*c$ %.2f\n", 12, payment);
printf("Amount Paid Back:%*c$ %.2f\n", 11, amountPaidBack);
printf("Interest Paid:%*c$ %.2f\n", 14, amountPaid);
}
void monthlyPayments(double annualRate, double numOfPayments, double loanAmount, double amountPaid, double amountPaidBack) {
double rate = (annualRate / 12.0);
double topHalf = rate * pow((1.0 + rate), numOfPayments);
double bottomHalf = pow((1.0 + rate), numOfPayments) - 1.0;
double payment = (topHalf / bottomHalf) * loanAmount;
prettyPrintMonthlyPayments(payment, rate, numOfPayments, loanAmount, annualRate, amountPaid, amountPaidBack);
}
// Function to replace placeholders in the story with user inputs
std::string replacePlaceholders(const std::string& story, const std::vector<std::string>& inputs) {
std::string result = story;
std::regex placeholderRegex("<([^>]+)>");
auto inputIter = inputs.begin();
for (std::sregex_iterator iter(story.begin(), story.end(), placeholderRegex), end; iter != end; ++iter) {
const std::string& placeholder = iter->str();
if (inputIter != inputs.end()) {
result.replace(result.find(placeholder), placeholder.length(), *inputIter);
++inputIter;
} else {
// Handle the case where there are more placeholders than inputs
break;
}
}
return result;
}
void madLib() {
string storyTemplate = "There once was a person named <name> who lived in <city>. At the age of <age>, <name> went to a collage at <college>. <Name> graduated and went to work as a <profession>. Then, <name> adopted a(n) <animal> named <pet name>. They both lived happily ever after!";
std::regex placeholderRegex("<([^>]+)>");
std::vector<std::string> placeholders;
for (std::sregex_iterator iter(storyTemplate.begin(), storyTemplate.end(), placeholderRegex), end; iter != end; ++iter) {
placeholders.push_back(iter->str());
}
std::vector<std::string> inputs;
for (const auto& placeholder : placeholders) {
std::string input;
std::cout << "Enter " << placeholder << ": ";
std::getline(std::cin, input);
inputs.push_back(input);
}
// Replace placeholders with user inputs and print the complete story
std::string completedStory = replacePlaceholders(storyTemplate, inputs);
std::cout << "Completed story:\n" << completedStory << std::endl;
}
@ -45,14 +187,16 @@ int main(int argc, char** argv) {
int maleStudents, femaleStudents = 0;
//double malePercentage, femalePercentage = 0.0;
cout << "Enter the number of male students, followed by the number of female students: ";
cin >> maleStudents >> femaleStudents;
auto [malePercentage, femalePercentage] = maleFemalePercentages(maleStudents, femaleStudents);
cout << "The ratio of male to female students is " << setprecision(2) << (malePercentage * 10) << "/" << setprecision(2) <<(femalePercentage * 10) << endl;
//cin >> maleStudents >> femaleStudents;
//auto [malePercentage, femalePercentage] = maleFemalePercentages(maleStudents, femaleStudents);
//cout << "The ratio of male to female students is " << setprecision(2) << (malePercentage * 10) << "/" << setprecision(2) <<(femalePercentage * 10) << endl;
cout << "0C is " << std::to_string(celciusToFahrenheit(0)) << "F." << endl;
cout << "100C is " << std::to_string(celciusToFahrenheit(100)) << "F." << endl;
cout << "23.8889C is " << std::to_string(celciusToFahrenheit(23.8889)) << "F." << endl;
monthlySalesTax(3, 2024, 100000.08);
//mathTutor();
monthlyPayments(12, 36, 10000.00, 1957.15, 11957.15);
madLib();
return 0;
}

@ -39,7 +39,7 @@ OBJECTFILES= \
# C Compiler Flags
CFLAGS=
CFLAGS=march=x86-64-v3 -O2 -lto
# CC Compiler Flags
CCFLAGS=

@ -35,6 +35,10 @@
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
<cTool>
<stripSymbols>true</stripSymbols>
<commandLine>march=x86-64-v3 -O2 -lto</commandLine>
</cTool>
</compileType>
<item path="main.cpp" ex="false" tool="1" flavor2="0">
</item>

@ -13,6 +13,8 @@
<gdb_interceptlist>
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
</gdb_interceptlist>
<gdb_signals>
</gdb_signals>
<gdb_options>
<DebugOptions>
</DebugOptions>
@ -33,7 +35,6 @@
<runcommand>"${OUTPUT_PATH}"</runcommand>
<rundir></rundir>
<buildfirst>true</buildfirst>
<console-type>2</console-type>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>

@ -0,0 +1,5 @@
# This code depends on make tool being used
DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES}))
ifneq (${DEPFILES},)
include ${DEPFILES}
endif

@ -0,0 +1,128 @@
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_PLATFORM_${CONF} platform name (current configuration)
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL
# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
# build
build: .build-post
.build-pre:
# Add your pre 'build' code here...
.build-post: .build-impl
# Add your post 'build' code here...
# clean
clean: .clean-post
.clean-pre:
# Add your pre 'clean' code here...
.clean-post: .clean-impl
# Add your post 'clean' code here...
# clobber
clobber: .clobber-post
.clobber-pre:
# Add your pre 'clobber' code here...
.clobber-post: .clobber-impl
# Add your post 'clobber' code here...
# all
all: .all-post
.all-pre:
# Add your pre 'all' code here...
.all-post: .all-impl
# Add your post 'all' code here...
# build tests
build-tests: .build-tests-post
.build-tests-pre:
# Add your pre 'build-tests' code here...
.build-tests-post: .build-tests-impl
# Add your post 'build-tests' code here...
# run tests
test: .test-post
.test-pre: build-tests
# Add your pre 'test' code here...
.test-post: .test-impl
# Add your post 'test' code here...
# help
help: .help-post
.help-pre:
# Add your pre 'help' code here...
.help-post: .help-impl
# Add your post 'help' code here...
# include project implementation makefile
include nbproject/Makefile-impl.mk
# include project make variables
include nbproject/Makefile-variables.mk

@ -0,0 +1,27 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/cppFiles/main.cc to edit this template
*/
/*
* File: main.cpp
* Author: caleb
*
* Created on March 4, 2024, 11:07 AM
*/
#include <cstdlib>
#include <iostream>
using namespace std;
#include "pointers1.h"
/*
*
*/
int main(int argc, char** argv) {
dereferencePointer();
if (p == nullptr)
return 0;
}

@ -0,0 +1,89 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Environment
MKDIR=mkdir
CP=cp
GREP=grep
NM=nm
CCADMIN=CCadmin
RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux
CND_DLIB_EXT=so
CND_CONF=Debug
CND_DISTDIR=dist
CND_BUILDDIR=build
# Include project Makefile
include Makefile
# Object Directory
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
# Object Files
OBJECTFILES= \
${OBJECTDIR}/main.o \
${OBJECTDIR}/pointers1.o
# C Compiler Flags
CFLAGS=
# CC Compiler Flags
CCFLAGS=
CXXFLAGS=
# Fortran Compiler Flags
FFLAGS=
# Assembler Flags
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/main.o: main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
${OBJECTDIR}/pointers1.o: pointers1.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -g -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/pointers1.o pointers1.cpp
# Subprojects
.build-subprojects:
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
# Subprojects
.clean-subprojects:
# Enable dependency checking
.dep.inc: .depcheck-impl
include .dep.inc

@ -0,0 +1,89 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a -pre and a -post target defined where you can add customized code.
#
# This makefile implements configuration specific macros and targets.
# Environment
MKDIR=mkdir
CP=cp
GREP=grep
NM=nm
CCADMIN=CCadmin
RANLIB=ranlib
CC=gcc
CCC=g++
CXX=g++
FC=gfortran
AS=as
# Macros
CND_PLATFORM=GNU-Linux
CND_DLIB_EXT=so
CND_CONF=Release
CND_DISTDIR=dist
CND_BUILDDIR=build
# Include project Makefile
include Makefile
# Object Directory
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
# Object Files
OBJECTFILES= \
${OBJECTDIR}/main.o \
${OBJECTDIR}/pointers1.o
# C Compiler Flags
CFLAGS=
# CC Compiler Flags
CCFLAGS=
CXXFLAGS=
# Fortran Compiler Flags
FFLAGS=
# Assembler Flags
ASFLAGS=
# Link Libraries and Options
LDLIBSOPTIONS=
# Build Targets
.build-conf: ${BUILD_SUBPROJECTS}
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot: ${OBJECTFILES}
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot ${OBJECTFILES} ${LDLIBSOPTIONS}
${OBJECTDIR}/main.o: main.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
${OBJECTDIR}/pointers1.o: pointers1.cpp
${MKDIR} -p ${OBJECTDIR}
${RM} "$@.d"
$(COMPILE.cc) -O2 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/pointers1.o pointers1.cpp
# Subprojects
.build-subprojects:
# Clean Targets
.clean-conf: ${CLEAN_SUBPROJECTS}
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
# Subprojects
.clean-subprojects:
# Enable dependency checking
.dep.inc: .depcheck-impl
include .dep.inc

@ -0,0 +1,133 @@
#
# Generated Makefile - do not edit!
#
# Edit the Makefile in the project folder instead (../Makefile). Each target
# has a pre- and a post- target defined where you can add customization code.
#
# This makefile implements macros and targets common to all configurations.
#
# NOCDDL
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
# and .clean-reqprojects-conf unless SUB has the value 'no'
SUB_no=NO
SUBPROJECTS=${SUB_${SUB}}
BUILD_SUBPROJECTS_=.build-subprojects
BUILD_SUBPROJECTS_NO=
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
CLEAN_SUBPROJECTS_=.clean-subprojects
CLEAN_SUBPROJECTS_NO=
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
# Project Name
PROJECTNAME=Pointers_CalebFontenot
# Active Configuration
DEFAULTCONF=Debug
CONF=${DEFAULTCONF}
# All Configurations
ALLCONFS=Debug Release
# build
.build-impl: .build-pre .validate-impl .depcheck-impl
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
# clean
.clean-impl: .clean-pre .validate-impl .depcheck-impl
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
# clobber
.clobber-impl: .clobber-pre .depcheck-impl
@#echo "=> Running $@..."
for CONF in ${ALLCONFS}; \
do \
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
done
# all
.all-impl: .all-pre .depcheck-impl
@#echo "=> Running $@..."
for CONF in ${ALLCONFS}; \
do \
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
done
# build tests
.build-tests-impl: .build-impl .build-tests-pre
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
# run tests
.test-impl: .build-tests-impl .test-pre
@#echo "=> Running $@... Configuration=$(CONF)"
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
# dependency checking support
.depcheck-impl:
@echo "# This code depends on make tool being used" >.dep.inc
@if [ -n "${MAKE_VERSION}" ]; then \
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
echo "include \$${DEPFILES}" >>.dep.inc; \
echo "endif" >>.dep.inc; \
else \
echo ".KEEP_STATE:" >>.dep.inc; \
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
fi
# configuration validation
.validate-impl:
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
then \
echo ""; \
echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
echo "See 'make help' for details."; \
echo "Current directory: " `pwd`; \
echo ""; \
fi
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
then \
exit 1; \
fi
# help
.help-impl: .help-pre
@echo "This makefile supports the following configurations:"
@echo " ${ALLCONFS}"
@echo ""
@echo "and the following targets:"
@echo " build (default target)"
@echo " clean"
@echo " clobber"
@echo " all"
@echo " help"
@echo ""
@echo "Makefile Usage:"
@echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
@echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
@echo " make [SUB=no] clobber"
@echo " make [SUB=no] all"
@echo " make help"
@echo ""
@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
@echo " also build subprojects."
@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
@echo " also clean subprojects."
@echo "Target 'clobber' will remove all built files from all configurations and,"
@echo " unless 'SUB=no', also from subprojects."
@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
@echo " also build subprojects."
@echo "Target 'help' prints this message."
@echo ""

@ -0,0 +1,35 @@
#
# Generated - do not edit!
#
# NOCDDL
#
CND_BASEDIR=`pwd`
CND_BUILDDIR=build
CND_DISTDIR=dist
# Debug configuration
CND_PLATFORM_Debug=GNU-Linux
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux
CND_ARTIFACT_NAME_Debug=pointers_calebfontenot
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/pointers_calebfontenot
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package
CND_PACKAGE_NAME_Debug=pointerscalebfontenot.tar
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/pointerscalebfontenot.tar
# Release configuration
CND_PLATFORM_Release=GNU-Linux
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux
CND_ARTIFACT_NAME_Release=pointers_calebfontenot
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/pointers_calebfontenot
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package
CND_PACKAGE_NAME_Release=pointerscalebfontenot.tar
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/pointerscalebfontenot.tar
#
# include compiler specific variables
#
# dmake command
ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
(mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
#
# gmake command
.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
#
include nbproject/private/Makefile-variables.mk

@ -0,0 +1,76 @@
#!/bin/bash -x
#
# Generated - do not edit!
#
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux
CND_CONF=Debug
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot
OUTPUT_BASENAME=pointers_calebfontenot
PACKAGE_TOP_DIR=pointerscalebfontenot/
# Functions
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/pointerscalebfontenot/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pointerscalebfontenot.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pointerscalebfontenot.tar *
checkReturnCode
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}

@ -0,0 +1,76 @@
#!/bin/bash -x
#
# Generated - do not edit!
#
# Macros
TOP=`pwd`
CND_PLATFORM=GNU-Linux
CND_CONF=Release
CND_DISTDIR=dist
CND_BUILDDIR=build
CND_DLIB_EXT=so
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
TMPDIRNAME=tmp-packaging
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pointers_calebfontenot
OUTPUT_BASENAME=pointers_calebfontenot
PACKAGE_TOP_DIR=pointerscalebfontenot/
# Functions
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/pointerscalebfontenot/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Generate tar file
cd "${TOP}"
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pointerscalebfontenot.tar
cd ${NBTMPDIR}
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pointerscalebfontenot.tar *
checkReturnCode
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="100">
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
<logicalFolder name="HeaderFiles"
displayName="Header Files"
projectFiles="true">
<itemPath>pointers1.h</itemPath>
</logicalFolder>
<logicalFolder name="ResourceFiles"
displayName="Resource Files"
projectFiles="true">
</logicalFolder>
<logicalFolder name="SourceFiles"
displayName="Source Files"
projectFiles="true">
<itemPath>main.cpp</itemPath>
<itemPath>pointers1.cpp</itemPath>
</logicalFolder>
<logicalFolder name="TestFiles"
displayName="Test Files"
projectFiles="false"
kind="TEST_LOGICAL_FOLDER">
</logicalFolder>
<logicalFolder name="ExternalFiles"
displayName="Important Files"
projectFiles="false"
kind="IMPORTANT_FILES_FOLDER">
<itemPath>Makefile</itemPath>
</logicalFolder>
</logicalFolder>
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="Debug" type="1">
<toolsSet>
<compilerSet>default</compilerSet>
<dependencyChecking>true</dependencyChecking>
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
</compileType>
<item path="main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="pointers1.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="pointers1.h" ex="false" tool="3" flavor2="0">
</item>
</conf>
<conf name="Release" type="1">
<toolsSet>
<compilerSet>default</compilerSet>
<dependencyChecking>true</dependencyChecking>
<rebuildPropChanged>false</rebuildPropChanged>
</toolsSet>
<compileType>
<cTool>
<developmentMode>5</developmentMode>
</cTool>
<ccTool>
<developmentMode>5</developmentMode>
</ccTool>
<fortranCompilerTool>
<developmentMode>5</developmentMode>
</fortranCompilerTool>
<asmTool>
<developmentMode>5</developmentMode>
</asmTool>
</compileType>
<item path="main.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="pointers1.cpp" ex="false" tool="1" flavor2="0">
</item>
<item path="pointers1.h" ex="false" tool="3" flavor2="0">
</item>
</conf>
</confs>
</configurationDescriptor>

@ -0,0 +1,7 @@
#
# Generated - do not edit!
#
# NOCDDL
#
# Debug configuration
# Release configuration

@ -0,0 +1,75 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/c/header
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
#include <ctype.h> // Functions to determine the type contained in character data
#include <errno.h> // Macros reporting error conditions
#include <float.h> // Limits of float types
#include <limits.h> // Sizes of basic types
#include <locale.h> // Localization utilities
#include <math.h> // Common mathematics functions
#include <setjmp.h> // Nonlocal jumps
#include <signal.h> // Signal handling
#include <stdarg.h> // Variable arguments
#include <stddef.h> // Common macro definitions
#include <stdio.h> // Input/output
#include <string.h> // String handling
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
#include <time.h> // Time/date utilities
#include <iso646.h> // (since C95) Alternative operator spellings
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
#ifdef _STDC_C99
#include <complex.h> // (since C99) Complex number arithmetic
#include <fenv.h> // (since C99) Floating-point environment
#include <inttypes.h> // (since C99) Format conversion of integer types
#include <stdbool.h> // (since C99) Boolean type
#include <stdint.h> // (since C99) Fixed-width integer types
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
#endif
#ifdef _STDC_C11
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
#include <stdatomic.h> // (since C11) Atomic types
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
#include <threads.h> // (since C11) Thread library
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
#endif

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<configurationDescriptor version="100">
<projectmakefile>Makefile</projectmakefile>
<confs>
<conf name="Debug" type="1">
<toolsSet>
<developmentServer>localhost</developmentServer>
<platform>2</platform>
</toolsSet>
<dbx_gdbdebugger version="1">
<gdb_pathmaps>
</gdb_pathmaps>
<gdb_interceptlist>
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
</gdb_interceptlist>
<gdb_options>
<DebugOptions>
</DebugOptions>
</gdb_options>
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
</dbx_gdbdebugger>
<nativedebugger version="1">
<engine>gdb</engine>
</nativedebugger>
<runprofile version="9">
<runcommandpicklist>
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
</runcommandpicklist>
<runcommand>"${OUTPUT_PATH}"</runcommand>
<rundir></rundir>
<buildfirst>true</buildfirst>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
<conf name="Release" type="1">
<toolsSet>
<developmentServer>localhost</developmentServer>
<platform>2</platform>
</toolsSet>
<dbx_gdbdebugger version="1">
<gdb_pathmaps>
</gdb_pathmaps>
<gdb_interceptlist>
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
</gdb_interceptlist>
<gdb_options>
<DebugOptions>
</DebugOptions>
</gdb_options>
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
</dbx_gdbdebugger>
<nativedebugger version="1">
<engine>gdb</engine>
</nativedebugger>
<runprofile version="9">
<runcommandpicklist>
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
</runcommandpicklist>
<runcommand>"${OUTPUT_PATH}"</runcommand>
<rundir></rundir>
<buildfirst>true</buildfirst>
<terminal-type>0</terminal-type>
<remove-instrumentation>0</remove-instrumentation>
<environment>
</environment>
</runprofile>
</conf>
</confs>
</configurationDescriptor>

@ -0,0 +1,135 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
*
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
* Other names may be trademarks of their respective owners.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common
* Development and Distribution License("CDDL") (collectively, the
* "License"). You may not use this file except in compliance with the
* License. You can obtain a copy of the License at
* http://www.netbeans.org/cddl-gplv2.html
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
* specific language governing permissions and limitations under the
* License. When distributing the software, include this License Header
* Notice in each file and include the License file at
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the GPL Version 2 section of the License file that
* accompanied this code. If applicable, add the following below the
* License Header, with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* If you wish your version of this file to be governed by only the CDDL
* or only the GPL Version 2, indicate your decision by adding
* "[Contributor] elects to include this software in this distribution
* under the [CDDL or GPL Version 2] license." If you do not indicate a
* single choice of license, a recipient has the option to distribute
* your version of this file under either the CDDL, the GPL Version 2 or
* to extend the choice of license to its licensees as provided above.
* However, if you add GPL Version 2 code and therefore, elected the GPL
* Version 2 license, then the option applies only if the new code is
* made subject to such option by the copyright holder.
*
* Contributor(s):
*/
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
#include <csignal> // Functions and macro constants for signal management
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
#include <cstdarg> // Handling of variable length argument lists
#include <typeinfo> // Runtime type information utilities
#include <bitset> // std::bitset class template
#include <functional> // Function objects, designed for use with the standard algorithms
#include <utility> // Various utility components
#include <ctime> // C-style time/date utilites
#include <cstddef> // typedefs for types such as size_t, NULL and others
#include <new> // Low-level memory management utilities
#include <memory> // Higher level memory management utilities
#include <climits> // limits of integral types
#include <cfloat> // limits of float types
#include <limits> // standardized way to query properties of arithmetic types
#include <exception> // Exception handling utilities
#include <stdexcept> // Standard exception objects
#include <cassert> // Conditionally compiled macro that compares its argument to zero
#include <cerrno> // Macro containing the last error number
#include <cctype> // functions to determine the type contained in character data
#include <cwctype> // functions for determining the type of wide character data
#include <cstring> // various narrow character string handling functions
#include <cwchar> // various wide and multibyte string handling functions
#include <string> // std::basic_string class template
#include <vector> // std::vector container
#include <deque> // std::deque container
#include <list> // std::list container
#include <set> // std::set and std::multiset associative containers
#include <map> // std::map and std::multimap associative containers
#include <stack> // std::stack container adaptor
#include <queue> // std::queue and std::priority_queue container adaptors
#include <algorithm> // Algorithms that operate on containers
#include <iterator> // Container iterators
#include <cmath> // Common mathematics functions
#include <complex> // Complex number type
#include <valarray> // Class for representing and manipulating arrays of values
#include <numeric> // Numeric operations on values in containers
#include <iosfwd> // forward declarations of all classes in the input/output library
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
#include <istream> // std::basic_istream class template and several typedefs
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
#include <iostream> // several standard stream objects
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
#include <iomanip> // Helper functions to control the format or input and output
#include <streambuf> // std::basic_streambuf class template
#include <cstdio> // C-style input-output functions
#include <locale> // Localization utilities
#include <clocale> // C localization utilities
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
#if __cplusplus >= 201103L
#include <typeindex> // (since C++11) std::type_index
#include <type_traits> // (since C++11) Compile-time type information
#include <chrono> // (since C++11) C++ time utilites
#include <initializer_list> // (since C++11) std::initializer_list class template
#include <tuple> // (since C++11) std::tuple class template
#include <scoped_allocator> // (since C++11) Nested allocator class
#include <cstdint> // (since C++11) fixed-size types and limits of other types
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
#include <array> // (since C++11) std::array container
#include <forward_list> // (since C++11) std::forward_list container
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
#include <random> // (since C++11) Random number generators and distributions
#include <ratio> // (since C++11) Compile-time rational arithmetic
#include <cfenv> // (since C++11) Floating-point environment access functions
#include <codecvt> // (since C++11) Unicode conversion facilities
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
#include <atomic> // (since C++11) Atomic operations library
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
#include <thread> // (since C++11) std::thread class and supporting functions
#include <mutex> // (since C++11) mutual exclusion primitives
#include <future> // (since C++11) primitives for asynchronous computations
#include <condition_variable> // (since C++11) thread waiting conditions
#endif
#if __cplusplus >= 201300L
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
#endif
#if __cplusplus >= 201500L
#include <any> // (since C++17) std::any class template
#include <optional> // (since C++17) std::optional class template
#include <variant> // (since C++17) std::variant class template
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
#include <string_view> // (since C++17) std::basic_string_view class template
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
#include <filesystem> // (since C++17) std::path class and supporting functions
#endif

@ -0,0 +1,42 @@
# Launchers File syntax:
#
# [Must-have property line]
# launcher1.runCommand=<Run Command>
# [Optional extra properties]
# launcher1.displayName=<Display Name, runCommand by default>
# launcher1.hide=<true if lancher is not visible in menu, false by default>
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
# launcher1.runInOwnTab=<false if launcher reuse common "Run" output tab, true by default>
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
# [Common launcher properties]
# common.runDir=<Run Directory>
# (This value is overwritten by a launcher specific runDir value if the latter exists)
# common.env.<Environment variable KEY>=<Environment variable VALUE>
# (Environment variables from common launcher are merged with launcher specific variables)
# common.symbolFiles=<Symbol Files loaded by debugger>
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
#
# In runDir, symbolFiles and env fields you can use these macroses:
# ${PROJECT_DIR} - project directory absolute path
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
# ${OUTPUT_BASENAME}- linker output filename
# ${TESTDIR} - test files directory (relative to project directory path)
# ${OBJECTDIR} - object files directory (relative to project directory path)
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
# ${CND_BUILDDIR} - build directory (relative to project directory path)
# ${CND_PLATFORM} - platform name
# ${CND_CONF} - configuration name
# ${CND_DLIB_EXT} - dynamic library extension
#
# All the project launchers must be listed in the file!
#
# launcher1.runCommand=...
# launcher2.runCommand=...
# ...
# common.runDir=...
# common.env.KEY=VALUE
# launcher1.runCommand=<type your run command here>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
<activeConfTypeElem>1</activeConfTypeElem>
<activeConfIndexElem>0</activeConfIndexElem>
</data>
</project-private>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.cnd.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>Pointers_CalebFontenot</name>
<c-extensions/>
<cpp-extensions>cpp</cpp-extensions>
<header-extensions>h</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
<sourceRootList/>
<confList>
<confElem>
<name>Debug</name>
<type>1</type>
</confElem>
<confElem>
<name>Release</name>
<type>1</type>
</confElem>
</confList>
<formatting>
<project-formatting-style>false</project-formatting-style>
</formatting>
</data>
</configuration>
</project>

@ -0,0 +1,24 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/cppFiles/file.cc to edit this template
*/
#include <iostream>
using namespace std;
#include "pointers1.h"
void dereferencePointer() {
int x = 5;
int * p = &x;
int & r = x;
// dereference pointer
cout << *p << " " << p << " " << x << " " << &x << " " << r << " " << &r << endl;
}
int * createAnIntegerOnHeap(int x) {
int * p = new int;
if (p == nullptr) {
return nullptr;
}
return p;
}

@ -0,0 +1,20 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/cppFiles/file.h to edit this template
*/
/*
* File: pointers1.h
* Author: caleb
*
* Created on March 4, 2024, 11:18 AM
*/
#ifndef POINTERS1_H
#define POINTERS1_H
void dereferencePointer();
int * createAnIntegerOnHeap(int x);
#endif /* POINTERS1_H */

Binary file not shown.