HaoAsakura

МеждуНебомИЗемлейОдинЛишьЯДостоин

Oct 29th, 2023
1,219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 13.16 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. //важня хуйня чтоб мы могли юзать вложенные классы из AirplaneCrew
  4. using static PracticingPolygon.Program.AirplaneCrew;
  5.  
  6. namespace PracticingPolygon
  7. {
  8.     internal class Program
  9.     {
  10.         public class AirplaneCrew
  11.         {
  12.             public class Airplane
  13.             {
  14.                 public string Name { get; private set; }
  15.                 public string Model { get; private set; }
  16.                 public int TankСapacity { get; private set; }
  17.                 public int LoadCapacity { get; private set; }
  18.  
  19.                 public Airplane(string Name, string Model, int TankСapacity, int LoadCapacity)
  20.                 {
  21.                     this.Name = Name;
  22.                     this.Model = Model;
  23.                     this.TankСapacity = TankСapacity;
  24.                     this.LoadCapacity = LoadCapacity;
  25.                 }
  26.  
  27.                 public void GetСharacteristics()
  28.                 {
  29.                     Console.WriteLine($"[!] Информация о самолете {Name} [!] \n\n" +
  30.                         $"Модель: {Model} \n" +
  31.                         $"Ёмкость бака: {TankСapacity} литров \n" +
  32.                         $"Грузо-подъёмность: {LoadCapacity} тон \n");
  33.                 }
  34.             }
  35.  
  36.             public class AirlineCompany
  37.             {
  38.                 public string Name { get; private set; }
  39.                 public int FoundationYear { get; private set; }
  40.                 public string ShortHistory { get; private set; }
  41.  
  42.                 public AirlineCompany(string Name, int FoundationYear, string ShortHistory)
  43.                 {
  44.                     this.Name = Name;
  45.                     this.FoundationYear = FoundationYear;
  46.                     this.ShortHistory = ShortHistory;
  47.                 }
  48.  
  49.                 public AirlineCompany(string Name, int FoundationYear)
  50.                 {
  51.                     this.Name = Name;
  52.                     this.FoundationYear = FoundationYear;
  53.                 }
  54.  
  55.                 public void GetInfo()
  56.                 {
  57.                     Console.WriteLine($"[!] Информация о авиакомпании самолета [!] \n\n" +
  58.                         $"Название авиакомпании: {Name} \n" +
  59.                         $"Год основания: {FoundationYear} \n");
  60.  
  61.                     if(ShortHistory != null)
  62.                         Console.WriteLine($"Краткая история авиакомпании: {ShortHistory} \n");
  63.                 }
  64.             }
  65.  
  66.             public abstract class AirplaneCrewMember
  67.             {
  68.                 public string Name { get; set; }
  69.                 public byte Seniority { get; set; }
  70.                 public byte Age { get; set; }
  71.                 public abstract string JobTitle { get; set; }
  72.  
  73.                 public AirplaneCrewMember(string Name, byte Seniority, byte Age)
  74.                 {
  75.                     this.Name = Name;
  76.                     this.Seniority = Seniority;
  77.                     this.Age = Age;
  78.                 }
  79.  
  80.                 public void GetInfo()
  81.                 {
  82.                     Console.WriteLine($"[!] Информация о члене экипажа: {JobTitle} [!]\n" +
  83.                         $"Имя: {Name} \n" +
  84.                         $"Стаж: {Seniority} лет \n" +
  85.                         $"Возраст: {Age} лет    \n");
  86.                 }
  87.             }
  88.  
  89.             public class Commander : AirplaneCrewMember
  90.             {
  91.                 public override string JobTitle { get; set; } = "Командир";
  92.                 public Commander(string Name, byte Seniority, byte Age) : base(Name, Seniority, Age) { }
  93.             }
  94.            
  95.             public class CoPilot : AirplaneCrewMember
  96.             {
  97.                 public override string JobTitle { get; set; } = "Второй пилот";
  98.                 public CoPilot(string Name, byte Seniority, byte Age) : base(Name, Seniority, Age) { }
  99.  
  100.             }
  101.  
  102.             public class Navigator : AirplaneCrewMember
  103.             {
  104.                 public override string JobTitle { get; set; } = "Штурман";
  105.                 public Navigator(string Name, byte Seniority, byte Age) : base(Name, Seniority, Age) { }
  106.             }
  107.  
  108.             public class Steward : AirplaneCrewMember
  109.             {
  110.                 public override string JobTitle { get; set; } = "Стюардесса";
  111.                 public Steward(string Name, byte Seniority, byte Age) : base(Name, Seniority, Age) { }
  112.             }
  113.  
  114.             public class Passanger
  115.             {
  116.                 public string Name { get; private set; }
  117.                 public byte Age { get; private set; }
  118.                 public string Destination { get; private set; }
  119.  
  120.                 public Passanger(string Name, byte Age, string Destination)
  121.                 {
  122.                     this.Name = Name;
  123.                     this.Age = Age;
  124.                     this.Destination = Destination;
  125.                 }
  126.  
  127.                 public static void GetInfoAboutPassengers(List<Passanger> passangers)
  128.                 {
  129.                     Console.WriteLine("[!] Информация о пассажирах в самолете [!] \n");
  130.  
  131.                     int count = 0;
  132.                     foreach (Passanger passanger in passangers)
  133.                     {
  134.                         Console.WriteLine($"[№{count+1}] Имя: {passanger.Name}, " +
  135.                                           $"{passanger.Age} лет," +
  136.                                           $"место назначения: {passanger.Destination} \n");
  137.  
  138.                         count++;
  139.                     }
  140.                 }
  141.             }
  142.  
  143.             public AirlineCompany _AirlineCompany { get; private set; }
  144.             public Airplane _Airplane { get; private set; }
  145.             public Commander _Commander { get; private set; }
  146.             public CoPilot _CoPilot { get; private set; }
  147.             public Navigator _Navigator { get; private set; }
  148.             public Steward _Steward { get; private set; }
  149.             public List<Passanger> _Passengers { get; private set; } = new List<Passanger>(10);
  150.  
  151.             public AirplaneCrew(AirlineCompany AirlineCompany, Airplane Airplane,
  152.                 Commander Commander, CoPilot CoPilot, Navigator Navigator,
  153.                 Steward Steward, List<Passanger> Passengers)
  154.             {
  155.                 _AirlineCompany = AirlineCompany;
  156.                 _Airplane = Airplane;
  157.                 _Commander = Commander;
  158.                 _CoPilot = CoPilot;
  159.                 _Navigator = Navigator;
  160.                 _Steward = Steward;
  161.                 _Passengers = Passengers;
  162.             }
  163.  
  164.             public void GetAirlineCompanyData()
  165.             {
  166.                 _AirlineCompany.GetInfo();
  167.             }
  168.  
  169.             public void GetAirplaneData()
  170.             {
  171.                 _Airplane.GetСharacteristics();
  172.             }
  173.  
  174.             public void GetAirplaneCrewMembersData()
  175.             {
  176.                 Console.WriteLine($"[!] Информация о членах экипажа [!] \n\n");
  177.  
  178.                 _Commander.GetInfo();
  179.                 _CoPilot.GetInfo();
  180.  
  181.                 _Navigator.GetInfo();
  182.                 _Steward.GetInfo();
  183.             }
  184.  
  185.             public void GetPassengersData()
  186.             {
  187.                 Passanger.GetInfoAboutPassengers(_Passengers);
  188.             }
  189.         }
  190.  
  191.         static void Main(string[] args)
  192.         {
  193.             AirplaneCrew airplaneCrew = new AirplaneCrew(
  194.  
  195.                 AirlineCompany: new AirlineCompany(
  196.                     Name:"Авиакомпания Авиасейлс",
  197.                     FoundationYear: 1989,
  198.                     ShortHistory: "История типо компании"
  199.                 ),
  200.  
  201.                 Airplane: new Airplane(
  202.                     Name: "Уничтожитель",
  203.                     Model: "Боинг 33",
  204.                     TankСapacity: 34,
  205.                     LoadCapacity: 55
  206.                 ),
  207.  
  208.                 Commander: new Commander(
  209.                     Name: "Семенов Даниил Фёдорович",
  210.                     Seniority: 22,
  211.                     Age: 55
  212.                 ),
  213.  
  214.                 CoPilot: new CoPilot(
  215.                     Name: "Быков Роберт Иванович",
  216.                     Seniority: 10,
  217.                     Age: 32
  218.                 ),
  219.  
  220.                 Navigator: new Navigator(
  221.                     Name: "Николаев Артур Никитич",
  222.                     Seniority: 11,
  223.                     Age: 36
  224.                 ),
  225.  
  226.                 Steward: new Steward(
  227.                     Name: "Родионова Анастасия Григорьевна",
  228.                     Seniority: 3,
  229.                     Age: 25
  230.                 ),
  231.  
  232.                 Passengers: new List<Passanger>()
  233.                 {
  234.  
  235.                     new Passanger(
  236.                         Name: "Трофимов Тимофей Вячеславович",
  237.                         Age: 22,
  238.                         Destination: "Фареры"
  239.                     ),
  240.  
  241.                     new Passanger(
  242.                         Name: "Воробьев Артём Ильич",
  243.                         Age: 34,
  244.                         Destination: "Сьерра-Леоне"
  245.                     ),
  246.  
  247.                     new Passanger(
  248.                         Name: "Яшина Виктория Львовна",
  249.                         Age: 25,
  250.                         Destination: "Фареры"
  251.                     ),
  252.  
  253.                     new Passanger(
  254.                         Name: "Герасимов Ярослав Леонидович",
  255.                         Age: 19,
  256.                         Destination: "Аргентина"
  257.                     ),
  258.  
  259.                     new Passanger(
  260.                         Name: "Григорьев Даниил Родионович",
  261.                         Age: 21,
  262.                         Destination: "Аргентина"
  263.                     ),
  264.  
  265.                     new Passanger(
  266.                         Name: "Попова Василиса Артёмовна",
  267.                         Age: 36,
  268.                         Destination: "Фареры"
  269.                     ),
  270.  
  271.                     new Passanger(
  272.                         Name: "Романова Карина Данииловна",
  273.                         Age: 57,
  274.                         Destination: "Таиланд"
  275.                     ),
  276.  
  277.                     new Passanger(
  278.                         Name: "Егорова Елизавета Артёмовна",
  279.                         Age: 19,
  280.                         Destination: "Бурунди"
  281.                     ),
  282.  
  283.                     new Passanger(
  284.                         Name: "Усова Эмилия Павловна",
  285.                         Age: 46,
  286.                         Destination: "Аргентина"
  287.                     ),
  288.  
  289.                     new Passanger(
  290.                         Name: "Коновалов Ярослав Святославович",
  291.                         Age: 28,
  292.                         Destination: "Фареры"
  293.                     )
  294.                 }
  295.  
  296.                 );
  297.             int choise = -1;
  298.  
  299.             Console.WriteLine($"[Оператор] Управление самолетом {airplaneCrew._Airplane.Name}\n");
  300.             while (choise!=0)
  301.             {
  302.                 Console.WriteLine("[?]Что вы хотите сделать [?] \n\n" +
  303.                     "[0] Выход из меню управления самолетом\n" +
  304.                     "[1] Информация о членах экипажа \n" +
  305.                     "[2] Информация о пассажирах \n" +
  306.                     "[3] Информация о авиакомпании \n" +
  307.                     "[4] Информация о технической части самолета \n\n");
  308.  
  309.                 Console.Write("[Оператор] Я хочу: ");
  310.                 choise = int.Parse(Console.ReadLine());
  311.                
  312.                 Console.WriteLine();
  313.                
  314.                 switch (choise)
  315.                 {
  316.                     case 0:
  317.                         break;
  318.                     case 1:
  319.                         airplaneCrew.GetAirplaneCrewMembersData();
  320.                         break;
  321.                     case 2:
  322.                         airplaneCrew.GetPassengersData();
  323.                         break;
  324.                     case 3:
  325.                         airplaneCrew.GetAirlineCompanyData();
  326.                         break;
  327.                     case 4:
  328.                         airplaneCrew.GetAirplaneData();
  329.                         break;
  330.                 }
  331.                
  332.                 if (choise == 0)
  333.                     break;
  334.  
  335.                 Console.Write("\nНажмите на любую клавишу..");
  336.                 Console.ReadLine();
  337.                 Console.Clear();
  338.             }
  339.  
  340.  
  341.         }
  342.     }
  343. }
Advertisement
Add Comment
Please, Sign In to add comment