/
NAJE
/
Skidka
Обзор
Документация
Войти
/
NAJE
/
Skidka
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Program.cs
140 строк
5 KB
temach113
Добавление файлов
02 окт 2025, 12:24
02 окт 2025, 12:24
720fa54
Код
Авторство
О чём код?
using System; using System.Threading; namespace Расчёт_цены; class Program { static void Main(string[] args) { bool proverkaProd = true; while (proverkaProd == true) { Console.Clear(); Console.Write("Введите цену: "); string totalPrice = Console.ReadLine(); Console.Write("Есть премиум? (true/false): "); bool isPremiumCustomer = bool.Parse(Console.ReadLine()); if (decimal.TryParse(totalPrice, out decimal totalPriceDec)) { vipAndCost(isPremiumCustomer,totalPriceDec,0); } //Продолжение или завершение работы Console.ForegroundColor = ConsoleColor.Green; DrawBox2($"1) Запустить программу заново (+ или 1)","2) Закрыть программу (- или 2)"); Thread.Sleep(200); Console.ResetColor(); Console.Write(">>> Введите значение: "); string daIliNet = Console.ReadLine(); if (daIliNet == "-" || daIliNet == "2") { proverkaProd = false; Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; DrawBox("Пакеда! Я почапал!"); Console.WriteLine(" __"); Console.WriteLine(" _/ \\_"); Console.WriteLine(" / o o \\"); Console.WriteLine(" | ^ |"); Console.WriteLine(" \\ \\_/ / "); Console.WriteLine(" / \\ "); Console.WriteLine(" ( ) "); Console.WriteLine(" /| | |\\"); Console.WriteLine(" | | | "); Console.WriteLine(" / \\ | / \\"); Console.ResetColor(); Console.Write("\n>>> Нажмите Enter: "); Console.ReadKey(); Console.Clear(); } } } //Метод для высчитывания скидки static void vipAndCost(bool vip, decimal cost, decimal costSoSkidkoi) { if ((vip == true) && (cost <= 1000)) { costSoSkidkoi = cost - ((cost * 20) / 100); Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; DrawBox($"Размер скидки: {(cost * 20) / 100} руб (20%). Финальная цена: {costSoSkidkoi}"); Thread.Sleep(200); Console.ResetColor(); Console.Write(">>> Нажмите Enter: "); Console.ReadKey(); Console.Clear(); } else if ((vip == false) && (cost > 1000)) { costSoSkidkoi = cost - ((cost * 10) / 100); Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; DrawBox($"Размер скидки: {(cost * 10) / 100} руб (10%). Финальная цена: {costSoSkidkoi}"); Thread.Sleep(200); Console.ResetColor(); Console.Write(">>> Нажмите Enter: "); Console.ReadKey(); Console.Clear(); } else if ((vip == false) && (cost <= 1000)) { costSoSkidkoi = cost - ((cost * 5) / 100); Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; DrawBox($"Размер скидки: {(cost * 5) / 100} руб (5%). Финальная цена: {costSoSkidkoi}"); Thread.Sleep(200); Console.ResetColor(); Console.Write(">>> Нажмите Enter: "); Console.ReadKey(); Console.Clear(); } else if ((vip == true) && (cost > 1000)) { costSoSkidkoi = cost * (1 - 0.2m) * (1 - 0.1m); Console.Clear(); Console.ForegroundColor = ConsoleColor.Green; DrawBox($"Размер скидки: {cost - (cost * ((1 - 0.2m) * (1 - 0.1m)))} руб (28%). Финальная цена: {costSoSkidkoi}"); Thread.Sleep(200); Console.ResetColor(); Console.Write(">>> Нажмите Enter: "); Console.ReadKey(); Console.Clear(); } } //Добавление рамки для 1 строчки static void DrawBox(string text) { int width = text.Length + 2; Console.WriteLine("+" + new string('-', width) + "+"); Console.WriteLine("| " + text + " |"); Console.WriteLine("+" + new string('-', width) + "+"); } //Добавление рамки для 2 строчки static void DrawBox2(string line1, string line2) { // Находим максимальную длину из двух строк int width = Math.Max(line1.Length, line2.Length) + 2; // +2 для пробелов по бокам // Верхняя граница Console.WriteLine("+" + new string('-', width) + "+"); // Первая строка (выравниваем по левому краю, добавляя пробелы справа) Console.WriteLine("| " + line1.PadRight(width - 1) + "|"); // Вторая строка Console.WriteLine("| " + line2.PadRight(width - 1) + "|"); // Нижняя граница Console.WriteLine("+" + new string('-', width) + "+"); } }