Advertisement
NikaBang

Финал

Dec 21st, 2022 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.09 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Linq;
  5.  
  6. internal class Program
  7. {
  8.     //Есть 2 списка в солдатами.
  9.     //Всех бойцов из отряда 1, у которых фамилия начинается на букву Б, требуется перевести в отряд 2.
  10.  
  11.     static void Main(string[] args)
  12.     {
  13.         Army army = new Army();
  14.         army.RunProgram();
  15.     }
  16.  
  17.     class Solder
  18.     {
  19.         public string Name { get; }
  20.         public string Armament { get; }
  21.         public string Rank { get; }
  22.         public int ServiceLife { get; }
  23.  
  24.         public Solder(string name, string armament, string rank, int serviceLife)
  25.         {
  26.             Name = name;
  27.             Armament = armament;
  28.             Rank = rank;
  29.             ServiceLife = serviceLife;
  30.         }
  31.  
  32.         public void ShowInfo()
  33.         {
  34.             Console.WriteLine($"Фамилия {Name}, войска {Armament}, звание {Rank}, срок службы {ServiceLife} месяцев.");
  35.         }
  36.     }
  37.  
  38.     class Army
  39.     {
  40.         private List<Solder> _squadOne;
  41.         private List<Solder> _squadTwo;
  42.  
  43.         public Army()
  44.         {
  45.             _squadOne = new List<Solder>();
  46.             _squadTwo = new List<Solder>();
  47.  
  48.             Fill();
  49.         }
  50.  
  51.         public void RunProgram()
  52.         {
  53.             string commandPointOne = "1";
  54.             string commandExitProgram = "Exit";
  55.             bool inProgram = true;
  56.  
  57.             Console.WriteLine("Наша армия: ");
  58.  
  59.             foreach (var solder in _squadOne)
  60.             {
  61.                 solder.ShowInfo();
  62.             }
  63.  
  64.             while (inProgram)
  65.             {
  66.                 Console.Write($"\n{commandPointOne} - Всех бойцов из отряда 1, у которых фамилия начинается на букву Б, требуется перевести в отряд 2." +
  67.                     $"\n{commandExitProgram} - Завершить программу.\nВведите команду: ");
  68.                 string userInput = Console.ReadLine();
  69.  
  70.                 if (userInput == commandPointOne)
  71.                 {
  72.                     TransferSolder(_squadOne, _squadTwo);
  73.                 }
  74.                 else if (userInput == commandExitProgram)
  75.                 {
  76.                     Console.WriteLine("Программа завершена.");
  77.                     inProgram = false;
  78.                 }
  79.                 else
  80.                 {
  81.                     Console.WriteLine("Ошибка ввода!");
  82.                 }
  83.  
  84.                 Console.ReadKey();
  85.                 Console.Clear();
  86.             }
  87.         }
  88.  
  89.         public void TransferSolder(List<Solder> squadFirst, List<Solder> squadSecond)
  90.         {
  91.             string controlChar = "Б";
  92.  
  93.             var sortingSolde = squadFirst.Where(solder => solder.Name.ToUpper().StartsWith(controlChar)).ToList();
  94.  
  95.             squadFirst = squadFirst.Except(sortingSolde).ToList();
  96.                
  97.             squadSecond = squadSecond.Union(sortingSolde).ToList();
  98.  
  99.             Console.WriteLine("Отряд №1:\n");
  100.  
  101.             foreach (var solder in squadFirst)
  102.             {
  103.                 Console.WriteLine(solder.Name);
  104.             }
  105.  
  106.             Console.WriteLine("\nОтряд№2: \n");
  107.  
  108.             foreach (var solder in squadSecond)
  109.             {
  110.                 Console.WriteLine(solder.Name);
  111.             }
  112.         }
  113.  
  114.         private void Fill()
  115.         {
  116.             Solder[] solders =
  117.             {
  118.                 new Solder("Иванов", "Танкист", "Рядовой", 4), new Solder("Баранов", "Танкист", "Старшина", 25), new Solder("Бутин", "Моряк", "Рядовой", 6),
  119.                 new Solder("Чебурекин", "Связист", "Капитан", 40), new Solder("Тараненко", "Ракетчик", "Сержант", 18), new Solder("Бабочка", "Десант", "Полковник", 120)
  120.             };
  121.  
  122.             _squadOne.AddRange(solders);
  123.         }
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement