МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
НАЦИОНАЛЬНЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ
ИМ. Н. Е. ЖУКОВСКОГО «ХАИ»
Выполнил: студентка группы 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);
}
Скриншот результата прграммы:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.