Часть полного текста документа:Государственный комитет Российской Федерации по высшему образованию Казанский государственный технический университет имени А.Н. Туполева -------------------------------------------------------------- Кафедра АСОИУ КУРСОВАЯ РАБОТА по основам программирования ИГРА "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. ............ |