Advertisement
istomina_sofia

С# наследование

Dec 28th, 2021
1,092
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.98 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Лаба_5
  4. {
  5.     public class chetireug //класс четырехугольников
  6.     {
  7.         public static Random rand = new Random();
  8.         public double ax = rand.Next(1, 4), ay = rand.Next(1, 4), bx = rand.Next(1, 4), by = rand.Next(1, 4), cx = rand.Next(1, 4), cy = rand.Next(1, 4), dx = rand.Next(1, 4), dy = rand.Next(1, 4);
  9.         public double AB, BC, CD, DA;
  10.         public double s, p;
  11.         public double AC, BD;
  12.         public int check;
  13.         public chetireug() //нахождение длин сторон
  14.         {
  15.             AB = Math.Sqrt(Math.Pow(Math.Abs(by - ay), 2) + Math.Pow(Math.Abs(bx - ax), 2));
  16.             BC = Math.Sqrt(Math.Pow(Math.Abs(cy - by), 2) + Math.Pow(Math.Abs(cx - bx), 2));
  17.             CD = Math.Sqrt(Math.Pow(Math.Abs(dy - cy), 2) + Math.Pow(Math.Abs(dx - cx), 2));
  18.             DA = Math.Sqrt(Math.Pow(Math.Abs(ay - dy), 2) + Math.Pow(Math.Abs(ax - dx), 2));
  19.         }
  20.         public void checkchetireug()//проверка на существование четырехугольника
  21.         {
  22.             if ((AB < (BC + CD + DA)) && (BC < (AB + CD + DA)) && (CD < (AB + BC + DA)) && (DA < (AB + BC + CD)) && (AB != 0) && (BC != 0) && (CD != 0) && (DA != 0))
  23.             {
  24.                 Console.WriteLine("Четырёхугольник существует");
  25.                 check = 1;
  26.             }
  27.             else
  28.             {
  29.                 Console.WriteLine("Четырёхугольник не существует");
  30.                 check = 0;
  31.             }
  32.         }
  33.         public double perimetr() //поиск периметра четырехугольника
  34.         {
  35.             p = AB + BC + CD + DA;
  36.             return p;
  37.         }
  38.         public double square() //поиск площади четырехугольника
  39.         {
  40.             double pp = 0;
  41.             pp = (AB + BC + CD + DA) / 2;
  42.             s = Math.Sqrt((pp - AB) * (pp - BC) * (pp - CD) * (pp - DA));
  43.             return s;
  44.         }
  45.         public double diag1() //поиск первой диагонали четырехугольника
  46.         {
  47.             AC = Math.Sqrt(Math.Pow(Math.Abs(cy - ay), 2) + Math.Pow(Math.Abs(cx - ax), 2));
  48.             return AC;
  49.         }
  50.         public double diag2()//поиск второй диагонали четырехугольника
  51.         {
  52.             BD = Math.Sqrt(Math.Pow(Math.Abs(dy - by), 2) + Math.Pow(Math.Abs(dx - bx), 2));
  53.             return BD;
  54.         }
  55.         public void print_info()//вывод на экран информации о четырехугольнике
  56.         {
  57.             Console.WriteLine("Длины сторон четырёхугольника: ");
  58.             Console.WriteLine("AB = " + AB + "\nBC = " + BC + "\nCD = " + CD + "\nDA = " + DA);
  59.             Console.WriteLine("Периметр четырёхугольника = " + p);
  60.             Console.WriteLine("Площадь четырёхугольника = " + s);
  61.             Console.WriteLine("Диагонали четырёхугольника: ");
  62.             Console.WriteLine("AC = " + AC + "\nBD = " + BD);
  63.         }
  64.     }
  65.  
  66.     public class paralelogram : chetireug//класс паралелограммов
  67.     {
  68.         public double maxsquare = 0;
  69.         public double minsquare = 0;
  70.         public paralelogram()//поиск сторон параллелограмма
  71.         {
  72.             ax = rand.Next(1, 8); ay = rand.Next(1, 8); bx = rand.Next(1, 8); by = rand.Next(1, 8); cx = rand.Next(1, 8); cy = rand.Next(1, 8);
  73.             AB = Math.Sqrt(Math.Pow(Math.Abs(by - ay), 2) + Math.Pow(Math.Abs(bx - ax), 2));
  74.             BC = Math.Sqrt(Math.Pow(Math.Abs(cy - by), 2) + Math.Pow(Math.Abs(cx - bx), 2));
  75.             CD = AB;
  76.             DA = BC;
  77.         }
  78.         public void checkparalelogram()//проверка на существование параллелограмма
  79.         {
  80.             if ((AB == CD) && (BC == DA))
  81.             {
  82.                 Console.WriteLine("Фигура - параллелограмм");
  83.                 check = 1;
  84.             }
  85.             else if ((AB < BC + CD + DA) || (BC < AB + CD + DA) || (CD < AB + BC + DA) || (DA < AB + BC + CD))
  86.             {
  87.                 Console.WriteLine("Фигура - четырехугольник");
  88.                 check = 1;
  89.             }
  90.             else
  91.             {
  92.                 Console.WriteLine("Фигура - не четырехугольник");
  93.                 check = 0;
  94.             }
  95.         }
  96.        
  97.         public double squarenm()//поиск площади параллелограмма
  98.         {
  99.             double pp = 0;
  100.             pp = (AB + BC + CD + DA) / 2;
  101.             s = Math.Sqrt((pp - AB) * (pp - BC) * (pp - CD) * (pp - DA));
  102.             return s;
  103.         }
  104.  
  105.         public void print()
  106.         {
  107.             Console.WriteLine("Площадь параллелограмма = " + s);
  108.         }
  109.     }
  110.     public class okruzhnost : paralelogram //класс окружности
  111.     {
  112.         private double radius;
  113.         public double s, l;
  114.         public okruzhnost(double radius)
  115.         {
  116.             this.radius = radius;
  117.         }
  118.         public double get_radius()//геттер для закрытой переменной радиуса
  119.         {
  120.             return radius;
  121.         }
  122.         public double set_radius(double r)//сеттер для закрытой переменной радиуса
  123.         {
  124.             radius = r;
  125.             return radius;
  126.         }
  127.         public double square(double radius)//поиск площади окружности
  128.         {
  129.             s = 3.141592 * Math.Pow(radius, 2);
  130.             return s;
  131.         }
  132.         public double lenghtokr(double radius)//поиск длины окружности
  133.         {
  134.             l = 2 * 3.141592 * radius;
  135.             return l;
  136.         }
  137.         public void printinfo()//вывод информации об окружности
  138.         {
  139.             Console.WriteLine("Радиус r = " + radius);
  140.             Console.WriteLine("Площадь окружности = " +  square(radius) );
  141.             Console.WriteLine("Длина окружности = " + lenghtokr(radius) + "\n\n");
  142.         }
  143.     }
  144.     public class paralell : paralelogram//класс параллелепипеда
  145.     {
  146.         double v;
  147.         new public double perimetr()//поиск периметра параллелепипеда
  148.         {
  149.             p = (AB + BC + CD + DA) * 4;
  150.             return p;
  151.         }
  152.         public double volume()//поиск обьема параллелепипеда
  153.         {
  154.             double h = (Math.Sqrt(3) / 2) * AB;
  155.             v = h * s;
  156.             return v;
  157.         }
  158.         public void print_info1()//вывод информации о параллелепипеде
  159.         {
  160.             Console.WriteLine("Длины сторон:");
  161.             Console.WriteLine("AB = " + AB + "\nBC = " + BC + "\nCD = " + CD + "\nDA = " + DA);
  162.             Console.WriteLine("Периметр = " + p);
  163.             Console.WriteLine("Объём параллелепипеда = " + v);
  164.         }
  165.         new public void print_info()//подробный вывод информации о параллелепипеде
  166.         {
  167.             Console.WriteLine("Длины сторон :");
  168.             Console.WriteLine("AB = " + AB + "\nBC = " + BC + "\nCD = " + CD + "\nDA = " + DA);
  169.             Console.WriteLine("Периметр = " + p);
  170.             Console.WriteLine("Объём параллелепипеда = " + v);
  171.         }
  172.     }
  173.     class programm
  174.     {
  175.         static void Main()
  176.         {
  177.             int N = 3, M = 2;
  178.             double sumsquare = 0, summator = 0;
  179.             chetireug[] chetireug = new chetireug[N];//выделение памяти на класс четырехугольников
  180.             paralelogram[] paralelogram = new paralelogram[M];//выделение памяти на класс параллелограммов
  181.             paralell[] paralell = new paralell[M];//выделение памяти на класс параллелепипеда
  182.             for (int i = 0; i < N; i++)//работа с четырехугольником
  183.             {
  184.                 Console.WriteLine("Четырёхугoльник № " + (i + 1));
  185.                 chetireug[i] = new chetireug();
  186.                 chetireug[i].checkchetireug();
  187.                 if (chetireug[i].check == 1)
  188.                 {
  189.                     chetireug[i].perimetr();
  190.                     summator = chetireug[i].square();
  191.                     sumsquare += summator;
  192.                     chetireug[i].diag1();
  193.                     chetireug[i].diag2();
  194.                     chetireug[i].print_info();
  195.                 }
  196.                 Console.WriteLine("\n");
  197.             }
  198.             double mediumsquare = sumsquare / N;//вычисление средней площади
  199.             Console.WriteLine("Средняя площадь четырёхугольников = " + mediumsquare);
  200.             Console.WriteLine("\n");
  201.             double maxsquare = 0;
  202.             double minsquare = 10;
  203.             double squaretor = 0;
  204.             for (int i = 0; i < M; i++)//работа с параллелограммом
  205.             {
  206.                 Console.WriteLine("Параллелограмм № " + (i + 1));
  207.                 paralelogram[i] = new paralelogram();
  208.                 paralelogram[i].checkparalelogram();
  209.                 if (chetireug[i].check == 1)
  210.                 {
  211.                     paralelogram[i].perimetr();
  212.                     squaretor = paralelogram[i].square();
  213.                     if (squaretor > maxsquare) { maxsquare = squaretor; };//поиск наибольшей площади
  214.                     if ((squaretor < minsquare) && (squaretor > 0)) { minsquare = squaretor; };//поиск наименьшей площади
  215.                     paralelogram[i].squarenm();
  216.                     paralelogram[i].print();
  217.                 }
  218.                 Console.WriteLine("\n");
  219.             }
  220.             Console.WriteLine("Наибольшее значение площади среди параллелограммов = " + maxsquare);
  221.             Console.WriteLine("Наименьшее значение площади среди параллелограммов = " + minsquare);
  222.             Console.WriteLine("\n");
  223.  
  224.             okruzhnost okr = new okruzhnost(1.2);
  225.             okr.printinfo();
  226.  
  227.             for (int i = 0; i < M; i++)//работа с параллелепипедом
  228.             {
  229.                 Console.WriteLine("Параллелепипед № " + (i + 1));
  230.                 paralell[i] = new paralell();
  231.                 paralell[i].perimetr();
  232.                 paralell[i].square();
  233.                 paralell[i].volume();
  234.                 paralell[i].print_info();
  235.                 Console.WriteLine("\n");
  236.             }
  237.         }
  238.     }
  239. }
  240.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement