Advertisement
Serby__

12,13

Dec 7th, 2021
1,201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.07 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3.  
  4. namespace ConsoleApp9
  5. {
  6.  
  7.     abstract class Tovar: IComparable<Tovar> //абстрактный класс
  8.     {
  9.         public int vozrast;//поле общее для всех классов
  10.         abstract public void Show(); // абстрактный метод для вывода
  11.  
  12.         abstract public void Check(int n); // абстрактный метод для проверки категории
  13.         public int CompareTo(Tovar other)// для сортировки
  14.         {
  15.             if (this.vozrast > other.vozrast)
  16.                 return 1;
  17.             else if (this.vozrast < other.vozrast)
  18.                 return -1;
  19.             else
  20.                 return 0;
  21.         }
  22.     }
  23.  
  24.     class Toy : Tovar
  25.     {
  26.         string name, proizvoditel, material;
  27.         double cena;
  28.  
  29.         public Toy(string name, double cena, string proizvoditel, string material, int vozrast)
  30.         {
  31.             this.name = name;
  32.             this.cena = cena;
  33.             this.proizvoditel = proizvoditel;
  34.             this.material = material;
  35.             this.vozrast = vozrast;
  36.         }
  37.  
  38.         public override void Check(int n)
  39.         {
  40.             if (n <= vozrast)
  41.             {
  42.                 Console.WriteLine("Товар " + name + " не подходит возрастной категории");
  43.             }
  44.             else
  45.             {
  46.                 Console.WriteLine("Товар " + name + " подходит для введеннного возраста");
  47.             }
  48.         }
  49.  
  50.         public override void Show()
  51.         {
  52.             Console.WriteLine("Название продукта - " + name + " цена - " + cena + " производитель - " + proizvoditel + " материал - " + material + " возрастная категория - " + vozrast);
  53.         }
  54.  
  55.     }
  56.  
  57.     class Book : Tovar
  58.     {
  59.         string name, avtor, izdatelstvo;
  60.         double cena;
  61.         int god;
  62.  
  63.         public Book(string name, string avtor, double cena,  string izdatelstvo, int god, int vozrast)
  64.         {
  65.             this.name = name;
  66.             this.avtor = avtor;
  67.             this.cena = cena;
  68.             this.izdatelstvo = izdatelstvo;
  69.             this.god = god;
  70.             this.vozrast = vozrast;
  71.         }
  72.  
  73.         public override void Check(int n)
  74.         {
  75.             if (n <= vozrast)
  76.             {
  77.                 Console.WriteLine("Товар "+name+ " не подходит возрастной категории");
  78.             }
  79.             else
  80.             {
  81.                 Console.WriteLine("Товар " + name + " подходит для введеннного возраста");
  82.             }
  83.         }
  84.  
  85.         public override void Show()
  86.         {
  87.             Console.WriteLine("Название продукта - " + name + " автор - " + avtor + " цена - " + cena + " издательство - " + izdatelstvo + " возрастная категория - " + vozrast);
  88.        
  89.         }
  90.     }
  91.  
  92.  
  93.     class Sport : Tovar
  94.     {
  95.         string name, proizvoditel;
  96.         double cena;
  97.  
  98.         public Sport(string name, double cena, string proizvoditel, int vozrast)
  99.         {
  100.             this.name = name;
  101.             this.cena = cena;
  102.             this.proizvoditel = proizvoditel;
  103.             this.vozrast = vozrast;
  104.         }
  105.  
  106.         public override void Check(int n)
  107.         {
  108.             if (n <= vozrast)
  109.             {
  110.                 Console.WriteLine("Товар " + name + " не подходит возрастной категории");
  111.             }
  112.             else
  113.             {
  114.                 Console.WriteLine("Товар " + name + " подходит для введеннного возраста");
  115.             }
  116.         }
  117.  
  118.         public override void Show()
  119.         {
  120.             Console.WriteLine("Название продукта - " + name + " цена - " + cena + " производитель - " + proizvoditel +  " возрастная категория - " + vozrast);
  121.         }
  122.     }
  123.     class Program
  124.     {
  125.         static void Main(string[] args)
  126.         {
  127.  
  128.             using (StreamReader fileIn = new StreamReader("file1.txt"))
  129.             {
  130.                 using (StreamWriter fileOut = new StreamWriter("file2.txt"))
  131.                 {
  132.                     int n = int.Parse(fileIn.ReadLine());
  133.                     Tovar[] a = new Tovar[n];
  134.                     for (int i = 0; i < n; ++i)
  135.                     {
  136.  
  137.                         string[] line = fileIn.ReadLine().Split();
  138.  
  139.                         if (line.Length == 4)
  140.                         {
  141.                             a[i] = new Sport(line[0], int.Parse(line[1]), line[2], int.Parse(line[3]));
  142.                         }
  143.                         else if (line.Length == 5)
  144.                         {
  145.                             a[i] = new Toy(line[0], int.Parse(line[1]), line[2], line[3], int.Parse(line[4]));
  146.                         }
  147.                         else
  148.                         {
  149.                             a[i] = new Book(line[0], line[1], int.Parse(line[2]), line[3], int.Parse(line[4]), int.Parse(line[5]));
  150.                         }
  151.                     }
  152.  
  153.                     foreach (var x in a)
  154.                     {
  155.                         x.Show();
  156.                     }
  157.  
  158.                     Console.WriteLine();
  159.                     Console.WriteLine("Поиск.Введите возраст покупателя для которого хотите преобрести товар: ");
  160.                     int k = int.Parse(Console.ReadLine());
  161.                     foreach (var x in a)
  162.                     {
  163.                         x.Check(k);
  164.                     }
  165.  
  166.                     Console.WriteLine();
  167.                     Console.WriteLine("Отсортированный список товаров:");
  168.                     Array.Sort(a);
  169.                     foreach (var x in a)
  170.                     {
  171.                         x.Show();
  172.                     }
  173.                 }      
  174.         }   }
  175.     }
  176. }
  177.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement