diff options
| author | rPatrickWarner <[email protected]> | 2024-04-12 14:31:42 -0700 |
|---|---|---|
| committer | rPatrickWarner <[email protected]> | 2024-04-12 14:31:42 -0700 |
| commit | 9427c9a765c5ff1bf4e293147124d5649faccb5f (patch) | |
| tree | 56ac961a179eebe2399c53272ae712e4fda77ce3 | |
| parent | Added foundation for conversions (diff) | |
| download | homework-1-reecepwarner-9427c9a765c5ff1bf4e293147124d5649faccb5f.tar.xz homework-1-reecepwarner-9427c9a765c5ff1bf4e293147124d5649faccb5f.zip | |
Currency Complete
| -rw-r--r-- | CST 126/Homework 1/CurrencyHelper.hpp | 241 | ||||
| -rw-r--r-- | CST 126/Homework 1/Helper.hpp | 126 | ||||
| -rw-r--r-- | CST 126/Homework 1/Homework 1.vcxproj | 1 | ||||
| -rw-r--r-- | CST 126/Homework 1/Homework 1.vcxproj.filters | 3 | ||||
| -rw-r--r-- | CST 126/Homework 1/main.cpp | 5 |
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 |