Рефераты. Курсовая работа по основам программирования. Игра Паровоз

Курсовая работа по основам программирования. Игра Паровоз

Государственный комитет Российской Федерации по высшему образованию

Казанский государственный технический университет имени А.Н. Туполева

--------------------------------------------------------------

Кафедра АСОИУ

КУРСОВАЯ РАБОТА

по основам программирования

ИГРА «Parovoz»

ИСПОЛНИТЕЛЬ: студентка группы 4221

Петрова Е.Г.

РУКОВОДИТЕЛЬ: Вафин Р.Р.

Оценка____________________________

Подпись___________________________

"____"________________________2001г.

КАЗАНЬ

2001г.

СОДЕРЖАНИЕ

1.Описание применения . 3

1.1. Запуск программы. 3

1.2. Правила игры. 3

2. Описание программы . 4

2.1. Метод решения задачи . 4

2.2. Описание используемых классов, структур и функций. 4

2.2.1. CApp - класс приложения . 4

2.2.2. CМainWnd- класс главного окна . 4

2.2.3. Карта сообщений. 5

2.3. Образ главного окна. 6

Приложение 7

Листинг файла main.cpp 7

Листинг файла main.h 12

Листинг файла menu1.h 13

Листинг файла menu1.rc 13

1.Описание применения .


1.1. Запуск программы.

Запуск программы необходимо производить , находясь в среде Windows 95
: запускаемый файл – parovoz.exe .


1.2. Правила игры.

После запуска игры, на экране появляется окно с надписью «выберите пункт старт». Окно имеет меню, состоящее из нескольких пунктов. С помощью пунктов меню можно: изменять цвет движущегося объекта (паровозика в красный, синий, зелёный), начать (перезапустить), осуществить выход из игры. После выбора пункта меню «старт», в левом нижнем углу окна появляется паровоз, представляющий собой совокупность геометрических фигур – эллипсов
(колёса) и прямоугольников (кабина, трубы). Паровоз движется слева направо и останавливается перед светофором, расположенным приблизительно в середине окна над паровозом. Пользователь имеет возможность регулировать цветом светофора нажатием клавишь ‘к’, ‘з’, ‘ж’, соответствующим цветам светофора
– красному, зеленому, жёлтому. Если паровоз подъезжает к светофору, а у светофора активным является зелёный цвет, он продолжает своё движение. В противном случае, паровоз останавливается. При достижении правой стенки, паровоз появляется у левой стенки, а активным цветом светофора становится жёлтый цвет. Из верхней части паровоза постоянно поднимаются в верхнюю часть окна окружности, представляющие собой клубни дыма, которые увеличиваются при подъёме.

2. Описание программы .

2.1. Метод решения задачи .

Программа выполнена в стиле объектно-ориентированного программирования, использованна библиотека MFC. Сама программа - приложение Windows. Для вывода графических объектов используются функции:
Elliplse, Rectangle. Программой обрабатываются события от таймера, нажатия клавишь на клавиатуре, выбра соответствующих пунктов меню, а также событие
WM_PAINT для перерисовки рабочей области.


2.2. Описание используемых классов, структур и функций.

2.2.1. CApp - класс приложения .

CApp - класс приложения, порождается классом CWinApp библиотеки MFC обеспечивает инициализацию , выполнение и завершение Windows программы : регистрирует , создаёт и отображает основное окно приложения .
Член- функции класса CApp :
InitInstance – виртуальная функция, переопределяется в классе CApp

2.2.2. CМainWnd- класс главного окна .


CMainWnd - класс главного окна приложения , наследуется из класса
CFrameWnd библиотеки MFC .)

Член - данные класса СMainWnd :
CRect wnd; /*размер окна*/

CRect kol1,kol2,korp,kr,temp; /*прямоугольники*/

CRect svet,ball1,ball2,ball3;/*прямоугольники*/

CBrush br1[3],br2; /*кисти*/

CBrush sv[4]; /*цвета светофора*/

CRect noga; /*нога светофора*/

CRect balls[5]; /*шарики дыма*/

CRect kr2; //кабина int numball; //номер дыма int live[5]; //признак жизни дыма bool game; /*признак игры или вне игры*/ int color; /*номер цвета паровоза*/ int ns; /*номер увета светофора*/ int move; /*флаг движения паровоза*
/Член - функции класса СMainWnd :

CmainWnd(); - конструктор класса окна afx_msg void OnBegin();обработчик события на выбор пункта меню
«старт» afx_msg void OnRed(); - обработчик события на выбор пункта меню
«Red» afx_msg void OnGreen(); - обработчик события на выбор пункта меню «Green» afx_msg void OnBlue(); - обработчик события на выбор пункта меню «Blue» afx_msg void OnPaint(); - ф-ия перерисовки afx_msg void OnTimer( UINT nIDEvent ); - обраб-чик таймера afx_msg void OnExit(); - обработчик события на выбор пункта меню «Exit» afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags ); - реакция на нажатие клавиши клавиатуры

DECLARE_MESSAGE_MAP() - карта сообщений


2.2.3. Карта сообщений.


BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd)

ON_COMMAND(IDM_EXIT,OnExit)

ON_COMMAND(IDM_BEGIN,OnBegin)

ON_COMMAND(IDM_RED,OnRed)

ON_COMMAND(IDM_GREEN,OnGreen)

ON_COMMAND(IDM_BLUE,OnBlue)

ON_WM_PAINT()

ON_WM_TIMER()

ON_WM_CHAR()
END_MESSAGE_MAP()


2.3. Образ главного окна.


На рисунках 1, 2 представленыосновные образы окна приложения.

Приложение

Листинг файла main.cpp


/* в этом файле находятся описания всех функций */

#include
#include "main.h"
#include "menu1.h"

CMainWnd::CMainWnd() /*конструктор гл. окна*/
{ wnd.SetRect(0,0,400,355);//устан-ка размеров окна

Create(NULL,"parovoz",WS_DLGFRAME ,wnd,NULL,"MAINMENU"); game=false; /*нет игры*/ color=0; /*нач. цвет поезда*/ ns=0; /*нач. цвет светофора*/ br1[0].CreateSolidBrush(RGB(255,0,0));//создание кистей br1[1].CreateSolidBrush(RGB(0,255,0)); br1[2].CreateSolidBrush(RGB(0,0,255));

sv[0].CreateSolidBrush(RGB(255,0,0));//создание кистей sv[1].CreateSolidBrush(RGB(0,255,0));//светофора sv[2].CreateSolidBrush(RGB(255,255,0)); sv[3].CreateSolidBrush(RGB(128,128,128));

br2.CreateSolidBrush(RGB(1,1,1));/*чёрный цвет*/

for(numball=0;numballShowWindow(m_nCmdShow); /*показать окно*/ return true; /*удачное завершение*/
}

afx_msg void CMainWnd::OnPaint() /*ф-ия перерисовки*/
{

CPaintDC dc(this); /*созданиее контекста окна*/ dc.SelectObject(&br2); /*выбор кисти для светофора*/ dc.Rectangle(svet); //рисование корп. светофора dc.Rectangle(noga); //рисование ноги for(numball=0;numball




2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.