get nullptr'd lol
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user