- •Содержание
- •1.1. Наименование продукта
- •1.2. Краткая характеристика области применения
- •2.1. Документ, на основании которого ведётся разработка
- •2.2. Организация, утвердившая документ
- •Требования к разработке
- •4.1. Требования к функциональным характеристикам
- •4.2. Требования к надёжности
- •4.3. Требования к составу и параметрам технических средств
- •4.4. Требования к информационной и программной совместимости
- •Требования к программной документации
- •Технико-экономические показатели
- •7. Стадии и этапы разработки
- •Введение
- •Постановка задачи
- •Выбор и проработка программных средств
- •Проектирование программы
- •1. Общая схема программы
- •2. Наследование класса kletka_pust
- •3. Переопределение стандартной операции
- •4. Структура класса common
- •5. Подробное описание метода game
- •6. Описание метода privet()
- •7. Описание методов registration() и enter()
- •8. Описание метода menu()
- •9. Описание метода record()
- •10. Описание метода spravka()
- •11. Описание подменю Begin
- •12. Руководство по использованию
- •Анализ результатов разработки программы
- •Заключение
- •Список литературы
- •Листинг программы
Проектирование программы
1. Общая схема программы
Программа состоит из следующих файлов:
-
NEW_KURS.exe – исполняемый файл;
-
NEW_KURS.cpp – файл, содержащий исходный текст программы;
-
Egavga.bgi, Graphics.h, Graphics.lib – файлы графических модулей, предназначены для поддержки графического режима программы;
В данной программе были созданы базовые классы: kletka_pust, pair, common. Класс kletka_pust является базовым классом для наследников или производных классов kletka_cross и kletka_nolik. Класс common по своей структуре является самым важным и основным для всей программы.
Назначение данных классов представлено в таблице 1.1.
Название класса |
Назначение класса |
Класс common |
Является «скелетом» программы, состоящий из пятнадцати методов. Методы описывают как графический интерфейс, так и алгоритмы программы. Взаимодействие класса с главной функцией осуществляется посредством объекта tic, созданного в ней. |
Класс kletka_pust |
Предназначен для отрисовки крестиков и ноликов. Класс содержит метод paint, который наследуют его потомки. |
Класс kletka_cross |
Является наследником класса kletka_pust и предназначен для отрисовки крестиков. Взаимодействие этого класса в методе game класса common осуществляется с помощью объекта cr. |
Класс kletka_nolik |
Является наследником от базового класса kletka_pust и предназначен для отрисовки ноликов. Взаимодействие этого класса в методе game класса common осуществляется с помощью объекта kr. |
Класс pair |
Специально созданный класс для переопределения стандартной операции инкремента (++). Взаимодействует c главной функции main через объект ob. |
Таблица 1.1. Функции классов
2. Наследование класса kletka_pust
Наследование, представленное в программе относиться к простому наследованию, когда существуют один базовый класс и несколько потомков. Класс kletka_pust являеться базовым для классов kletka_cross и kletka_nolik. Рассмотрим подробно структуру:
class kletka_pust
{
protected:
int fieldsX,fieldsY;
int s;
public:
kletka_pust(){}; // конструктор по умолчанию
kletka_pust(int x1,int y1)
// инициализация членов класса в конструкторе
{
fieldsX=x1;
fieldsY=y1;
}
~kletka_pust(void) // деструктор по умолчанию
{
}
virtual void paint(int g,int h,int iSizeFl) // виртуальный метод
{
}
};
Члены класса fieldsX, fieldsY, s объявлены как protected, то есть как защищенные элементы, которые доступны базовому классу и его потомкам. Члены класса, объявленные в конструкторе kletka_pust, имеют общий доступ public. Это необходимо для доступа этих элементов в других классах этой программы. Метод класса paint является виртуальным (virtual), что означает, что он переопределяется в классах-наследниках kletka_cross и kletka_nolik. И не обязательно знать точный тип объекта для работы с ним через виртуальный метод: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.
Виртуальный метод paint представляет собой одну из форм полиморфизма. Таким образом, создается общий код, который позволяет работать как с объектами базового класса kletka_pust, так и с объектами его классов-наследников kletka_cross и kletka_nolik.
Базовый класс kletka_pust определяет способ работы с объектами, и его наследники kletka_cross и kletka_nolik предоставляют свою реализацию этого метода.
В классе kletka_cross метод paint реализует отрисовку крестиков и через объект, созданный в методе game класса common используется, когда необходимо нарисовать крестик.
В классе kletka_nolik метод paint реализует отрисовку ноликов и через объект, созданный в методе game класса common используется, когда необходимо нарисовать нолик.