Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ЯПВУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.4 Mб
Скачать

Дополнительные возможности

Язык C++ является очень мощным языком с богатыми функциональными возможностями:

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

  • Шаблоны классов (мета-классы, которые позволяют создавать классы по заданному шаблону и указанному типу);

  • Работа с динамической памятью (операторы new и delete);

  • Потоки ввода-вывода (использование операторов << и >> для удобного вывода на экран, в файл или другой поток);

  • Метаданные (определение информации о типе объекта во время выполнения).

Индивидуальные задания

№ вар.

Задание

1

Предметная область: архитектура

2

Предметная область: транспортные средства

3

Работа с комплексными числами

4

Работа с векторами

5

Система графических примитивов

6

Предметная область: транспортные средства

7

Система классов ввода-вывода.

8

Предметная область: зоологическая классификация

9

Работа с числами большой размерности

10

Система оконного интерфейса

11

Работа с полиномами

12

Предметная область: компьютерные составляющие

13

Предметная область: геометрические фигуры

14

Работа со стеком и очередью

15

Предметная область: география

16

Система графических примитивов

17

Предметная область: зоологическая классификация

18

Система классов ввода-вывода.

19

Система оконного интерфейса

20

Работа с числами большой размерности

21

Предметная область: компьютерные составляющие

22

Работа с полиномами

23

Работа со стеком и очередью

24

Работа с комплексными числами

25

Предметная область: геометрические фигуры

2.1. Пример решения задания

Предметная область: «Летательные Аппараты»

Пример реализации на языке C++:

//

// Летательные Аппараты (ЛА)

//

#include <conio.h>

#include <iostream.h>

#include <string.h>

// Перечисление, которое задает возможные состояния

// Летательного Аппарата - "на земле" и "в воздухе"

enum Flying { onGround = 0, inAir };

//

// Класс: Летательный Аппарат (или ЛА)

//

class FlyDevice

{

private:

char name[100]; // Имя летательного аппарата

protected:

Flying state; // Состояние

public:

// Конструктор ЛА по умлочанию - без параметров

FlyDevice() : state(onGround)

{

setName("Неопознанный Летающий Объект");

cout << "FlyDevice::FlyDevice\t " << getName() << endl;

}

// Конструктор ЛА с параметром - именем ЛА

FlyDevice(char *n)

{

state = onGround;

setName(n);

cout << "FlyDevice::FlyDevice\t " << getName() << endl;

}

// Деструктор ЛА

virtual ~FlyDevice()

{

cout << "FlyDevice::~FlyDevice\t " << getName() << endl;

}

// Два метода, которые осуществляют доступ к закрытой переменной name

// Модификатор const говорит о том что переменная не должна изменяться

virtual void setName(const char *n) { strcpy(name, n); }

virtual char* getName() { return name; }

// Виртуальный метод - "летать" мозжет быть перекрыт в классах-потомках

virtual void fly()

{

state = inAir;

cout << "FlyDevice::fly\t\t " << getName()

<< " в воздухе!" << endl;

};

};

//

// Класс: Планер - безмоторный ЛА.

// Планер поднимается другим самолетом на определенную высоту

// и далее парит в восходящих воздушных потоках

//

class Glider : public FlyDevice

{

protected: