Advertisement
IvanOseledko

Homework29

Jan 20th, 2024 (edited)
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.08 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Homework29
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {                              
  9.             Console.Write("Введите максимальную длину шкалы здоровья: ");
  10.  
  11.             double maxBarLength = GetUserInput();
  12.  
  13.             maxBarLength = CheckForNegativeValue(maxBarLength);
  14.            
  15.             Console.Write("\nВведите процент, на который хотите закрасить шкалу: ");
  16.  
  17.             double filledPercent = GetUserInput();
  18.  
  19.             filledPercent = CheckForNegativeValue(filledPercent);
  20.             filledPercent = CheckForCorrectPercent(filledPercent);
  21.  
  22.             DrawBar(maxBarLength, filledPercent);
  23.         }
  24.  
  25.         static void DrawBar(double maxBarLength, double percentOfFilling, char userSymbol = '|')
  26.         {
  27.             ConsoleColor defaultColor = Console.BackgroundColor;
  28.             string bar = "";
  29.             double initialPercent = 0;
  30.             double fullPercentOfFilling = 100;
  31.             double filledPercent = percentOfFilling * (maxBarLength / fullPercentOfFilling);
  32.  
  33.             bar = FillBar(initialPercent, filledPercent, bar, userSymbol);
  34.  
  35.             Console.Write('[');
  36.             Console.BackgroundColor = ConsoleColor.Green;
  37.             Console.Write(bar);
  38.             Console.BackgroundColor = defaultColor;
  39.  
  40.             bar = FillBar(filledPercent, maxBarLength, bar, userSymbol);
  41.  
  42.             Console.Write(bar + ']');
  43.         }
  44.  
  45.         static string FillBar(double initialPercent, double fillingPercent, string bar, char fillingSymbol)
  46.         {
  47.             bar = "";
  48.  
  49.             for (double i = initialPercent; i < fillingPercent; i++)
  50.             {
  51.                 bar += fillingSymbol;
  52.             }
  53.  
  54.             return bar;
  55.         }
  56.  
  57.         static double GetUserInput()
  58.         {
  59.             double userNumber;
  60.  
  61.             while (!double.TryParse(Console.ReadLine(), out userNumber))
  62.             {
  63.                 Console.Write("Неверный формат введенных даных. Введите число: ");
  64.             }
  65.  
  66.             return userNumber;
  67.         }
  68.  
  69.         static double CheckForNegativeValue(double userInput)
  70.         {
  71.             while (userInput < 0)
  72.             {
  73.                 Console.Write("Данная величина не может быть отрицательной. Введите значение величины: ");
  74.                 userInput = GetUserInput();
  75.             }
  76.            
  77.             return userInput;
  78.         }
  79.  
  80.         static double CheckForCorrectPercent(double userPercent)
  81.         {
  82.             double fullPercent = 100;
  83.            
  84.             while (userPercent > fullPercent)
  85.             {
  86.                 Console.Write("Веденный Вами процент не может быть больше 100%. Введите корректное значение процента: ");
  87.                 userPercent = GetUserInput();
  88.             }
  89.            
  90.             return userPercent;
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement