aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrPatrickWarner <[email protected]>2024-04-12 14:31:42 -0700
committerrPatrickWarner <[email protected]>2024-04-12 14:31:42 -0700
commit9427c9a765c5ff1bf4e293147124d5649faccb5f (patch)
tree56ac961a179eebe2399c53272ae712e4fda77ce3
parentAdded foundation for conversions (diff)
downloadhomework-1-reecepwarner-9427c9a765c5ff1bf4e293147124d5649faccb5f.tar.xz
homework-1-reecepwarner-9427c9a765c5ff1bf4e293147124d5649faccb5f.zip
Currency Complete
-rw-r--r--CST 126/Homework 1/CurrencyHelper.hpp241
-rw-r--r--CST 126/Homework 1/Helper.hpp126
-rw-r--r--CST 126/Homework 1/Homework 1.vcxproj1
-rw-r--r--CST 126/Homework 1/Homework 1.vcxproj.filters3
-rw-r--r--CST 126/Homework 1/main.cpp5
5 files changed, 254 insertions, 122 deletions
diff --git a/CST 126/Homework 1/CurrencyHelper.hpp b/CST 126/Homework 1/CurrencyHelper.hpp
new file mode 100644
index 0000000..ad888a5
--- /dev/null
+++ b/CST 126/Homework 1/CurrencyHelper.hpp
@@ -0,0 +1,241 @@
+#ifndef CURRENCY_HELPER
+#define CURRENCY_HELPER
+#include "Helper.hpp"
+
+void CurrencyConversion();
+void CurrencyList();
+double Dollars_USD(double& Money);
+double Euro_EUR(double& Money);
+double Yen_JPY(double& Money);
+double Pound_GBP(double& Money);
+double Rand_ZAR(double& Money);
+
+void CurrencyConversion()
+{
+ double My_Money;
+ int Selection = 0;
+
+ CurrencyList();
+
+ Selection = InputSelectionInt("What type of currency are you looking to convert from? :");
+ My_Money = InputDouble("How much do you have?");
+
+ switch (Selection)
+ {
+ case 1: Dollars_USD(My_Money);
+ break;
+ case 2: Euro_EUR(My_Money);
+ break;
+ case 3: Yen_JPY(My_Money);
+ break;
+ case 4: Pound_GBP(My_Money);
+ break;
+ case 5: Rand_ZAR(My_Money);
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+
+}
+double Dollars_USD(double& Money)
+{
+ int UserSelect1;
+ Prompts("1.Dollar to Euro\n2.Dollar to Yen\n3.Dollar to Pound\n4.Dollar to Rand\n");
+ UserSelect1 = InputSelectionInt("What would you like to convert your U.S Dollars to? :");
+
+ switch (UserSelect1)
+ {
+ case 1: Money *= 0.93995; //Dollars to Euro
+ std::cout << "(EUR)" << Money << std::endl;
+
+ break;
+ case 2: Money *= 153.225; //Dollars to Yen
+ std::cout << "(JPY)" << Money << std::endl;
+
+ break;
+ case 3: Money *= 0.80337; //Dollars to Pound
+ std::cout << "(GBP)" << Money << std::endl;
+
+ break;
+ case 4: Money *= 18.898; //Dollars to Rand
+ std::cout << "(ZAR)" << Money << std::endl;
+
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+ return Money;
+}
+double Euro_EUR(double& Money)
+{
+ int UserSelect2 = 0;
+ Prompts("1.Euro to Dollar\n2.Euro to Yen\n3.Euro to Pound\n4.Euro to Rand\n");
+ UserSelect2 = InputSelectionInt("What would you like to convert your European Euros to? :");
+
+ switch (UserSelect2)
+ {
+ case 1: Money *= 1.064; //Euros to Dollars
+ std::cout << "$" << Money << std::endl;
+
+ break;
+ case 2: Money *= 163.025; //Euros to Yen
+ std::cout << "(JPY)" << Money << std::endl;
+
+ break;
+ case 3: Money *= 0.8547; //Euros to Pound
+ std::cout << "(GBP)" << Money << std::endl;
+
+ break;
+ case 4: Money *= 20.102; //Euros to Rand
+ std::cout << "(ZAR)" << Money << std::endl;
+
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+ return Money;
+}
+double Yen_JPY(double& Money)
+{
+ int UserSelect3 = 0;
+ Prompts("1.Yen to Dollar\n2.Yen to Euro\n3.Yen to Pound\n4.Yen to Rand\n");
+ UserSelect3 = InputSelectionInt("What would you like to convert your Japanese Yens to? :");
+
+ switch (UserSelect3)
+ {
+ case 1: Money *= 0.0065; //Yen to Dollars
+ std::cout << "$" << Money << std::endl;
+
+ break;
+ case 2: Money *= 0.0061; //Yen to Euros
+ std::cout << "(EUR)" << Money << std::endl;
+
+ break;
+ case 3: Money *= 0.0052; //Yen to Pound
+ std::cout << "(GBP)" << Money << std::endl;
+
+ break;
+ case 4: Money *= 0.123; //Yen to Rand
+ std::cout << "(ZAR)" << Money << std::endl;
+
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+ return Money;
+}
+double Pound_GBP(double& Money)
+{
+ int UserSelect3 = 0;
+ Prompts("1.Pound to Dollar\n2.Pound to Euro\n3.Pound to Yen\n4.Pound to Rand\n");
+ UserSelect3 = InputSelectionInt("What would you like to convert your British Pounds to? :");
+
+ switch (UserSelect3)
+ {
+ case 1: Money *= 1.244; //Pound to Dollars
+ std::cout << "$" << Money << std::endl;
+
+ break;
+ case 2: Money *= 1.169; //Pound to Euros
+ std::cout << "(EUR)" << Money << std::endl;
+
+ break;
+ case 3: Money *= 190.755; //Pound to Yen
+ std::cout << "(JPY)" << Money << std::endl;
+
+ break;
+ case 4: Money *= 23.513; //Pound to Rand
+ std::cout << "(ZAR)" << Money << std::endl;
+
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+ return Money;
+}
+double Rand_ZAR(double& Money)
+{
+ int UserSelect4 = 0;
+ Prompts("1.Rand to Dollar\n2.Rand to Euro\n3.Rand to Yen\n4.Yen to Pound\n");
+ UserSelect4 = InputSelectionInt("What would you like to convert your South African Rands to?: ");
+
+ switch (UserSelect4)
+ {
+ case 1: Money *= 0.0529; //Rand to Dollars
+ std::cout << "$" << Money << std::endl;
+
+ break;
+ case 2: Money *= 0.497; //Rand to Euros
+ std::cout << "(EUR)" << Money << std::endl;
+
+ break;
+ case 3: Money *= 8.111; //Rand to Yen
+ std::cout << "(JPY)" << Money << std::endl;
+
+ break;
+ case 4: Money *= 0.0425; //Rand to Pound
+ std::cout << "(GBP)" << Money << std::endl;
+
+ break;
+ default:
+ std::cout << "Invalid input, please try again!" << std::endl;
+ }
+ return Money;
+}
+void CurrencyList()
+{
+ std::cout << "Welcome to the Currency Exchange\n\n"
+ << "1. U.S Dollars(USD)\n"
+ << "2. European Euros(EUR)\n"
+ << "3. Japanese Yens(JPY)\n"
+ << "4. British Pounds\n"
+ << "5. South African Rand(ZAR)\n" << std::endl;
+}
+void Prompts(const char* Prompt)
+{
+ std::cout << Prompt;
+}
+double InputDouble(const char* Prompt)
+{
+ std::cout << Prompt << std::endl;
+
+ std::cout.flush();
+
+ double Value = 0;
+ std::cin >> Value;
+
+ while (!std::cin)
+ {
+ std::cout << Prompt << std::endl;
+ std::cin.clear();
+
+ std::cin.ignore(MAX_STREAM_SIZE, '\n');
+ std::cin >> Value;
+
+ }
+ return Value;
+}
+int InputSelectionInt(const char* Prompt)
+{
+ std::cout << Prompt << std::endl;
+
+ std::cout.flush();
+
+ int Value = 0;
+ std::cin >> Value;
+
+ while (!std::cin)
+ {
+ std::cout << Prompt << std::endl;
+ std::cin.clear();
+
+ std::cin.ignore(MAX_STREAM_SIZE, '\n');
+ std::cin >> Value;
+
+ }
+ return Value;
+}
+
+
+
+#endif \ No newline at end of file
diff --git a/CST 126/Homework 1/Helper.hpp b/CST 126/Homework 1/Helper.hpp
index 030b867..e82f5e8 100644
--- a/CST 126/Homework 1/Helper.hpp
+++ b/CST 126/Homework 1/Helper.hpp
@@ -1,129 +1,17 @@
#ifndef HELPER_HPP
#define HELPER_HPP
+using std::numeric_limits;
+using std::streamsize;
+constexpr size_t MAX_STREAM_SIZE = numeric_limits<streamsize>::max();
+
void UserMenu();
int RandomNumberGenerator(const int& LowerBound, const int& UpperBound);
-double CurrencyConversion(double Money);
-
-double Dollars_USD(double& Money);
-double Euro_EUR(double& Money);
-double Yen_JPY(double& Money);
-double Pound_GBP(double& Money);
-double Rand_Zar(double& Money);
-double CurrencyConversion(double Money)
-{
- int Selection = 0;
+double InputDouble(const char* Prompt);
+int InputSelectionInt(const char* Prompt);
+void Prompts(const char* Prompt);
- switch (Selection)
- {
- case 1:
- break;
- case 2:
- break;
- case 3:
- break;
- case 4:
- break;
- case 5:
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
-double Dollars_USD(double& Money)
-{
- std::cout << "What would you like to convert your U.S Dollars to? :";
- int UserSelect1 = 0;
- std::cin >> UserSelect1;
- switch (UserSelect1)
- {
- case 1: Money *= 0.93995; //Dollars to Euro
- break;
- case 2: Money *= 153.225; //Dollars to Yen
- break;
- case 3: Money *= 0.80337; //Dollars to Pound
- break;
- case 4: Money *= 18.898; //Dollars to Rand
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
-double Euro_EUR(double& Money)
-{
- int UserSelect2 = 0;
- switch (UserSelect2)
- {
- case 1: Money *= 1.064; //Euros to Dollars
- break;
- case 2: Money *= 163.025; //Euros to Yen
- break;
- case 3: Money *= 0.8547; //Euros to Pound
- break;
- case 4: Money *= 20.102; //Euros to Rand
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
-double Yen_JPY(double& Money)
-{
- int UserSelect3 = 0;
- switch (UserSelect3)
- {
- case 1: Money *= 0.0065; //Yen to Dollars
- break;
- case 2: Money *= 0.0061; //Yen to Euros
- break;
- case 3: Money *= 0.0052; //Yen to Pound
- break;
- case 4: Money *= 0.123; //Yen to Rand
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
-double Pound_GBP(double& Money)
-{
- int UserSelect3 = 0;
- switch (UserSelect3)
- {
- case 1: Money *= 1.244; //Pound to Dollars
- break;
- case 2: Money *= 1.169; //Pound to Euros
- break;
- case 3: Money *= 190.755; //Pound to Yen
- break;
- case 4: Money *= 23.513; //Pound to Rand
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
-double Rand_Zar(double& Money)
-{
- int UserSelect3 = 0;
- switch (UserSelect3)
- {
- case 1: Money *= 0.0529; //Rand to Dollars
- break;
- case 2: Money *= 0.497; //Rand to Euros
- break;
- case 3: Money *= 8.111; //Rand to Yen
- break;
- case 4: Money *= 0.0425; //Rand to Pound
- break;
- default:
- std::cout << "Invalid input, please try again!" << std::endl;
- }
- return Money;
-}
#endif \ No newline at end of file
diff --git a/CST 126/Homework 1/Homework 1.vcxproj b/CST 126/Homework 1/Homework 1.vcxproj
index 951088e..b1b024d 100644
--- a/CST 126/Homework 1/Homework 1.vcxproj
+++ b/CST 126/Homework 1/Homework 1.vcxproj
@@ -130,6 +130,7 @@
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="CurrencyHelper.hpp" />
<ClInclude Include="Helper.hpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
diff --git a/CST 126/Homework 1/Homework 1.vcxproj.filters b/CST 126/Homework 1/Homework 1.vcxproj.filters
index cc953e9..9144347 100644
--- a/CST 126/Homework 1/Homework 1.vcxproj.filters
+++ b/CST 126/Homework 1/Homework 1.vcxproj.filters
@@ -23,5 +23,8 @@
<ClInclude Include="Helper.hpp">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="CurrencyHelper.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/CST 126/Homework 1/main.cpp b/CST 126/Homework 1/main.cpp
index 9768cd1..7ae59ab 100644
--- a/CST 126/Homework 1/main.cpp
+++ b/CST 126/Homework 1/main.cpp
@@ -8,12 +8,11 @@
#include <iostream>
-#include "Helper.hpp"
+#include "CurrencyHelper.hpp"
int main()
{
- double MyMoney = 5.04;
- //std::cout << Dollars_USD(MyMoney);
+ CurrencyConversion();
return 0;
} \ No newline at end of file