Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка.docx
Скачиваний:
2
Добавлен:
17.09.2019
Размер:
161.45 Кб
Скачать
  1. Руководство программиста

Программа состоит из 27 файлов, среди которых 13 заголовочных файла с расширением «.h» и 14 файлов с расширением «.cpp». В таблице 1 приведено пояснение, к какому файлу относится то и или иное пространство имен.

Таблица 1

«.h» файл

«.cpp» файл

Пространство имен (namespace)

cplanes.h

cplanes.cpp

stdplanes

cmilitaryplanes.h

cmilitaryplanes.cpp

stdmilitaryplanes

cciviliplanes.h

cciviliplanes.cpp

stdcivilplanes

cfighters.h

cfighters.cpp

stdfighters

cgroundattackplanes.h

cgroundattackplanes.cpp

stdgroundattackplanes

cpassengerplanes.h

cpassengerplanes.cpp

stdpassengerplanes

ccargoplanes.h

ccargoplanes.cpp

stdcargoplanes

RusTranslate.h

RusTranslate.cpp

stdrus

useful_functions.h

useful_functions.cpp

someusefulfunctions

Colour.h

Colour.cpp

stdsomecolour

spisok_functions.h

spisok_functions.cpp

stdmyspisok

somemenues.h

somemenues.cpp

stdmyinterfacefunctions

myteachprogramm.h

myteachprogramm.cpp

stdmyteachprogramm

main.cpp

3.1 «Дерево» объектов

Одной из задач курсового проектирования было создание так называемого «дерева» объектов. Автор курсового проектирования предложил модель, представленную на рисунке 18. Следует отметить, что главным классом (классом родителем) является верхний класс, а остальные классы (классы потомки) наследуют все методы и данные классов предков публичным способом наследования. При этом наследование идет сверху вниз (указано с помощью стрелок на рисунке).

Рисунок 18.

Класс-родитель cPlanes, который описан в одноименном файле cplanes.h, содержит основные поля данных записи, соответствующей каждому самолету:

private:

string itsName; //название самолета

string itsAttachment; //принадлежность (гражданский/военный)

string itsType; //тип (истребитель, штурмовик и т.д)

int itsCrew; //число летчиков

int itsSpeed; //скорость самолета

string itsCountry; //страна-производитель

При объявлении данных использовалось ключевое слово «private». Это означает, что данные класса cPlanes закрытые и получить доступ к ним можно только при помощи специальных методов, описанных ниже (в качестве примера приводится метод доступа к переменной itsName, содержащей название самолета).

//название самолета

inline string method_ReturnItsName () {return itsName;}

inline void method_EnterItsName (string &a) {itsName = a;}

Метод inline3 <тип возвращаемого значения> method_Return… () возвращает соответствующее поле данных, а метод – inline void method_Enter… (<тип сохраняемого значения> &a) заполняет соответствующее поле данных. В данном случае в этом заключается принцип инкапсуляции, одного из свойств объектно-ориентированного программирования.

Кроме методов, представленных выше, класс cPlanes содержит также ряд следующих методов:

//обработка данных

virtual void method_Downloading (istream &); //считывание из файла

virtual void method_Printing (); //вывод на экран

virtual void method_EnteringNewData (); //заполнение с клавиатуры

virtual void method_Uploading (ostream &); //загрузка в файл

//действия

virtual void method_HowItTakeOff () {}; //как взлетает

virtual void method_WhatIsItDo () {}; //какую функцию выполняет

virtual void method_HowItAttack() {}; //как атакует

Все методы, служащие для обработки данных – виртуальные (определяются ключевым словом «virtual»), они могут быть использованы для обработки информации, содержащейся в объекте определенного класса.

То же самое касается и методов, описывающих некие действия, совершаемые объектами. К примеру, для истребителя и бомбардировщика актуальным является действие, описывающее атаку, но атакуют эти два самолета по-разному, то есть метод описывающий действие атаки один и тот же, но результат его выполнения различен для объектов разных классов (в нашем случае эти объекты - истребитель и бомбардировщик). В этом заключается смысл полиморфизма в парадигме объектно-ориентированного программирования.

Также в классе cPlanes реализована такая возможность языка C ++ как перегрузка оператора. Был перегружен оператор == с целью замены действия (strstr4 (method_getTypeName()5, str_1) != NULL).