Классы. Изучение основных концепций объектно-ориентированного программирования (наследование, инкапсуляция, полиморфизм). Составление консольных приложений с использованием классов

Страницы работы

4 страницы (Word-файл)

Содержание работы

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ

ИМ. Н. Е. ЖУКОВСКОГО «ХАИ»

Выполнил: студентка группы 335

Старцева А.В.

Проверил: доцент каф. 304

Скоб Ю.А

ЛАБОРАТОРНАЯ РАБОТА №5

«Классы»

ВАРИАНТ № 8

Цель 

•  Изучение  основных  концепций  объектно-ориентированного  программирования (наследование, инкапсуляция, полиморфизм)

•  Изучение назначения, правил объявления и реализации классов C#.

•  Усвоение правил доступа к членам классов (модификаторы доступа).

•  Составление консольных приложений с использованием классов.

Условие

Программныйкод:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace borisenko7

{

    class Program

    {

        static void Main()

        {

            double X1,A1,Alfa1;   // вещественная переменная для арифм. выражения

            double X2, Y2;   // вещественные переменные для логического выражения

            bool

                A2, B2,C2;    // логические переменные для логического выражения

            string line;

            Console.Write(" X1 = "); line = Console.ReadLine(); X1 = Double.Parse(line);

            Console.Write(" A1 = "); line = Console.ReadLine(); A1 = Double.Parse(line);

            Console.Write(" alfa1 = "); line = Console.ReadLine(); Alfa1 = Double.Parse(line);

            Console.Write(" X2 = "); line = Console.ReadLine(); X2 = Double.Parse(line);

            Console.Write(" Y2 = "); line = Console.ReadLine(); Y2 = Double.Parse(line);

            Console.Write(" A2 = "); line = Console.ReadLine(); A2 = Boolean.Parse(line);

            Console.Write(" B2 = "); line = Console.ReadLine(); B2 = Boolean.Parse(line);

            Console.Write(" C2 = "); line = Console.ReadLine(); C2 = Boolean.Parse(line);

            Console.WriteLine(" ***** Объект класса Parent: *****\n");

            Parent ParentObject = new Parent(X1);

            Console.WriteLine(" Доступ к открытому члену x = {0}", ParentObject.X);

            Console.WriteLine(" Virtual Method() returns y = {0}", ParentObject.Method());

            Console.WriteLine(" метод BoolFunc() возвращает Z = {0}", ParentObject.BoolFunc(X2, Y2, A2, B2,C2));

            Console.WriteLine(" *********************************\n");

            Console.WriteLine(" ***** Объект 1 класса Child: *****\n");

            Parent ChildObject = new Child();

            Console.WriteLine(" Доступ к открытому члену x = {0}", ChildObject.X);

              ChildObject.X = X1;

            Console.WriteLine(" Доступ к открытому члену x = {0}", ChildObject.X);

            Console.WriteLine(" переопределенный Method() returns y = {0}", ChildObject.Method());

            Console.WriteLine(" метод BoolFunc() возвращает Z = {0}", ChildObject.BoolFunc(X2, Y2, A2, B2,C2));

            Console.WriteLine(" *********************************\n");

            Console.WriteLine(" ***** Объект 2 класса Child: *****\n");

            Parent ChildObject2 = new Child(X1);

            Console.WriteLine(" Доступ к открытому члену x = {0}", ChildObject2.X);

            Console.WriteLine(" переопределенный Method() returns y = {0}",  ChildObject2.Method());

            Console.WriteLine(" *********************************\n");

        }

    }

    }

    public abstract class Base

    {

        abstract public double Method();   // абстрактный метод

        protected double x,a,alfa;          // значение аргумента дроби

        public double X                      // свойство Х

        {

            get

            {

                return x;

            }

            set

            {

                x = value;

            }

        }

        public double A                      // свойство A

        {

            get

            {

                return a;

            }

            set

            {

                a= value;

            }

        }

     public double ALFA                     // свойство Х

     {

         get

         {

             return alfa;

         }

         set

         {

             alfa = value;

         }

     }

    }

    public class Parent : Base, IBool

    {

        // защищенные члены

        protected double y=0;      // результат

        protected double Num;      // значение числителя дроби

        // закрытые члены

        private double Den;       // значение знаменателя дроби

        // открытые члены

        public Parent()

        {

            Console.WriteLine(" ***** Конструктор по умолчанию класса Parent *****");

            x = 0;

        }

        public Parent(double Value1)

        {

            Console.WriteLine(" ***** Перегруженный конструктор класса Parent *****");

            x = Value1;

        }

        public override double Method() // переопределенная функция

        {

            Num =Math.Pow( Math.Abs(Math.Cos( 4 * alfa)-Math.Pow(Math.Log(x+a),2)*Math.Exp(Math.Pow(x,3)-1.7*1E5*a)),1/3);

            Den = Math.Tan(x*(Math.Pow(x,3)+5)+Math.Pow(x,a)-a*Math.Sqrt(x-0.5*Math.Pow(10,-1.5)));

                y = Num / Den;

            return y;

        }

        public bool BoolFunc(double X, double Y, bool A, bool B,bool C)

        {

            bool Z;

            Z =  (Math.Pow(X,3)<1)&&X>Y&&!A||(B&&C)&&(X<=1.8);

            return Z;

        }

    }

    public class Child : Parent

    {

        public Child()

        {

            Console.WriteLine(" ***** Конструктор по умолчанию класса Child *****");

            x = 0;

        }

        public Child(double Value1)

            : base(Value1)

        {

            Console.WriteLine(" ***** Перегруженный конструктор класса Child *****");

        }

        public override double Method() // переопределенная функция

        {

            double YParent = base.Method();

            y = YParent * 2;

            return y;

        }

        }

    public interface IBool

    {

        bool BoolFunc(double X, double Y, bool A, bool B,bool C);

    }

Скриншот результата прграммы:

Похожие материалы

Информация о работе