Bob103

C#_Abstract(12,13-4)

Dec 13th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.02 KB | None | 0 0
  1. //Абстрактный:
  2. abstract class Transport : IComparable<Transport>
  3.     {
  4.         protected string stamp;//марка
  5.         protected int num;//номер
  6.         protected int speed;//скорость
  7.         public float carry;//грузоподъёмность
  8.         public abstract void Show();
  9.         public abstract void Carrying();
  10.  
  11.         public int CompareTo(Transport obj)
  12.         {
  13.             if (this.carry > obj.carry)
  14.                 return 1;
  15.             if (this.carry < obj.carry)
  16.                 return -1;
  17.             else return 0;
  18.         }
  19.     }
  20.  
  21. //Легковая машина:
  22. class Passenger_car : Transport
  23.     {
  24.  
  25.         public Passenger_car(string stamp,int num,int speed,float carry)
  26.         {
  27.             this.stamp = stamp;
  28.             this.num = num;
  29.             this.speed = speed;
  30.             this.carry = carry;
  31.         }
  32.  
  33.         public override void Show()
  34.         {
  35.            Console.WriteLine("Марка-{0}\tНомер-{1}\tСкорость-{2}\tГрузоподъёмность-{3}", stamp, num, speed, carry);
  36.         }
  37.  
  38.         public  override void Carrying()
  39.         {
  40.            Console.WriteLine("Грузоподъёмность = {0}",carry);
  41.         }
  42.  
  43.     }
  44.  
  45. //Мотоцикл:
  46. class Motorcycle : Passenger_car
  47.     {
  48.         public bool lulka;
  49.  
  50.         public Motorcycle(string stamp, int num, int speed, float carry,bool lulka):base(stamp,num,speed,carry)
  51.         {
  52.             this.lulka = lulka;
  53.  
  54.             if (this.lulka == false)
  55.             {
  56.                 base.carry = 0;
  57.             }
  58.            
  59.         }
  60.  
  61.         public override void Show()
  62.         {
  63.             Console.WriteLine("Марка-{0}\tНомер-{1}\tСкорость-{2}\tГрузоподъёмность-{3}\tЕсть люлька?->{4}", stamp, num, speed, carry, lulka);
  64.         }
  65.  
  66.         public override void Carrying()
  67.         {
  68.             Console.WriteLine("Грузоподъёмность = {0}", carry);
  69.         }
  70.     }
  71.  
  72. //Грузовик:
  73. class Truck : Passenger_car
  74.     {
  75.         protected bool trailer;
  76.  
  77.         public  Truck(string stamp, int num, int speed, float carry,bool trailer):base(stamp, num, speed, carry)
  78.         {
  79.             this.trailer = trailer;
  80.  
  81.             if (this.trailer == true)
  82.             {
  83.                 base.carry = carry * 2;
  84.             }
  85.            
  86.         }
  87.            
  88.         public override void Show()
  89.         {
  90.             Console.WriteLine("Марка-{0}\tНомер-{1}\tСкорость-{2}\tГрузоподъёмность-{3}\tЕсть прицеп?->{4}", stamp, num, speed, carry, trailer);
  91.         }
  92.  
  93.         public override void Carrying()
  94.         {
  95.             Console.WriteLine("Грузоподъёмность = {0}", carry);
  96.         }
  97.     }
  98.  
  99. //Главный класс:
  100. class Program
  101.     {
  102.  
  103.         static void Main()
  104.         {
  105.             string[] allLines = File.ReadAllLines("Input.txt");
  106.             List<Transport> n = new List<Transport>();
  107.  
  108.             string line = allLines[0];
  109.             string[] fields = line.Split(' ');
  110.             n.Add(new Motorcycle(fields[0], Convert.ToInt32(fields[1]), Convert.ToInt32(fields[2]), Convert.ToInt32(fields[3]),Convert.ToBoolean(fields[4])));
  111.  
  112.             line = allLines[1];
  113.             fields = line.Split(' ');
  114.             n.Add(new Truck(fields[0], Convert.ToInt32(fields[1]), Convert.ToInt32(fields[2]), Convert.ToInt32(fields[3]), Convert.ToBoolean(fields[4])));
  115.  
  116.  
  117.  
  118.             line = allLines[2];
  119.             fields = line.Split(' ');
  120.             n.Add(new Passenger_car(fields[0], Convert.ToInt32(fields[1]), Convert.ToInt32(fields[2]), Convert.ToInt32(fields[3])));
  121.  
  122.          
  123.  
  124.  
  125.  
  126.             n.Sort();
  127.            
  128.  
  129.             foreach (Transport item in n)
  130.             {
  131.                 item.Show();
  132.                 item.Carrying();
  133.                 Console.WriteLine();
  134.             }
  135.         }
  136.     }
  137. /*
  138. "Kawasaki" 555 60 100 true/false
  139. "Kamaz" 666 40 1000 true/false
  140. "BMW" 777 100 500
  141. */
Add Comment
Please, Sign In to add comment