Advertisement
TeT91

ДЗ Отчет о вооружениее

Jun 26th, 2024
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.00 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace CSLight
  6. {
  7.     internal class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             PersonBase person = new PersonBase();
  12.             person.ShowSoldiersInfo();
  13.         }
  14.     }
  15.  
  16.     class PersonBase
  17.     {
  18.         private List<Person> _soldiers;
  19.  
  20.         public PersonBase()
  21.         {
  22.             GenerateSoldiers();
  23.         }
  24.  
  25.         public void ShowSoldiersInfo()
  26.         {
  27.             var filteredList = _soldiers.Select(soldier => new { Name = soldier.Name, Term = soldier.Term });
  28.  
  29.             foreach (var soldier in filteredList)
  30.             {
  31.                 Console.WriteLine($"{soldier.Name} - {soldier.Term} ");
  32.             }
  33.  
  34.             Console.ReadKey();
  35.         }
  36.  
  37.         private void GenerateSoldiers()
  38.         {
  39.             PersonCreator creator = new PersonCreator();
  40.             int dataBaseCapacity = 20;
  41.  
  42.             _soldiers = new List<Person>();
  43.  
  44.             for (int i = 0; i < dataBaseCapacity; i++)
  45.             {
  46.                 _soldiers.Add(creator.CreatePerson());
  47.             }
  48.         }
  49.     }
  50.  
  51.  
  52.     class PersonCreator
  53.     {
  54.         private List<string> _names;
  55.         private List<string> _surnames;
  56.         private List<string> _weapons;
  57.         private List<string> _ranks;
  58.  
  59.         public PersonCreator()
  60.         {
  61.             InitNames();
  62.             InitSurnames();
  63.             InitRanks();
  64.             InitWeapons();
  65.         }
  66.  
  67.         public Person CreatePerson()
  68.         {
  69.             int maxTerm = 50;
  70.  
  71.             string name = GetRandomValue(_names);
  72.             string surname = GetRandomValue(_surnames);
  73.             string weapon = GetRandomValue(_weapons);
  74.             string rank = GetRandomValue(_ranks);
  75.             int term = UserUtils.GenerateRandomValue(maxTerm);
  76.  
  77.             return new Person(name, surname, weapon, rank, term);
  78.         }
  79.  
  80.         private void InitSurnames()
  81.         {
  82.             _surnames = new List<string>();
  83.             _surnames.Add("Смирнов");
  84.             _surnames.Add("Иванов");
  85.             _surnames.Add("Кузнецов");
  86.             _surnames.Add("Попов");
  87.             _surnames.Add("Соколов");
  88.             _surnames.Add("Лебедев");
  89.             _surnames.Add("Козлов");
  90.             _surnames.Add("Новиков");
  91.             _surnames.Add("Морозов");
  92.             _surnames.Add("Козлов");
  93.             _surnames.Add("Волков");
  94.         }
  95.  
  96.         private void InitRanks()
  97.         {
  98.             _ranks = new List<string>();
  99.             _ranks.Add("Новобранец");
  100.             _ranks.Add("Рядовой");
  101.             _ranks.Add("Сержант");
  102.             _ranks.Add("Генерал");
  103.  
  104.         }
  105.  
  106.         private void InitNames()
  107.         {
  108.             _names = new List<string>();
  109.             _names.Add("Максим");
  110.             _names.Add("Михаил");
  111.             _names.Add("Александр");
  112.             _names.Add("Дмитрий");
  113.             _names.Add("Денис");
  114.             _names.Add("Илья");
  115.             _names.Add("Андрей");
  116.             _names.Add("Артем");
  117.             _names.Add("Иван");
  118.             _names.Add("Алексей");
  119.             _names.Add("Никита");
  120.         }
  121.  
  122.         private void InitWeapons()
  123.         {
  124.             _weapons = new List<string>();
  125.             _weapons.Add("Пистолет");
  126.             _weapons.Add("Автомат");
  127.             _weapons.Add("Пулемет");
  128.             _weapons.Add("Гранатомет");
  129.         }
  130.  
  131.         private string GetRandomValue(List<string> values)
  132.         {
  133.             int randomId = UserUtils.GenerateRandomValue(values.Count);
  134.             return values[randomId];
  135.         }
  136.  
  137.         private bool SetStatus()
  138.         {
  139.             int chance = 50;
  140.             int maxChance = 100;
  141.  
  142.             return UserUtils.GenerateRandomValue(maxChance) > chance;
  143.         }
  144.     }
  145.  
  146.     class Person
  147.     {
  148.         public Person(string name, string surname, string weapon, string rank, int term)
  149.         {
  150.             Name = name;
  151.             Weapon = weapon;
  152.             Rank = rank;
  153.             Term = term;
  154.         }
  155.  
  156.         public string Name { get; private set; }
  157.  
  158.         public string Surname { get; private set; }
  159.  
  160.         public string Weapon { get; private set; }
  161.  
  162.         public string Rank { get; private set; }
  163.  
  164.         public int Term { get; private set; }
  165.     }
  166.  
  167.     static class UserUtils
  168.     {
  169.         private static Random s_random = new Random();
  170.  
  171.         public static int GenerateRandomValue(int maxValue)
  172.         {
  173.             return s_random.Next(maxValue);
  174.         }
  175.  
  176.         public static int GenerateRandomValue(int minValue, int maxValue)
  177.         {
  178.             return s_random.Next(minValue, maxValue);
  179.         }
  180.  
  181.         public static double GenerateRandomDouble()
  182.         {
  183.             return s_random.NextDouble();
  184.         }
  185.     }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement