
- •1. Постановка задачи
- •1.1. Цель разработки
- •2. Объектно-ориентированный анализ
- •2.1. Основные объекты и их иерархия
- •2.2. Свойства и функционирование отдельных объектов
- •2.3. Жизненный цикл программы
- •2.4. Жизненный цикл объекта
- •2.5. Диаграмма потоков системы
- •3.2 Описание реализации основных классов и их методов
- •3.3 Интерфейс пользователя
Министерство образования и науки, молодежи и спорта Украины
Севастопольский национальный технический университет
Кафедра
информационных систем
Курсовой проект по дисциплине
«Объектно-ориентированное программирование »
Пояснительная записка
UA.02070973.10656 - 01 81 19
Листов 67
Проверил
Ассистент кафедры ИС
( ) А.К. Забаштанский
« » _________2013
Разработал
Студент группы И-21д
( ) А. В. Глобин
( ) К. В. Зосименко
« » _________2013
Севастополь
2013
Аннотация
В данном документе описывается программа, написанная в соответствии с постановкой задачи на курсовое проектирование по дисциплине "Объектно-ориентированное программирование". Пояснительная записка содержит основные этапы разработки программного обеспечения, построенные на объектно-ориентированном принципе. Приведено техническое задание, по которому написан данный курсовой проект. Имеется объектно-ориентированный анализ программы, демонстрация её работы, в приложении приведен код разработанной программы.
Содержание
Введение……………….…………………………………………………………..4
Список исполнителей……………………………………………………………..5
1. Постановка задачи………………………………………………………….…..5
1.1 Цель разработки…………………………………………………….…..5
1.2 Предполагаемый интерфейс……………………………………….…..5
2. Объектно-ориентированный анализ…………………………………………..7
2.1 Основные объекты и их иерархия…………………………………….7
2.2 Свойства и функционирование отдельных объектов…………….….9
2.3. Жизненный цикл программы……………………..…………………10
2.4. Жизненный цикл объекта……………………………………………11
2.5. Диаграмма потоков системы……………………………………..….13
2.6. Построение модели состояний……………………………………...15
2.7. Построение информационной модели………………………...……16
3. Программная реализация…………………..………………….……………..17
3.1 Обоснование выбора языка программирования…………………….17
3.2 Описание реализации основных классов и их методов…………….17
3.3 Интерфейс пользователя……………………………………………...25
3.4. Критерии качества программной среды……………………………28
Заключение…...….………………………………………………………………30
Перечень ссылок…….…………………………………………………………...31
Приложение А………………….………………………………………………..32
Введение
Сложность современного программного обеспечения требует от разработчиков владения наиболее перспективными технологиями его создания. Одной из таких технологий в настоящий момент является объектно-ориентированное программирование (ООП). Применение ООП позволяет разрабатывать программное обеспечение повышенной сложности за счёт улучшения его технологичности (лучших механизмов разделения данных, увеличение повторяемости кода, использование стандартизированных интерфейсов пользователя и т.д.)
В данном курсовом проекте поставлена задача закрепления навыков применения объектно–ориентированного подхода. Необходимо реализовать объектную модель средствами объектно–ориентированного языка программирования.
Список исполнителей
Глобин Андрей :
Оформление пояснительной записки:
Введение
Постановка Задачи
Цель разработки
Предполагаемый интерфейс
Объектно-Ориентированный Анализ
Основные объекты и их иерархия
Свойства и функционирование отдельных объектов
Жизненный цикл программы
Жизненный цикл объекта
Диаграмма потоков системы
Построение модели состояний
Построение информационной модели
Приложение А
Написание программных модулей:
Класс Player
Класс Ingame
Класс Menu1
Класс IMove
Класс Unit
Зосименко Константин:
Оформление пояснительной записки:
Программная Реализация
Обоснование выбора языка программирования
Описание реализации основных классов и их методов
Интерфейс пользователя
Критерии качества программной среды
Заключение
Перечень Ссылок
Написание программных модулей:
Класс Help
Класс Cell
Класс Country
Класс Map
Класс Program
1. Постановка задачи
1.1. Цель разработки
Цель настоящей курсовой работы по дисциплине "Объектно-ориентированное программирование" – детальное проектирование и программная реализация игры, в которой в соответствии с вариантом задания реализуются процессы создания и взаимодействия объектов.
Тематика данной курсовой работы – игра в жанре пошаговая стратегия, организованная для двух пользователей. Необходимо использовать методологию объектно-ориентированного программирования, т. е. основные принципы которые, лежат в основе ООП: инкапсуляция, наследование, абстрагирование, полиморфизм.
Противники пошагово перемещают свои юниты по клеткам, атакуют вражеские войска, могут захватывать столицы, докупать новую технику. Победителем считается тот, кто захватил, по меньшей мере, 6 секторов, или уничтожил все вражеские юниты.
1.2. Описательная постановка задачи
Игровое поле состоит из 9 секторов, каждый сектор имеет 12 клеток, одна из которых является столицей. Каждому из игроков выделяется по три сектора (распределение секторов происходит случайно). Поочерёдно игроки раскрываю по одному сектору (расставляют на выбранный сектор юниты, ресурсы сектора ограничены — 10 единиц), атакуют вражеские юниты, в конце каждого хода на каждый управляемый игроком сектор начисляется доход (по две единицы), на доступный ему доход игрок имеет право докупить дополнительные юниты. Игрок управляет сектором, если на его территории нет ни одного вражеского юнита, и столица принадлежит этому игроку.
Ресурсы, начисляемые на сектор, ограничены, игроки могут получить доход от каждого сектора не более чем 5 раз. За каждый ход на сектор начисляется по две единицы ресурсов. Игроки могут атаковать нейтральные и вражеские сектора, вступая на территорию своими юнитами. В ответ на вторжение противник, разворачивает свои партизанские части в атакованном секторе (независимо от её принадлежности). Для захвата сектора необходимо занять столицу, и очистить территорию от вражеских войск.
Каждый юнит обладает такими характеристиками как жизни и стоимость. Всего существует три типа юнитов: захватчики — они могут передвигаться и атаковать, и обладают такими характеристиками, как дальность хода, огневая мощь и дальность стрельбы; транспортёр — может погрузить/выгрузить захватчика, и передвигаться по игровому полю; защитная башня — может только атаковать. От всех характеристик юнита, зависит его стоимость.
2. Объектно-ориентированный анализ
2.1. Основные объекты и их иерархия
Иерархия техники (юнитов) представлена следующей системой классов.
Рисунок 2.1 — Иерархия юнитов
Каждый тип юнит имеет свои предназначения и характеристики, все они наследуются от базового класса Unit, юниты которые могут передвигаться относятся к классу Moving, класс Carrier наследуется от класса Moving, эти юниты кроме способностей класса родителя способны транспортировать юниты. Класс Attacker также наследуется от класса Moving, эти юниты способны ещё и атаковать врага. Класс DefensiveGun является интерфейсом, этот тип юнитов способен только атаковать.
2.2. Свойства и функционирование отдельных объектов
Рассмотрим иерархию, представленную на рисунке 2.1.
Имеется базовый класс Unit, в котором реализованы основные характеристики и функции юнита, такие как цена и жизни, также ID клетки на которой он находится, текстуру юнита, хозяина юнита, метод уменьшение жизни юнита.
Следующий класс Moving наследуется от базового класса, в нём реализованы функции, связанные с движением юнита, такие как, расчёт возможных перемещений, расчёт изменений на поле, связанное с перемещение, и сама функция движения.
Класс Attacker находится на следующем уровне иерархии, наследуется от Moving, в этом классе реализованы функции, связанные с атакой на вражеские юниты: перезарядка, вычисление радиуса дальности стрельбы, атака.
Класс Carrier находится на одном уровне иерархии с классом Attacker, в нём находятся методы погрузи/выгрузки захватчиков.
В класс DefensiveGun помещены только те методы, которые нужны для атаки.