lovelyvook

Unit_55

Aug 18th, 2024
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.51 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace Ijunior
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Inspector inspector = new Inspector();
  12.             inspector.Work();
  13.         }
  14.     }
  15.  
  16.     class Inspector
  17.     {
  18.         private Database _database = new Database();
  19.  
  20.         public void Work()
  21.         {
  22.             Console.WriteLine("Полный список:\n");
  23.             _database.ShowInfo();
  24.  
  25.             Console.WriteLine("\n\nСписок из имен и званий:\n");
  26.             SortSoldiers();
  27.         }
  28.  
  29.         private void SortSoldiers()
  30.         {
  31.             var sortedSoldiers = _database.Soldiers.Select(soldier => new {Name = soldier.Name, Rank = soldier.Rank}).ToList();
  32.            
  33.             foreach (var soldier in sortedSoldiers)
  34.             {
  35.                 Console.WriteLine($"{soldier.Name} - звание {soldier.Rank}");
  36.             }
  37.         }
  38.     }
  39.  
  40.     class Database
  41.     {
  42.         private List<Soldier> _soldiers;
  43.  
  44.         public Database()
  45.         {
  46.             _soldiers = new List<Soldier>();
  47.             AddSoldiers();
  48.         }
  49.  
  50.         public List<Soldier> Soldiers => _soldiers.ToList();
  51.  
  52.         public void ShowInfo()
  53.         {
  54.             foreach (Soldier soldier in _soldiers)
  55.             {
  56.                 Console.WriteLine($"{soldier.Name} - звание {soldier.Rank}, оружиие {soldier.Weapon}, {soldier.ServiceLife} месяцев слыжбы");
  57.             }
  58.         }
  59.  
  60.         private void AddSoldiers()
  61.         {
  62.             _soldiers.Add(new Soldier("Александров", "Рядовой", "Автомат", GenerateServiceLife()));
  63.             _soldiers.Add(new Soldier("Борисов", "Рядовой", "Автомат", GenerateServiceLife()));
  64.             _soldiers.Add(new Soldier("Васильев", "Рядовой", "Автомат", GenerateServiceLife()));
  65.             _soldiers.Add(new Soldier("Гусев", "Рядовой", "Автомат", GenerateServiceLife()));
  66.             _soldiers.Add(new Soldier("Дмитриев", "Сержант", "Пулемет", GenerateServiceLife()));
  67.             _soldiers.Add(new Soldier("Егоров", "Сержант", "Пулемет", GenerateServiceLife()));
  68.             _soldiers.Add(new Soldier("Кузнецов", "Капитан", "Дробовик", GenerateServiceLife()));
  69.             _soldiers.Add(new Soldier("Лебедев", "Капитан", "Дробовик", GenerateServiceLife()));
  70.             _soldiers.Add(new Soldier("Павлов", "Генерал", "Револьвер", GenerateServiceLife()));
  71.         }
  72.  
  73.         private int GenerateServiceLife()
  74.         {
  75.             int minServiceLife = 6;
  76.             int maxServiceLife = 13;
  77.  
  78.             return Utils.GetRandomNumber(minServiceLife, maxServiceLife);
  79.         }
  80.     }
  81.  
  82.     class Soldier
  83.     {
  84.         public Soldier(string name, string rank, string weapon, int serviceLife)
  85.         {
  86.             Name = name;
  87.             Rank = rank;
  88.             Weapon = weapon;
  89.             ServiceLife = serviceLife;
  90.         }
  91.  
  92.         public string Name { get; }
  93.         public string Rank { get; }
  94.         public string Weapon { get; }
  95.         public int ServiceLife { get; }
  96.     }
  97.  
  98.     class Utils
  99.     {
  100.         private static Random s_random = new Random();
  101.  
  102.         public static int GetRandomNumber(int minValue, int maxValue)
  103.         {
  104.             return s_random.Next(minValue, maxValue);
  105.         }
  106.     }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment