记事本汇编课程设计
更新时间:2024-05-17 19:07:01 阅读量: 综合文库 文档下载
华 北 科 技 学 院
课程设计说明书
课程名称: 汇编语言程序设计 班 级: 计科B093 姓名:_ 杜晓春 学 号:__ 200807014330 设计题目: Win32编写记事本 设计时间: 6/25/ 2010 至 7/1/2010 指导教师:_ _ 陈振国 评 语: 评阅成绩: 评阅教师:____
一、课程设计目的
使用所学过的汇编语言程序设计知识,掌握结构化程序设计的基本思路和方法,利用所学的基本知识和技能,发挥自学能力和查找资料的能力,解决稍微复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
二、课程设计要求
1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。 2.遵循模块化、结构化的程序设计方法。 3. 要求程序必须正确。
4. 程序简明易懂,多运用输入输出提示,出错信息及必要的注释。 5. 要求程序结构合理,语句使用得当。 6. 适当追求编程技巧和程序运行效率。
三、课程设计题目:
Win32记事本
要求:能实现基本菜单框架并打开窗口,有能力的同学可以编写进行数据录 入并保存的代码
四、课题分析
用32位汇编语言以WINDOWS SDK编程的模式编写记事本,为编写一个简洁可用的记事本程序,选择以对话框为程序主界面,通过RichEdit控件直接进行文本的录入、读取、存储等操作。菜单项中设置基本的文件新建、打开、保存、退出,及文本的撤销、重做、删除、剪切、复制、粘贴、全选功能,同时加入工具栏,工具栏上加入基本常用的功能按钮。
- 1 -
五、流程图
开 始 文 件 编 辑 帮 助 新 打 保 另退 撤 前 删 剪 复 粘 全 存 建 开 存 为 出 销 进 除 切 制 贴 选 六、程序源代码
记事本.rc
#include \记事本Res.rc\#include \记事本Mnu.rc\#include \记事本Dlg.rc\#include \关于Dlg.rc\
记事本Res.rc
#define IDB_TBRBMP 1212 #define IDI_ICON 1213 IDB_TBRBMP BITMAP DISCARDABLE \工具栏图标.bmp\IDI_ICON ICON DISCARDABLE \图标.ico\
记事本Mnu.rc
#define IDM_MENU 10000
#define IDM_FILE_NEW 10001 #define IDM_FILE_OPEN 10002
- 2 -
关 于
#define IDM_FILE_SAVE 10003 #define IDM_FILE_SAVEAS 10004 #define IDM_FILE_EXIT 10006 #define IDM_EDIT_UNDO 10101 #define IDM_EDIT_REDO 10102 #define IDM_EDIT_DELETE 10103 #define IDM_EDIT_CUT 10104 #define IDM_EDIT_COPY 10105 #define IDM_EDIT_PASTE 10106
#define IDM_EDIT_SELECTALL 10107 #define IDM_HELP_ABOUT 10201 IDM_MENU MENUEX BEGIN
POPUP \文件\ BEGIN
MENUITEM \新建\ MENUITEM \打开\ MENUITEM \保存\
MENUITEM \另存为...\ MENUITEM \
MENUITEM \退出\ END
POPUP \编辑\ BEGIN
MENUITEM \撤销\ MENUITEM \前进\ MENUITEM \删除\ MENUITEM \
MENUITEM \剪切\ MENUITEM \复制\ MENUITEM \粘贴\
MENUITEM \全选\ END
POPUP \帮助\ BEGIN
MENUITEM \关于\ END END
记事本Dlg.rc
#define IDD_DLG 1000
- 3 -
#define IDC_TOOLBAR 1001 #define IDC_RICHEDIT 1002
IDD_DLG DIALOGEX 228,88,596,499 CAPTION \记事本\FONT 7,\宋体\CLASS \STYLE 0x96CF0000 EXSTYLE 0x00000000 BEGIN CONTROL
\ CONTROL
\END
关于Dlg.rc
#define IDD_DLG1 3000 #define IDC_STC1 1001 #define IDC_IMG1 3001
IDD_DLG1 DIALOGEX 266,133,136,50 CAPTION \关于\
FONT 9,\宋体\STYLE 0x10CF0000 EXSTYLE 0x00000080 BEGIN
CONTROL \汇编记事本 计科B093 杜晓春\ IDC_STC1,\
CONTROL \END
记事本.inc
include windows.inc include user32.inc include kernel32.inc include shell32.inc include comctl32.inc include comdlg32.inc include gdi32.inc
- 4 -
includelib user32.lib includelib kernel32.lib includelib shell32.lib includelib comctl32.lib includelib comdlg32.lib includelib gdi32.lib
WinMain WndProc AboutProc
;主对话框
IDD_DLG IDC_TOOLBAR IDC_RICHEDIT IDM_MENU
;菜单
IDM_FILE_NEW IDM_FILE_OPEN IDM_FILE_SAVE IDM_FILE_SAVEAS IDM_FILE_PRINT IDM_FILE_EXIT IDM_EDIT_UNDO IDM_EDIT_REDO IDM_EDIT_DELETE IDM_EDIT_CUT IDM_EDIT_COPY IDM_EDIT_PASTE IDM_EDIT_SELECTALL IDM_HELP_ABOUT
;关于
IDD_DLG1 IDC_STC1
;工具栏图标
IDB_TOOLBARMAP ;图标
IDI_ICON
.const
PROTO :DWORD,:DWORD,:DWORD,:DWORD PROTO :DWORD,:DWORD,:DWORD,:DWORD PROTO :DWORD,:DWORD,:DWORD,:DWORD equ 1000 equ 1001 equ 1002 equ 10000 equ 10001 equ 10002 equ 10003 equ 10004 equ 10005 equ 10006 equ 10101 equ 10102 equ 10103 equ 10104 equ 10105 equ 10106 equ 10107 equ 10201 equ 3000 equ 3001 equ 1212 equ 1213 - 5 -
;填充按钮结构
stToolBar TBBUTTON<0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0>
TBBUTTON<6,IDM_FILE_NEW,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<7,IDM_FILE_OPEN,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<8,IDM_FILE_SAVE,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0>
TBBUTTON<0,IDM_EDIT_CUT,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<1,IDM_EDIT_COPY,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<2,IDM_EDIT_PASTE,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0>
TBBUTTON<3,IDM_EDIT_UNDO,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<4,IDM_EDIT_REDO,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON<5,IDM_EDIT_DELETE,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0> TBBUTTON <0,0,TBSTATE_ENABLED,TBSTYLE_SEP,0,0> nToolBar equ 13
RichEditDLL db 'riched20.dll',0 szClassName db 'DLGCLASS',0 szAppName db '记事本',0
OpenFileFail db '无法打开文件',0 SaveFileFail db '无法保存文件',0
szWantToSave db '是否将改动保存到',0Dh,0 NewFileName db '新建文件',0 szNULL db 0
szFont db '宋体',0 szFileType db '文本文档(*.txt)',0,'*.txt',0 db '所有文件(*.*)',0,'*.*',0,0 szDefExt db 'txt',0
.data?
hRichEdDLL dd ? hInstance dd ? CommandLine dd ? hIcon dd ? hWinMain dd ? hRichEdit dd ? hFile dd ?
FileName db 100 dup(?)
记事本.asm
- 6 -
.386
.model flat,stdcall option casemap:none
include 记事本.Inc
.code
start:
invoke GetModuleHandle,NULL mov hInstance,eax ;获取命令行参数
invoke GetCommandLine mov CommandLine,eax ;装入库
invoke LoadLibrary,addr RichEditDLL mov hRichEdDLL,eax
invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT push eax ;释放库
invoke FreeLibrary,hRichEdDLL pop eax
invoke ExitProcess,eax
WinMain proc _hInstance,_hPrevInstance,_lpCmdLine,_nCmdShow LOCAL @stWndClass:WNDCLASSEX LOCAL @stMsg:MSG
;设计窗口类 mov @stWndClass.cbSize,SIZEOF WNDCLASSEX mov @stWndClass.style,CS_HREDRAW or CS_VREDRAW mov @stWndClass.lpfnWndProc,OFFSET WndProc mov @stWndClass.cbClsExtra,NULL mov @stWndClass.cbWndExtra,DLGWINDOWEXTRA push _hInstance pop @stWndClass.hInstance mov @stWndClass.hbrBackground,NULL mov @stWndClass.lpszMenuName,IDM_MENU mov @stWndClass.lpszClassName,OFFSET szClassName invoke LoadIcon,_hInstance,IDI_ICON mov hIcon,eax mov @stWndClass.hIcon,eax mov @stWndClass.hIconSm,eax
- 7 -
invoke LoadCursor,NULL,IDC_ARROW mov @stWndClass.hCursor,eax ;注册窗口
invoke RegisterClassEx,addr @stWndClass ;建立对话框窗口
invoke DialogBoxParam,_hInstance,IDD_DLG,NULL,addr WndProc,NULL ret
WinMain endp
StreamProc proc _dwCookie,_pBuffer,_NumBytes,_lpBytes
.if _dwCookie
invoke ReadFile,hFile,_pBuffer,_NumBytes,_lpBytes,0 .else
invoke WriteFile,hFile,_pBuffer,_NumBytes,_lpBytes,0 .endif xor eax,eax ret
StreamProc endp
SetWinCaption proc
LOCAL @buffer[120]:BYTE LOCAL @buffer1[4]:BYTE
;复制程序名
invoke lstrcpy,addr @buffer,addr szAppName ;添加‘-’到标题名 mov eax,' - ' mov dword ptr @buffer1,eax
invoke lstrcat,addr @buffer,addr @buffer1 ;添加文件路径到标题名
invoke lstrcat,addr @buffer,addr FileName ;设置标题栏
invoke SetWindowText,hWinMain,addr @buffer ret
SetWinCaption endp
SaveFile proc _lpFileName
LOCAL @stEditstream:EDITSTREAM
;创建新文件,如果已经存在则清除源文件 invoke CreateFile,_lpFileName,GENERIC_WRITE,
- 8 -
FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,0 ;创建成功
.if eax!=INVALID_HANDLE_VALUE mov hFile,eax ;流出标志 mov @stEditstream.dwCookie,FALSE ;回调函数 mov @stEditstream.pfnCallback,offset StreamProc ;richedit中的文本写入文件
invoke SendMessage,hRichEdit,EM_STREAMOUT,SF_TEXT, addr @stEditstream ;关闭文件
invoke CloseHandle,hFile ;修改标志清零
invoke SendMessage,hRichEdit,EM_SETMODIFY,FALSE,0 mov eax,FALSE .else
invoke MessageBox,hWinMain,addr SaveFileFail, addr szAppName,MB_OK mov eax,TRUE .endif ret
SaveFile endp
SaveEditAs proc
LOCAL @stOpenFileName:OPENFILENAME LOCAL @buffer[MAX_PATH]:BYTE LOCAL @buffer1[100]:BYTE ;清零
invoke RtlZeroMemory,addr @stOpenFileName, sizeof @stOpenFileName ;填充OpenFileName结构 mov @stOpenFileName.lStructSize,sizeof @stOpenFileName push hWinMain pop @stOpenFileName.hwndOwner;父窗口句柄 push hInstance pop @stOpenFileName.hInstance mov @stOpenFileName.lpstrFilter,offset szFileType mov @buffer[0],0;缓冲区清零 lea eax,@buffer mov @stOpenFileName.lpstrFile,eax;指定全路径缓冲区 mov @stOpenFileName.nMaxFile,sizeof @buffer
- 9 -
mov @buffer1[0],0;缓冲区清零 lea eax,@buffer1 mov @stOpenFileName.lpstrFileTitle,eax;指定文件名缓冲区 mov @stOpenFileName.nMaxFileTitle,sizeof @buffer1 mov @stOpenFileName.Flags,OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST or OFN_OVERWRITEPROMPT;设置对话框行为 mov @stOpenFileName.lpstrDefExt,offset szDefExt ;打开另存为通用对话框
invoke GetSaveFileName,addr @stOpenFileName ;保存文件
.if eax
invoke SaveFile,addr @buffer ;设置标题栏
invoke lstrcpy,addr FileName,addr @buffer1 invoke SetWinCaption .endif ret
SaveEditAs endp
SaveEdit proc
;判断是否为新建文件,是的话直接保存,不是的话另存为 invoke lstrcmp,addr FileName,addr NewFileName .if eax
invoke SaveFile,addr FileName .else
invoke SaveEditAs .endif ret
SaveEdit endp
WantToSave proc
LOCAL @buffer[200]:BYTE LOCAL @buffer1[2]:BYTE
;获取修改标志
invoke SendMessage,hRichEdit,EM_GETMODIFY,0,0 ;richedit被修改 .if eax
;制作显示字符串
invoke lstrcpy,addr @buffer,addr szWantToSave invoke lstrcat,addr @buffer,addr FileName
- 10 -
mov ax,'?' mov word ptr @buffer1,ax
invoke lstrcat,addr @buffer,addr @buffer1 invoke MessageBox,hWinMain,addr @buffer, addr szAppName,
MB_YESNOCANCEL or MB_ICONQUESTION .if eax==IDYES
invoke SaveEdit .elseif eax==IDNO mov eax,FALSE .else mov eax,TRUE .endif .endif ret
WantToSave endp
OpenEdit proc
LOCAL @stOpenFileName:OPENFILENAME LOCAL @stEditstream:EDITSTREAM LOCAL @buffer[MAX_PATH]:BYTE LOCAL @buffer1[100]:BYTE
LOCAL @stCharRange:CHARRANGE
;清零
invoke RtlZeroMemory,addr @stOpenFileName, sizeof @stOpenFileName ;填充OpenFileName结构 mov @stOpenFileName.lStructSize,sizeof @stOpenFileName push hWinMain pop @stOpenFileName.hwndOwner;父窗口句柄 push hInstance pop @stOpenFileName.hInstance mov @stOpenFileName.lpstrFilter,NULL mov @buffer[0],0;缓冲区清零 lea eax,@buffer mov @stOpenFileName.lpstrFile,eax;指定全路径缓冲区 mov @stOpenFileName.nMaxFile,sizeof @buffer mov @buffer1[0],0;缓冲区清零 lea eax,@buffer1 mov @stOpenFileName.lpstrFileTitle,eax;指定文件名缓冲区 mov @stOpenFileName.nMaxFileTitle,sizeof @buffer1 mov @stOpenFileName.lpstrDefExt,NULL
- 11 -
mov @stOpenFileName.Flags,OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST;设置对话框行为 ;显示打开通用对话框
invoke GetOpenFileName,addr @stOpenFileName .if eax
;打开已存在的文件
invoke CreateFile,addr@buffer,
GENERIC_READ,FILE_SHARE_READ, NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0 ;打开文件成功
.if eax!=INVALID_HANDLE_VALUE ;返回文件句柄 mov hFile,eax
;获取打开文件的文件名
invoke lstrcpy,addr FileName,addr @buffer1 ;流入标记 mov @stEditstream.dwCookie,TRUE ;设置回调函数 mov @stEditstream.pfnCallback,offset StreamProc ;装入文本
invoke SendMessage,hRichEdit,EM_STREAMIN,
SF_TEXT,addr @stEditstream ;关闭文件
invoke CloseHandle,hFile ;修改标志清零
invoke SendMessage,hRichEdit,EM_SETMODIFY,FALSE,0 ;初始化光标位置 mov @stCharRange.cpMin,0 mov @stCharRange.cpMax,0
invoke SendMessage,hRichEdit,EM_EXSETSEL,0,addr @stCharRange
invoke SetWinCaption mov eax,FALSE .else
invoke MessageBox,hWinMain,addr OpenFileFail, addr szAppName,MB_OK mov eax,TRUE .endif .endif ret
OpenEdit endp
- 12 -
InitRichEdit proc _hWin,_hRichEdit LOCAL @stCharRange:CHARRANGE LOCAL @stCharformat:CHARFORMAT
invoke GetDlgItem,_hWin,IDC_RICHEDIT mov hRichEdit,eax ;全选 mov @stCharRange.cpMin,0 mov @stCharRange.cpMax,-1
invoke SendMessage,hRichEdit,EM_EXSETSEL,0, addr @stCharRange ;设置文本格式 mov @stCharformat.cbSize,sizeof @stCharformat mov @stCharformat.dwMask,CFM_CHARSET or CFM_FACE or CFM_SIZE invoke lstrcpyn,addr @stCharformat.szFaceName, addr szFont,LF_FACESIZE mov @stCharformat.yHeight,250
invoke SendMessage,hRichEdit,EM_SETCHARFORMAT,
SCF_SELECTION,addr @stCharformat ;修改标志清零
invoke SendMessage,hRichEdit,EM_SETMODIFY,FALSE,0 ;设置焦点
invoke SetFocus,hRichEdit ;设置光标 mov @stCharRange.cpMin,0 mov @stCharRange.cpMax,0
invoke SendMessage,hRichEdit,EM_EXSETSEL,0, addr @stCharRange ret
InitRichEdit endp
DoToolBar proc _hInstance,_hToolBar LOCAL @stTmap:TBADDBITMAP
invoke SendMessage,_hToolBar,TB_BUTTONSTRUCTSIZE, sizeof TBBUTTON,0 ;填充位图结构
push _hInstance pop @stTmap.hInst mov @stTmap.nID,IDB_TOOLBARMAP ;装载工具栏位图
invoke SendMessage,_hToolBar,TB_ADDBITMAP,15,addr @stTmap ;添加按钮
- 13 -
invoke SendMessage,_hToolBar,TB_ADDBUTTONS,nToolBar, addr stToolBar ;返回工具栏句柄 mov eax,_hToolBar ret
DoToolBar endp
AboutProc proc _hWin,_stMsg,_wParam,_lParam
mov eax,_stMsg .if eax==WM_CLOSE
invoke EndDialog,_hWin,0 .endif
xor eax,eax ret AboutProc endp
WndProc proc _hWin,_stMsg,_wParam,_lParam LOCAL @stRect:RECT LOCAL @height:DWORD LOCAL @hContrl:HWND
LOCAL @stCharRange:CHARRANGE
mov eax,_stMsg
.if eax==WM_INITDIALOG ;主窗口句柄赋值 mov eax,_hWin mov hWinMain,eax ;工具栏初始化
invoke GetDlgItem,_hWin,IDC_TOOLBAR invoke DoToolBar,hInstance,eax ;标题栏初始化
invoke lstrcpy,addr FileName,addr NewFileName invoke SetWinCaption ;Richedit初始化
invoke GetDlgItem,_hWin,IDC_RICHEDIT mov hRichEdit,eax
invoke InitRichEdit,_hWin,hRichEdit .elseif eax==WM_COMMAND mov eax,_wParam
.if eax==IDM_FILE_NEW invoke WantToSave .if !eax
- 14 -
;Richedit清零
invoke SetWindowText,hRichEdit,addr szNULL ;Richedit初始化
invoke InitRichEdit,_hWin,hRichEdit ;重置标题栏
invoke lstrcpy,addr FileName,addr NewFileName invoke SetWinCaption .endif
invoke SetFocus,hRichEdit .elseif eax==IDM_FILE_OPEN invoke WantToSave .if !eax
invoke OpenEdit .endif
invoke SetFocus,hRichEdit .elseif eax==IDM_FILE_SAVE invoke SaveEdit
invoke SetFocus,hRichEdit .elseif eax==IDM_FILE_SAVEAS invoke SaveEditAs
invoke SetFocus,hRichEdit .elseif eax==IDM_FILE_EXIT
invoke SendMessage,_hWin,WM_CLOSE,0,0 .elseif eax==IDM_EDIT_UNDO
invoke SendMessage,hRichEdit,EM_UNDO,0,0 .elseif eax==IDM_EDIT_REDO
invoke SendMessage,hRichEdit,EM_REDO,0,0 .elseif eax==IDM_EDIT_DELETE
invoke SendMessage,hRichEdit,EM_REPLACESEL,TRUE,0 .elseif eax==IDM_EDIT_CUT
invoke SendMessage,hRichEdit,WM_CUT,0,0 .elseif eax==IDM_EDIT_COPY
invoke SendMessage,hRichEdit,WM_COPY,0,0 .elseif eax==IDM_EDIT_PASTE
invoke SendMessage,hRichEdit,WM_PASTE,0,0 .elseif eax==IDM_EDIT_SELECTALL mov @stCharRange.cpMin,0 mov @stCharRange.cpMax,-1
invoke SendMessage,hRichEdit,EM_EXSETSEL,0, addr @stCharRange .elseif eax==IDM_HELP_ABOUT
invoke DialogBoxParam,hInstance,IDD_DLG1, hWinMain,AboutProc,NULL .endif
- 15 -
.elseif eax==WM_SIZE
invoke GetDlgItem,_hWin,IDC_TOOLBAR mov @hContrl,eax ;重绘工具栏
invoke MoveWindow,@hContrl,0,0,0,0,TRUE ;获取工具栏绘图区
invoke GetWindowRect,@hContrl,addr @stRect ;获取工具栏宽度 mov eax,@stRect.bottom sub eax,@stRect.top push eax ;获取主窗口绘图区
invoke GetClientRect,_hWin,addr @stRect pop eax
;用主绘图区上边位置减去工具栏宽度的值作为richedit控件的上边位置
add @stRect.top,eax ;获取richedit控件的宽度 mov eax,@stRect.bottom sub eax,@stRect.top mov @height,eax ;重绘richedit控件
invoke MoveWindow,hRichEdit,0,@stRect.top, @stRect.right,@height,TRUE .elseif eax==WM_CLOSE
invoke WantToSave .if !eax
invoke DestroyWindow,_hWin .endif .else
invoke DefWindowProc,_hWin,_stMsg,_wParam,_lParam ret .endif
xor eax,eax ret
WndProc endp
end start
- 16 -
七、结果显示
八、感想、收获及体会
理论和实践是存在差距的,学语言尤其如此。只有在实际操作中才能真正的领悟和掌握一门语言。编程环节,想法和算法尤为重要。有想法才存在构想,才能编出实际可用的程序;而算法则是实现构想的途径,一个糟糕的算法会大大拖累程序的运行效率而且浪费自己的时间。我感觉编程就像爬一座高山,沿途到处都是阻碍你前进的巨石,只有坚持翻过去才能看到脚下平坦的风景,只有享受这种乐趣的人才是真正可以和编程为伍的人。
。
- 17 -
正在阅读:
记事本汇编课程设计05-17
关于写父母的爱的作文(精选4篇)03-31
2018年最新电大《幼儿园课程与活动设计》形成性考核参考答案全(304-08
最新军事训练法规理论题05-19
三年五年中考错题 学生版05-23
党风廉政警示教育心得体会3篇-心得体会09-07
21世纪英语演讲比赛初中组08-20
青运会赛会志愿者通用知识模拟试卷04-28
一级理论题及解答(201111)NEW12-21
高清视频封装格式解析06-05
- 小学生造句大全
- 增压泵投资项目可行性研究报告(模板)
- 高中语文人教版粤教版必修1-5全部文言文知识点归纳
- 两学一做专题民主生活会组织生活会批评与自我批评环节个人发言提
- 管理处环境保洁工作操作标准作业指导书
- 2012六一儿童节活动议程 - 图文
- 移树申请报告
- 《贵州省市政工程计价定额》2016定额说明及计算规则
- 计算机长期没有向WSUS报告状态
- 汉语拼音教学策略研究
- 发展西部领先的航空货运枢纽
- 司法所上半年工作总结4篇
- 如何提高银行服务水平
- 发电厂各级人员岗位职责
- 丰田汽车的外部环境分析
- 2017—2018年最新冀教版四年级数学下册《混合运算》教案精品优质
- 中建八局样板策划 - 图文
- 戚安邦《项目管理学》电子书
- 2015年高级项目经理笔记
- 弯桥的设计要点
- 汇编
- 记事本
- 课程
- 设计
- 历史趣闻蜀国真有五虎上将吗?
- 关于邮储文化建设若干意见
- 教师招聘历年真题练习
- 分子复习题
- 《佛本行集经》中“毒”字考
- 湖北省恩施高中2012-2013年高一下学期第二次月考语文试题
- 要你命3000背诵版
- 土壤学课后习题及答案
- (目录)2018-2023年中国乙酸钠(醋酸钠)行业发展趋势预测与投
- 课程设计
- 基于PLC的物料分拣机械手自动化控制系统设计论文
- 房建通用施工组织设计
- 县委办公室秘书科个人工作总结
- 试论范成大田园诗在中国诗歌史上的成就 苦逼女子的古代文学史作
- 论文正文-万科股份有限公司盈利能力分析及评价
- 新一轮“比学赶超”目标承诺书(个人)
- 球磨机回转部分的设计
- 三速电动机变极调速控制设备的设计
- 《课程与教学论》教案纲要- 合肥师范学院
- 隧道工程监理实施细则1