文档库 最新最全的文档下载
当前位置:文档库 › MFC_陨石撞飞机实验报告

MFC_陨石撞飞机实验报告

MFC_陨石撞飞机实验报告
MFC_陨石撞飞机实验报告

一、题目

陨石撞飞机综合性实验

二、中文摘要

用MFC设计一个陨石撞飞机的平面游戏:陨石不断地向下落,飞机通过上下左右键移动以躲避陨石。当陨石碰撞了飞机时,显示提示对话框,及飞机爆炸图像。确定后在碰撞位置重新开始游戏。三次碰撞后显示提示对话框,游戏结束。

三、关键词

MFC、Bitmap、timer、键盘响应(WM_KEYDOWN)

四、前言

此程序大多代码出自参考资料,一小部分代码为搜索资料并加工完成,其功能尚有不完善之处。

五、软件开发过程

(一)、新建MFC APPWizard[exe]单文档工程文件

在Visual C++中新建一个工程,命名为Plane。工程类型为: MFC AppWizard[exe]。在MFC AppWizard-Step1对话框中设置应用程序的类型,建立一个单文档工程文件,得到一个应用程序框架文件。

(二)、添加资源:、飞机位图、陨石位图、爆炸位图。

在[插入]-[资源…]选择Bitmap选项,单击[新建]即可。绘出一个飞机,ID为(IDB_BITMAP1)、五个陨石(IDB_BITMAP2~IDB_BITMAP6)和一个炸弹位图(IDB_BITMAP7),如下图。

飞机位图陨石位图爆炸位图

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

(三)、在planeView.h头文件中声明所需变量和函数

CBitmap m_plane; //声明一个CBitmap类型的飞机变量m_plane int mx,my; //表示飞机坐标

CBitmap m_bump; //爆炸位图变量

int mpx,mpy; //表示爆炸位图的坐标

int t; //爆炸次数

//声明陨石位图的成员变量为CBitmap类型的变量

CBitmap m_stone1,m_stone2,m_stone3,m_stone4,m_stone5;

//声明陨石的坐标变量为int类型:

int nstone1x,nstone1y;

int nstone2x,nstone2y;

int nstone3x,nstone3y;

int nstone4x,nstone4y;

int nstone5x,nstone5y;

再声明函数成员

void CPlanView::DrawPlane(CDC *pDC);//飞机位图函数

void CPlanView::Drawbump(CDC *pDC); //爆炸位图函数

// 声明绘制陨石的函数原型:

void DrawStone1(CDC *pDC);

void DrawStone2(CDC *pDC);

void DrawStone3(CDC *pDC);

void DrawStone4(CDC *pDC);

void DrawStone5(CDC *pDC);

以上成员(数据成员、成员函数)均为public属性

(四)在planview.cpp文件中添加函数

1)、修改构造函数

mx=100; my=100; t=0; //赋初值

m_plane.LoadBitmap(IDB_BITMAP1); //飞机位图调用

m_bomb.LoadBitmap(IDB_BITMAP7); //爆炸位图调用

//添加陨石初始化操作代码,随机产生

nstone1x=rand()%500; // 陨石1 x方向随机数0~499

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

nstone1y=10;

m_stone1.LoadBitmap(IDB_BITMAP2);

nstone2x=rand()%500; // 陨石2 x方向随机数0~499

nstone2y=10;

m_stone2.LoadBitmap(IDB_BITMAP3);

nstone3x=rand()%500; // 陨石3 x方向随机数0~499

nstone3y=10;

m_stone3.LoadBitmap(IDB_BITMAP4);

nstone4x=rand()%500; // 陨石4 x方向随机数0~499

nstone4y=10;

m_stone4.LoadBitmap(IDB_BITMAP5);

nstone5x=rand()%500; // 陨石5 x方向随机数0~499

nstone5y=10;

m_stone5.LoadBitmap(IDB_BITMAP6);

2)、修改ondraw()函数

添加 DrawPlane(pDC); //调用绘制飞机函数

3)、添加DrawPlane()和Drawbump()函数

void CPlaneView::DrawPlane(CDC *pDC)

{

CDC MemDC;

MemDC.CreateCompatibleDC(pDC);

BITMAP bm;

m_plane.GetObject(sizeof(BITMAP),&bm);

CBitmap MemBitmap;

MemBitmap.CreateCompatibleBitmap(pDC,bm.bmWidth,bm.bmHeight);

CBitmap *pOldBitmap;

pOldBitmap=(CBitmap*)MemDC.SelectObject(&MemBitmap);

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

MemDC.SelectObject(&m_plane);

pDC->BitBlt(mx,my,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY);

MemDC.SelectObject(pOldBitmap);

}

Drawbump()函数如上类似。

4)添加键盘响应处理函数(OnkeyDown)

①添加函数,使飞机能随用户按下的上下左右方向键而移动。在菜单中选择View->ClassWizard,选中CPlaneView类,在Message Maps选项卡中的Messages栏目选择WM_KEYDOWN消息,双击该项,系统自动生成onKeyDown消息处理函数.

②在PlaneView.cpp文件中,在系统自动产生的函数框架里添加如下所示代码:

CClientDC ClientDC(this);

RECT rect;

BITMAP bm;

m_plane.GetObject(sizeof(BITMAP),&bm);

rect.left=mx;

rect.top=my;

rect.right=rect.left+bm.bmWidth;

rect.bottom=rect.top+bm.bmHeight;

CBrush brush(GetSysColor(COLOR_WINDOW)); // 擦去原来的飞机图像

ClientDC.FillRect(&rect,&brush);

if(nChar==VK_UP) //按键盘上的向上键"↑"

{my=my-8;}

if(nChar==VK_LEFT) //按键盘上的向上键"←"

{mx=mx-8;}

if(nChar==VK_RIGHT) //按键盘上的向上键"→"

{mx=mx+8;}

if(nChar==VK_DOWN) //按键盘上的向上键"↓"

{my=my+8;}

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

DrawPlane(&ClientDC); //重新绘制飞机图像

CView::OnKeyDown(nChar, nRepCnt, nFlags);

5)添加自定义的绘制陨石的函数DrawStone1

void CPlaneView::DrawStone1(CDC *pDC)

{

CDC MemDC;

MemDC.CreateCompatibleDC(pDC);

BITMAP bm1;

m_stone1.GetObject(sizeof(BITMAP),&bm1);

CBitmap MemBitmap;

MemBitmap.CreateCompatibleBitmap(pDC,bm1.bmWidth,bm1.bmHeight);

CBitmap *pOldBitmap;

pOldBitmap=(CBitmap*)MemDC.SelectObject(&MemBitmap);

MemDC.SelectObject(&m_stone1);

pDC->BitBlt(nstone1x,nstone1y,bm1.bmWidth,bm1.bmHeight,&MemDC,0,0,SRC COPY);

MemDC.SelectObject(pOldBitmap);

}

其余函数DrawStone2、DrawStone3、DrawStone4、DrawStone5,类似如上的函数写法

6)为了实现陨石的自动下落运动,需要添加定时器函数来控制。

①选View|ClassWizard菜单项,在MFC ClassWizard中,选择CPlaneView 类,在Message Maps选项卡中的Messages栏目选择WM_TIMER、WM_CREATE消息,分别双击该项,由系统自动生成该对应的消息函数。

②在OnCreate函数中添加:SetTimer(1,200,NULL);//定时器

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

③在OnTimer函数中添加

CClientDC ClientDC(this);

RECT ClientRect;

GetClientRect(&ClientRect);

RECT rect1,rect2,rect3,rect4,rect5;

BITMAP bm;

m_stone1.GetObject(sizeof(BITMAP),&bm);

CBrush brush(GetSysColor(COLOR_WINDOW));

int n=0,ns1,ns2,ns3,ns4,ns5;

n++;

ns1=nstone1x+n;

rect1.left=ns1-20;

rect1.top=nstone1y-20;

rect1.right=rect1.left+bm.bmWidth;

rect1.bottom=rect1.top+bm.bmHeight;

ClientDC.FillRect(&rect1,&brush);

nstone1y=nstone1y+10; // 陨石1 下落的速度

if(nstone1y>ClientRect.bottom)

{nstone1y=0;

nstone1x=rand()%ClientRect.right; // 陨石落下的位置随机产生}

陨石2至陨石5类似

if(n>3)

{n=0;}

DrawStone1(&ClientDC);

DrawStone2(&ClientDC);

DrawStone3(&ClientDC);

DrawStone4(&ClientDC);

DrawStone5(&ClientDC);

CView::OnTimer(nIDEvent);

7)接着添加陨石撞上飞机时弹出提示的函数

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

if(t<3) //判断死亡次数

{

if(nstone1x>=mx-30 && nstone1x<=mx+20 && nstone1y>=my-30 && nstone1y<=my+20) //判断爆炸条件

{

mpx=mx;

mpy=my;

Drawbump(&ClientDC); //显示爆炸位图

KillTimer(1); //停止计时器

MessageBox("死亡!"); //提示框显示死亡 nstone1y=0;

nstone1x=rand()%ClientRect.right; //重新产生被撞陨石

SetTimer(1,200,NULL); //开始计时器

t++;

}

}

else

{

t=0;

mpx=mx;

mpy=my;

Drawbump(&ClientDC);

MessageBox("Game Over!Press OK to restar!","Notice"); //超过3次死亡显示Game Over

}

if(t<3) //判断死亡次数

{

if(nstone2x>=mx-30 && nstone2x<=mx+20 && nstone2y>=my-30 && nstone2y<=my+20) //判断爆炸条件

{mpx=mx;

mpy=my;

Drawbump(&ClientDC); //显示爆炸位图

KillTimer(1); //停止计时器

MessageBox("死亡!"); //提示框显示死亡 nstone2y=0;

nstone2x=rand()%ClientRect.right; //重新产生被撞陨石

SetTimer(1,200,NULL); //开始计时器

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

t++;

}

}

else

{

t=0;

mpx=mx;

mpy=my;

Drawbump(&ClientDC);

MessageBox("Game Over!Press OK to restar!","Notice"); //超过3次死亡显示Game Over

}

if(t<3) //判断死亡次数

{

if(nstone3x>=mx-30 && nstone3x<=mx+20 && nstone3y>=my-30 && nstone3y<=my+20) //判断爆炸条件

{mpx=mx;

mpy=my;

Drawbump(&ClientDC); //显示爆炸位图

KillTimer(1); //停止计时器

MessageBox("死亡!"); //提示框显示死亡 nstone3y=0;

nstone3x=rand()%ClientRect.right; //重新产生被撞陨石

SetTimer(1,200,NULL); //开始计时器

t++;

}

}

else

{

t=0;

mpx=mx;

mpy=my;

Drawbump(&ClientDC);

MessageBox("Game Over!Press OK to restar!","Notice"); //超过3次死亡显示Game Over

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

}

if(t<3) //判断死亡次数

{

if(nstone4x>=mx-30 && nstone4x<=mx+20 && nstone4y>=my-30 && nstone4y<=my+20) //判断爆炸条件

{mpx=mx;

mpy=my;

Drawbump(&ClientDC); //显示爆炸位图

KillTimer(1); //停止计时器

MessageBox("死亡!"); //提示框显示死亡 nstone4y=0;

nstone4x=rand()%ClientRect.right; //重新产生被撞陨石

SetTimer(1,200,NULL); //开始计时器

t++;

}

}

else

{

t=0;

mpx=mx;

mpy=my;

Drawbump(&ClientDC);

MessageBox("Game Over!Press OK to restar!","Notice"); //超过3次死亡显示Game Over

}

if(t<3) //判断死亡次数

{

if(nstone5x>=mx-30 && nstone5x<=mx+20 && nstone5y>=my-30 && nstone5y<=my+20) //判断爆炸条件

{mpx=mx;

mpy=my;

Drawbump(&ClientDC); //显示爆炸位图

KillTimer(1); //停止计时器

MessageBox("死亡!"); //提示框显示死亡 nstone5y=0;

nstone5x=rand()%ClientRect.right; //重新产生被撞陨石

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

SetTimer(1,200,NULL); //开始计时器

t++;

}

}

else

{

t=0;

mpx=mx;

mpy=my;

Drawbump(&ClientDC);

MessageBox("Game Over!Press OK to restar!","Notice"); //超过3次死亡显示Game Over

}

程序结束

六、系统测试情况

基本完成实验要求,飞机可以键盘响应上下左右移动,撞上陨石有提示并能调出爆炸位图,超过三次碰撞提示游戏结束。

游戏截图如下:

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机

实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

七、系统优点与不足

优点:可以实现碰撞时产生提示及爆炸图像

缺点:不可以在游戏界面修改飞机速度和陨石下落速度

八、参考文献

1周霭如著.C++程序设计基础(第2版).北京:电子工业出版社

2 谭浩强著.C++面向对象程序设计.北京:清华大学出版社

3 谭浩强著.C++是程序设计.北京:清华大学出版社

专业软件工程年级、班级09级8班

课程名称计算机综合性实验实验项目陨石撞飞机实验时间2010 年 6 月20 日

实验指导老师黄荔实验评分

《汽车构造》实验报告解析

《汽车构造》姓名: 班级: 学号:

目录 目录 (1) 实验一汽车总体构造认识 (2) 实验二曲柄连杆机构、配气机构认识 (4) 实验三汽车传动系认识 (9)

实验一汽车总体构造认识 一、实验目的 汽车构造课程实验教学的主要目的是为了配合课堂教学,使学生建立起对汽车总体及各总成的感性认识,从而加深和巩固课堂所学知识。 1、掌握解汽车基本组成及各组成功用; 2、了解发动机总体结构和作用; 3、了解底盘的总体结构和作用; 4、了解车身的总体结构和作用。 二、实验内容 通过认真观察,分析各种汽车的整体结构及组成。掌握汽车的四大组成部分,各主要总成的名称和安装位置,发动机的基本构成。 三、实验步骤 学生在实验指导人员讲解下,对于不同型号的汽车和发动机进行动态的现场学习。 1.观察各种汽车的整体结构及组成; 2.观察、了解各主要汽车总成的名称、安装位置和功用; 3.根据实物了解发动机的基本构成。 四.分析讨论题 1、汽车由哪些部分组成?各个组成部分的功用是什么?请就你分析的汽车来说 明。 汽车主要由四部分构成:发动机、底盘、车身、电子及电器设备 1)、发动机:汽车的核心,动力的提供者 2)、底盘:作为汽车的基体,发动机、车身、电器设备都直接或间接的安装在

底盘上,是使汽车运动并按驾驶员操纵而正常行驶的部件。 3)、车身:车身是驾驶员工作及容纳乘客和货物的场所。 4)、电器与电子设备:是使汽车行驶安全及驾驶员操纵方便以及其他方面所必要的。 2、观察各汽车的总布置形式。 1)、前置前驱:优点是动力流失小,传输快,容易驾驶,制造成本地,缺点是操控性跟不上,极限低,比如奥迪A8L 3.0。 2)、前置后驱:优点是平稳,操控直接,驾驶极限高,缺点是动力流失比较大,因为要经过传动轴把发动机的动力传到后轮需要时间,所以对发动机的动力要求大,比如宝马的7系。 3)、前置四驱:优点是动力响应快,极限状态下车的稳定性好,弯道平稳,缺点是油耗大,操控不直接,比如奥迪的A8L 6.0 W12。 4)、中置后驱:动力响应快,驾驶感受很直接,缺点是车辆难控制,对驾驶技术要求高,比如保时捷的波尔斯特。 5)、后置后驱:优点是动力响应极好,弯道提速快,终极操控,缺点是最难驾驶,一般的技术很难驾驭,比如保时捷911系列。 3、发动机的总体结构和工作过程分析(以汽油机为例)。 汽油机由两大机构和五大系统机构组成,即由曲柄连杆机构,配气机构、燃料供给系、润滑系、冷却系、点火系和起动系组成。 四冲程汽油机工作原理汽油机是将空气与汽油以一定的比例混合成良好的混合气,在吸气冲程被吸入汽缸,混合气经压缩点火燃烧而产生热能,高温高压的气体作用于活塞顶部,推动活塞作往复直线运动,通过连杆、曲轴飞轮机构对外输出机械能。四冲程汽油机在进气冲程、压缩冲程、做功冲程和排气冲程内完成一个工作循环。 1)吸气冲程活塞在曲轴的带动下由上止点移至下止点。此时进气门开启,排 气门关闭,曲轴转动180°。在活塞移动过程中,汽缸容积逐渐增大,汽缸内形成一定的真空度,空气和汽油的混合气通过进气门被吸入汽缸,并在汽

俄罗斯方块mfc实验报告

程序设计实践 设 计 报 告 课题名称:俄罗斯方块(MFC版)学生姓名:黄嘉慧 班级:2012211113 班内序号:27 学号:2012210389 日期:2014.6.1

1. 实验概述 1.1 课题目标和主要内容。 本课题的主要内容是用MFC 实现经典游戏俄罗斯方块的编写。目标是能够正常运行,并且无过于严重的问题。使用的平台为MFC (基于对话框)。 1.2 采用计分升级制来进行游戏。当一次消去一行时,得一分,一次两行得 4分,一次3行,得9分,一次4行,得16 分。每 50分为一个等 级,得分足够则升级并重新开始游戏。 2. 程序设计 2.1 系统总体框架 用一个4维数组DiamondStruct[7][4][4][4]来表示所有的方块,用一个POINT 类型的DiamondPos 来表示方块当前的位置,然后通过一个二维数组BlockPanel[][],来表示整个游戏界面,同时进行障碍的添加。游戏过程中,通过改变DiamondPos 来进行方块的下降以及

左右移动,通过DiamondStruct[7][4][4][4]中第二个参数的改变来进行方块的变换。 2.2系统详细设计 【1】模块划分图及描述 【2】类关系图及描述 CWinApp 与CDialog 为基类。其它为添加的类。 【3】程序流程图及描述

【4】存储结构,内存分配 主要存储结构为数组。同时分配内存的有,画笔,Diamond类的指针,Panel类的指针,Block类的指针,Mill类的指针,Manager类的指

针。 2.3 关键算法分析 【1】 bool Diamond::FullLine() { bool IsFull,Full=false; pManager->SeriesLine=0; for(int iy=0;iy<=pPanel->nVGridNum;iy++) { IsFull=true; for(int ix=0;ix<=pPanel->nHGridNum;ix++) { if(!pBlock->BlockPanel[ix][iy]) IsFull=false; } if(IsFull) { Full=true; pManager->SeriesLine++; for(int jy=iy;jy>0;jy--) { Sleep(10); for(int jx=0;jx<=pPanel->nHGridNum;jx++) { pBlock->BlockPanel[jx][jy]=pBlock->BlockPanel[jx][jy-1]; } } } } pManager->LineNumber+=pManager->SeriesLine; pManager->Result+=pManager->SeriesLine*pManager->SeriesLine; if(Full) return true; else return false; } 该算法实现的功能为,判断是否已经满行,并且若是满行,进行消行,加分的操作。该算法的时间复杂度为O(n)=【(nVGridNum)^2*nHGridNum.】/2

焦点访谈观后感10篇

焦点访谈观后感10篇 晚11点至凌晨4点之前也能够溜狗的哟!确实能够,可是我有些心疼我家主人,他工作一天,我还想让他在这段时间内多休息休息,虽然这段时间人类比较少,也很自由,附加礼貌条件:要配戴的长长的领带,一头在我脖子上,因为太长了,另一头需要让主人拿着,时间为外出结束,人类是很礼貌的哟!外出必须会带领带的,向人类学习;空间吗,就是社区或城市街道,背街小巷、绿化带等,原则是人少就好;在主人家里的也是我的家里,时间是大大地,空间吗,就是家里的几个房间。 解决方法或期望:期望有一小块儿草地,能够让我们自由的奔跑、游戏。 人: 空间吗:基本上哪都能够去,个别地方也需要戴领带,可是,不太多,领带也不太长,不需要别人帮忙在另一头举着;时间吗:也基本上都能够,平时较忙,可是也有大礼拜,还有节假日,还能够请公休,自我能够支配及调整的时间还是挺多的。如果再借助一些科技手段时间适宜,基本上能够上天入地的。 解决方法或期望:期望去火星旅游一下,到月球上买套房子住住! 二、礼貌养犬者和不礼貌养犬者的问题 在养宠物的人群当中有讲礼貌和不讲礼貌的,那里所说的礼貌是指人类应当具有的职责、义务、宽容及理解。不管您养宠物的目的如

何,我们有职责对宠物的健康、行为、成长负责,有义务帮忙和指导宠物的不良行为,同时为了共同维护大家的空间去尽自我应尽的职责。那里所指的礼貌及问题在人类社会当中同样存在。 养宠物的人群有几种心态: 一、技能型: 把宠物训练成能够完成某种特殊工作的,这需要您十分了解宠物的习性、还要有全面的训练知识及经验,要经过长时间的练习才能到达; 二、宠物型: 因为种种原因,想有一个宠物伴侣,喜欢和它们玩耍,这种情景一般只是期望宠物能够陪伴自我就行了,更在意宠物对您的依靠,最容易出现的问题是把宠物当孩子养,太过溺爱,用对待孩子的心态去对待宠物,而宠物的行为和人类还有许多差别的,这样的溺爱,很多情景下是宠物对主人的依靠性很强,其它方面会差许多,有可能在外出时会不听话、有功击性行为、不能被主人控制的叫等问题。 三、一时高兴型 许多年轻人偶然看到小狗招人喜爱的形态或看到某些宠物表演后,突发奇想要养宠物,想让自我养的宠物更招人喜爱、更会表演,不管自我的客观情景如何,自我及家人是否能够理解,自我是否准备好学习、职责、付出等因素,就冒然开始养宠物,异常是3、4个月的小狗十分难养,宠物的吃、喝、拉、撒、游戏、教育、健康这些对你来讲能够是全新的体验会极大的占用你的时间和精力,我极力奉劝

飞机大战实训报告.

程序设计综合实践 实习报告 学院名称 专业班级 学生姓名 学号 指导教师 山东科技大学

一、实习题目:飞机大战游戏的设计与实现 二、实习时间:18周~ 19周实习地点: 三、实习任务: 1.基本功能要求:飞机大战游戏必须运用透明贴图、按键处理、定时控制、双缓冲技术等技术实现战机(玩家)和敌机(计算机)对战功能 2.扩展功能:在完成基本功能基础上可以增加双人对战、游戏积分制、声音效果、多种子弹类型、客机类型、游戏关卡设计、多种类型敌机、游戏中间结果存贮等功能 四、小组分工说明:自己完成 五、实习成绩 六、指导教师对实习的评语: 指导教师(签章): 2015年月日

目录 1.概述 (4) 1.1实训项目简介 (4) 1.2实训项目功能说明 (4) 2.相关技术 (5) 2.1透明贴图技术 (5) 2.2 获取矩形区域并判断两个矩形区域是否相撞 (5) 2.3鼠标控制我方战机 (5) 2.4 Windows定时器技术 (6) 2.5 CObList链表 (6) 2.6对话框的应用 (7) 2.7双缓冲技术 (7) 3.需求分析 (7) 3.1功能需求分析 (7) 3.2 数据需求分析 . (7) 3.3 行为需求分析 (7) 3.4 其他需求 (7) 4.总体设计与详细设计 (8) 4.1 系统模块划分 (8) 4.2 主要功能模块 (8) 4.2.1系统主要类图 (8) 4.2.2飞机大战游戏设计执行流程图 (8) 4.3 扩展功能设计思路 (9) 4.4 软件结构设计体会 (9) 5.编码实现 (10) 5.1绘制游戏背景位图的程序 (10) 5.2各个游戏对象的绘制 (10) 5.3我方战机位置的动态控制 (12) 5.4各个游戏对象碰撞的实现 (13) 5.5游戏界面输出当前游戏信息 (15) 6.测试情况说明 (17) 6.1主要模块测试情况 (17) 6.2 主要功能测试情况 (18) 7. 实训中遇到的主要问题及解决方法 (19) 8.实训收获与体会 (19)

汽车电器实验报告分析解析

(一)蓄电池、发电机、起动机结构及工作原理的实验 实验指导书和实验报告 实验学时:2学时 一、实验目的与要求: 汽车电源系统、起动系统实验是车辆、交运专业课程教学实验,本实验指导书是根 据《汽车电器》教学计划制定的,为 帮助学生更好的理解、巩固和掌握汽车电源、起动系统的组成及工作原理等有关内容。以巩固和加强课堂所学知识,培养实践技能和动手能力,提高分析问题和解决问题的能力和技术创新能力。 通过本实验应达到以下基本要求: 1.深入了解汽车电源系统、起动的结构特点 2.掌握基本的结构原理 二、实验工具、材料及工件: (专用蓄电池)、发电机、起动机示教板、汽车万能实验台。 、写出蓄电池、发电机、起动机作用及原理概述

二、实验数据与处理 发电机空载特性、输出特性、外特性画出特性曲线

(二)汽车点火系统组成及工作原理实验 实验学时:1学时 一、实验目的与要求: 汽车点火系统实验是车辆、交运专业课程教学实验,本实验指导书是根据《汽车电器》 教学计划制定的,为帮助学生更好的理解、巩固和掌握汽车点火系统的组成及工作原理等有关内容。以巩固和加强课堂所学知识,培养实践技能和动手能力,提高分析问题和解决问题 的能力和技术创新能力。 通过本实验应达到以下基本要求: 1.深入了解汽车汽车点火系统的结构特点 2.掌握基本的结构原理 二、实验内容: 1.了解对点火系统的要求 2.了解点火系统分类 根据不同的分类方式,可以将各种点火系统的特点及目前使用情况加以概括。 2.1按点火系统的电源不同分 2.1.1磁电机点火系统 2.1.2蓄电池点火系统 2.2按点火系统储存的点火能量的方式不同分 2.2.1电感储能式 2.2.2 电容储能式 2.2.3按点火系统结构和发展过程分 触点式点火系统:目前在一些载货汽车上还有少量使用。 晶体管辅助点火系统:现基本上已不使用。 无触点电子点火系统:感应式、光电式、振荡式、霍尔效应式等不同的形式,其中振荡式目前使用很少。 微机控制电子点火系统:随着汽油喷射式发动机的普及,由微机控制的电子点火系统也 越来越多。 3.了解各种形式的点火系统 3.1传统触点式点火系统的工作原理

飞机大战MFC实验报告

实训报告 飞机大战游戏设计与开发

目录 1. 概述 (4) 2. 相关技术 (4) 2.1 透明贴图技术 (4) 2.2 CObList链表 (4) 2.3获取矩形区域函数 (4) 2.4弹出对话框函数 (5) 2.5字体的个性化输出函数 (5) 2.6设置定时器 (5) 2.7双缓冲技术 (5) 2.8 内存释放技术 (6) 2.9对话框中添加动态按钮 (6) 2.10检测方向键按下 (6) 3. 需求分析(用结构化方法或面向对象方法给出系统的主要需求模型) (6) 3.1功能需求分析 (6) 3.2 数据需求分析 (7) 3.3 行为需求分析 (7) 3.4 其他需求 (8) 4. 总体设计与详细设计 (8) 4.1 系统模块划分 (9) 4.2 主要功能模块 (10) 4.3 扩展功能设计思路 (10) 5. 编码实现 (11) 5.1游戏初始创建 (11) 5.2定时器 (11) 5.3背景及游戏开始、结束界面绘制函数 (11) 5.4键盘控制函数 (12) 5.5游戏对象进行碰撞测试和碰撞销毁 (13) 5.6创建动态按钮(开始游戏、游戏规则) (13) 5.6重新开始游戏代码 (14) 5.7设置游戏难度代码 (14) 5.8游戏结束时释放资源函数 (15) 5.9调整对话框大小函数 (15) 5.10开始界面背景绘制函数 (15) 5.11选择下一关卡以及选择完成后的执行代码 (16) 6.测试情况说明。 (17) 6.1主要模块测试情况(白盒) (17) 6.11各游戏对象碰撞检测爆炸模块测试 (17) 6.12战机导弹的方向速度模块测试 (17) 6.13文字显示,游戏结束和关卡进入模块测试 (18) 6.14设置游戏难度和重新开始模块测试 (18) 6.2 主要功能测试情况(黑盒) (18)

《加油吧威基基》观后感

《加油吧威基基》观后感 《加油吧威基基》观后感 上周,一部帅不过三秒的丧燃剧以陨石撞地球之势到来了。 目测接下去两个月的笑点都要被它所承包。隔壁看《Kill it》看到虐的,不妨来这边开心一下。 “东久”抑郁了,“斗植”酒驾了,除了李俊基(李伊庚饰),威基基客栈里的的其他成员都来了个大换血。戏里戏外都已分手 的他,再也不用担心被挂在屏风后面闻烧香味了。不过没有了东 久和斗植,威基基又将迎来新的丧男。 作为第二季中唯一保留的“老演员”,俊基暂时成了当之无 愧的丧男一号。 原本以为熬完第一季的俊基终于当上了演员,一开场刀起刀落,飞身旋转,假发飞扬,《杀死比尔》的场景被神还原。帅气吧?燃鹅…… 一声cut将人从戏里拉回现实。女主角上,男替身下,头戴 假发身穿李小龙连体服的李俊基,依旧是那个无名的小演员,被 无视、被随意对待却还要保持微笑。 娴熟的手法,帅气的背影,大幕拉开,聚光灯下丧男二号车 宇植就这样在自弹自唱中闪亮登场了。 可惜blingbling的夜店风西装出卖了他“不正经”的职业。 偌大的会场里,一只手数得过来的观众:5个昏昏欲睡的老太太。

没人欣赏怕什么,腔调还是要有的,我就是自己的观众。你看,接起电话来立马切换成“讲课”模式。 伴随着斗志昂扬的bgm和解说员的激情解说,棒球选手国奇峰即将投出关键的一球。三振出局,全场欢呼,王牌投手国奇峰为全队夺冠立下汗马功劳。 说好的三号丧男呢?这就送上! 正确的打开方式其实是这样的↓↓↓ 如果说宇植的登场是靠装,那么国奇峰的登场就是靠……做梦了。现实中的他只不过是一个进不了一队的替补,偶尔还要客串下球队修理工的角色。 (这么看来李俊基似乎还是三人中离梦想最近的那个了。)三个丧男就这样开启了新一轮的丧燃生活。 穷,还是更穷?这依旧是个亘古不变的问题! 赶走了房东忽悠来的新房客,摆在三人眼前的事实是:一周内必须还清欠了四个月又两周的房租。 所谓大难见人心!什么叫兄弟?兄弟就是在你困难的时候,先把各自的责任说说清楚…… 借钱?不存在的!寄住在客栈的房客也是口袋比脸还要干净的主。 贷款?没工作!没担保!汽车倒是有,也就是十几年前的款吧! 站在天台上,三人各自盘算着心事。比起愁眉不展的宇植和

汽车检测实验报告

学生实验报告 (理工类) 课程名称:汽车检测诊断技术专业班级: 学生学号:学生姓名: 所属院部:指导教师: 20 12 ——20 13 学年第一学期 金陵科技学院教务处制

实验项目名称:汽油机排放污染物检测实验学时: 2 实验地点:汽车维修实验室 实验日期: 2012.11.5 一、实验目的和要求 1、认识汽车排放污染物的危害性。 2、掌握检测汽油机排放污染物的检测方法。 二、实验仪器和设备 1、雪佛兰乐风汽车一辆,马自达2汽车一辆。 2、NHA-500型废气分析仪一台,FGA4100型废气分析仪一台。 3、常用工具一套。 三、实验原理 为控制在用汽车排气污染物的排放,改善环境空气质量,国家质量技术监督局于2000年12月28日发布了GB18285-2000《在用汽车排气污染物限值及测试方法》。该标准规定对“装配点燃式发动机的车辆”进行怠速试验、双怠速试验和加速模拟工况(ASM)试验。国家标准GB18285-2000《在用汽车排气污染物限值及测试方法》中规定,怠速试验按国家标准GB/T3845-1993《汽油车排气污染物的测量怠速法》的规定进行。双怠速试验按国家标准GB/T3845-1993《汽油车排气污染物的测量怠速法》附录C的规定进行。汽油车怠速污染物的检测应在怠速工况下,采用不分光红外线吸收型监测仪,按规定程序检测CO和HC 的浓度值。怠速工况是指发动机运转,离合器处于接合位置,油门踏板与手油门处于松开位置,变速器处于空档位置,采用化油器的供油系统的阻风门处于全开位置。 四、实验过程 双怠速测量程序: 1.在发动机上安装转速计、点火正时仪、冷却水和润滑油侧温计等测试仪器。 2.发动机由怠速工况加速至0.7额定转速,维持60s后降至高怠速(即0.5额定转速)。

C++实验报告(MFC简单画图程序)

VC++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、 曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决 定图形的大小,当鼠标弹起,此图形则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

汽车实验报告

汽车实验报告工程学院车辆四班何满龙201030480408

离合器自由行程篇 离合器踏板的自由行程:是指离合器膜片弹簧内端与分离轴承之间的间隙在踏板上的反映。如:东风EQ1090E型汽车离合器踏板自由行程设计值为30~40mm;桑塔纳轿车离合器踏板自由行程为15-25mm。 设计离合器自由行程的原因: 1、从动盘在使用一段时间后由于磨损会变薄,从而使得压盘和从动盘在压紧弹簧的作用下向飞轮方向移动,此时就要要求分离杠杆也必须要向相反方向移动。才能保证离合器有足够的压紧力去工作。为了让分离杠杆向后移动一定的距离,需要在分离杠杆与分离轴承之间留有一定的间隙。如果膜片弹簧收到分离轴承的推压,在传送发动机转矩时,将会使得离合器产生打滑现象,这不仅降低了离合器传扭效率,同时我们驾驶汽车也非常危险。所以在离合器脱离时,必须留出一定的间隙,保证摩擦片在正常磨损后离合器仍能完全接合,正常传递扭矩。,即为离合器踏板自由行程; 2、假如踏板没有自由行程,即在放松离合器踏板的时候,离合器仍会保持在结合状态,分离轴承仍与膜片弹簧内端保持接触。这样,将会加速分离轴承的损坏。 离合器自由行程的影响: 1、踏板自由行程过大,则使分离轴承推动膜片弹簧前移的行程缩短,压盘向后移动的距离也随之缩短,不能完全解除压盘对从动盘的压力,从而不能使离合器彻底分离,造成换档困难,并造成加快离合片磨损,在检查中发现有烧焦味; 2、踏板自由行程过小,则离合器压盘处于半分离状态,汽车起动后放松离合器踏板,车辆不能行走.;就是能走了也会加速磨损的。 离合器自由行程的测量:

1、简易测量法是用手向下轻压离合器踏板,直到感觉有新的阻力时为止,这段距离就是自由行程,约为30mm。 2、通过钢直尺测量并且计算,离合器踏板自由行程及检查如图所示。 自由行程的调整方法: 拧动分离拉杆上的调整螺母,通过调整拉杆有效长度,以调整间隙,从而使自由行程恢复到标准值。在调整踏板自由行程之前,必须先将4个分离杠杆内端的后端面调整到处于与飞轮端面平行的同一平面内。否则在离合器分离和结合过程中,压盘位置会歪斜,致使分离不彻底,并且在汽车起步时会发生颤抖现象。调整的方法是拧动支承柱上的调整螺母。如:桑塔纳轿车离合器采用钢索操作机构,在软轴外套上装有调整螺母,用以调整离合器踏板自由行程。 机械传递式离合器踏板自由行程的调整如图: 案例: (1)富康轿车的离合器踏板自由行程为5-15mm,有效行程不少于140mm。检查时,先测出离合器踏板在完全放松时的高度,再测量踩下踏板到分离杠杆被分离

《MFC》实验报告模板

贵州大学实验报告 学院:梁玉涛专业:计算机科学与技术班级:计科职091 姓名梁玉涛学号0920020217 实验组 1 实验时间2011.10.25 指导教师曾劼成绩 实验项目名称使用计算数据画直方图 实 验目的1.了解图形设备接口GDI编程; 2.学会应用GDI编写应用程序; 3.实现使用计算数据画直方图。 实 验要求1.了解有关GDI的相关知识及使用; 2.根据实验指导书完成实验内容。 实 验原理 图形设备接口GDI(Graphics Device Interface)是一个系统库,允许对系统的硬件进行独立于设备的访问。GDI的核心是设备上下文类DC(Device Contex):设置绘图属性和驱动设备绘图的方法。封装了Windows API中的画图函数,设备上下文是内存中的一个对象,设备可以是屏幕或打印机。 实 验 仪 器 计算机、VC++ 6.0 实验步骤1.使用AppWixard生成单文档工程Plot 2.在PlotDoc.h中类CPlotDoc的定义之前加入类Max的定义 3.在PlotDoc.cpp的文件尾部加入类Max的实现部分 4.为CPlotDoc类增加一个公有的void类型的成员函数Find和一个公有int数据成员数组m_num[5],使用类产生对象并计算它们的最大值,将它们转换成int,存入整数数组m_num。 5.为CPlotDoc类的成员函数OnNewDocument增加调用语句准备数据。 6.在视类中画图写字; 7.运行程序,并观察结果。 1

实 验 使用计算数据画直方图 内 容 实 验 数 据 实 验 总 结 指 导 教 师 意 见签名:年月日

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

汽车专业实验报告

中国地质大学江城学院 《汽车构造》实验报告 2012年11月12 日 目录 目录.............................................................................. .. (1) 实验一汽车总体构造认识.............................................................................. . (2) 实验二 实验三 .................................................................... 4 汽车 传动系认识.............................................................................. .......... 11 曲柄连杆机构、配气机构认识 实验一汽车总体构造认识 一、实验目的 汽车构造课程实验教学的主要目的是为了配合课堂教学,使学生建立起对汽车总体及各 总成的感性认识,从而加深和巩固课堂所学知识。 1、掌握解汽车基本组成及各组成功用; 2、了解发动机总体结构和作用; 3、了解底盘的总体结构和作用; 4、了解车身的总体结构和作用。 二、实验内容 通过认真观察,分析各种汽车的整体结构及组成。掌握汽车的四大组成部分,各主要总 成的名称和安装位置,发动机的基本构成。 三、实验步骤 学生在实验指导人员讲解下,对于不同型号的汽车和发动机进行动态的现场学习。 1.观察各种汽车的整体结构及组成; 2.观察、了解各主要汽车总成的名称、安装位置和功用; 3.根据实物了解发动机的基本构成。 四.分析讨论题 1、汽车由哪些部分组成?各个组成部分的功用是什么?请就你分析的汽车来说 明。 汽车主要由四部分构成:发动机、底盘、车身、电子及电器设备 1)、发动机:汽车的核心,动力的提供者 2)、底盘:作为汽车的基体,发动机、车身、电器设备都直接或间接的安装在 底盘上,是使汽车运动并按驾驶员操纵而正常行驶的部件。 3)、车身:车身是驾驶员工作及容纳乘客和货物的场所。 4)、电器与电子设备:是使汽车行驶安全及驾驶员操纵方便以及其他方面所必要的。 2、观察各汽车的总布置形式。 1)、前置前驱:优点是动力流失小,传输快,容易驾驶,制造成本地,缺点是操控 性跟不上,极限低,比如奥迪a8l 3.0。

MFC计算器实验报告

实验报告一——计算器 一实验名称 简易计算器 二实验目的 在Visual C++.EXE开发环境中,通过编写计算器程序,掌握创建对话框的方法,并向其中添加控件,并设置属性,使之满足程序的要求。 三编程思路 计算器要实现各种运算,在编写中主要分为两大块的编写,一是对1、2、3等数字按钮的响应函数编写,二是对加减乘除等运算符按钮的响应函数的编写。 给Dlg添加变量int m_operator; //运算符 double m_result; //结果(含中间变量) 另外添加编辑框的变量m_res 1.对数字按钮的响应函数的编写 1)由于每个按钮的响应函数相差不大,故用一个函数将其封装 在每次输入时要先判断数据开头是否为0 void CMy0710210202CalculateDlg::button(CString c) { UpdateData(TRUE); m_res+=c; if(m_res.GetAt(0)=='0'&&m_res.Find(".")==-1){ m_res.Empty(); m_res+=c; } UpdateData(FALSE); } 2)小数点按钮的响应函数。 首先要判断输入数据中是否已有小数点,数据是否为0,以及是否还没输入数据。 void CMy0710210202CalculateDlg::OnDian() { // TODO: Add your control notification handler code here UpdateData(TRUE); int n=m_res.Find("."); if(n==-1&&m_res.GetLength()!=0) m_res+="."; else if(m_res.GetLength()==0)m_res+="0."; UpdateData(FALSE); } 2.运算符按钮的响应函数的编写 用m_operator指代要进行的运算,由于每次的运算结果m_result 都传入了编辑框的变量m_res里,故此程序可以实现连续运算。 代码为 void CMy0710210202CalculateDlg::Result() { UpdateData(TRUE);

汽车四轮定位实验报告.docx

谢谢观赏项目四汽车四轮定位角度的测量 一、实验目的 1.了解本实验所用仪器以及测量原理; 2.掌握测试方法。 二、实验学时 2.学时 三、实验器材 德国博世FWA515四轮定位仪一台,剪式举升机一台,奥迪汽车一辆 四、实验内容和步骤 1.在转向轮定位角度测试前检查汽车轮胎气压和轮毂轴承预紧度应正常。 2.将汽车平稳开至剪式举升机上,并将前轮停在转向盘上。 3.打开电脑,进入四轮定位角度检测界面,与所测车型适配。 针对audi100打开制造商资料库,选择欧洲,在车系中找到audi进入后匹配,与生产年份、发动机排量适应,选择适配车别 4.将传感器定位卡盘安装在车轮上,卡盘轴线应与轮胎中心重合;将四个传感器安装在卡盘上(注意保险绳),连接传感器电源(如需要)并打开各自机头电源,调整其水平(三个绿灯同时点亮)并锁紧。 为了消除轮胎钢圈端面不平对外倾测量数值的影响,需要对轮辋进行失圆补偿(视情进行轮胎偏差补偿 1.进入轮胎偏差补偿界面,用专用工具锁止汽车方向2.利用剪式举升机的二次举升将车辆举起,四轮悬空。3.调整车轮上的机头(传感器)到水平,依次按动图片中的1“启动、完成补偿键”、2“补偿键”按钮,等到出现4所示,转动车轮180度,再调传感器水平后,依次按动3、1按钮,完成补偿,将车落下) 5.拔取出转向盘上的锁止销,用专用工具将汽车制动锁止,将转向盘转动向右100,车轮回正后再左转100。 6.转向轮回正,读取各转向定位角度数值。 7.不正常数值(显示为红色)需进行调整。 利用剪式举升机将汽车调到合适高度,按照相应得部位调整转向参数,直至进入正常数据范围。 8.打印测试结果。 本试验后可用侧滑试验台测试转向轮的侧滑量,以检验前束与车轮外倾角的配合。 五、注意事项 1.在转向轮定位角进行测试前应对汽车轮胎气压和轮段轴承紧度进行检查。以免影响测量准确度。 2.该项实验重复三次进行,记录测试结果,计算平均值。 3.车辆行驶、举升过程应注意安全。 谢谢观赏

GRE写作素材之陨石撞击和恐龙的灭绝

GRE写作素材之陨石撞击和恐龙的灭绝 对于想要攻克GRE考试的考生来说,有一定的课外知识,可帮助考生更加迅速的理解考题。针对复杂多变的GRE写作题目,课外知识的积累,就变得尤为重要。今天,前程百利小编为大家带来的是GRE写作素材之陨石撞击和恐龙灭绝,希望对同学们的GRE考试有所帮助,下面就和小编一起来学习一下吧! Meteorite Impact(陨石撞击)and Dinosaur Extinction(恐龙的灭绝)There is increasing evidence that the impacts of meteorites have had important effects on Earth, particularly in the field of biological evolution. Such impacts continue to pose a natural hazard(自然威胁)to life on Earth. Twice in the twentieth century, large meteorite objects are known to have collided with Earth. 越来越多的证据表明陨石撞击对地球造成的影响特别严重,尤其是生物进化领域。这种影响对地球上的生物来说,仍然是一种自然威胁。在20世纪,被人们所知悉的就有两次大型陨石撞地球的事件发生。 If an impact is large enough, it can disturb the environment of the entire Earth and cause an ecological catastrophe. The best-documented such impact took place 65 million years ago at the end of the Cretaceous period(白垩纪)of geological history. This break in Earth's history is marked by a mass extinction, when as many as half the species on the planet became extinct. While there are a dozen or more mass extinctions in the geological record, the Cretaceous mass

汽车模型制作实验报告作业

实验汽车模型制作 说明: 该实验是课程设计性质的实验课。 一、实验目的 1.学习汽车模型制作的程序与方法。 2.认识汽车油泥模型制作常规用的材料与工具。 3.熟悉油泥的加工特性与工具的使用。 4.掌握根据视图确定汽车油泥模型制作的工序。 5.掌握汽车油泥模型制作的表面处理方法。 6.通过汽车油泥模型制作环节的学习学会从正确的角度认识和分析汽车形 态,逐步建立对汽车形态的记忆方法。 二、实验内容 制作汽车油泥模型。 三、主要知识点 1.汽车油泥模型制作的程序与方法。 2.油泥的工艺特性与加工方法。 3.油泥制作工具的使用。 4.汽车油泥模型表面处理。 5.汽车车身的曲线、曲面连接的过渡与关系。 四、制作过程 1.准备材料,在做油泥模 型前,要先选好工具,油泥材 料,木板型芯,泡沫,以及找 好自己的油泥模型台。 2.根据老师的介绍,熟悉每 个工具的用法,金属箱子里装 着17个铁片,他们的用法是让 油泥模型的表面更加的细腻, 另外的刮刀,他们的用法是进 行第一道的初刮,和不很精确地修改,油泥模型台是给油泥模型提供一个平整

的台面,还有提供一些修改参数,木板是支撑油泥模型的地方,泡沫是给油泥提供一个载体,让油泥附在上面,减少重量,省材料。 3.准备图纸,至 少需要顶面、侧面、 正面和后面四个正投 影视图。更具老师的 要求,我准备的是自 己设计的汽车的四个 面的图纸。 4.由于用的是以前的油泥,所 以我们要将油泥融化,油泥融化的 温度一般在58度,所以提前把有你 放进烤箱里,等一段时间,油泥软 化后方可用。 5.模型初步的制作,制作内 胚,用刀把泡沫切成自己想要的 形状,避免一些比较锋利的形状, 内心也不要太小,基本上保证要 小于车体的外形约3cm(预留上泥 的厚度),然后用双面胶把泡沫沾 到木板上固定好。 6.涂油泥,在烤箱里取出油 泥,用力往模型上推,先薄薄的推一次,然后按照面的关系在用力推,这样可以油泥里的空气挤出来,压的比较紧,有利于后面的刮的程序。以及确定油泥模型的强度 7.做模板,模版的尺寸要比较 的精确,这样做出的模型也比较的 精确,模板大型主要有一个中轴线

汽车检测实训报告

汽车检测实训报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

汽车检测实训报告 经过一周的实训,我们学到了不少。我们能够将课本上的理论知识与实际操作很好的结合起来。我们能够操作相关的仪器并对相关的项目进行检测。我们的实训项目有汽车车轮侧滑检测、四轮定位、汽车前照灯的检测、汽车底盘测功和汽油机烟度计的使用等。不同型号的侧滑台,其的使用方法也是不同的。应根据使用说明书制定操作规程。检测前的准备:第一,在不通电的情况下,检查仪表指针是否指在零位上;接通电源,晃动滑动板,待滑动板稳定后,查看指针是否仍在零位或数据显示仪表上的侧滑量是否为零。如发现失准,对仪表进行校准。第二,检查侧滑台及周围场地有无机油、石子、泥污等杂物,并清除干净。第三,检查各导线有无因损伤而造成接触不良的地方,必要时进行维修或更换。第四,待检测车轮胎气压应符合各自的标准值(出厂标准)。第五,检查并清除轮胎上的油污、水渍主嵌入的石子、杂物等。 做好准备工作以后,就松开滑动板的锁止螺钉,接通电源。汽车以3-5㎞/h 低速垂直地使被检测车轮通过滑动板。当被测车轮完全通过时,察看指示仪表,读取是最大值,注意记下滑动板的滑动方向,即是区别滑动板是向内还是向外滑动。进行纪录时,应遵循如下约定:滑动板向外滑动时,侧滑量应为负值,表示车轮向内侧滑动:滑动板向内侧滑动时,侧滑量应为正值,表示车轮向外侧滑动。检测结束后,切断电源,锁止滑动板。四轮定位一般就是前轮定位,前轮定位的主要内容包括主销后倾角、主销内倾角、车轮外倾角和前轮前束值。确定良好前轮定位的原则是:直线行驶稳定不发生摇摆或闪动;转变不侧滑且方向盘能自动回正;轮胎磨损最小,操纵力小且有一定的路感,灵敏度适宜,保证有良好的操作稳定性。在检测之前要做的是确保前轮轴承不松旷,轮胎气压正常,轮胎不偏磨,车轮无摆动且静平衡符合要求;转向节及其主销不松旷转向柱拉杆系不松旷。车辆处在水平面上,车高符合要求。之后就是打开电脑,装上传感器,输入相关的修正参数,选择制造厂和车型,进行检测,将检测结果与标准进行比较,从而进行调整。 汽车前照灯的检测是国家规定的检测项目。检测前仪器的准备:第一,检测各指示计的机械零点;第二,检查各镜面有无污垢;第三,检查水准器上有无气泡或气泡的位置;第四,检查支柱、升降台和导轨,看工作是否自如或有无污物。车辆的准备:第一,清除前照灯镜面的污垢;第二,检查并调整轮胎气压;第三,蓄电池应处于充足电状态。 准备完后,将车辆垂直对准仪器的光接收箱。在计算机板上的抜码开关拔到所需要测的单灯或测双灯位置,从左边进入或从右边进入测定.设置好后,将仪器移到导轨相对应的一端.然后按下仪器的进入键,即可进行自动检测,检测结果可由检测线上的计算机通过串行口读取. 滚筒式底盘测工机可以实现对车辆动力性如加速性能、汽车底盘输出功率、底盘输出最大驱动力、滑行性能、车速表校验、里程表校验等项目的检测。测功机使用前车辆的准备,第一,车辆外部要干净;第二,清除车轮花纹中夹有的石粒;第三,轮胎气压符合标准。第四,机油油面正常,压力正常,冷却系统工作正常。车辆准备好后开到测功机上,放下升降台,引车员按照显示牌的指示进行操作即可。 通过这次实训我们学了很多,也知道实际与理论的差别所在,加强了我们的动手能力。

MFC贪吃蛇实验报告

贪吃蛇实验报告201221143049 信计1212 许圣

1.概述 此次课程设计我利用MFC制作了一个贪吃蛇游戏,用户可以通过上下左右控制蛇的移动方向,游戏会根据贪吃蛇身体的长度自动增加难度。在游戏过程中,会记录运行时间和所得分数,我还添加了bmp格式的图片作为游戏背景。 2.功能描述 2.1设计思路 本软件主要由三个模块构成,它们分别是蛇运行模块,初始化处理模块和显示模块。它们的作用分别是,初始化处理:初始化蛇头位置与第一个点位置;蛇运行模块:控制蛇的上下左右运行,并对蛇的运行状态进行判断,根据(吃点、未吃点、死亡等)状态进行不同的子程序模块处理以及游戏者是否能晋级的判断;显示模块:根据对蛇和点子的当前状态进行动画显示。主要有以下步骤: 1.定义蛇类和食物类,初始化贪吃蛇各项成员变量,包括图像的出现在屏幕的 初始位置,长度,以及蛇的行走方向。食物类的定义包括出现的初始位置,以及食物是否被吃掉的判断。 2.用数组初始化长度为4的贪吃蛇,并且默认出现一个食物。 3.在CView类上运用MFC提供的Windows消息中WM_TIMER消息,运用OnTimer() 函数让系统提供一个时钟节拍,更新游戏 4.具体游戏实现,包括蛇撞到自己和围墙都将使游戏结束,判断吃豆等,其中 还包括根据蛇的长度来进行游戏难度的改变。 5.具体键盘游戏操作运用到Windows消息响应中的WM_KEYDOWN,用OnKeyDown() 来响应玩家的实际操作。 6.添加了bmp格式的图片作为游戏背景。 整体流程图如下图1。

图1:系统流程图

2.2功能介绍 ⑴运行程序,出现围墙界面,一条蛇在密闭的围墙内,在围墙内随机出现一个食 物,出现bmp格式图片的背景。 ⑵点击“游戏->游戏开始”,游戏开始。还可暂停游戏继续 ⑶游戏开始后,界面右下角会同步游戏得分。 ⑷通过四个方向键控制蛇的运动方向,吃掉随机出现的豆子,若不小心碰到墙 壁或者与自身相交,则该轮游戏结束。 ⑸游戏会根据蛇身的长度自动调节难易程度。 3.详细设计 3.1主要函数 ●void CSnakeView::OnDraw(CDC* pDC)//显示背景图片 ●void CSnakeView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)//按照用户的按键来控制蛇的移动 ●void CSnakeView::OnTimer(UINT nIDEvent)//根据蛇的长度来进行 SetTimer()函数的定义,可以根据长度来进行游戏难度的设定。//撞 界判断//蛇身相撞判断//抹掉蛇行走的痕迹//判断吃豆的条件,撞到就 吃//如果食物被吃了就生成 ●void CSnakeView::oninit()//进行贪吃蛇外观的初始化 ●void CSnakeView:: OnGameStart ()//开始游戏 ●void CSnakeView:: IniAim ()//初始化目标的位置 ●void CSnakeView::IniGame()//初始化游戏 ●void CSnakeView::ReDisplay(CPoint pPoint) ●bool CSnakeView::ReadBmp(char *bmpName)

相关文档