Лабораторная работа №2. Наследование

Цель:Изучить особенности наследования в C#.

Задание: Разработайте консольное приложение при помощи MS Visual Studio 2015 C#.

Разработайте иерархию классов до третьего уровня в глубину.

Требования:

1.Наличие абстрактного класса

2.Наличие перегрузок методов

3. Наличие переопределения (virtual)

4. Наличие собственного интерфейса и реализация этого интерфейса у какого либо класса.

5. Наличие свойств и авто-свойств в каком-либо классе.

6. Переопределение метода ToString для каждого класса.

Анализ реализации алгоритма:

Для реализации иерархии классов используем геометрические фигуры. Создадим абстрактный класс Shapes, который мы будем наследовать при создании классов Rectangle и Circle. Также реализуем третий уровень наследования на примере класса Square.

Исходный код:

abstract class Shapes

{

public abstract void Show();

}

interface IArea

{

double Area();

}

class Rectangle : Shapes, IArea

{

protected double Weidth { get; set; }

protected double Height { get; set; }

public Rectangle(double weidth, double height)

{

Weidth = weidth;

Height = height;

}

public Rectangle():this(0,0){}

public override void Show()

{

Console.WriteLine("Ширина Прямоугольника: {0}", Weidth);

Console.WriteLine("Высота прямоугольника: {0}", Height);

}

public double Area()

{

return Weidth * Height;

}

public override string ToString()

{

return "Прямоугольник " + Convert.ToString(Weidth) + " " + Convert.ToString(Height);

}

}

class Circle : Shapes, IArea

{

protected double Radius { get; set; }

public Circle(string radius)

{

Radius = Convert.ToDouble(radius);

}

public Circle(double radius)

{

Radius = radius;

}

public Circle():this(0){}

public override void Show()

{

Console.WriteLine("Радиус окружности: {0}", Radius);

}

public double Area()

{

return Radius * Radius * Math.PI;

}

public override string ToString()

{

return "Окружность " + Convert.ToString(Radius);

}

}

Результат:В ходе выполнения работы была разработана программа, демонстрирующая наследование третьего уровня. Результат работы можно найти в Приложении 3 (C#).

Выводы: Я изучила особенности гаследования в C#.

Приложение 1 (HTML):

Лабораторная работа №2. Наследование - student2.ru

Лабораторная работа №2. Наследование - student2.ru

Рис 1 и рис 2. Скриншоты главного экрана.

Лабораторная работа №2. Наследование - student2.ru

Рис.3. Скриншот страницы, посвящённой Полу Маккартни

Лабораторная работа №2. Наследование - student2.ru

Рис.4 Скриншот страницы для отправки пожеланий

Приложение 2 (WinApi):

Лабораторная работа №2. Наследование - student2.ru

Рис 1.1.1. Скриншот надписи «Hello world».

Лабораторная работа №2. Наследование - student2.ru

Рис 1.1.2. Скриншот использования констант (MB_), задающих кнопки в диалоговом окне.

Лабораторная работа №2. Наследование - student2.ru

Рис 1.1.3. Скриншот вывода целочисленных констант.

Лабораторная работа №2. Наследование - student2.ru

Рис.1.2 Скриншот готового приложения

Лабораторная работа №2. Наследование - student2.ru

Рис. 2.1.3. Скриншот готового приложения

Лабораторная работа №2. Наследование - student2.ru

Рис 2.2.1 Скриншот создания таблицы. Заполненная таблица (готовое приложение).

Лабораторная работа №2. Наследование - student2.ru Рис.2.3.1. Скриншот готового приложения

Лабораторная работа №2. Наследование - student2.ru

Лабораторная работа №2. Наследование - student2.ru

Рис. 2.4.1. и 2.4.2. Скриншоты готового приложения

Лабораторная работа №2. Наследование - student2.ru

Рис 3.1.1 Скриншот готового приложения.

Лабораторная работа №2. Наследование - student2.ru

Рис 3.2.1 Скриншот готового приложения.

Лабораторная работа №2. Наследование - student2.ru

Рис 3.3.1 Скриншот готового приложения

Лабораторная работа №2. Наследование - student2.ru

Рис 4.1.1 Скриншот готового приложения.

Лабораторная работа №2. Наследование - student2.ru

Лабораторная работа №2. Наследование - student2.ru

Рис 4.2.1. и рис 4.2.2. Скриншоты готового приложения. Показано изменение цвета.

Лабораторная работа №2. Наследование - student2.ru

Рис 4.3.1. Скриншот первоначального состояния.

Лабораторная работа №2. Наследование - student2.ru

Рис 4.3.2. Скриншот готового приложения. Показано изменение размера.

Лабораторная работа №2. Наследование - student2.ru

Рис 4.4.1. Скриншот нарисованного графика.

Лабораторная работа №2. Наследование - student2.ru

Рис 4.4.2. Скриншот графика, с указанной точкой.

Лабораторная работа №2. Наследование - student2.ru

Рис 4.5.1.. Скриншот шарика и синусоиды.

Приложение 3 (C#):

Лабораторная работа №2. Наследование - student2.ru

Рис 1. Скриншот до открытия файла.

Лабораторная работа №2. Наследование - student2.ru

Рис 2. Скриншот получившейся диаграммы.

Лабораторная работа №2. Наследование - student2.ru

Рис 3. Скриншот выхода из программы.

Список литературы:

1. Хасеневич, И. С. Создание Web-страниц средствами HTML и CSS: учеб.метод. пособие длястудентовспец. 1-190101 «Дизайн». В 2ч. Ч. 1. Введение в HTML/И. С. Хасеневич. – Минск : БГУ, 2012. –35с.

2. Хасеневич, И. С. Создание Web-страниц средствами HTML и CSS: учеб.-метод. пособие для студентов спец. 1-19 01 01 «Дизайн». В 2 ч. Ч. 2. Вве-дение в CSS / И. С. Хасеневич. – Минск : БГУ, 2012. – 35 с

3. Щупак, Ю.А. Win32 API. Эффективная разработка приложений / Ю.А. Щупак — СПб: Питер, 2007. — 573 с.

4. Павловская Т. А. С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2009. — 432 с.: ил.

Наши рекомендации