vovanhik_24

52

Aug 7th, 2025 (edited)
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.04 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Amnesty
  6. {
  7.     public class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             PrisonerService service = new PrisonerService();
  12.             service.Run();
  13.         }
  14.     }
  15.  
  16.     public class Prisoner
  17.     {
  18.         public Prisoner(string fullName, string crime)
  19.         {
  20.             FullName = fullName;
  21.             Crime = crime;
  22.         }
  23.  
  24.         public string FullName { get; private set; }
  25.         public string Crime { get; private set; }
  26.     }
  27.  
  28.     public class PrisonerCreator
  29.     {
  30.         public List<Prisoner> CreatePrisoners()
  31.         {
  32.             return new List<Prisoner>
  33.             {
  34.                 new Prisoner("Иванов Иван Иванович", "Кража"),
  35.                 new Prisoner("Петров Петр Петрович", "Антиправительственное"),
  36.                 new Prisoner("Сидоров Сидор Сидорович", "Грабёж"),
  37.                 new Prisoner("Варнов Михаил Александрович", "Антиправительственное"),
  38.                 new Prisoner("Савельев Анатолий Максимович", "Убийство"),
  39.                 new Prisoner("Габдуллин Ринат Фаритович", "Антиправительственное"),
  40.                 new Prisoner("Юлдашев Айдар Маратович", "Мошенничество"),
  41.                 new Prisoner("Кадыров Магомед Ахмедович", "Антиправительственное"),
  42.                 new Prisoner("Петрова Анастасия Сергеевна", "Кража"),
  43.                 new Prisoner("Семенов Алексей Николаевич", "Грабёж"),
  44.             };
  45.         }
  46.     }
  47.  
  48.     public class PrisonerService
  49.     {
  50.         private List<Prisoner> _prisoners;
  51.         private bool _amnestyApplied = false;
  52.  
  53.         public PrisonerService()
  54.         {
  55.             PrisonerCreator creator = new PrisonerCreator();
  56.             _prisoners = creator.CreatePrisoners();
  57.         }
  58.  
  59.         public void Run()
  60.         {
  61.             const string CommandToShowPrisoners = "1";
  62.             const string CommandToApplyAmnesty = "2";
  63.             const string CommandToExit = "3";
  64.  
  65.             bool isWorking = true;
  66.  
  67.             while (isWorking)
  68.             {
  69.                 Console.Clear();
  70.                 Console.WriteLine("\nМеню:");
  71.                 Console.WriteLine($" {CommandToShowPrisoners}. Показать список заключённых");
  72.                 Console.WriteLine($" {CommandToApplyAmnesty}. Провести амнистию");
  73.                 Console.WriteLine($" {CommandToExit}. Выход");
  74.                 Console.Write(" Выберите пункт меню: ");
  75.  
  76.                 string userInput = Console.ReadLine();
  77.  
  78.                 switch (userInput)
  79.                 {
  80.                     case CommandToShowPrisoners:
  81.                         ShowPrisoners();
  82.                         break;
  83.  
  84.                     case CommandToApplyAmnesty:
  85.                         ApplyAmnesty();
  86.                         break;
  87.  
  88.                     case CommandToExit:
  89.                         isWorking = false;
  90.                         break;
  91.  
  92.                     default:
  93.                         Console.WriteLine("Некорректный ввод. Попробуйте снова.");
  94.                         break;
  95.                 }
  96.  
  97.                 Pause();
  98.             }
  99.         }
  100.  
  101.         private void ShowPrisoners()
  102.         {
  103.             Console.WriteLine(_amnestyApplied? "\nСписок заключённых после амнистии:" : "\nСписок заключённых до амнистии:");
  104.  
  105.             if (_prisoners.Count == 0)
  106.             {
  107.                 Console.WriteLine("Список пуст.");
  108.             }
  109.             else
  110.             {
  111.                 foreach (var prisoner in _prisoners)
  112.                 {
  113.                     Console.WriteLine($"{prisoner.FullName}, преступление: {prisoner.Crime}");
  114.                 }
  115.             }
  116.         }
  117.  
  118.         private void ApplyAmnesty()
  119.         {
  120.             if (_amnestyApplied)
  121.             {
  122.                 Console.WriteLine("\nАмнистия уже была проведена!");
  123.                 return;
  124.             }
  125.  
  126.             _prisoners = _prisoners.Where(prisoner => prisoner.Crime.Equals("Антиправительственное", StringComparison.OrdinalIgnoreCase) == false).ToList();
  127.             _amnestyApplied = true;
  128.            
  129.             Console.WriteLine("Амнистия проведена! Заключённые с преступлением 'Антиправительственное' освобождены.");
  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