Курсовая: Основы программирования. Игра "Паровоз" - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

Основы программирования. Игра "Паровоз"

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Архив Zip, 30 kb, скачать бесплатно
Заказать
Узнать стоимость написания уникальной курсовой работы

Узнайте стоимость написания уникальной работы

13 Государственный комитет Российской Ф едерации по высшему образованию Казанский государственный технический универ ситет имени А.Н . Туполева -------------------------------------------------------------- Кафедра АСОИУ КУРСОВАЯ РАБОТА по основам программирования ИГРА « 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 .) Член - данные класса С M ainWnd : 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 OnGre en(); - обработчик события на выб ор пункта меню « 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; /*на ч . цвет светофора */ br 1[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;numball<5;numball++) //обнуление признаков жизни дыма live[numball]=0; BOOL CApp:: InitInstance()/*ф-ия инициализации окна */ m_pMainWnd=new CMainWnd; /*созд объекта окна */ m_pMainWnd->ShowWindow(m_nCmdShow); /*показать окно */ return true; /*удачное завершение */ afx_msg void CMainWnd::OnPaint() /*ф-ия перерисовки */ CPaintDC dc ( this ); /*созданиее контекста окна */ dc . SelectObject (& br 2); /*выбор к исти для светофора */ dc . Rectangle ( svet ); //рисование корп . светофора dc.Rectangle(noga); //рисование ноги for(numball=0;numball<5;numball++) //рисование дыма if ( live [ nu mball ]==1)//есл и дым активен dc . Ellipse ( balls [ numball ]); switch ( ns ) /*перекл ючение между цветами светофора */ case 0: /*если красный */ dc.SelectObject(sv[0]); dc.Ellipse(ball1); dc.SelectObject(sv[3]); dc.Ellipse(ball2); dc.Ellipse(ball3); break; case 1: /*если жёлтый */ dc.SelectObject(sv[2]); dc.Ellipse(ball2); dc.SelectObject(sv[3]); dc.Ellipse(ball1); dc.Ellipse(ball3); break; case 2:/*еесли зеленый */ dc.SelectObject(sv[1]); dc.Ellipse(ball3); dc.SelectObject(sv[3]); dc.Ellipse(ball1); dc.Ellipse(ball2); break; dc.SelectObject(br1[color]); /*рисование паровоза */ dc.Rectangle(korp); //корпус dc.SelectObject(&br2); dc.Rectangle(kr); //труба dc.Rectangle(kr2); //кабина dc.Ellipse(kol1); //колеса dc.Ellipse(kol2); char * s ="выберете меню старт .";//начальная надпись if(game==0) dc.TextOut(50,100,s,strlen(s)); void CMainWnd :: OnExit () /* реакц ия на выход */ SendMessage ( WM _ CLOSE ); /*послать сообщение о закрытии окна */ afx_msg void CMainWnd::OnTimer( UINT nIDEvent ) /*обработчик таймера */ if ( game ) /*если находимся в игре */ if(nIDEvent==2)//запуск дыма for(numball=0;numball <5;numball++) //если дым не активен , активизировать if ( live [ numball ]==0) live[numball]=1; balls[numball].SetRect(korp.left+35,kr.top-10,kr.right-5,korp.top); break; for(numball=0;numball<5;numball++) //сохра нить предыдущ . положение ды ма temp.CopyRect(balls[numball]); if(live[numball]==1)//если дым активен balls[numball].OffsetRect(1,-6);//сместить дым balls[numball].top--; //изменить размеры balls[numball].right++; InvalidateRect(te mp); //перерисовать InvalidateRect(balls[numball]); if(balls[numball].top<=0) live[numball]=0;//убить if( (korp.right<=svet.left)||(korp.left>=svet.left+3)||(move==1)) /*если не около свето фора или зеленый цвет */ if ( korp . left < 400)/*если не стена */ temp . CopyRect ( korp ); /*сохранить предыдущие координаты */ //сместить всю машину korp . OffsetRect (3,0); InvalidateRect(temp); InvalidateRect(korp); temp.CopyRect(kol1); kol1.OffsetRect(3,0); InvalidateRect(te mp); InvalidateRect(kol1); temp.CopyRect(kol2); kol2.OffsetRect(3,0); InvalidateRect(temp); InvalidateRect(kol2); temp.CopyRect(kr); kr.OffsetRect(3,0); InvalidateRect(temp); InvalidateRect(kr); temp.CopyRect(kr2); if(kr2.top==270) kr2.top=275; else kr2.top=270; kr2.OffsetRect(3,0); InvalidateRect(temp); InvalidateRect(kr2); else/*возврат в левую стенку */ korp.SetRect(0,288,50,300); kr.SetRect(30,280,40,288); kr2.Set Rect(10,270,25,288); kol1.SetRect(5,295,15,305); kol2.SetRect(35,295,45,305); ns=1; move=0; InvalidateRect(ball1); InvalidateRect(ball2); InvalidateRect(ball3); afx_msg void CMainWnd::OnRed() /*реакция на выбор красного цвета */ color=0; afx_msg void CMainWnd::OnGreen() /*выбор зеленого цвета */ color=1; afx_msg void CMainWnd::OnBlue() color=2; afx_msg void CMainWnd::OnBegin() game=true; color=0; move=0; svet.SetRect(200,100,240,230); noga.SetRect(210,230,230,250); ball1.SetRect(210,110,230,140); ball2.SetRect(210,150,230,180); ball3.SetRect(210,190,230,220); korp.SetRect(0,288,50,300); kr.SetRect(30,280,40,288); kr2.SetRect(10,270,25,288); kol1.SetRect(5,295,15,305); kol2.SetRe ct(35,295,45,305); SetTimer(1,100,NULL); SetTimer(2,1000,NULL); InvalidateRect(NULL); 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_CO MMAND(IDM_BLUE,OnBlue) ON_WM_PAINT() ON_WM_TIMER() ON_WM_CHAR() END_MESSAGE_MAP() afx_msg void CMainWnd::OnChar( UINT nChar, UINT nRepCnt, UINT nFlags ) if(game) switch(nChar) case 234: ns=0; break; case 231: ns=2; move=1; break; case 230: ns=1; InvalidateRect(ball1); InvalidateRect(ball2); InvalidateRect(ball3); CApp app; Листинг файла main.h class CMainWnd: public CFrameWnd /*класс окна */ public: 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; /*флаг движения паровоза */ CMainWnd(); /*конструктор главного . окна */ afx_msg void OnRed(); /*пунуты меню цвета */ afx_msg void OnGreen(); afx_msg void OnBlue(); afx_msg void OnP aint(); /*ф-ия перерисовки */ afx_msg void OnTimer( UINT nIDEvent ); /*обраб-чик таймера */ afx_msg void OnExit();//выход afx_msg void OnBegin();//перестартовать afx_msg void OnChar( UINT nChar, UINT nRepCnt, UINT nFlags ); DECLARE_MESSAGE_MAP()//к арта сообщений ; class CApp: public CWinApp public: BOOL InitInstance(); ; Листинг файла menu1.h #define IDM_BEGIN 100 #define IDM_RED 101 #define IDM_GREEN 102 #define IDM_BLUE 103 #define IDM_EXIT 104 Листинг файла menu1.rc #include #include "menu1.h" MA INMENU 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Астрономия, авиация, космонавтика
 
3Безопасность жизнедеятельности
4Биология
 
5Военная кафедра, гражданская оборона
 
6География, экономическая география
7Геология и геодезия
8Государственное регулирование и налоги
 
9Естествознание
 
10Журналистика
 
11Законодательство и право
12Адвокатура
13Административное право
14Арбитражное процессуальное право
15Банковское право
16Государство и право
17Гражданское право и процесс
18Жилищное право
19Законодательство зарубежных стран
20Земельное право
21Конституционное право
22Конституционное право зарубежных стран
23Международное право
24Муниципальное право
25Налоговое право
26Римское право
27Семейное право
28Таможенное право
29Трудовое право
30Уголовное право и процесс
31Финансовое право
32Хозяйственное право
33Экологическое право
34Юриспруденция
 
35Иностранные языки
36Информатика, информационные технологии
37Базы данных
38Компьютерные сети
39Программирование
40Искусство и культура
41Краеведение
42Культурология
43Музыка
44История
45Биографии
46Историческая личность
47Литература
 
48Маркетинг и реклама
49Математика
50Медицина и здоровье
51Менеджмент
52Антикризисное управление
53Делопроизводство и документооборот
54Логистика
 
55Педагогика
56Политология
57Правоохранительные органы
58Криминалистика и криминология
59Прочее
60Психология
61Юридическая психология
 
62Радиоэлектроника
63Религия
 
64Сельское хозяйство и землепользование
65Социология
66Страхование
 
67Технологии
68Материаловедение
69Машиностроение
70Металлургия
71Транспорт
72Туризм
 
73Физика
74Физкультура и спорт
75Философия
 
76Химия
 
77Экология, охрана природы
78Экономика и финансы
79Анализ хозяйственной деятельности
80Банковское дело и кредитование
81Биржевое дело
82Бухгалтерский учет и аудит
83История экономических учений
84Международные отношения
85Предпринимательство, бизнес, микроэкономика
86Финансы
87Ценные бумаги и фондовый рынок
88Экономика предприятия
89Экономико-математическое моделирование
90Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
Недолго Музычка играла,
Недолго Белый блатовал
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, курсовая по программированию "Основы программирования. Игра "Паровоз"", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2016
Рейтинг@Mail.ru