Skip to content

Instantly share code, notes, and snippets.

@plrtp68217
Last active June 2, 2025 16:22
Show Gist options
  • Save plrtp68217/fb4244000de5e2870e280def5aa3ab2e to your computer and use it in GitHub Desktop.
Save plrtp68217/fb4244000de5e2870e280def5aa3ab2e to your computer and use it in GitHub Desktop.
ДЗ: Конвертер валют
namespace Task
{
internal class Program
{
static void Main()
{
const string UsdToRubCommand = "usdToRub";
const string RubToUsdCommand = "rubToUsd";
const string EuroToRubCommand = "euroToRub";
const string RubToEuroCommand = "rubToEuro";
const string EuroToUsdCommand = "euroToUsd";
const string UsdToEuroCommand = "usdToEuro";
const string ShowBalanceCommand = "showBalance";
const string ExitCommand = "exit";
double usdToRubRate = 79;
double rubToUsdRate = 1 / usdToRubRate;
double euroToRubRate = 90;
double rubToEuroRate = 1 / euroToRubRate;
double euroToUsdRate = 1.14;
double usdToEuroRate = 1 / euroToUsdRate;
double rubBalance = 1500;
double usdBalance = 900;
double euroBalance = 500;
double moneyAmount;
string textMenu = "МЕНЮ\n" +
$"{UsdToRubCommand} - Доллары в рубли\n" +
$"{RubToUsdCommand} - Рубли в доллары\n" +
$"{EuroToRubCommand} - Евро в рубли\n" +
$"{RubToEuroCommand} - Рубли в евро\n" +
$"{EuroToUsdCommand} - Евро в доллары\n" +
$"{UsdToEuroCommand} - Доллары в евро\n" +
$"{ShowBalanceCommand} - Показать баланс\n" +
$"{ExitCommand} - Выход";
bool isWork = true;
string command;
Console.WriteLine(textMenu);
while (isWork)
{
Console.Write("Команда: ");
command = Console.ReadLine();
switch (command)
{
case UsdToRubCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (usdBalance >= moneyAmount && moneyAmount > 0)
{
usdBalance -= moneyAmount;
rubBalance += moneyAmount * usdToRubRate;
}
break;
case RubToUsdCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (rubBalance >= moneyAmount && moneyAmount > 0)
{
rubBalance -= moneyAmount;
usdBalance += moneyAmount * rubToUsdRate;
}
break;
case EuroToRubCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (euroBalance >= moneyAmount && moneyAmount > 0)
{
euroBalance -= moneyAmount;
rubBalance += moneyAmount * euroToRubRate;
}
break;
case RubToEuroCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (rubBalance >= moneyAmount && moneyAmount > 0)
{
rubBalance -= moneyAmount;
euroBalance += moneyAmount * rubToEuroRate;
}
break;
case EuroToUsdCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (euroBalance >= moneyAmount && moneyAmount > 0)
{
euroBalance -= moneyAmount;
usdBalance += moneyAmount * euroToUsdRate;
}
break;
case UsdToEuroCommand:
Console.Write("Объем конвертации: ");
moneyAmount = Convert.ToDouble(Console.ReadLine());
if (usdBalance >= moneyAmount && moneyAmount > 0)
{
usdBalance -= moneyAmount;
euroBalance += moneyAmount * usdToEuroRate;
}
break;
case ShowBalanceCommand:
Console.WriteLine($"Рубли: {rubBalance}, " +
$"доллары: {usdBalance}, " +
$"евро: {euroBalance}");
break;
case ExitCommand:
isWork = false;
break;
default:
Console.WriteLine("Такой команды нет.");
break;
}
}
Console.WriteLine("Пограмма закрыта.");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment