- •Раздел 1. Объектно-ориентированное программирование. Классы
- •Раздел 2. Объектно-ориентированное программирование. Наследование
- •Int Win::GetSizeX(void)
- •Int Win::GetSizeY(void)
- •Void main()
- •Int Win::GetSizeX(void)
- •Int Win::GetSizeY(void)
- •Void main()
- •Раздел 3. Объектно-ориентированное программирование. Полиморфизм
- •Void MakeWin(void);
- •Int GetSizeX(void);
- •Int GetSizeY(void);
- •Раздел 4. Графика
- •Раздел 5. Вычисление корня функционального уравнения
Раздел 2. Объектно-ориентированное программирование. Наследование
Задания этого раздела направлены на получение навыков создания классов сложной структуры и поведения с использованием механизма наследования свойств классов.
В задании предлагается определить классы и их иерархию (построить иерархию), а также продемонстрировать использование введенных конструкций при работе.
Номер решаемой задачи соответствует номеру варианта, выданному преподавателем.
Пример решения задачи
Пусть необходимо постоить иерахию классов «окно в текстовом режиме, символ, последовательность одинаковых символов». В качестве демонстрации разработаем программу, которая используя разработанные классы выводит в окно последовательность одинаковых символов. Построенная иерахия имеет следующий вид:
Программа на языке Си:
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
//Описание структуры класса
class Win
{ public: int x1, y1, x2, y2, cf;
void Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn);
void MakeWin(void);
int GetSizeX(void);
int GetSizeY(void);
};
class Symb : public Win
{ //Новые поля
public: int cs, col, line;
char sym;
//Новые методы
void Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn, int Csn, int Cl, int Ln, char Sm);
void Print(void);
};
class Lot : public Symb
{ public: int n; //новое поле – количество символов
void Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn, int Csn, int Cl, int Ln, char Sm, int Nk);
void Print(void); {переопределенный метод вывода символа}
};
void Win::Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn)
{ xl=Хnl;
yl=Уn1;
x2=Хn2;
y2=Уn2;
cf=Cfn;
}
void Win::МаkeWin(void)
{ window(x1, y1, x2, y2);
tехtbасkgrоund(cf);
clrscr();
}
Int Win::GetSizeX(void)
{ return x2 – x1 + 1; }
Int Win::GetSizeY(void)
{ return y2 – y1+1; }
void Symb::Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn, int Csn, int Cl, int Ln, char Sm)
{ Win::Init(Xn1, Yn1, Хn2, Yn2, Cfn);
cs=Csn; col=Cl;
line=Ln; sym=Sm;
}
void Symb::Print(void)
{ textcolor(cs); gotoxy(col, line);
cprinf("%c", sym);
}
void Lot::Init(int Xn1, int Yn1, int Xn2, int Yn2, int Cfn, int Csn, int Cl, int Ln, char Sm, int Nk)
{ Symb::Init(Xn1, Yn1, Xn2, Yn2, Cfn,Csn, Cl, Ln, Sm);
n= Nk;
}
void Lot::Print(void)
{ int i;
for(i=1; i<=n; i++)
{ Symb::Print();
col++;
}
}
Void main()
{ Symb Symbvar;
Lot Lotvar;
window(1,1,80,25);
textbackground(0);
clrscr();
Symbvar.Init(1,1,80,25, 7,1,40,12, 'А');
Symbvar.MakeWin();
Symbvar.Print();
getch();
Lotvar.Init(1,1, 80, 25, 7,1,40,12, 'В', 10);
Lotvar.MakeWin();
Lotvar.Print();
getch();
return;
}
Задание на программирование
Человек, учащийся, студент, преподаватель.
Корабль, шхуна, парусник, теплоход.
Летательный аппарат, аэроплан, самолет, истребитель.
Учащийся, школьник, студент, работающий студент.
Точка, окружность, окружность с текстом внутри (нарисовать, стереть, передвинуть, изменить радиус).
Точка, отрезок, треугольник (нарисовать, стереть, закрасить, передвинуть, повернуть).
Вершина, выпуклый четырехугольник, трапеция (нарисовать, стереть, закрасить, передвинуть, повернуть).
Выпуклый четырехугольник, квадрат, прямоугольник, ромб (нарисовать, стереть, закрасить, передвинуть, повернуть).
Меню, горизонтальное, вертикальное, иерархическое.
Книга, учебник, художественная литература, роман.
Вычислительная машина, калькулятор, ноутбук, компьютер.
Автомобиль, легковой автомобиль, автобус, микроавтобус.
Файл, текстовый файл, типизированный файл (создать, открыть, прочитать/записать данные).
Карта, атлас, географическая карта, игральная карта.
Мебель, стол, стул, компьютерный стол.
Лекарства, таблетки, микстура, пилюли.
Учебное заведение, школа, ВУЗ, университет, институт.
Верхняя одежда, пальто, пиджак, куртка.
Память, ОЗУ, долговременная память, жесткий диск, диск CD.
Координаты, точка, горизонтальная линия, горизонтально-вертикальное перекрестье (нарисовать, стереть, закрасить, передвинуть, повернуть)
Элемент, множество, массив, матрица.
Текст, символ, последовательность символов, предложение.
Координаты, точка, заштрихованный эллипс, заштрихованный сектор (нарисовать, стереть, закрасить, передвинуть, повернуть)
Обувь, кроссовки, ботинки, сапоги.
Транспорт, городской транспорт, поезд, автобус.
Многочлен, линейное уравнение, квадратное уравнение, трехчлен.
Записная книжка, еженедельник, блокнот, бумага.
