- •Курсовая работа
- •Пояснительная записка
- •Введение 2
- •1 Постановка задачи
- •2 Анализ технического задания
- •3 Кодирование программы
- •4 Разработка алгоритма
- •5 Контрольный пример
- •6 Руководство пользователя
- •Для запуска программы в появившемся окне в меню Run выбираем пункт Run. Данное действие так же можно выполнить нажав клавишу f9 (Рисунок 6.3)
2 Анализ технического задания
Для решения данной задачи необходимо учесть следующие особенности:
-
использование языка Delphi ;
-
интерфейс MDI;
- конструктор;
- деструктор;
- свой класс;
-
поля;
- наследование;
- строки состояния и подсказки;
- radio – группы и CheckBox;
- программирование клавиатуры;
- использование диаграмм;
- использование интерфейса Drag&Dock;
- помощь.
3 Кодирование программы
При написании программы для расчета квартплаты были использованы определенные зарезервированные идентификаторы, имеющие специальные значения для компилятора, которые описаны в этом разделе.
Типы значений:
-
double — тип с плавающей запятой, поддерживающий приблизительно 15 цифр точности;
-
boolean — позволяет принимать только значения true и false.
Ключевые слова:
- constructor — специальный блок инструкций, вызываемый при создании объекта. Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных, не наследуется, и обычно имеет различные правила для рассматриваемых модификаторов;
-
inherited — вызов конструктора;
-
uses — список использованных модулей;
-
destructor — деструктор.
Модификаторы:
- public является модификатором доступа для типов и членов типов. Общий (public) доступ является уровнем доступа с максимальными правами. Ограничений доступа к общим членам не существует.
Операторы:
-
if — оператор выбора, выбирает оператор для выполнения на основе значения выражения Boolean;
-
for — оператор инерции, повторно выполняет оператор или блок операторов, пока определенное выражение не примет значение false.
4 Разработка алгоритма
Для описания алгоритма работы данной программы можно использовать блок- схему, которая отражает основной алгоритм программы. Блок-схемой называют графическое представление алгоритма, в котором он изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
На рисунке 4.1 представлена блок-схема функции TForm1.ptimerTimer, которая отвечает за уменьшение топлива и боеготовности. Если танк заглох, и игра окончена. Если бензина нет, то игра останавливается (game:=false).
Процедура TForm1.ptimerTimer:
Если tt=1 то выбираем танк 1 иначе выбираем танк 2. Если у танка 1 уровень бензина равен нулю (t1.petrol=0), то Game:=false (останавливаем игру), в статус бар выводим сообщение «Танк заглох. Игра окончена». Присваиваем всем таймерам значение false (останавливаем таймеры). Если у танка 2 уровень бензина равен нулю (t2.petrol=0) или закончились снаряды (t2.fight=0), то повторяем аналогичные действия (как для танка 1).
Рисунок 4.1 – процедура TForm1.ptimerTimer (начало)
Рисунок 4.2 – процедура TForm1.ptimerTimer (продолжение)
TForm2.FormKeyPress:
Если нажат пробел (это выстрел) (key=' ') и снаряда нет на поле (isTracer=false) и это второй танк (tt=2), то в зависимости от направления танка, рисуем снаряд. Если танк повёрнут налево, то снаряд летит влево, аналогично для других направлений. Отмечаем, что снаряд летит (isTracer:=true) в направлении, в котором повёрнут танк (trto:=t2.direction). Добавляем 5 снарядов (t2.fight:=t2.fight+5). Если снаряды закончились (t2.fight=0), то пополняем их запас (t2.fight:=100).
Если нажата клавиша управление танком: (key='w') or (key='W') or (key='ц') or (key='Ц'), то танк движется вверх; (key='s') or (key='S') or (key='ы') or (key='Ы'), то танк движется вниз; (key='a') or (key='A') or (key='ф') or (key='Ф'), то танк движется влево; (key='d') or (key='D') or (key='в') or (key='В'), то танк движется вправо.
Если на карте есть ресурс (himg.visible=true), то проверяем, не наехал ли танк на него (abs(himg.Top-timg.top)<timg.Width) and (abs(himg.Left-timg.Left)<timg.Height) – тогда ресурс исчезает (himg.Visible:=false) и меняем параметры. Если танк 1 наехал на аптечку, то если запас пуст и здоровья много, помещает её в запас, иначе восстанавливает здоровье (t1.health:=100). Аналогично для танка 2. Если танк 1 наехал на канистру, то если запас пуст и топлива много, помещает её в запас, иначе заправляется (t1.petrol:=100). Аналогично для танка 2.
Рисунок 4.2 – процедура TForm2.FormKeyPress (начало)
Рисунок 4.3 – процедура TForm2.FormKeyPress (продолжение)
Рисунок 4.4 – процедура TForm2.FormKeyPress (продолжение)
Рисунок 4.4 – процедура TForm2.FormKeyPress (продолжение)