Разработка программы на языке С++ с использованием функций WinAPI: < Игра Сима >

Автор: Пользователь скрыл имя, 21 Февраля 2013 в 05:55, курсовая работа

Краткое описание

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

Оглавление

Введение ……………………………………………………....………
5
Основная часть…..………………........................................................
6
1 Анализ предметной области и постановка задач …………………
6
2 Разработка структуры программы и алгоритмов …………………
10
3 Разработка программы ………………………………….………….
14
4 Тестирование программы и инструкция пользователя …………..
23
4.1 Тестирование программы……………………………………..
23
4.2 Инструкция пользователя ………..…………………………..
23
Выводы……………………………………………………..……….…
27
Перечень ссылок………………………………………………………
28

Файлы: 1 файл

Записка.doc

— 431.00 Кб (Скачать)


министерство образования и  науки украины

 

ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ 

РАДИОЭЛЕКТРОНИКИ

 

 

Факультет КИУ

Кафедра ЭВМ

 

Курсовая   работа

по курсу  системное  программирование

 

 

 

Пояснительная записка

 

 

Тема: “Разработка программы на языке С++ с использованием функций WinAPI:

< Игра Сима >”.

 

 

 

 

 

Руководитель    ……………………………………………………..                                            

                                  (подпись, дата, должность, фамилия и инициалы)

 

 

Студент  …………………………………………………………….

(подпись, дата, группа, фамилия и инициалы)

 

 

Харьков 2010

РЕФЕРАТ

 

Пояснительная записка к курсовой работе: 28 с., 7 рис., 4 раздела, 1 приложение, 3 источника.

Основной целью  курсового проектирования по курсу "Системное программирование" является систематизация, углубление и активное применение знаний по системному программированию, закрепление знаний, полученных в лекционном курсе, а также на практических и лабораторных занятиях.

Метод исследования – изучение литературы, написания и отладки программ на компьютере. Объектом исследования является системное программирование в операционных системах.

В процессе курсового  проектирования мной были изучены основные  способы взаимодействия приложений с операционной системой, представления объектов и операции над ними.

Программа была реализована на языке С++ в среде Microsoft Visual Studio 2008.

Перечень ключевых слов: игра Сима, системное программирование, операционная система, игровое поле, алгоритм, пользователь.

СОДЕРЖАНИЕ

 

Введение ……………………………………………………....………

5

Основная часть…..………………........................................................

6

 1 Анализ предметной области и постановка задач …………………

6

2 Разработка структуры программы  и алгоритмов …………………

10

3 Разработка программы ………………………………….………….

14

4 Тестирование программы и инструкция пользователя …………..

23

      4.1 Тестирование программы……………………………………..

23

      4.2 Инструкция пользователя ………..…………………………..

23

Выводы……………………………………………………..……….…

27

Перечень ссылок………………………………………………………

28

Приложение …………………………………………………………...

39


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

 

Сима - это логическая игра между двумя противниками на произвольном поле, которое бы допускало визуальное расположение некоторого числа точек (размер поля не имеет практически никакого значения). Один из игроков играет синим цветом, другой игрок – красным.

Перед началом игры, двое игроков  договариваются о количестве точек, которое будет расположено на поле. При количестве точек на поле, меньшее 6ти игра оказывается не столь  увлекательной, т.к. количество комбинаций игроков представляется не слишком обильным и игра вскоре завершается чьей-то победой.

Если же количество точек превышает 6, то игра становится более увлекательной, т.к. количество комбинаций, которое  может сделать игрок, прилично увеличится. Также большое значение имеет месторасположение точек, чем более хаотично расположены точки, тем более запутанной и продолжительней будет игра.

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

Данная курсовая работа является актуальной, т.к. в ней реализуется основные возможности операционной системы Windows, которая считается самой распространенной операционной системой на ПК.

 

 

 

 

 

 

 

 

1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ  И ПОСТАНОВКА ЗАДАЧИ

 

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

На сегодняшний момент операционная система Windows фирмы Microsoft во всех ее проявлениях, бесспорно, считается самой распространенной операционной системой на ПК. Однако, несмотря на то, что это ОС для ПК, она содержит в себе большинство особенностей, характерных для современных программных систем, например, многозадачность, сетевую поддержку.

Операционная система (ОС) – это комплекс взаимосвязанных системных программ, функциями которого является контроль использования и распределения ресурсов вычислительной системы и организация взаимодействия пользователя с компьютером.

Основные характеристики ОС Windows:

1. Графический интерфейс. В отличие  от предыдущей ОС (MS DOS), Windows является полностью графической оболочкой. Все элементы, которые пользователь видит на экране (окна, кнопки, полосы скроллинга), поддерживаются на уровне ОС. В ее состав входит множество библиотек, которые содержат функции по управлению этими элементами, что позволяет прикладному программисту не отвлекаться на создание интерфейса программы и стандартизует внешний вид приложений.

2. Многозадачность. Windows поддерживает многозадачность (параллельное исполнение программ) на уровнях процессов (программ) и потоков (внутри программный параллелизм), обеспечение которых происходит с участием аппаратного уровня. ОС содержит большое количество функций, обеспечивающих управление параллельно исполняемыми программами, синхронизацию, разделение адресного пространства памяти между приложениями и т.п.

3. Аппаратно-независимое программирование. Использование в прикладной программе  функций операционной системы обеспечивает возможность для программиста не заботиться о совместимости программы с аппаратурой (видео- и аудио- карты, принтер, винчестер). ОС сама (с помощью драйверов, устанавливаемых внутри) выполняет согласование ввода-вывода. Таким образом, программа, созданная на одной конфигурации, будет работать на другой.

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

5. Оконная среда. В девяноста  процентах случаев каждой программе соответствует одно или несколько окон, которые имеют стандартный вид и содержат обязательные элементы (например, иконку, строку заголовка, схожее меню, кнопки закрытия, минимизации и максимизации). Стандартизация окон помогает при освоении новых приложений.

Системное программирование есть одно из наиболее приоритетных областей современного программирования. В системное программирование основное внимание уделяется изучению современных операционных систем, способов проектирования приложений, объектно-ориентированному программированию.

Понятие "Системное программирование" существует со времен появления компьютерной техники. И с самого его появления  считалось, что "Системщик" – это  программист, который работает на самом  "нижнем" уровне программного обеспечения и пишет программы на машинном языке (команды процессора или язык Ассемблер). Это содержание сохранилось и сегодня. Однако оно расширилось и включило в себя новые области.

Граница между системным программированием  и прикладным программированием зависит от обстоятельств. Например, с точки зрения программиста, который занимается ядром операционной системы, человек, создающий компилятор, является пользователем системы (т.е. прикладным программистом). Этот же человек будет, вероятно, рассматриваться как системный программист тем лицом, которое занимается написанием подпрограмм отыскания минимума функции. Вместе с тем, человек, который будет использовать программу минимизации, может считать всех трех вышеупомянутых программистов системными программистами.

Системное программирование – это создание системного программного обеспечения, то есть написание таких программ, которые в совокупности составляют некоторую программную систему либо набор элементов для построения программных систем.

В настоящий момент трудно представить персональный компьютер без операционной системы и прикладную программу, не использующую функции операционной системы, а содержащую только команды процессора. Таким образом, если говорить о системном программировании для персонального компьютера, необходимо рассматривать его как неразрывное сочетание ОС и аппаратуры.

Следует также сказать несколько  слов о языке, который выбран в  качестве базового в системном программировании. По большому счету, все, что связано с системным программированием, можно исполнить на любом языке программирования (Delphi, C++, Assembler). Однако, наиболее популярный среди программистов есть язык низкого уровня С++. Его популярность связана со следующими причинами:

Во-первых, язык С общепризнанно  считается языком системного программирования и является наиболее близким к аппаратуре из языков высокого уровня. Во-вторых, большинство документации по системному программированию (включая наиболее полную документацию - MSDN) написано с его использованием. И, наконец, среда Microsoft Visual C++ (которая лежит в основе практической части курса) и ОС Windows разработаны одной фирмой (Microsoft) и имеют очень хорошую интеграцию.

В данной курсовой работе необходимо написать программу, которая реализует основные возможности игры «Сима» на безграничном поле. Программа должна использовать базовый набор функций Windows API (Application Programming Interfaces). В игру могут играть два человека, которые по очереди проводят линии от одной точки к другой. Необходимо реализовать алгоритм расчета победы одного из игроков, также алгоритм возможности соединения некоторых точек. Выполнить интерфейс взаимодействия с пользователем, при помощи которого пользователь имеет возможность выбора количества точек на игровом поле. Программа должна проверять введенные пользователем данные (проверять некоторую карту точек, на наличие того, что треугольник реализован соответствующим цветом), и в случае победы одного из игроков  выводить соответствующие сообщение.

 

2 РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ  И АЛГОРИТМОВ

 

В данном разделе проводится разработка алгоритма работы программы.

Алгоритм работы программы тривиальный  и состоит в следующем:

После запуска  программы, для начала игры, пользователь должен нажать пункт меню «File -> Start». После этого пользователь должен ввести количество точек на игровом поле, после чего пункт меню «Start» становится неактивным, одновременно с этим инициализируется так называемая «карта точек», которая представляет собой двухмерный квадратный массив, вертикаль и горизонталь которых соответствует точкам на пересечение которых стоит цифра, определяющая отношение этих точек друг к другу (0 – линия не проведена; 1 – линия проведена 1м игроком (красная); 2 – линия проведена вторым игроком (синяя)).

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

Затем игрок кликает на следующую  точку поля, при этом сразу же выполняется проверка по «карте точек», не была ли ранее проведена линия  из данной точки в последующую и наоборот. В случае истины алгоритм игнорирует данный ход игрока и не рисует линию и не изменяет «карту точек», игроку придется повторить ход. В случае же лжи, в силу входит следующая проверка.

Следующий алгоритм состоит в том, чтобы проверить присутствие какой-либо мешающей линии на соединение двух точек. Для этого я использовал основы аналитической геометрии, суть которой состоит в определении координат точки пересечения линии, что проводится и всех существующих уже линий. Для этого нужны координаты начала и конца отрезка.

 

Уравнение прямой, проходящей через  две точки: A(x1, y1) и B(x2, y2), записывается так:

Исходя из этого можем составить  систему уравнений данной прямой и поочередно прямых, которые существуют на данном поле:

 Решением данной системы уравнения и будет пересечение этих прямых. Проверяя попадания точки пересечения в пределы крайних точек прямых можем определить, будут ли они пересекаться.

В случае проверки всех прямых с данной прямой на наличие точки пересечения  будет возвращена ложь, то предполагаем, что прямые не пересекаются и тогда уже проводится непосредственно линия через 2 точки соответствующего текущему игроку цвета. В случае же истины игроку будет отказано в проведении линии и ему предстоит повторить попытку.

Информация о работе Разработка программы на языке С++ с использованием функций WinAPI: < Игра Сима >