版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1. 概述 . 2. 相关技术 . 2.1 碰撞检测 . 2.2 coblist链表 . 2.3 设置定时器 .2.4 背景滚动技术 .2.5 内存释放技术 .3. 总体设计与详细设计 .3.1 系统模块划分 .3.2 主要功能模块 .4. 编码实现 . 65. 实训中遇到的主要问题及解决方法 . 496. 实训体会 . 501. 概述这次实训,目的以vs 为环境,利用 mfc,使用 c+ 语言编写一个简单的飞机大战游戏 。实现的主要功能:1. 有开始游戏界面,上下左右键控制飞机自由移动,空格键发射炮弹。2. 设有关卡,每打完一个boss就会过关,每过一关战机炮弹会升级,敌机随机发射子弹数
2、量增加。3. 战机起始十条命,可以通过过关和吃到道具增加血量。4. 战机子弹打中敌机, 敌机就会爆炸,boss血量随关卡升高而增多, 打败敌机或者 boss会有分数加成。5. 设有无敌模式和普通模式,无敌模式大招无限,生命无限,战机导弹直接升至最高等级。2. 相关技术2.1碰撞检测用 crect类的 getrect() 函数可以获得当前对象的矩形区域, intersectrect() 并用此函数判断二者是否碰撞。2.2 coblist链表这个程序使用 coblist 链表来存储各效果。 coblist 类似于一个双向链表, position类型的变量为链表的键。使用position 变量,既可
3、以作为链表循环中的循环变量,也可以作为标记某个位置的标签。我们可以通过获得某元素的position 来访问它。本程序中主要用到的函数有:getheadposition ():获取链表首元素的position ;addtail():将新的元素添加到链表最后;getnext( position& rposition ) :使 rposition指向下一个元素。2.3 设置定时器settimer() 函数来设置定时器。2.4 背景滚动为了让游戏场景更加逼真,游戏节奏更加合理,可以通过让背景滚动来提高游戏的场景效应,实现这一技术时,可以将一张背景图片复制为2 张,从上到下连续的拼接在一起,使其
4、不会出现图片的卡顿和瞬移现象。2.5内存释放技术这个程序中有大量的地方需要使用内存,如果不及时删除会出现闪图等情况,容易导致程序崩溃,要及时释放内存资源。3. 总体设计与详细设计3.1 系统模块划分3.2 主要功能模块游 戏 系玩家游戏关卡敌机生玩 家 控 制 模类关系图:4. 编码实现/ planegameview.cpp : cplanegameview 类的实现void cplanegameview:updateframe(cdc* pmemdc)/ 绘制天空if(level=0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpback
5、ground.loadbitmap(idb_bitmap1);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系敌机过关战机过关boss死亡进战 机碰 到导 弹或 者敌 机或 者战 机血 量每 关只 有一 个bosscbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int
6、 curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);if(level=1&l=0&boss=0)pmemdc-fillsolidrect(0, 0, game_width, game_height, rgb(0, 0, 0);l+;z=1;if(level=1&l!=0&am
7、p;boss!=0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpbackground.loadbitmap(idb_bitmap1);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 d
8、c static int curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);if (level = 2 & l != 0 & boss != 0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpbackground.loadbitm
9、ap(idb_map2);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &d
10、cmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);if(level=3 & l != 0 & boss != 0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpbackground.loadbitmap(idb_map3);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);bitmap bitm
11、ap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &d
12、cmem, 0, 0, srccopy);if(level=4 & l != 0 & boss != 0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpbackground.loadbitmap(idb_map4);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);/兼容bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobjec
13、t(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);if(level=5 & l != 0 & boss != 0)cpaintdc dc(this);cbi
14、tmap bmpbackground; / 位图对象bmpbackground.loadbitmap(idb_map5);cdc dcmem; / 定义一个工具箱(设备上下文)dcmem.createcompatibledc(&dc);bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int curr = 1;if (curr bit
15、blt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);if(level5 & l != 0 & boss != 0)cpaintdc dc(this);cbitmap bmpbackground; / 位图对象bmpbackground.loadbitmap(idb_map6);cdc dcmem; / 定义一个工具箱(设备上下
16、文)dcmem.createcompatibledc(&dc);bitmap bitmap;bmpbackground.getbitmap(&bitmap); / 建立绑定关系cbitmap *back = dcmem.selectobject(&bmpbackground); / 保存原有 cdc 对象,并选入新 cdc 对象入 dc static int curr = 1;if (curr bitblt(0, 0, game_width, game_height - curr, &dcmem, 0, curr, srccopy);pmemdc-bitblt(
17、0, game_height - curr, game_width, curr, &dcmem, 0, 0, srccopy);pmemdc-setbkmode(transparent);pmemdc-settextalign(ta_center);pmemdc-settextcolor(rgb(255, 255, 255);if(level=0)wchar_t s81000;wsprintf(s8, l单击鼠标进入游戏 );pmemdc-textoutw(game_width / 2, game_height / 2, cstring(s8);if(level=1&z!=0)
18、wchar_t s91000;wsprintf(s9, l点击进入下一关 );pmemdc-textoutw(game_width / 2, game_height / 2, cstring(s9);if(level=1&z=0)wchar_t s11000;wchar_t s21000;wsprintf(s1, l得分: %d, number);wsprintf(s2, l关卡: %d, level);pmemdc-textoutw(35, 0, cstring(s1); pmemdc-textoutw(200, 0, cstring(s2);wchar_t s31000;wspri
19、ntf(s3 , l按下“ f1”开启无敌模式 );pmemdc-textoutw(390, 0, cstring(s3);wchar_t s41000;wsprintf(s4, l按下“ f2”关闭无敌模式 );pmemdc-textoutw(390, 20, cstring(s4);wchar_t s51000;if(wu=0) wsprintf(s5, l大招数量 :%d,dazhao );pmemdc-textoutw(430, 40, cstring(s5);if(wu=1)wsprintf(s5, l大招数量 :无限);pmemdc-textoutw(430, 40, cstrin
20、g(s5);wchar_t s61000;wsprintf(s6, l按下空格发射子弹 );pmemdc-textoutw(60, 50, cstring(s6);wchar_t s71000;wsprintf(s7, l按下“ z”大招 );pmemdc-textoutw(56, 70, cstring(s7); / 绘制我方战机if (m_pme != null)m_pme-draw(m_pmemdc, false);else /game overcstring str = _t(game over!);pmemdc-textout(game_width / 2, game_height
21、/ 2, str);/ 绘制血条if (m_pme != null)cstring z1;z1.format(l战机 hp(%d), shengming);pmemdc-textout(47, 30, z1);pmemdc-fillsolidrect(90, 33, shengming * 10, 10, rgb(255, 0, 0);if (bxt = 1)cstring z2;z2.format(lboss hp (%d),boss);pmemdc-textout(35, 100, z2);pmemdc-fillsolidrect(80, 108, boss * 2, 10, rgb(0,
22、 255, 0);/ 绘制 导弹、爆炸、敌机、子弹、boss 、boss子弹for (int i = 0;i draw(pmemdc, false)m_objlisti.removeat(pos2);delete pobj;/ 复制内存 dc 到设备 dcm_pdc-bitblt(0, 0, game_width, game_height, m_pmemdc, 0, 0, srccopy);void cplanegameview:ai()static int ncreator = rand() % 5+20 ;/ 随机产生敌机if (ncreator =25&count=50&
23、count=75&count=100&count=150&count5&count%200=0&bn=0)m_objlistenboss.addtail(new cboss);bxt = 1;bn+;if (m_pme = null)return;/ 检测四个方向键,移动战机for (int i = 0;isetvermotion(0);m_pme-sethormotion(0);nmemotion = getkey(vk_up);if (nmemotion = 1)m_pme-setvermotion(1);nmemotion = getkey(vk_
24、down);if (nmemotion = 1)m_pme-setvermotion(-1);nmemotion = getkey(vk_right);if (nmemotion = 1)m_pme-sethormotion(1);nmemotion = getkey(vk_left);if (nmemotion = 1)m_pme-sethormotion(-1);/ 产生战机导弹if (getkey(vk_space) = 1)/ 按下了空格键if (m_pme != null & m_pme-fired()cpoint pt = m_pme-getpoint();if (leve
25、l = 1 & wu = 0)m_objlistenbomb.addtail(new cbomb(pt.x + 20, pt.y + 10);if (level = 2 & wu = 0)m_objlistenbomb.addtail(new cbomb(pt.x + 10, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 30, pt.y + 30);if (level = 3 & wu = 0)m_objlistenbomb.addtail(new cbomb(pt.x + 10, pt.y + 30);m_o
26、bjlistenbomb.addtail(new cbomb(pt.x + 30, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 20, pt.y + 30);if (level = 4 & wu = 0)m_objlistenbomb.addtail(new cbomb(pt.x + 10, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 30, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 20, pt.y +
27、30);m_objlistenbomb.addtail(new cbomb(pt.x , pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 40, pt.y + 30);if (wu = 1)m_objlistenbomb.addtail(new cbomb(pt.x + 10, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 30, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 20, pt.y + 30);m_objlist
28、enbomb.addtail(new cbomb(pt.x, pt.y + 30);m_objlistenbomb.addtail(new cbomb(pt.x + 40, pt.y + 30);if (getkey(vk_f1) = 1)/ 按下了 f1if (m_pme != null & m_pme-fired()wu = 1;if (getkey(vk_f2) = 1 & wu = 1)/按下了 f2if (m_pme != null & m_pme-fired()wu = 0;/boss 发射子弹static int num = 100;if (m_pme !
29、= null & num getpoint();cbossball * t;for (int i = -level + 1; i zx = int(4.0*sin(3.14* double(i) / 9);t-zy = int(8.0*cos(3.14* double(i) / 9);m_objlistenbossball.addtail(t);num = 100;num-;/ 敌机发射子弹if (m_pme)cpoint planept = m_pme-getpoint();for (position epos = m_objlistenenemy.getheadposition()
30、; epos != null;)cenemy* penemy = (cenemy*)m_objlistenenemy.getnext(epos);if (!penemy-fired()continue;cpoint ept = penemy-getpoint();bool by = false;/ 敌机在战机前面if (penemy-getmontion() = 1 & ept.ygetmontion() = -1 & ept.yplanept.y)by = true;if (by & ept.x = planept.x & ept.x planept.x +
31、cmyplane:plane_width)cball * t;for (int i = -level + 1; i getmontion();t-xx = int(8.0*sin(3.14* double(i) / 9);t-xy = int(8.0*cos(3.14* double(i) / 9);m_objlistenball.addtail(t);/boss 子弹打到战机if (m_pme != null)position npos3 = null, npos4 = null;crect mrect = m_pme-getrect();for (npos3 = m_objlistenbo
32、ssball.getheadposition(); (npos4 = npos3) != null;)cball* pball = (cball*)m_objlistenbossball.getnext(npos3);crect brect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)/ 添加爆炸效果if (wu = 0 )shengming-;/生命减少m_objlistenexplosion.addtail(new cexplosion(mrect.left, mrect.top);
33、/ 删除子弹m_objlistenbossball.removeat(npos4);delete pball;if (shengming getrect();for (npos1 = m_objlistenenemy.getheadposition(); (npos2 = npos1) != null;)cball* pball = (cball*)m_objlistenenemy.getnext(npos1);crect brect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mnrect)/ 添
34、加爆炸效果if (wu = 0 )shengming-;/生命减少m_objlistenexplosion.addtail(new cexplosion(mnrect.left, mnrect.top);/ 删除子弹m_objlistenenemy.removeat(npos2);delete pball;if (shengming getrect();for (bpos1 = m_objlistenball.getheadposition(); (bpos2 = bpos1) != null;)cball* pball = (cball*)m_objlistenball.getnext(bp
35、os1);crect brect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)/ 添加爆炸效果if (wu = 0 )shengming-;/生命减少m_objlistenexplosion.addtail(new cexplosion(mrect.left, mrect.top);/ 删除子弹m_objlistenball.removeat(bpos2);delete pball;if (shengming getrect();for (bpos1 = m_objlistendazha
36、o.getheadposition(); (bpos2 = bpos1) != null;)cball* pball = (cball*)m_objlistendazhao.getnext(bpos1);crect mrect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&mrect, brect)dazhao+;/ 删除子弹m_objlistendazhao.removeat(bpos2);delete pball;/ 吃生命if (null != m_pme) position bpos1 = null, bp
37、os2 = null;crect mrect = m_pme-getrect();for (bpos1 = m_objlistenming.getheadposition(); (bpos2 = bpos1) != null;)cball* pball = (cball*)m_objlistenming.getnext(bpos1);crect brect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)shengming+;/ 删除子弹m_objlistenming.removeat(bp
38、os2);delete pball;/ 战机导弹炸掉敌机position mpos1 = null, mpos2 = null;for (mpos1 = m_objlistenbomb.getheadposition();(mpos2 = mpos1) != null;)cbomb* pbomb = (cbomb*)m_objlistenbomb.getnext(mpos1);crect brect = pbomb-getrect();position epos1 = null, epos2 = null;for (epos1 = m_objlistenenemy.getheadpositio
39、n();(epos2 = epos1) != null;)cenemy* penemy = (cenemy*)m_objlistenenemy.getnext(epos1);crect mrect = penemy-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)count+;number += 5;/ 添加爆炸效果m_objlistenexplosion.addtail(new cexplosion(mrect.left, mrect.top);/ 删除导弹if (da = 1)m_objlistenbo
40、mb.removeat(mpos2);delete pbomb;/ 删除敌机m_objlistenenemy.removeat(epos2);delete penemy;break;/ 战机导弹炸掉子弹position mpos3 = null, mpos4 = null;for (mpos3 = m_objlistenbomb.getheadposition(); (mpos4 = mpos3) != null;)cbomb* pbomb = (cbomb*)m_objlistenbomb.getnext(mpos3);crect brect = pbomb-getrect();positi
41、on epos3 = null, epos4 = null;for (epos3 = m_objlistenball.getheadposition(); (epos4 = epos3) != null;)cball* pball = (cball*)m_objlistenball.getnext(epos3);crect mrect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)/ 添加爆炸效果/ 删除导弹m_objlistenbomb.removeat(mpos4);delete pb
42、omb;/ 删除敌机m_objlistenball.removeat(epos4);delete pball;break;/ 导弹炸掉 bossposition mpos5 = null, mpos6 = null;for (mpos5 = m_objlistenbomb.getheadposition(); (mpos6 = mpos5) != null;)cbomb* pbomb = (cbomb*)m_objlistenbomb.getnext(mpos5);crect brect = pbomb-getrect();position epos5 = null, epos6 = null
43、;for (epos5 = m_objlistenboss.getheadposition(); (epos6 = epos5) != null;)cboss* pball = (cboss*)m_objlistenboss.getnext(epos5);crect mrect = pball-getrect();crect tmprect;if (tmprect.intersectrect(&brect, mrect)boss-;/ 添加爆炸效果m_objlistenexplosion.addtail(new cexplosion(mrect.left, mrect.top);/ 删
44、除导弹m_objlistenbomb.removeat(mpos6);delete pbomb;if (boss getpoint();m_objlistenbomb.addtail(new cbomb(pt.x - 50, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 20, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 70, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 100, pt.y + 80);m_objli
45、stenbomb.addtail(new cbomb(pt.x - 130, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 550, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 520, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 160, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 490, pt.y + 80);m_objlistenbomb.addtai
46、l(new cbomb(pt.x - 460, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 190, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 430, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 400, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 220, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.
47、x - 370, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 340, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 250, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 310, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 280, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x, pt.y + 80);m
48、_objlistenbomb.addtail(new cbomb(pt.x + 30, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 60, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 90, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 120, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 150, pt.y + 80);m_objlistenbomb.add
49、tail(new cbomb(pt.x + 570, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 180, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 540, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 510, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 210, pt.y + 80);m_objlistenbomb.addtail(new cbomb(
50、pt.x + 480, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 450, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 240, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 420, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 390, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 270, pt.
51、y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 360, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 330, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x + 300, pt.y + 80);m_objlistenbomb.addtail(new cbomb(pt.x - 50, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 20, pt.y + 60);m_objlist
52、enbomb.addtail(new cbomb(pt.x - 70, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 100, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 130, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 550, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 520, pt.y + 60);m_objlistenbomb.addtail(n
53、ew cbomb(pt.x - 160, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 490, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 460, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 190, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 430, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 400, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 220, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 370, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 340, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 250, pt.y + 60);m_objlistenbomb.addtail(new cbomb(pt.x - 310,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微型住宅出租合同范例
- 市场调查类合同范例
- 工地钢材合同范例
- 外墙保温安装合同范例
- 开发空间租赁合同范例
- 美丽中国生态宜居典范
- 建筑原料供货合同范例
- 卫生监督聘用合同范例
- 小区闲置租赁合同范例
- 与他人签订合作合同模板
- 2024年《军事理论》考试题库附答案(含各题型)
- 湖北省公安厅机场公安局警务辅助人员招聘考试试题及答案
- 2024年通信电子计算机技能考试-中国联通笔试参考题库含答案
- 新修订公司法专题讲座课件
- 中国加速康复外科临床实践指南(2021)解读
- 会计技能大赛实训总结与反思
- MOOC 大学英语视听导学-湖南大学 中国大学慕课答案
- 无人机驾驶航空器飞行管理暂行条例(草案)知识考试题库(85题)
- 政务信息宣传培训课件
- 银行营销策略市场调研分析
- 2024年房地产公司设计类技术笔试历年真题荟萃含答案
评论
0/150
提交评论