推箱子程序设计与报告
更新时间:2024-04-11 08:06:10 阅读量: 综合文库 文档下载
- 推箱子程序设计报告推荐度:
- 相关推荐
程 序 设 计 与 实 验 报 告
设计内容:推箱子姓名 :黄班级 :电信学号 :1
庭 1101
1107050123
目 录
一.引言
二.需求分析与系统设计
三. 开发技术 四.程序中的主要模块 五. 心得体会 六. 程序全文
2
一.引言
在实际编写程序的过程中,产生的一些疑惑与不解,在同学和老师的帮助下圆满解决,对于老师和同学们的帮助,在此我表示衷心的感谢。因为一开始构架的问题造成了一些功能的不能实现。经多方努力仍不能解决,留下遗憾,希望随着日后能力的提高能解决今天留下的问题。
二.需求分析与系统设计
2.1 设计目的
通过本学期对游戏程序的研究,我们掌握了运用win32来制作游戏的技术,虽然不娴熟还有待提高,但是一些技术含量较低的小游戏还是很容易让我们掌握的。
此次游戏程序设计的目的,主要是通过win32来制作游戏来更好的掌握编程语言。通过win32这个平台,熟习在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,并且将在课程上面学到的知识付诸于实践,并从实际操作中,找出自己的不足之处进行弥补。
每一次的课程设计,都是一次小小的软件工程,所以需要我们用百分百认真的态度来对待。对于小一点的程序,我们一个人足以应付,但是这并不是说我们可以单独一个人为所欲为,其实质应该是通过课程设计来培养自己独立自主的能力。而对于那些
3
相对于麻烦的程序,便需要我们的协作,这样对我们以后进入企
业公司发展打下了更多的基础。
2.2 设计要求
这次课程设计的要求并不像以往那么紧,老师让给了我们充足的时间来制作游戏,虽然是计划做一款较为大众的经典游戏,并且能力有限,但还是对游戏做出了较高的期望,对于功能做出了较多的设想。例如,背景音乐的播放,时间的显示,自动切换关卡,难度的选择等。
2.3 界面设计
图2.3.1进入后的主界面
4
图2.3.2素材图片集合
这个程序是一个益智类的游戏,是一个单机游戏,人物通过推动箱子到达目的地以在游戏中取胜,同一时刻只能有一位玩家进行游戏。
图2.3.4英雄榜
5
图2.3.5关于游戏
图2.3.3选择关卡截图
2.4 游戏流程
系统流程图:
游戏开始 选择关卡 6
进行游戏 完成游戏 自动切换 下一关 结束游戏 游戏开局出现如图1,然后进行难度的选择,再是关卡的选择,然后就可以游戏了,
游戏完成之后会自动切换下一关,游戏者可手动选择结束游戏。
三. 开发技术 3.1 Win32 API 简介
Win32
API即为Microsoft 32位平台的应用程序编程接口
(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。 使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。 在具体编程时,程序实现方式的差异依赖于相应平台的底层功能的不同。最显著的差异是某些函数只能在更强大的平台上实现其功能。例如,安全函数只能在Windows NT操作系统下使用。另外一些主要差别就是系统限制,比如值的范围约束,或函数可管理的项目个数等等。
7
3.2 Win32 API函数分类
标准Win32 API函数可以分为以下几类: 1、窗口管理 2、窗口通用控制 3、Shell特性 4、图形设备接口 5、系统服务 6、国际特性 7、网络服务
四.程序中的主要模块 4.1函数原型的一些定义
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window UINT uMsg, // message identifier
WPARAM wParam, // first message parameter LPARAM lParam // second message parameter );//窗口过程函数原型
BOOL InitWindowsClass(HINSTANCE hInstance);//初始化窗口类
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);//初始化窗口 BOOL CALLBACK DlgProc(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam);//对话框过程函数
void Show_Image(HBITMAP bmap,int i,int j); //显示单张图片 void Draw_Map();//作图的函数 void Show_Map();//显示地图
void Get_Poision(Poision &poision);//人物在哪里的定位
4.2创建窗口函数
void main() {
PlaySound(\
8
}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) {
hWnd=CreateWindow(\推箱子
\
if(!hWnd)
return FALSE;
SetTimer(hWnd, 1, 1, NULL); ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); hInst=hInstance; return TRUE; }
4.3 地图的输出
void Show_Map() {
int i,j;
for(i=0;i<10;i++)//1表示墙 0表示通路 2表示箱子目的地
for(j=0;j<10;j++) if(Map[i][j]==1)
Show_Image(hBm_wall,32*j,32*i); else if(Map[i][j]==2)
Show_Image(hBm_box,32*j,32*i); else if(Map[i][j]==3)
Show_Image(hBm_people,32*j,32*i); else if(Map[i][j]==4)
Show_Image(hBm_dirtion,32*j,32*i); else if(Map[i][j]==0)
Show_Image(hBm_floor,32*j,32*i); }
4.4人物的定位
void Get_Poision(Poision &poision) {
int i=0,j=0; bool flag=FALSE;
poision.Hang=0,poision.Lie=0; for(i=0;i<10;i++) {
for(j=0;j<10;j++) {
9
表示人表示 3 4
}
}
if(Map[i][j]==3) {
poision.Hang=i; poision.Lie=j; flag=TRUE; break; } }
if(flag==TRUE) break;
4.5 地图的编写
int Map4[10][10]={1,1,1,1,1,0,0,0,0,0, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
1,3,0,0,1,0,0,0,0,0, 1,0,2,2,1,0,0,1,1,1, 1,0,2,0,1,0,0,1,4,1, 1,1,1,0,1,1,1,1,4,1, 0,1,1,0,0,0,0,0,4,1, 0,1,0,0,0,1,0,0,0,1, 0,1,0,0,0,1,1,1,1,1, 0,1,0,0,0,1,0,0,0,1, 0,1,1,1,1,1,0,0,0,0 };
int Map5[10][10]={1,1,1,1,1,1,1,1,1,1, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
1,0,0,0,1,0,0,0,0,1, 1,0,3,0,1,4,0,0,4,1, 1,0,2,0,1,0,0,1,0,1, 1,0,1,0,0,0,0,0,0,1, 1,0,0,2,0,0,0,0,0,1, 1,0,0,0,1,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1 };
int Map1[10][10]={1,1,1,1,1,1,1,1,1,1, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
1,0,0,0,1,0,0,0,0,1, 1,0,3,0,1,4,0,0,4,1, 1,0,2,0,1,0,0,1,0,1, 1,0,1,0,0,0,0,0,0,1, 1,0,0,2,0,0,0,0,0,1, 1,0,0,0,1,0,0,0,0,1,
10
1,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,1, 1,1,1,1,1,1,1,1,1,1 };
int Map2[10][10]={1,1,1,1,1,1,1,1,1,1, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
1,0,0,0,1,0,0,0,0,1, 1,0,3,0,0,0,0,0,0,1, 1,0,2,0,1,1,0,0,0,1, 1,0,0,0,4,1,0,0,0,1, 1,0,0,2,1,1,0,0,0,1, 1,0,0,0,0,0,1,4,0,1, 1,0,0,0,0,0,0,1,0,1, 1,0,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1 };
int Map3[10][10]={1,1,1,1,1,1,1,1,1,1, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
1,0,0,0,1,0,0,0,0,1, 1,0,3,0,0,0,0,2,0,1, 1,0,0,0,0,1,0,0,0,1, 1,0,0,0,1,0,0,0,0,1, 1,0,2,0,0,0,0,0,0,1, 1,0,0,1,0,0,1,4,0,1, 1,0,1,4,0,0,0,1,0,1, 1,1,0,0,0,0,0,0,1,1, 1,1,1,1,1,1,1,1,1,1 };
int Map[10][10]={0,1,1,1,1,1,1,1,0,0, //1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地
0,1,1,1,1,1,1,1,0,0, 0,1,0,0,0,0,0,1,1,1, 1,1,2,1,1,1,0,0,0,1, 1,0,3,0,2,0,0,2,0,1, 1,0,0,0,1,0,0,0,1,1, 1,0,0,0,1,0,0,0,1,1, 1,0,4,4,1,0,2,0,1,1, 1,1,4,4,1,0,0,0,1,0, 0,1,1,1,1,1,1,1,1,0 };
4.6 通过调用playsound 实现背景音乐
case IDM_TOOL:
PlaySound(\
11
五 心得体会
通过一个学期的学习实践,我掌握了一些比较基础的编程方
法。在实际操作上有了很大程度的提高,在听课以及与同学交流的过程中,受益匪浅,感悟颇多。
看似简单的编程游戏背后,确实异常复杂的算法。在网上参考了一些类似的逻辑算法和代码,并在前人的基础上进行拓展与改编。同时也让我更认识到了自身学习的不足之处,也更进一步产生了对游戏开发的兴趣。游戏开发是一个创新的过程,由于能力欠缺,仅仅做了一个众所周知的经典项目。希望日后能力提高了,能做出更加复杂,细致的好游戏。
第六章 程序全文
#include
#include
#pragma comment(lib,\
/**********全局变量的一些定义********/ HMENU hmenu,haddmenu;
12
HWND hWnd;
HDC hdc,hDCMem; BITMAP bm;
HBITMAP hBm_people,hBm_box,hBm_wall,hBm_dirtion,hBm_floor; HINSTANCE hInst; int Count=0;
char lpszMenuName[]=\char lpszClassName[]=\typedef struct {
int Hang; int Lie; }Poision;
Poision poision; int choose=1;
/************************************/
/*@@@@@@@@@@函数原型的一些定义@@@@@@@@@@@@@*/ LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window UINT uMsg, // message identifier
WPARAM wParam, // first message parameter LPARAM lParam // second message parameter );//窗口过程函数原型
BOOL InitWindowsClass(HINSTANCE hInstance);//初始化窗口类
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);//初始化窗口
BOOL CALLBACK DlgProc(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam);//对话框过程函数
void Show_Image(HBITMAP bmap,int i,int j); //显示单张图片 void Draw_Map();//作图的函数 void Show_Map();//显示地图
void Get_Poision(Poision &poision);//人物在哪里的定位 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
/**********************/ /*WinMain函数*/
/**********************/ int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ) {
13
MSG Message; HACCEL hAccel;
if(!InitWindowsClass(hInstance)) return FALSE;//初始化窗口类 if(!InitWindows(hInstance,nCmdShow)) return FALSE;//创建窗口
hAccel=LoadAccelerators(hInstance,lpszMenuName);/*加载加速键资源*/ while(GetMessage(&Message,NULL,0,0)) {
if(!TranslateAccelerator(hWnd,hAccel,&Message)) {
TranslateMessage(&Message); DispatchMessage(&Message); } }
return Message.wParam; }
/**********************/ /*初始化类函数*/
/**********************/
BOOL InitWindowsClass(HINSTANCE hInstance) {
WNDCLASS WndClass; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,\ WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WindowProc;
WndClass.lpszClassName=lpszClassName;
WndClass.lpszMenuName=lpszMenuName;//加载窗口类菜单 WndClass.style=CS_HREDRAW | CS_VREDRAW;
hBm_floor=LoadBitmap(hInstance,\ //地板 hBm_people=LoadBitmap(hInstance,\ //小人 hBm_box=LoadBitmap(hInstance,\ //箱子
hBm_dirtion=LoadBitmap(hInstance,\ //目的地 hBm_wall=LoadBitmap(hInstance,\ //墙 if(!RegisterClass(&WndClass)) {
MessageBeep(0); return FALSE; }
return TRUE;
14
}
/**********************/ /*创建窗口函数*/
/**********************/ void main() {
PlaySound(\}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) {
hWnd=CreateWindow(\推箱子
\ if(!hWnd)
return FALSE;
SetTimer(hWnd, 1, 1, NULL); ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); hInst=hInstance; return TRUE; }
/**********************/ /*窗口过程函数*/
/**********************/ LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window UINT uMsg, // message identifier
WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ) {
int i=0,j=0;
PAINTSTRUCT ps;//定义指向柏涵绘图信息的结构体变量
switch(uMsg) {
case WM_PAINT: if(Count==2) {
Count=0;MessageBox(hwnd,\successwin\
if(choose==1) {
for(i=0;i<10;i++)
15
\
!
for(j=0;j<10;j++)
Map[i][j]=Map2[i][j];
InvalidateRect(hWnd,NULL,1);//刷新整个界面 }
else if(choose==2) for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map3[i][j]; /*else if(choose==3) for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map4[i][j];*/ }
hdc=BeginPaint(hwnd,&ps); SetMapMode(hdc,MM_TEXT); Show_Map();
EndPaint(hwnd,&ps); return 0; case WM_CREATE:
//hdc=GetDC(hwnd); //获取设备环境句柄 hDCMem=CreateCompatibleDC(hdc);//内存设备环境句柄 //ReleaseDC(hwnd,hdc); //释放设备环境句柄 return 0; case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDM_EXIT:
SendMessage(hwnd,WM_DESTROY,0,0); break;
case IDM_RESTART: switch(choose) {
case 1:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map1[i][j]; break; case 2:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map2[i][j]; break; case 3:
16
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map3[i][j]; break; case 4:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map3[i][j]; break; case 5:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map3[i][j]; break; }
InvalidateRect(hwnd,NULL,1);//刷新整个界面 Show_Map(); break;
case IDM_HELP: DialogBox(hInst/*当前窗口的实例句柄*/,\ break; case IDM_TOOL:
PlaySound(\ break; case WM_TIMER: {
if( wParam == 1 ) {
char buffer[100]; SYSTEMTIME tmp;
char *WeekName[7] = {\星期日\星期一\星期二\星期三\星期四\星期五\星期六\
GetLocalTime(&tmp);
sprintf(buffer, \年d月d日 d:d:d %s d\
tmp.wYear, tmp.wMonth, tmp.wDay, tmp.wHour, tmp.wMinute, tmp.wSecond,WeekName[tmp.wDayOfWeek], tmp.wMilliseconds);
SetWindowText(hWnd, buffer );
17
} }
break;
case IDM_RANGE:
DialogBox(hInst,\ break;
case IDM_CHOOSE:
DialogBox(hInst,\ break; }
break;
case WM_KEYDOWN: switch(wParam) {
case VK_RIGHT:
Get_Poision(poision);
if(Map[poision.Hang][poision.Lie+1]==0) {
Map[poision.Hang][poision.Lie+1]=3;//人走过来 Map[poision.Hang][poision.Lie]=0; //变成路 }
else if(Map[poision.Hang][poision.Lie+1]==2) {
if(Map[poision.Hang][poision.Lie+2]==0) {
Map[poision.Hang][poision.Lie+2]=2; Map[poision.Hang][poision.Lie+1]=3; Map[poision.Hang][poision.Lie]=0; }
if(Map[poision.Hang][poision.Lie+2]==4) {
Map[poision.Hang][poision.Lie+2]=2; Map[poision.Hang][poision.Lie+1]=3; Map[poision.Hang][poision.Lie]=0; Count++; } }
InvalidateRect(hwnd,NULL,1);//刷新整个界面 Show_Map(); break; case VK_LEFT:
Get_Poision(poision);
if(Map[poision.Hang][poision.Lie-1]==0)
18
{
Map[poision.Hang][poision.Lie-1]=3;//箱子走过来
Map[poision.Hang][poision.Lie]=0; //人过来,身后变成路 }
else if(Map[poision.Hang][poision.Lie-1]==2) {
if(Map[poision.Hang][poision.Lie-2]==0) {
Map[poision.Hang][poision.Lie-2]=2; Map[poision.Hang][poision.Lie-1]=3; Map[poision.Hang][poision.Lie]=0; }
if(Map[poision.Hang][poision.Lie-2]==4) {
Map[poision.Hang][poision.Lie-2]=2; Map[poision.Hang][poision.Lie-1]=3; Map[poision.Hang][poision.Lie]=0; Count++; } }
InvalidateRect(hwnd,NULL,1);//刷新整个界面 Show_Map(); break; case VK_UP:
Get_Poision(poision);
if(Map[poision.Hang-1][poision.Lie]==0) {
Map[poision.Hang-1][poision.Lie]=3;//箱子走过来
Map[poision.Hang][poision.Lie]=0; //人过来,身后变成路 }
else if(Map[poision.Hang-1][poision.Lie]==2) {
if(Map[poision.Hang-2][poision.Lie]==0) {
Map[poision.Hang-2][poision.Lie]=2; Map[poision.Hang-1][poision.Lie]=3; Map[poision.Hang][poision.Lie]=0; }
if(Map[poision.Hang-2][poision.Lie]==4) {
Map[poision.Hang-2][poision.Lie]=2; Map[poision.Hang-1][poision.Lie]=3; Map[poision.Hang][poision.Lie]=0;
19
Count++; } }
InvalidateRect(hwnd,NULL,1);//刷新整个界面 Show_Map(); break; case VK_DOWN:
Get_Poision(poision);
if(Map[poision.Hang+1][poision.Lie]==0) {
Map[poision.Hang+1][poision.Lie]=3;//箱子走过来
Map[poision.Hang][poision.Lie]=0; //人过来,身后变成路 }
else if(Map[poision.Hang+1][poision.Lie]==2) {
if(Map[poision.Hang+2][poision.Lie]==0) {
Map[poision.Hang+2][poision.Lie]=2; Map[poision.Hang+1][poision.Lie]=3; Map[poision.Hang][poision.Lie]=0; }
if(Map[poision.Hang+2][poision.Lie]==4) {
Map[poision.Hang+2][poision.Lie]=2; Map[poision.Hang+1][poision.Lie]=3; Map[poision.Hang][poision.Lie]=0; Count++; } }
InvalidateRect(hwnd,NULL,1);//刷新整个界面 Show_Map(); break; }
break; case WM_CLOSE:
if(IDYES==MessageBox(hwnd,\you really want to quit?\退出\ DestroyWindow(hwnd); break;
case WM_DESTROY:
PostQuitMessage(0); break; default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
20
}
return 0; }
/**********************/ /*对话框过程函数*/
/**********************/
BOOL CALLBACK DlgProc(HWND hdlg,UINT message,WPARAM wParam,LPARAM lParam) {
int i=0,j=0; BOOL root;
switch(message) {
case WM_INITDIALOG: return TRUE; case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDC_EDIT1: Count=0;
choose=GetDlgItemInt(hdlg,IDC_EDIT1,&root,TRUE); switch(choose) {
case 1:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map1[i][j]; break; case 2:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map2[i][j]; break; case 3:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map3[i][j]; break; case 4:
for(i=0;i<10;i++) for(j=0;j<10;j++)
Map[i][j]=Map4[i][j];
21
break; case 5:
for(i=0;i<10;i++)
for(j=0;j<10;j++) Map[i][j]=Map4[i][j]; break; }
InvalidateRect(hWnd,NULL,1);//刷新整个界面 Show_Map(); break; case IDOK:
EndDialog(hdlg,0); return TRUE; }
break;
case WM_CLOSE:
EndDialog(hdlg,0); return TRUE; }
return FALSE; }
/**********************/ /*生成地图的函数*/
/**********************/ void Draw_Map() {}
/**********************/ /*显示单张图片函数*/ /**********************/
void Show_Image(HBITMAP bmap,int i,int j) {
GetObject(bmap, sizeof(BITMAP),(LPVOID)&bm); SelectObject(hDCMem,bmap); //将位图选入内存设备环境
BitBlt(hdc,i,j,bm.bmWidth,bm.bmHeight,hDCMem,0,0,SRCCOPY);//将原位图复制到目标位图 }
/**********************/ /*输出一张地图*/
/**********************/
void Show_Map() {
int i,j;
22
for(i=0;i<10;i++)//1表示墙 0表示通路 2表示箱子 3表示人 4表示目的地 for(j=0;j<10;j++) if(Map[i][j]==1)
Show_Image(hBm_wall,32*j,32*i); else if(Map[i][j]==2)
Show_Image(hBm_box,32*j,32*i); else if(Map[i][j]==3)
Show_Image(hBm_people,32*j,32*i); else if(Map[i][j]==4)
Show_Image(hBm_dirtion,32*j,32*i); else if(Map[i][j]==0)
Show_Image(hBm_floor,32*j,32*i); }
/**********************/ /*人在哪里的定位*/
/**********************/
void Get_Poision(Poision &poision) {
int i=0,j=0; bool flag=FALSE;
poision.Hang=0,poision.Lie=0; for(i=0;i<10;i++) {
for(j=0;j<10;j++) {
if(Map[i][j]==3) {
poision.Hang=i; poision.Lie=j; flag=TRUE; break; } }
if(flag==TRUE) break; } }
23
正在阅读:
推箱子程序设计与报告04-11
清明节的由来与传说_清明节04-04
标机电安装工程施工方案 - 图文06-05
第一场春雨作文600字06-17
2.2.2椭圆的简单几何性质(1)12-20
亳州土元养殖技术要领07-23
我的全能妈妈作文400字06-23
奇妙的大自然作文400字07-10
粘性土指标03-20
观看电影《哥,你好》个人心得体会范文03-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 推箱子
- 程序设计
- 报告