new file: Calculator.cpp
new file: CalculatorFunctions.cpp new file: CalculatorFunctions.h new file: Installer.sh
This commit is contained in:
commit
e4664c3599
4 changed files with 158 additions and 0 deletions
82
Calculator.cpp
Normal file
82
Calculator.cpp
Normal 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
62
CalculatorFunctions.cpp
Normal 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
5
CalculatorFunctions.h
Normal 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
9
Installer.sh
Executable 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 :)!"
|
Reference in a new issue