Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace ConsoleApp1;
- using System.Text;
- public class Task12_03
- {
- private const string RubName = "Rub";
- private const string UsdName = "Usd";
- private const string EurName = "Eur";
- private const float UsdToRub = 70f;
- private const float RubToUsd = 1f / 67f;
- private const float EurToRub = 80f;
- private const float RubToEur = 1f / 77f;
- private const float UsdToEur = 0.9f;
- private const float EurToUsd = 1.1f;
- public void Run()
- {
- Console.InputEncoding = Encoding.Unicode;
- Console.OutputEncoding = Encoding.Unicode;
- string startCurrency;
- bool isStartCurrencyValid;
- do
- {
- Console.WriteLine( $"Input start currency ( {RubName}, {UsdName}, {EurName} ): " );
- startCurrency = Console.ReadLine();
- isStartCurrencyValid = string.Equals( startCurrency, RubName ) || string.Equals( startCurrency, UsdName ) || string.Equals( startCurrency, EurName );
- if ( isStartCurrencyValid == false )
- Console.WriteLine( $"Currency {startCurrency} is not valid. Try again." );
- }
- while ( isStartCurrencyValid == false );
- Console.Write("Input currency start value: ");
- float startCurrencyValue = float.Parse( Console.ReadLine() );
- float rubWallet = 0;
- float usdWallet = 0;
- float eurWallet = 0;
- switch ( startCurrency )
- {
- case RubName:
- rubWallet = startCurrencyValue;
- break;
- case UsdName:
- usdWallet = startCurrencyValue;
- break;
- case EurName:
- eurWallet = startCurrencyValue;
- break;
- }
- bool canExit = false;
- while ( canExit == false )
- {
- Console.Clear();
- Console.WriteLine( "=== Wallets Info before operation ===" );
- Console.WriteLine( $"[{RubName}] : {rubWallet}" );
- Console.WriteLine( $"[{UsdName}] : {usdWallet}" );
- Console.WriteLine( $"[{EurName}] : {eurWallet}" );
- string sourceCurrency;
- bool isSourceCurrencyValid;
- do
- {
- Console.WriteLine( $"Input source currency ( {RubName}, {UsdName}, {EurName} ): " );
- sourceCurrency = Console.ReadLine();
- isSourceCurrencyValid = string.Equals( sourceCurrency, RubName ) || string.Equals( sourceCurrency, UsdName ) || string.Equals( sourceCurrency, EurName );
- if ( isSourceCurrencyValid == false )
- Console.WriteLine( $"Currency {sourceCurrency} is not valid. Try again." );
- }
- while ( isSourceCurrencyValid == false );
- string targetCurrency;
- bool isTargetCurrencyValid;
- do
- {
- Console.WriteLine( $"Input currency ( {RubName}, {UsdName}, {EurName} ): " );
- targetCurrency = Console.ReadLine();
- isTargetCurrencyValid = string.Equals( targetCurrency, RubName ) || string.Equals( targetCurrency, UsdName ) || string.Equals( targetCurrency, EurName );
- if ( isTargetCurrencyValid == false )
- Console.WriteLine( $"Currency {targetCurrency} is not valid. Try again." );
- }
- while ( isTargetCurrencyValid == false );
- Console.WriteLine( $"Input value in {sourceCurrency}" );
- float sourceCurrencyValue = float.Parse( Console.ReadLine() );
- if ( string.Equals( sourceCurrency, targetCurrency ) == false )
- {
- Console.WriteLine( $"Start convertation: {sourceCurrencyValue} from {sourceCurrency} to {targetCurrency}" );
- bool isEnoughMoney = false;
- switch ( sourceCurrency )
- {
- case RubName:
- isEnoughMoney = sourceCurrencyValue <= rubWallet;
- if ( isEnoughMoney )
- rubWallet -= sourceCurrencyValue;
- break;
- case UsdName:
- isEnoughMoney = sourceCurrencyValue <= usdWallet;
- if ( isEnoughMoney )
- usdWallet -= sourceCurrencyValue;
- break;
- case EurName:
- isEnoughMoney = sourceCurrencyValue <= eurWallet;
- if ( isEnoughMoney )
- eurWallet -= sourceCurrencyValue;
- break;
- }
- if ( isEnoughMoney )
- {
- float convertMultiplier = 1f;
- switch ( sourceCurrency )
- {
- case RubName:
- switch ( targetCurrency )
- {
- case UsdName:
- convertMultiplier = RubToUsd;
- break;
- case EurName:
- convertMultiplier = RubToEur;
- break;
- }
- break;
- case UsdName:
- switch ( targetCurrency )
- {
- case RubName:
- convertMultiplier = UsdToRub;
- break;
- case EurName:
- convertMultiplier = UsdToEur;
- break;
- }
- break;
- case EurName:
- switch ( targetCurrency )
- {
- case RubName:
- convertMultiplier = EurToRub;
- break;
- case UsdName:
- convertMultiplier = EurToUsd;
- break;
- }
- break;
- }
- switch ( targetCurrency )
- {
- case RubName:
- rubWallet += sourceCurrencyValue * convertMultiplier;
- break;
- case UsdName:
- usdWallet += sourceCurrencyValue * convertMultiplier;
- break;
- case EurName:
- eurWallet += sourceCurrencyValue * convertMultiplier;
- break;
- }
- Console.WriteLine( $"Convertation is successfully!" );
- }
- else
- {
- Console.WriteLine( $"Not enough moneys in wallet [{sourceCurrency}]" );
- }
- }
- Console.WriteLine( "=== Wallets Info after operation ===" );
- Console.WriteLine( $"[{RubName}] : {rubWallet}" );
- Console.WriteLine( $"[{UsdName}] : {usdWallet}" );
- Console.WriteLine( $"[{EurName}] : {eurWallet}" );
- string properlyExitAnswer = "n";
- Console.WriteLine( $"\nContinue? Enter {properlyExitAnswer} for exit" );
- string continueAnswer = Console.ReadLine();
- canExit = string.Equals( continueAnswer, properlyExitAnswer );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement