рефераты
рефераты
Поиск
Расширенный поиск
рефераты
рефераты
рефераты
рефераты
МЕНЮ
рефераты
рефераты Главная
рефераты
рефераты Астрономия и космонавтика
рефераты
рефераты Биология и естествознание
рефераты
рефераты Бухгалтерский учет и аудит
рефераты
рефераты Военное дело и гражданская оборона
рефераты
рефераты Государство и право
рефераты
рефераты Журналистика издательское дело и СМИ
рефераты
рефераты Краеведение и этнография
рефераты
рефераты Производство и технологии
рефераты
рефераты Религия и мифология
рефераты
рефераты Сельское лесное хозяйство и землепользование
рефераты
рефераты Социальная работа
рефераты
рефераты Социология и обществознание
рефераты
рефераты Спорт и туризм
рефераты
рефераты Строительство и архитектура
рефераты
рефераты Таможенная система
рефераты
рефераты Транспорт
рефераты
рефераты Делопроизводство
рефераты
рефераты Деньги и кредит
рефераты
рефераты Инвестиции
рефераты
рефераты Иностранные языки
рефераты
рефераты Информатика
рефераты
рефераты Искусство и культура
рефераты
рефераты Исторические личности
рефераты
рефераты История
рефераты
рефераты Литература
рефераты
рефераты Литература зарубежная
рефераты
рефераты Литература русская
рефераты
рефераты Авиация и космонавтика
рефераты
рефераты Автомобильное хозяйство
рефераты
рефераты Автотранспорт
рефераты
рефераты Английский
рефераты
рефераты Антикризисный менеджмент
рефераты
рефераты Адвокатура
рефераты
рефераты Банковское дело и кредитование
рефераты
рефераты Банковское право
рефераты
рефераты Безопасность жизнедеятельности
рефераты
рефераты Биографии
рефераты
рефераты Маркетинг реклама и торговля
рефераты
рефераты Математика
рефераты
рефераты Медицина
рефераты
рефераты Международные отношения и мировая экономика
рефераты
рефераты Менеджмент и трудовые отношения
рефераты
рефераты Музыка
рефераты
рефераты Кибернетика
рефераты
рефераты Коммуникации и связь
рефераты
рефераты Косметология
рефераты
рефераты Криминалистика
рефераты
рефераты Криминология
рефераты
рефераты Криптология
рефераты
рефераты Кулинария
рефераты
рефераты Культурология
рефераты
рефераты Налоги
рефераты
рефераты Начертательная геометрия
рефераты
рефераты Оккультизм и уфология
рефераты
рефераты Педагогика
рефераты
рефераты Полиграфия
рефераты
рефераты Политология
рефераты
рефераты Право
рефераты
рефераты Предпринимательство
рефераты
рефераты Программирование и комп-ры
рефераты
рефераты Психология
рефераты
рефераты Радиоэлектроника
рефераты
РЕКЛАМА
рефераты
 
рефераты

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

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

Государственный комитет Российской Федерации

по высшему образованию

Казанский государственный технический университет

имени А.Н. Туполева

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

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

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

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

ИГРА «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=svet.left+3)||(move==1))

{ /*если не около светофора или зеленый цвет*/

if(korp.left

#include "menu1.h"

MAINMENU MENU DISCARDABLE

BEGIN

POPUP "GAME"

BEGIN

POPUP "COLOR"

BEGIN

MENUITEM "RED", IDM_RED

MENUITEM "GREEN", IDM_GREEN

MENUITEM "BLUE", IDM_BLUE

END

MENUITEM SEPARATOR

MENUITEM "START", IDM_BEGIN

MENUITEM "EXIT", IDM_EXIT

END

END

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

Рис. 1. Главное окно после выбора пункта «старт»

Рис. 2. Главное окно до выбора пункта «старт»

     



рефераты
рефераты
© 2011 Все права защищены