Anonim_999

CarService

Oct 14th, 2021 (edited)
540
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. namespace ConsoleApp2
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             CarService carService = new CarService();
  11.             carService.StartWork();
  12.         }
  13.     }
  14.  
  15.     class CarService
  16.     {
  17.         private List<Detail> _details;
  18.         public int Money { get; private set; }
  19.  
  20.         public CarService()
  21.         {
  22.             _details = new List<Detail>();
  23.             Random random = new Random();
  24.             Money = random.Next(20000, 50000);
  25.  
  26.             for (int i = 0; i < 3; i++)
  27.             {
  28.                 _details.Add(new Detail(i));
  29.             }
  30.         }
  31.  
  32.         public void StartWork()
  33.         {
  34.             bool isWorking = true;
  35.             string userInput;
  36.  
  37.             while (isWorking)
  38.             {
  39.                 Console.ReadKey();
  40.                 Console.Clear();
  41.                 ShowInfo();
  42.                 Car car = new Car(_details);
  43.                 Console.WriteLine("1.Прожолжить\n2.Выход");
  44.                 userInput = Console.ReadLine();
  45.  
  46.                 switch (userInput)
  47.                 {
  48.                     case "1":
  49.                         StartServed(car);
  50.                         break;
  51.                     case "2":
  52.                         isWorking = false;
  53.                         break;
  54.                     default:
  55.                         break;
  56.                 }
  57.             }
  58.         }
  59.  
  60.         public void StartServed(Car car)
  61.         {
  62.             string userInput;
  63.             bool isServed = true;
  64.  
  65.             while (isServed)
  66.             {
  67.                 Console.ReadKey();
  68.                 Console.Clear();
  69.                 ShowInfo();
  70.                 Console.WriteLine($"Меню: \n1.Купить деталь\n2.Взять деталь для замены");
  71.                 car.ShowInfo();
  72.                 userInput = Console.ReadLine();
  73.  
  74.                 switch (userInput)
  75.                 {
  76.                     case "1":
  77.                         Console.WriteLine("Выберете деталь для покупки: (1,2,3)");
  78.                         userInput = Console.ReadLine();
  79.                         int number;
  80.  
  81.                         if (int.TryParse(userInput, out number))
  82.                         {
  83.                             BuyDetail(number);
  84.                         }
  85.                         break;
  86.                     case "2":
  87.                         Console.WriteLine("Выберете деталь для замены: (1,2,3)");
  88.                         userInput = Console.ReadLine();
  89.  
  90.                         if (int.TryParse(userInput, out number))
  91.                         {
  92.                             ReplaceDetail(car, number);
  93.                         }
  94.                         else
  95.                         {
  96.                             Console.WriteLine("Нет такой детали!");
  97.                         }
  98.                         isServed = false;
  99.                         break;
  100.                     default:
  101.                         Console.WriteLine("Нет такой команды!");
  102.                         break;
  103.                 }
  104.             }
  105.         }
  106.  
  107.         private void BuyDetail(int index)
  108.         {
  109.             if (index <= _details.Count+1 && index >= 1 &&_details[index - 1].Price <= Money)
  110.             {
  111.                 Money -= _details[index-1].Price;
  112.                 _details[index-1].AddDetail();
  113.                 Console.WriteLine($"Деталь {_details[index-1].Name} куплена!");
  114.             }
  115.             else
  116.             {
  117.                 Console.WriteLine("Недостаточно средств");
  118.             }
  119.         }
  120.  
  121.         private void ShowInfo()
  122.         {
  123.             Console.WriteLine("информация об автосервисе: ");
  124.             Console.WriteLine($"Деньги: {Money}\nДетали:");
  125.             int number = 1;
  126.  
  127.             foreach (Detail detail in _details)
  128.             {
  129.                 Console.Write($"{number}. ");
  130.                 detail.ShowInfo();
  131.                 number++;
  132.             }
  133.         }
  134.  
  135.         private void ReplaceDetail(Car car, int index)
  136.         {
  137.             int priceWork = 1500;
  138.             int finalPayment = _details[index - 1].Price + priceWork;
  139.  
  140.             if (index >= 1 && index <= _details.Count + 1)
  141.             {
  142.  
  143.                 if (car.Breaking == _details[index - 1].Name && _details[index - 1].Count > 0)
  144.                 {
  145.                     Money += finalPayment;
  146.                     _details[index - 1].RemoveDetail();
  147.                     Console.WriteLine($"Починка прошла успешно, клиент остался довольным. +{finalPayment} рублей");
  148.                 }
  149.                 else
  150.                 {
  151.                     Money -= finalPayment;
  152.                     Console.WriteLine($"Мда.. клиент покрыл вас трех этажным матом, чтобы загладить свою вину вы выплатили ему ущерб в размере: {finalPayment} рублей");
  153.                 }
  154.             }
  155.             else
  156.             {
  157.                 Console.WriteLine("Такой детали не существет!");
  158.             }
  159.         }
  160.     }
  161.  
  162.     class Detail
  163.     {
  164.         public int Count { get; private set; }
  165.         public string Name { get; private set; }
  166.         public int Price { get; private set; }
  167.  
  168.         public Detail(int indexDetail)
  169.         {
  170.             List<string> ditails = new List<string>() { "Двигатель", "Трансмиссия", "Тормозная система" };
  171.             Random random = new Random();
  172.             Count = random.Next(0, 5);
  173.             Price = random.Next(1000, 10000);
  174.             Name = ditails[indexDetail];
  175.         }
  176.  
  177.         public void ShowInfo()
  178.         {
  179.             Console.WriteLine($"{Name}: {Count} шт. Стоимость: {Price}");
  180.         }
  181.  
  182.         public void AddDetail()
  183.         {
  184.             Count++;
  185.         }
  186.  
  187.         public void RemoveDetail()
  188.         {
  189.             Count--;
  190.         }
  191.     }
  192.  
  193.     class Car
  194.     {
  195.         public string Breaking;
  196.  
  197.         public Car(List<Detail> details)
  198.         {
  199.             Random random = new Random();
  200.             Breaking = details[random.Next(0, details.Count)].Name;
  201.         }
  202.  
  203.         public void ShowInfo()
  204.         {
  205.             Console.WriteLine($"Поломка у машины: {Breaking}");
  206.         }
  207.     }
  208. }
RAW Paste Data