- •Курсовой проект
- •1.Постановка задачи и описание системы
- •2.Описание принципа работы автопилота
- •3.Разработка математической модели системы и
- •4.Описание классов и объектов модели
- •5.Анализ работы системы и инструктивные указания
- •6.Составление схемы модели на языке uml
- •Диаграммы вариантов использования
- •7.Выводы
4.Описание классов и объектов модели
Класс в С++ - платформа для перевода абстракции в тип определенный пользователем объединяя в себе представления данных и методы обрабатывающие данные.
Спецификация классов:
-
объявление класса как структуры - описывает компоненты данных в терминах элементах данных и интерфейсов в терминах функциях элементов (var) правило прототипа функции.
-
Определение метода класса – описывают как реализуются конкретные функции элементов классов, что является дополнением к подробности класса.
Имя класса идентифицирует тип, что позволяет объявлять переменные такого типа, которые называют объектами или экземплярами класса.
Функции-элементы классов получили название методов класса и описываются вне структуры класса. Однако некоторые функции-элементы могут быть определены прямо в структуре класса или же объявить ее как 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();
};