Advertisement
Vlad_Savitskiy

Soldiers

Jun 30th, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.65 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CSLightFirst
  6. {
  7.     class Program
  8.     {
  9.         private static void Main()
  10.         {
  11.             List<Soldier> soldiers = GenerateSoldiers();
  12.  
  13.             while (true)
  14.             {
  15.                 Console.WriteLine("Выберите, что Вам нужно сделать:\n" +
  16.                                   "  1 - Показать только имена и звания военных\n" +
  17.                                   "  2 - Показать всех военных\n");
  18.                 Console.Write("Ваш ответ: ");
  19.  
  20.                 switch (Console.ReadLine())
  21.                 {
  22.                     case "1":
  23.                         MakeSelection(soldiers);
  24.                         break;
  25.                     case "2":
  26.                         ShowAllSoldiers(soldiers);
  27.                         break;
  28.                     default:
  29.                         Console.WriteLine("Некорректное введенное значение, попробуйте ещё раз...");
  30.                         break;
  31.                 }
  32.             }
  33.         }
  34.  
  35.         private static void MakeSelection(IEnumerable<Soldier> soldiers)
  36.         {
  37.             var selection = soldiers.Select(soldier => Tuple.Create(soldier.Name, soldier.Rank));
  38.            
  39.             Console.Clear();
  40.             Console.WriteLine("Имена и звания военных:\n");
  41.  
  42.             foreach (Tuple<string, string> tuple in selection)
  43.                 Console.WriteLine($"  Солдат: {tuple.Item1}\n  Звание: {tuple.Item2}\n");
  44.         }
  45.  
  46.         private static void ShowAllSoldiers(List<Soldier> soldiers)
  47.         {
  48.             Console.Clear();
  49.             Console.WriteLine("Полный список военных:\n");
  50.  
  51.             foreach (Soldier soldier in soldiers)
  52.                 soldier.ShowInfo();
  53.         }
  54.  
  55.         private static List<Soldier> GenerateSoldiers()
  56.         {
  57.             Random rand = new Random();
  58.  
  59.             string[] names = { "Джон", "Хью", "Энн", "Джек", "Уил", "Марк", "Лиз", "Майкл", "Дэвис" };
  60.             string[] armament = { "Танк", "ПВО", "БМП", "Подводная лодка", "Эсминец", "Линкор", "Пехота" };
  61.             string[] rank = { "Лейтенант", "Майор", "Капитан", "Сержант", "Генерал", "Полковник", "Рядовой" };
  62.  
  63.             List<Soldier> soldiers = new List<Soldier>(rand.Next(5, 11));
  64.  
  65.             for (int i = 0; i < soldiers.Capacity; i++)
  66.                 soldiers.Add(new Soldier(
  67.                     names[rand.Next(0, names.Length)],
  68.                     armament[rand.Next(0, armament.Length)],
  69.                     rank[rand.Next(0, rank.Length)],
  70.                     rand.Next(1, 25)));
  71.  
  72.             return soldiers;
  73.         }
  74.     }
  75.  
  76.     class Soldier
  77.     {
  78.         public string Name { get; }
  79.         public string Armament { get; }
  80.         public string Rank { get; }
  81.         public int MilitaryLife { get; }
  82.  
  83.         public Soldier(string name, string armament, string rank, int militaryLife)
  84.         {
  85.             Name = name;
  86.             Armament = armament;
  87.             Rank = rank;
  88.             MilitaryLife = militaryLife;
  89.         }
  90.  
  91.         public void ShowInfo()
  92.         {
  93.             Console.WriteLine($"  Солдат: {Name}\n" +
  94.                               $"  Вооружение: {Armament}\n" +
  95.                               $"  Звание: {Rank}\n" +
  96.                               $"  Срок службы: {MilitaryLife}\n");
  97.         }
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement