Державний комітет Російської Федерації з вищої освіти p>
Казанський державний технічний університет імені А.Н. Туполєва p>
------------------------------------------ -------------------- p>
Кафедра АСОІУ p>
Курсова робота p>
з основ програмування p>
ГРА «Parovoz» p>
ВИКОНАВЕЦЬ: студентка групи 4221 p>
Петрова Е.Г. p>
КЕРІВНИК: Вафін Р.Р. p >
Оценка____________________________ p>
Подпісь___________________________ p>
"____"________________________ 2001р. p>
КАЗАНЬ p>
2001р. p>
ЗМІСТ p>
1.Опісаніе застосування. 3 p>
1.1. Запуск програми. 3 p>
1.2. Правила гри. 3 p>
2. Опис програми. 4 p>
2.1. Метод вирішення завдання. 4 p>
2.2. Опис використовуваних класів, структур і функцій. 4 p>
2.2.1. CApp - клас програми. 4 p>
2.2.2. CМainWnd-клас головного вікна. 4 p>
2.2.3. Карта повідомлень. 5 p>
2.3. Образ головного вікна. 6 p>
Додаток 7 p>
Лістинг файлу main.cpp 7 p>
Лістинг файлу main.h 12 p>
Лістинг файлу menu1.h 13
Лістинг файлу menu1.rc 13 p>
1.Опісаніе застосування. p>
1.1. Запуск програми. P>
Запуск програми необхідно виробляти, перебуваючи в середовищі Windows 95
: Запускається файл - parovoz.exe. P>
1.2. Правила гри. P>
Після запуску гри, на екрані з'являється вікно з написом «виберітьпункт старт ». Вікно має меню, що складається з декількох пунктів. За допомогоюпунктів меню можна: змінювати колір рухається, (паровозика вчервоний, синій, зелений), почати (перезапустити), здійснити вихід згри. Після вибору пункту меню «старт», у лівому нижньому кутку вікна з'являєтьсяпаровоз, що представляє собою сукупність геометричних фігур - еліпсів
(колеса) і прямокутників (кабіна, труби). Паровоз рухається зліва направоі зупиняється перед світлофором, розташованим приблизно в серединівікна над паровозом. Користувач має можливість регулювати кольоромсвітлофора натисканням клави 'до', 'з', 'ж', що відповідає кольорам світлофора
- Червоного, зеленого, жовтого. Якщо паровоз під'їжджає до світлофора, а усвітлофора активним є зелений колір, він продовжує свій рух. УІнакше, паровоз зупиняється. При досягненні правої стінки,паровоз з'являється біля лівої стінки, а активним кольором світлофора стаєжовтий колір. З верхньої частини паровоза постійно піднімаються у верхнючастина вікна кола, що представляють собою бульби диму, якізбільшуються при підйомі. p>
2. Опис програми. P>
2.1. Метод вирішення завдання. P>
Програма виконана в стилі об'єктно-орієнтованого програмування, використана бібліотека MFC. Сама програма - додаток Windows. Для виводу графічних об'єктів використовуються функції:
Elliplse, Rectangle. Програмою обробляються події від таймера, натискання клав на клавіатурі, вики відповідних пунктів меню, а також подія
WM_PAINT для перемальовування робочої області. P>
2.2. Опис використовуваних класів, структур і функцій. P>
2.2.1. CApp - клас програми. P>
CApp - клас додатки, породжується класом CWinApp бібліотеки MFCзабезпечує ініціалізацію, виконання та завершення Windows програми:реєструє, створює і відображає основне вікно програми.
Член-функції класу CApp:
InitInstance - віртуальна функція, перевизначається в класі CApp p>
2.2.2. CМainWnd-клас головного вікна. P>
CMainWnd - клас головного вікна програми, успадковується з класу
CFrameWnd бібліотеки MFC.) P>
Член - дані класу СMainWnd:
CRect wnd;/* розмір вікна */ p>
CRect kol1, kol2, korp, kr, temp;/* прямокутники */ p>
CRect svet, ball1, ball2, ball3;/* прямокутники */ p>
CBrush br1 [3], br2;/* кисті */ p>
CBrush sv [4];/* кольору світлофора */ p>
CRect noga;/* нога світлофора */ p>
CRect balls [5];/* кульки диму */ p>
CRect kr2;// кабіна int numball;// номер диму int live [ 5];// ознака життя диму bool game;/* ознака гри або поза грою */int color;/* номер кольору паровоза */int ns;/* номер увета світлофора */int move;/* прапор руху паровоза * < br>/ Член - функції класу СMainWnd: p>
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); --реакція на натискання клавіші клавіатури p>
DECLARE_MESSAGE_MAP () - карта повідомлень p>
2.2.3. Карта повідомлень. P>
BEGIN_MESSAGE_MAP (CMainWnd, CFrameWnd) p>
ON_COMMAND (IDM_EXIT, OnExit) p>
ON_COMMAND (IDM_BEGIN, OnBegin) p>
ON_COMMAND (IDM_RED, OnRed) p> < p> ON_COMMAND (IDM_GREEN, OnGreen) p>
ON_COMMAND (IDM_BLUE, OnBlue) p>
ON_WM_PAINT () p>
ON_WM_TIMER () p>
ON_WM_CHAR ( )
END_MESSAGE_MAP () p>
2.3. Образ головного вікна. P>
На малюнках 1, 2 представлениосновние образи вікна програми. P>
Додаток p>
Лістинг файлу main.cpp p>
/ * В цей файл знаходяться описи всіх функцій */ p>
# include
# include "main.h"
# include "menu1.h" p>
CMainWnd:: CMainWnd ()/* конструктор гол. вікна */
(Wnd.SetRect (0,0,400,355);// устано-ка розмірів вікна p>
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 )); p>
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 )); p>
br2.CreateSolidBrush (RGB (1,1,1));/* чорний колір */ p>
for (numball = 0; numballShowWindow (m_nCmdShow);/* показати вікно */return true;/* вдале завершення */
) p>
afx_msg void CMainWnd:: OnPaint ()/* ф-ия перемальовування */
( p>
CPaintDC dc (this);/* створення контексту вікна */dc.SelectObject (& br2);/* вибір пензлі для світлофора */dc.Rectangle (svet);// малювання корп. світлофора dc.Rectangle (noga);// малювання ноги for (numball = 0; numball p>