Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save EreminAndrei/99c3fce72bef4934e57570902f98e26a to your computer and use it in GitHub Desktop.
Save EreminAndrei/99c3fce72bef4934e57570902f98e26a to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.Linq;
namespace project4
{
internal class Program
{
static void Main(string[] args)
{
SolderDatabase solderDatabase = new SolderDatabase();
solderDatabase.Work();
}
}
class UserUtils
{
private static Random s_random = new Random();
public static int GenerateRandomNumber(int min, int max)
{
return s_random.Next(min, max);
}
}
class SolderDatabase
{
private List<Solder> _solders1 = new List<Solder>();
private List<Solder> _solders2 = new List<Solder>();
public SolderDatabase()
{
Fill(_solders1);
Fill(_solders2);
}
public void Work()
{
Console.WriteLine("Добро пожаловать в базу солдат.");
ShowAllInfo(_solders1);
Console.WriteLine();
ShowAllInfo(_solders2);
Console.WriteLine();
var filteredSolders = _solders1.Where(solder => solder.Name.ToUpper().StartsWith("Б"));
_solders2 = _solders2.Union(filteredSolders).ToList();
ShowAllInfo(_solders2);
}
private void ShowAllInfo(List<Solder> solders)
{
foreach (var solder in solders)
{
solder.ShowInfo();
}
Console.WriteLine();
}
private void Fill(List<Solder> solders)
{
int maxNumberOfSolders = 10;
int minPeriodOfService = 1;
int maxPeriodOfService = 25;
string[] names = new string[] { "Иванов", "Сидоров", "Бобров", "Петров", "Бабаев", "Прохоров", "Сергеев", "Бубнов", "Соловьев" };
string[] weapons = new string[] { "Автомат", "Пулемет", "Гранатомет", "Танк", "САУ", "Пистолет" };
string[] ranks = new string[] { "Рядовой", "Лейтенант", "Капитан", "Майор", "Полковник", "Подполковник" };
for (int i = 0; i < maxNumberOfSolders; i++)
{
solders.Add(new Solder(names[UserUtils.GenerateRandomNumber(0, names.Length)], weapons[UserUtils.GenerateRandomNumber(0, weapons.Length)],
ranks[UserUtils.GenerateRandomNumber(0, ranks.Length)], UserUtils.GenerateRandomNumber(minPeriodOfService, maxPeriodOfService)));
}
}
}
class Solder
{
public Solder(string name, string weapon, string rank, int militaryServicePeriod)
{
Name = name;
Weapon = weapon;
Rank = rank;
MilitaryServicePeriod = militaryServicePeriod;
}
public string Name { get; private set; }
public string Weapon { get; private set; }
public string Rank { get; private set; }
public int MilitaryServicePeriod { get; private set; }
public void ShowInfo()
{
Console.WriteLine($"Имя: {Name}, Оружие: {Weapon}, Звание: {Rank}, Срок службы: {MilitaryServicePeriod}");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment