记事本汇编课程设计
更新时间:2024-04-09 00:27: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 -
正在阅读:
记事本汇编课程设计04-09
连续墙成槽施工总结 - 图文10-14
xx公司传染性疾病应急预案04-07
2018-2024年中国艾草市场专项调研研究报告(目录) - 图文06-27
化粪池G8-25SQF08-21
参观水厂作文800字06-23
一个特点鲜明的人作文600字07-04
闫青青论文1610-02
高中历史《英国君主立宪制的建立》说课稿03-14
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 汇编
- 记事本
- 课程
- 设计
- 实验六 加法器、选择器、数据分配器
- 负债练习题
- 公司中高层管理人员奖罚制度(2011)
- 江苏德林COD使用说明书(加银加汞)
- 侵犯集体经济组织成员权益纠纷案(2011)宣中民一终字第00276号
- 2016.6注册咨询工程师继续教育建材行业建筑项目可行性研究报告试
- 中国工商银行湖南省分行牡丹信用卡购车专项分期付款业务操作流程
- 《Java基础入门》课后习题及答案
- 电磁场与电磁波实验教案(许德富 08.9) - 图文
- 上、下极限的性质与应用
- 初步设计总说明 模板 - 图文
- 心理咨询师国家职业资格考试(二级)真卷2010年11月
- 材料五:独立审批人管理实施细则
- 新材料试用管理办法
- 幼儿园大班习惯养成工作总结
- 班主任班级管理存在问题及对策研究
- 习惯的培养之我见
- 苏教版九年级思想品德全一册知识点
- 低压开关柜的发展趋势与改进思路
- 难忘母亲的腊八粥 散文(二)