new file: Calculator.cpp

new file:   CalculatorFunctions.cpp
	new file:   CalculatorFunctions.h
	new file:   Installer.sh
This commit is contained in:
T4rtP1ck13 2021-06-16 16:01:47 -05:00
commit e4664c3599
4 changed files with 158 additions and 0 deletions

82
Calculator.cpp Normal file
View file

@ -0,0 +1,82 @@
#include <iostream>
#include <functional>
#include <cmath>
#include <fstream>
#include "NewCalcFunctions.h"
double total_num;
int end_option;
int option;
bool loop = true;
int main()
{
while (loop)
{
std::cout << "Please select an option from the list:\n";
std::cout << "1: Add | 2: Subtract | 3: Divide | 4: Multiply | 5: Square root \n";
std::cin >> option;
switch (option)
{
case 1:
total_num = math("Addition", std::plus<>(), false);
std::cout << total_num << '\n';
break;
case 2:
total_num = math("Subtraction", std::minus<>(), false);
std::cout << total_num << "\n";
break;
case 3:
total_num = math("Division", std::divides<>(), false);
std::cout << total_num << "\n";
break;
case 4:
total_num = math("Multiplication", std::multiplies<>(), false);
std::cout << total_num << "\n";
break;
case 5:
total_num = square_root("Square root", false);
std::cout << total_num << "\n";
break;
}
std::cout << "Please choose an option from the list:" << '\n';
std::cout << "1: Continue | 2: Conitnue with number from last problem | 3: Exit the program" << '\n';
std::cin >> end_option;
if (end_option == 1)
{
loop = true;
}
else if (end_option == 2)
{
std::cout << "Please select an option from the list:\n";
std::cout << "1: Add | 2: Subtract | 3: Divide | 4: Multiply | 5: Square root \n";
int option2;
std::cin >> option2;
switch (option2)
{
case 1:
total_num = math("Add", std::plus<>(), true);
std::cout << total_num << '\n';
break;
case 2:
total_num = math("Subtract", std::minus<>(), true);
std::cout << total_num << "\n";
break;
case 3:
total_num = math("Divide", std::divides<>(), true);
std::cout << total_num << "\n";
break;
case 4:
total_num = math("Multiply", std::multiplies<>(), true);
std::cout << total_num << "\n";
break;
case 5:
total_num = square_root("Square root", true);
std::cout << total_num << "\n";
break;
}
}
else if (end_option == 3)
{
loop = false;
}
}
}

62
CalculatorFunctions.cpp Normal file
View file

@ -0,0 +1,62 @@
#include "NewCalcFunctions.h"
#include <iostream>
#include <functional>
#include <cmath>
#include <fstream>
using namespace std;
double math(std::string text, std::function<double(double, double)> code, bool use_last_num)
{
double total_num;
double num1;
double num2;
std::ofstream num_write;
num_write.open("last-total-num.txt", ios::out);
if (!use_last_num)
{
std::cout << text << "\n";
std::cout << "Please enter in the first number here: \n";
std::cin >> num1;
std::cout << "Please enter in the last number here: \n";
std::cin >> num2;
total_num = code(num1, num2);
num_write << total_num;
num_write.close();
}
else
{
num_write << total_num;
num_write.close();
std::ifstream num_read;
num_read.open("last-total-num.txt", ios::in);
double last_num;
num_read >> last_num;
total_num = 0;
std::cout << text << "\n";
std::cout << "Fetching last number...\n";
std::cout << "Please enter the number here: \n";
std::cin >> num2;
total_num = code(num2, last_num);
}
return total_num;
}
double square_root(std::string text, bool use_last_num)
{
double total_num;
if (!use_last_num)
{
std::cout << text << '\n';
std::cout << "Please enter the number you would like to find the square root of here: \n";
double sqrt_num;
std::cin >> sqrt_num;
total_num = sqrt(sqrt_num);
}
else
{
std::ifstream num_read;
num_read.open("last-total-num.txt", ios::in);
double last_num;
num_read >> last_num;
total_num = sqrt(last_num);
}
return total_num;
}

5
CalculatorFunctions.h Normal file
View file

@ -0,0 +1,5 @@
#include <iostream>
#include <cmath>
#include <functional>
double math(std::string text, std::function<double(double, double)> code, bool use_last_num);
double square_root(std::string, bool use_last_num);

9
Installer.sh Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
echo "Compiling..."
clang++ NewCalc.cpp NewCalcFunctions.cpp -std=c++17 -o Calculator
echo "Done!"
echo "Cleaning up..."
sleep 1
mv Calculator ${HOME}/Desktop
rmdir --ignore-fail-on-non-empty ${HOME}/Terminal-Based-Calculator
echo "Done! Now enjoy your calculator :)!"