版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE32-基于OOP技术的计算器设计摘要:OOP编程技术以其良好的共享性、可维持性被逐步广泛采用。本文以OOP技术理念,采用OOP方法,利用VisualC++6.0集成开发工具,制作了一个简易计算器。为深入理解OOP概念,熟练操作开发环境作了有益的尝试。关键词:OOPVC++类目录1引言 -1-1.1OOP概念 -1-1.2VisualC++6.0简介 -1-2系统目标 -1-2.1良好的人机界面 -1-2.2需要实现的功能 -2-2.3使用面向对象技术 -2-3程序功能与结构 -2-3.1系统功能分析 -2-3.1.1加、减、乘、除四则运算 -2-3.1.2三角函数运算 -2-4系统实现 -2-4.1开发平台的确定 -2-4.2应用程序设计 -2-4.2.1、整体思路 -2-4.2.2、CCalculatorDlg类的设计 -3-4.2.3重要功能的代码分析 -6-5程序源代码(部分) -11-5.1CalculatorDlg类定义单元 -11-5.2CalculatorDlg类实现单元 -14-6程序调试 -29-7结论 -29-参考文献: -29-
1引言1.1OOP概念OOP(ObjectOrientedProgramming)即面向对象程序设计,是通过为数据和代码建立分块的内存区域,以便提供对程序进行模块化的一种程序设计方法,这些模块可以被用作样板,在需要时再建立其副本。面向对象是将世界看成是由一组彼此相关并能相互通信的实体即对象组成的。程序中的对象映射现实世界中对象。在面向对象的程序中,对象之间只能通过函数调用相互通信。本文通过设计制作一个简易计算器来实践面向对象程序设计方法。1.2VisualC++6.0简介VisualC++6.0是微软公司推出的开发Win32应用程序的、面向对象的可视化集成工具,环境提供了功能强大的MFC(MicrosoftFoundationClasses)类库。MFC是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。本设计利用集成环境的MFCApp向导来生成程序主框架,大大提高了开发效率。2系统目标2.1良好的人机界面为使操作简洁,用户易学易用,便于人机交互,程序采用如图一所视GUI界面。图一运行界面2.2需要实现的功能1.四则运算作为计算器的最基本功能必需具备,要完整支持小数操作。2.在日常工作中,要经常进行三角函数运算,因此程序要有基本的三角函数运算功能。3.用户使用计算器时,都习惯用数字键区操作,程序除使用鼠标操作外,要能接收键盘输入以实现四则运算。2.3使用面向对象技术OOP技术是C++的灵魂,整个设计要能较好的体现C++的技术特性。3程序功能与结构3.1系统功能分析3.1.1加、减、乘、除四则运算1.操作数的输入。2.实现指定的四则运算。3.结果的显示。包括输入操作数、运算结果、及出错信息的显示3.1.2三角函数运算1.操作数的输入。2.实现指定的三角函数运算。3.结果的显示。包括输入操作数、运算结果及出错信息的显示4系统实现4.1开发平台的确定微软的MicrosoftVC++6.0集成开发环境全面支持OOP编程,并且有强大的MFC,是目前比较流行的C++开发环境,本设计选用MicrosoftVC++6.0作为编程环境。4.2应用程序设计4.2.1、整体思路1、本程序界面相对较为简单,从CDialog类直接派生出计算器对话框类CCalculatorDlg。2、在IDD_CALCULATOR_DIALOG对话框上添加操作控件,作为人机交互。3、实现CCalculatorDlg类。4.2.2、CCalculatorDlg类的设计1、通过MFCAppWizard(EXE)新建一个基于对话框的工程,工程名为:Calculator,向导会生成CAboutDlg,CCalculatorApp,CCalculatorDlg三个类,并自动添加初始代码,此时的CCalculatorDlg类骨架已由系统生成,下段将按我们的功能要求来逐步完善这个类。2、将对话框IDD_CALCULATOR_DIALOG按照计算器界面要求进行布局。图二界面布局3、定义程序操作状态中用到的数据类型;①在计算器四则运算中,运算操作主要有加、减、乘、除。//运算类型enumOperator {OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide};②常用的三角函数运算有正弦、余弦、正切等,其他函数主要有对数、阶乘等。//函数类型enumFunc {FuncSin,FuncTan,FuncCos,FuncSqrt,FuncSqre,FuncLn,FuncLog,FuncN,FuncRec,FuncExp,FuncNone};③四则运算中存在的错误主要是除零等。//运算错误类型enumCalcError {ErrNone,ErrDivideByZero};
4、在CCalculatorDlg类中添加成员变量及方法。根据类封装性要求,成员尽量定义为私有类型。图三CCalculatorDlg类定义为Edit编辑框及角度选框按钮添加成员变量m_result,m_iDegree,以进行界面与数据交互。图四添加成员变量
系统自动生成的代码如下所示图五生成的成员变量在类CCalculatorDlg构造函数中初始化各变量图六CCalculatorDlg类构造函数在BOOLCCalculatorDlg::OnInitDialog()方法中加入如下代码图七对话框初始化
4.2.3重要功能的代码分析1.运算操作数输入voidCCalculatorDlg::OnOperandInput(UINTnID)图八操作数输入方法方法根据数字0-9按钮的ID号,将其转换成操作数。2.显示结果方法voidCCalculatorDlg::UpdateDisplay()图九更新显示方法先将要显示的内容赋给成员变量m_result,再调用UpdateData(FALSE)函数,将m_result的内容在Edit编辑框中显示出来。3.函数运算过程voidCCalculatorDlg::Run_Func()图十函数运算方法类成员函数根据成员变量m_func的内容,选择不同的分支执行,最后调用UpdateDisplay()将执行结果进行显示。4.四则运算过程voidCCalculatorDlg::Calculate()图十一四则运算方法方法根据成员变量m_operator中的内容,选择不同的操作进行运算,最后调用UpdateDisplay()方法,进行结果显示。5.键盘输入的实现⑴插入一个新的Accelerator到资源里,将键盘与对应的响应控件关联图十二添加Accelerator资源
⑵
在类CCalculatorDlg中进行声明:图十三申明资源⑶
在类CCalculatorDlg构造函数中初始化m_hAccel。图十四资源初始化⑷重载类CCalculatorDlg的PreTranslateMessage函数图十五重载PreTranslateMessage函数
⑸在类CCalculatorDlg中加入消息处理方法定义图十六定义消息⑹在类CCalculatorDlg实现中,加入如下代码:图十七键盘输入处理方法方法根据按键来选择执行分支,完成不同的运算。5程序源代码(部分)5.1CalculatorDlg类定义单元//////////////////////////////////////////////////////////////////////////////////文件名:CalculatorDlg.h//功能:定义CalculatorDlg类//程序设计:杨斌峰//编码时间:2008/10/12////////////////////////////////////////////////////////////////////////////////#if!defined(AFX_CALCULATORDLG_H__8F15023D_4EA7_11D3_860D_A73AED693C48__INCLUDED_)#defineAFX_CALCULATORDLG_H__8F15023D_4EA7_11D3_860D_A73AED693C48__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000//运算类型enumOperator {OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide};//函数类型enumFunc {FuncSin,FuncTan,FuncCos,FuncSqrt,FuncSqre,FuncLn,FuncLog, FuncN,FuncRec,FuncExp,FuncNone};//运算错误类型enumCalcError {ErrNone,ErrDivideByZero};#definePI3.1415926//定义π值classCCalculatorDlg:publicCDialog{private:doublem_dOperand;//操作数 doublem_dTempOperand;//操作数或结果暂存 BOOLm_bDecimally;//小数标志 doublem_dRatio;//小数倍率 doublem_dDegToRad;//角度转弧度 Operatorm_operator;//操作类型{OpNone,OpAdd,OpSubtract,OpMultiply,OpDivide} Funcm_func;//当前函数 CalcErrorm_errorState;//出错类型 BOOLm_bOperandAvail;//操作数可用标志 voidCalculate();//四则运算 voidRun_Func();//函数计算 voidUpdateDisplay();//更新显示内容protected: HICONm_hIcon; HACCELm_hAccel;//资源申明 //Generatedmessagemapfunctions //{{AFX_MSG(CCalculatorDlg) virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon(); afx_msgvoidOnOperandInput(UINTnID); afx_msgvoidOnAdd(); afx_msgvoidOnMinus(); afx_msgvoidOnDivid(); afx_msgvoidOnMultiply(); afx_msgvoidOnEqual(); afx_msgvoidOnSqrt(); afx_msgvoidOnSign(); afx_msgvoidOnReciprocal(); afx_msgvoidOnPoint(); afx_msgvoidOnClear();afx_msgBOOLKeyboard(LPCTSTRszButton); afx_msgvoidOnLog(); afx_msgvoidOnLn(); afx_msgvoidOnFactorial(); afx_msgvoidOnExp(); afx_msgvoidOnSin(); afx_msgvoidOnSquar(); afx_msgvoidOnTan(); afx_msgvoidOnDegree(); afx_msgvoidOnRad(); afx_msgvoidOnCos(); //}}AFX_MSG DECLARE_MESSAGE_MAP()public: CCalculatorDlg(CWnd*pParent=NULL); //standardconstructor //DialogData //{{AFX_DATA(CCalculatorDlg) enum{IDD=IDD_CALCULATOR_DIALOG}; CString m_result;//待显示字符串 int m_iDegree; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CCalculatorDlg) public: virtualBOOLPreTranslateMessage(MSG*pMsg); protected: virtualvoidDoDataExchange(CDataExchange*pDX); //DDX/DDVsupport //}}AFX_VIRTUAL//Implementation};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_CALCULATORDLG_H__8F15023D_4EA7_11D3_860D_A73AED693C48__INCLUDED_)5.2CalculatorDlg类实现单元//////////////////////////////////////////////////////////////////////////////////文件名:CalculatorDlg.cpp//功能:CalculatorDlg类实现//程序设计:杨斌峰//编码时间:2008/10/12////////////////////////////////////////////////////////////////////////////////#include"stdafx.h"#include"Calculator.h"#include"CalculatorDlg.h"#include"math.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public: CAboutDlg();//DialogData //{{AFX_DATA(CAboutDlg) enum{IDD=IDD_ABOUTBOX}; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport //}}AFX_VIRTUAL//Implementationprotected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){ //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) //{{AFX_MSG_MAP(CAboutDlg) //Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CCalculatorDlgdialogCCalculatorDlg::CCalculatorDlg(CWnd*pParent/*=NULL*/) :CDialog(CCalculatorDlg::IDD,pParent){ //{{AFX_DATA_INIT(CCalculatorDlg) m_result=_T("");//运算结果属性 m_iDegree=-1;//角度弧度指示属性 //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_hAccel=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD)); m_dDegToRad=(2*PI)/360;//初始时为角度,1角度相当于(2*PI)/360弧度 m_dRatio=0.1;//小数输入时初始倍率 m_bDecimally=false;//非小数 m_errorState=ErrNone;//运算无错误 m_bOperandAvail=FALSE;//操作数不可用 m_operator=OpNone;//运算不可用}voidCCalculatorDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCalculatorDlg) DDX_Text(pDX,IDC_DISPLAY,m_result); DDX_Radio(pDX,IDC_DEGREE,m_iDegree); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CCalculatorDlg,CDialog) //{{AFX_MSG_MAP(CCalculatorDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND_RANGE(IDC_0,IDC_9,OnOperandInput) ON_BN_CLICKED(IDC_ADD,OnAdd) ON_BN_CLICKED(IDC_MINUS,OnMinus) ON_BN_CLICKED(IDC_DIVID,OnDivid) ON_BN_CLICKED(IDC_MULTIPLY,OnMultiply) ON_BN_CLICKED(IDC_EQUAL,OnEqual) ON_BN_CLICKED(IDC_SQRT,OnSqrt) ON_BN_CLICKED(IDC_SIGN,OnSign) ON_BN_CLICKED(IDC_RECIPROCAL,OnReciprocal) ON_BN_CLICKED(IDC_POINT,OnPoint) ON_BN_CLICKED(IDC_CLEAR,OnClear) ON_BN_CLICKED(IDC_LOG,OnLog) ON_BN_CLICKED(IDC_LN,OnLn) ON_BN_CLICKED(IDC_FACTORIAL,OnFactorial) ON_BN_CLICKED(IDC_EXP,OnExp) ON_BN_CLICKED(IDC_SIN,OnSin) ON_BN_CLICKED(IDC_SQUAR,OnSquar) ON_BN_CLICKED(IDC_TAN,OnTan) ON_BN_CLICKED(IDC_DEGREE,OnDegree) ON_BN_CLICKED(IDC_RAD,OnRad) ON_BN_CLICKED(IDC_COS,OnCos) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CCalculatorDlgmessagehandlersBOOLCCalculatorDlg::OnInitDialog(){ CDialog::OnInitDialog(); //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcommandrange. ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL) { CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); } } //Settheiconforthisdialog.Theframeworkdoesthisautomatically //whentheapplication'smainwindowisnotadialog SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon //TODO:Addextrainitializationhere m_result="0.";//初始显示内容 m_iDegree=0;//角度单选框选中 UpdateData(FALSE);//变量到控件 returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCCalculatorDlg::OnSysCommand(UINTnID,LPARAMlParam){ if((nID&0xFFF0)==IDM_ABOUTBOX) { CAboutDlgdlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID,lParam); }}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCCalculatorDlg::OnPaint(){ if(IsIconic()) { CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); //Centericoninclientrectangle intcxIcon=GetSystemMetrics(SM_CXICON); intcyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); intx=(rect.Width()-cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; //Drawtheicon dc.DrawIcon(x,y,m_hIcon); } else { CDialog::OnPaint(); }}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCCalculatorDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;}voidCCalculatorDlg::OnOperandInput(UINTnID){// ASSERT(nID>=IDC_0&&nID<=IDC_9); if(m_errorState!=ErrNone)//有错误返回 return; if(m_func!=FuncNone)//进行函数运算 { m_func=FuncNone; Calculate(); } if(!m_bOperandAvail)//操作数不可用 m_dOperand=0;if(!m_bDecimally)//输入非小数操作数 m_dOperand=m_dOperand*10+(nID-IDC_0); else { m_dOperand=m_dOperand+(nID-IDC_0)*m_dRatio; m_dRatio*=0.1; } m_bOperandAvail=TRUE;//操作数可用 UpdateDisplay();}voidCCalculatorDlg::Calculate(){ if(m_errorState!=ErrNone)//出错则返回 return; if(m_bOperandAvail)//当操作数可用时,判断运算类型 { switch(m_operator) { caseOpNone://无运算 m_dTempOperand=m_dOperand; break; caseOpMultiply://乘 m_dTempOperand*=m_dOperand; break; caseOpDivide://除 if(m_dOperand==0) m_errorState=ErrDivideByZero; else m_dTempOperand/=m_dOperand; break; caseOpAdd://加 m_dTempOperand+=m_dOperand; break; caseOpSubtract://减 m_dTempOperand-=m_dOperand; } } m_bOperandAvail=FALSE;//运算一次完成后,操作数不可用 m_bDecimally=FALSE; m_dRatio=0.1; UpdateDisplay();//更新显示方法}voidCCalculatorDlg::UpdateDisplay(){ if(GetSafeHwnd()==NULL) return; if(m_errorState==ErrDivideByZero) m_result="除数不能为零"; else { doublelVal=m_bOperandAvail?m_dOperand:m_dTempOperand; m_result.Format(_T("%f"),lVal); inti=m_result.GetLength(); while(m_result.GetAt(i-1)=='0') { m_result.Delete(i-1,1); i--; } } UpdateData(FALSE);}//键盘输入处理方法BOOLCCalculatorDlg::Keyboard(LPCTSTRszButton){ switch(szButton[0]) { case'c': case'C': OnClear(); break; case'/': OnDivid(); break; case'+': OnAdd(); break; case'-': OnMinus(); break; case'*': OnMultiply(); break; case'=': caseVK_RETURN://回车键 OnEqual(); break; case'.': OnPoint(); break; default://0~9数字键 if(szButton[0]>='0'&&szButton[0]<='9') { if(m_errorState!=ErrNone) returnFALSE; if(!m_bOperandAvail) m_dOperand=0; m_dOperand=m_dOperand*10+szButton[0]-'0'; m_bOperandAvail=TRUE; UpdateDisplay(); } else returnFALSE; break; } returnTRUE;}voidCCalculatorDlg::OnAdd()//加运算{ //TODO:Addyourcontrolnotificationhandlercodehere Calculate(); m_operator=OpAdd;}voidCCalculatorDlg::OnMinus()//减运算{ //TODO:Addyourcontrolnotificationhandlercodehere Calculate(); m_operator=OpSubtract;}voidCCalculatorDlg::OnDivid()//除运算{ //TODO:Addyourcontrolnotificationhandlercodehere Calculate(); m_operator=OpDivide;}voidCCalculatorDlg::OnMultiply()//乘运算{ //TODO:Addyourcontrolnotificationhandlercodehere Calculate(); m_operator=OpMultiply;}voidCCalculatorDlg::OnEqual()//等于{ //TODO:Addyourcontrolnotificationhandlercodehere Calculate(); m_operator=OpNone;}voidCCalculatorDlg::OnSign()//符号转换{ //TODO:Addyourcontrolnotificationhandlercodehere m_dOperand*=-1; UpdateDisplay();}voidCCalculatorDlg::OnSqrt(){ //TODO:Addyourcontrolnotificationhandlercodeherem_func=FuncSqrt; Run_Func();}voidCCalculatorDlg::OnReciprocal(){ //TODO:Addyourcontrolnotificationhandlercodeherem_func=FuncRec; Run_Func();}voidCCalculatorDlg::OnPoint()//小数{ //TODO:Addyourcontrolnotificationhandlercodehere m_bDecimally=TRUE; UpdateDisplay();}voidCCalculatorDlg::OnClear()//清零{ //TODO:Addyourcontrolnotificationhandlercodehere m_operator=OpNone; m_dOperand=0; m_dTempOperand=0; m_bOperandAvail=FALSE; m_errorState=ErrNone; m_dRatio=0.1; m_bDecimally=FALSE; UpdateDisplay();}BOOLCCalculatorDlg::PreTranslateMessage(MSG*pMsg){ if(m_hAccel!=NULL&&TranslateAccelerator(m_hWnd,m_hAccel,pMsg)) returnTRUE; returnCDialog::PreTranslateMessage(pMsg);}voidCCalculatorDlg::OnLog(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncLog; Run_Func();}voidCCalculatorDlg::OnLn(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncLn; Run_Func();}voidCCalculatorDlg::OnFactorial()//阶乘{ //TODO:Addyourcontrolnotificationhandlercodeherem_func=FuncN; Run_Func();}voidCCalculatorDlg::OnExp(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncExp; Run_Func();}voidCCalculatorDlg::OnSin(){ //TODO:Addyourcontrolnotificationhandlercodehere m_func=FuncSin; Run_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《众人行管理咨询网》课件
- 运动器材销售工作总结
- 2013年高考语文试卷(湖北)(空白卷)
- 租车服务员工作总结
- 2006年江西高考语文真题及答案
- 驱动未来新型汽车
- 2023年-2024年项目管理人员安全培训考试题附解析答案可打印
- 2023年-2024年项目部管理人员安全教育培训试题及参考答案【A卷】
- 2023-2024安全培训考试题及答案【名校卷】
- 2023年-2024年项目部安全培训考试题答案完美
- 2024秋期国家开放大学本科《纳税筹划》一平台在线形考(形考任务一至五)试题及答案
- 纸巾合同范本
- 四川省德阳市2025届数学三年级第一学期期末联考模拟试题含解析
- 2024年平面设计师技能及理论知识考试题库(附含答案)
- 2024年高考真题-英语(新高考Ⅰ卷) 含解析
- 2023-2024年6月广东省普通高中学业水平生物考试及答案
- 铁路技术管理规程-20220507141239
- 植物学智慧树知到答案2024年浙江大学
- 矿山开采与生产管理
- 大学体育与健康智慧树知到期末考试答案章节答案2024年齐鲁师范学院
- 化学实验操作评分细则表
评论
0/150
提交评论