Лабораторная работа №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):
Рис 1 и рис 2. Скриншоты главного экрана.
Рис.3. Скриншот страницы, посвящённой Полу Маккартни
Рис.4 Скриншот страницы для отправки пожеланий
Приложение 2 (WinApi):
Рис 1.1.1. Скриншот надписи «Hello world».
Рис 1.1.2. Скриншот использования констант (MB_), задающих кнопки в диалоговом окне.
Рис 1.1.3. Скриншот вывода целочисленных констант.
Рис.1.2 Скриншот готового приложения
Рис. 2.1.3. Скриншот готового приложения
Рис 2.2.1 Скриншот создания таблицы. Заполненная таблица (готовое приложение).
Рис.2.3.1. Скриншот готового приложения
Рис. 2.4.1. и 2.4.2. Скриншоты готового приложения
Рис 3.1.1 Скриншот готового приложения.
Рис 3.2.1 Скриншот готового приложения.
Рис 3.3.1 Скриншот готового приложения
Рис 4.1.1 Скриншот готового приложения.
Рис 4.2.1. и рис 4.2.2. Скриншоты готового приложения. Показано изменение цвета.
Рис 4.3.1. Скриншот первоначального состояния.
Рис 4.3.2. Скриншот готового приложения. Показано изменение размера.
Рис 4.4.1. Скриншот нарисованного графика.
Рис 4.4.2. Скриншот графика, с указанной точкой.
Рис 4.5.1.. Скриншот шарика и синусоиды.
Приложение 3 (C#):
Рис 1. Скриншот до открытия файла.
Рис 2. Скриншот получившейся диаграммы.
Рис 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 с.: ил.