vovanhik_24

55

Aug 11th, 2025
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.56 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace StewCans
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             StewCanService service = new StewCanService();
  12.             service.Run();
  13.         }
  14.     }
  15.  
  16.     public class StewCan
  17.     {
  18.         public StewCan(string name, int productionYear, int shelfLife)
  19.         {
  20.             Name = name;
  21.             ProductionYear = productionYear;
  22.             ShelfLife = shelfLife;
  23.         }
  24.  
  25.         public string Name { get; private set; }
  26.         public int ProductionYear { get; private set; }
  27.         public int ShelfLife { get; private set; }
  28.  
  29.         public int ExpirationYear => ProductionYear + ShelfLife;
  30.     }
  31.  
  32.     public class StewCanCreator
  33.     {
  34.         public List<StewCan> CreateStewCans()
  35.         {
  36.             return new List<StewCan>
  37.             {
  38.                 new StewCan("Говядина ГОСТ", 2018, 5),
  39.                 new StewCan("Свинина Люкс", 2024, 4),
  40.                 new StewCan("Курица Домашняя", 2019, 3),
  41.                 new StewCan("Баранина Премиум", 2017, 6),
  42.                 new StewCan("Говядина Экстра", 2016, 7),
  43.                 new StewCan("Свинина Классик", 2021, 2),
  44.                 new StewCan("Курица Фермерская", 2024, 2),
  45.                 new StewCan("Говядина Традиция", 2025, 8),
  46.                 new StewCan("Свинина Деревенская", 2019, 4),
  47.                 new StewCan("Курица Натуральная", 2023, 3),
  48.             };
  49.         }
  50.     }
  51.  
  52.     public class StewCanService
  53.     {
  54.         private readonly List<StewCan> _stewCans;
  55.  
  56.         public StewCanService()
  57.         {
  58.             StewCanCreator creator = new StewCanCreator();
  59.             _stewCans = creator.CreateStewCans();
  60.         }
  61.  
  62.         public void Run()
  63.         {
  64.             const string CommandToShowAll = "1";
  65.             const string CommandToShowExpired = "2";
  66.             const string CommandToExit = "3";
  67.  
  68.             bool isRunning = true;
  69.  
  70.             while (isRunning)
  71.             {
  72.                 Console.Clear();
  73.                 Console.WriteLine("Меню:");
  74.                 Console.WriteLine($"{CommandToShowAll}. Показать все банки тушенки");
  75.                 Console.WriteLine($"{CommandToShowExpired}. Показать просроченные банки тушенки");
  76.                 Console.WriteLine($"{CommandToExit}. Выход");
  77.                 Console.Write("Выберите пункт меню: ");
  78.  
  79.                 string userInput = Console.ReadLine();
  80.  
  81.                 switch (userInput)
  82.                 {
  83.                     case CommandToShowAll:
  84.                         ShowStewCans(_stewCans, "Все банки тушенки:");
  85.                         break;
  86.  
  87.                     case CommandToShowExpired:
  88.                         ShowExpiredStewCans();
  89.                         break;
  90.  
  91.                     case CommandToExit:
  92.                         isRunning = false;
  93.                         break;
  94.  
  95.                     default:
  96.                         Console.WriteLine("Некорректный ввод. Попробуйте снова.");
  97.                         break;
  98.                 }
  99.  
  100.                 if (isRunning)
  101.                 {
  102.                     Pause();
  103.                 }
  104.             }
  105.         }
  106.  
  107.         private void ShowStewCans(List<StewCan> cans, string header)
  108.         {
  109.             Console.WriteLine("\n" + header);
  110.  
  111.             if (cans.Count == 0)
  112.             {
  113.                 Console.WriteLine("Список пуст.");
  114.             }
  115.             else
  116.             {
  117.                 foreach (StewCan can in cans)
  118.                 {
  119.                     Console.WriteLine($"{can.Name}, год выпуска: {can.ProductionYear}, срок годности: {can.ShelfLife} года(лет), год окончания: {can.ExpirationYear}");
  120.                 }
  121.             }
  122.         }
  123.  
  124.         private void ShowExpiredStewCans()
  125.         {
  126.             int currentYear = DateTime.Now.Year;
  127.             List<StewCan> expired = _stewCans.Where(can => can.ExpirationYear < currentYear).ToList();
  128.  
  129.             ShowStewCans(expired, "Просроченные банки тушенки:");
  130.         }
  131.  
  132.         private void Pause()
  133.         {
  134.             Console.WriteLine("\nНажмите любую клавишу для продолжения...");
  135.             Console.ReadKey();
  136.         }
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment