Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КП_ООПСЗ_ТКАЧУК.doc
Скачиваний:
11
Добавлен:
27.10.2018
Размер:
739.84 Кб
Скачать

4.Описание классов и объектов модели

Класс в С++ - платформа для перевода абстракции в тип определенный пользователем объединяя в себе представления данных и методы обрабатывающие данные.

Спецификация классов:

  1. объявление класса как структуры - описывает компоненты данных в терминах элементах данных и интерфейсов в терминах функциях элементов (var) правило прототипа функции.

  2. Определение метода класса – описывают как реализуются конкретные функции элементов классов, что является дополнением к подробности класса.

Имя класса идентифицирует тип, что позволяет объявлять переменные такого типа, которые называют объектами или экземплярами класса.

Функции-элементы классов получили название методов класса и описываются вне структуры класса. Однако некоторые функции-элементы могут быть определены прямо в структуре класса или же объявить ее как inline функцию. При определении метода вне класса используется в заголовке функции оператор определения диапазона доступа (::), который ссылается на имя класса (экземпляра).

В завершении организовывается программная связь экземпляров классов, что по сути и составляет объектно-ориентированную систему специального назначения.

Класс CPlace отвечает за позиционирование самолета на карте и описывается координатами X,Y.Обрабатывает ввод исходного положения и возвращает текущее положение.

class CPlace {

private:

int x,y;

AnsiString name;

public:

int state;

CPlace();

CPlace(AnsiString str,int x1,int y1);

~CPlace();

void set(AnsiString str,int x1,int y1);

void set_xy(int x1,int y1); установка координат

void set_x(int x1);

void set_y(int y1);

AnsiString get_str();

int get_x();возвращение координат

int get_y();

};

Класс CKarta отвечает за отображение карты, самолета на ней и его передвижения.

class CKarta {

private :

int kol;

TImage *im1;

public:

CPlace *mas;

CKarta();

~CKarta();

int get_kol();

void show(); отображает карту

void operator<<(TImage *im);

void set_state(int i1); устанавливает статус

};

Класс CFuel отвечает за количество расход и пополнение топлива. Возвращает количество топлива в каждый момент времени.

class CFuel {

private:

double v;

public:

CFuel();

CFuel(double v1);

~CFuel();

void set_v(double v1); устанавливает кол-во топлива

double get_v(); возвращает кол-во топлива

bool change(double d);

};

Класс Csamolet наследник CFuel отвечает за скорость координаты количество и расход топлива. Позволяет устанавливать начальные данные полета и возвращает текущее состояние, выполняет взлет, полет и посадку.

class CSamolet:public CFuel {

private:

double x,y; координаты

bool fly;статус

double skorost; скорость

int h; высота

public:

CSamolet();

CSamolet(double x1,double y1);

~CSamolet();

void set_h(int h1); устанавливает высоту

int get_h(); возвращает высоты

void set_skorost(double s1); устанавливает скорость

double get_skorost();возвращает скорость

void set_x(double x1); устанавливает

void set_y(double y1);

void set_xy(double x1,double y1);

double get_x();возвращает х

double get_y();возвращает у

void set_fly(bool b);

bool get_fly();

void start();

void stop();

bool move();

};

Класс CMonitor выполняет взаимодействие всех классов между собой, отображает изменение изображения на экране, отображает название государств производит вычисления количества топлива.

class CMonitor {

public:

CSamolet *samolet;

CKarta *karta;

TImage *im1,*im2;

TComboBox *cbox1,*cbox2;

TLabel *l1,*l2,*l3,*l4,*l_S,*l5,*lx,*ly;

TEdit *ed1,*ed2,*ed3,*ed4;

double dx,dy;

double s;

int punkt[2];

CMonitor();

~CMonitor();

void set_im1(TImage *m);

void set_im2(TImage *m);

void operator<<(CSamolet &sam);

void operator<<(CKarta &kar);

void set_samolet(CSamolet * sam);

void show();

void show_pynktu();

void show_pyt();

void set_punkt(AnsiString str,int index);

bool move();

void calculate();

};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]