




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩 课程名称:程序设计实训 设计题目:稀土焙烧炉自动控制系统模拟软件 题目稀土焙烧炉自动控制系统模拟软件设计 姓名学号1108020204班级网工1102指导老师完成日期2013.7.101. 设计任务:1.1设计目的(1) 了解稀土以及稀土焙烧炉自动控制系统的基本工作原理; (2) 进一步学习 C 语言或者 C+语言程序工程设计的方法以及程序调试技巧;(3) 学习撰写专业技术文档。 1.2设计内容稀土焙烧炉自动控制系统模拟软件设计稀土焙烧炉的控制要求是: 1)要保证进入焙烧炉的稀土矿石粉料和浓硫酸量控制在设定的比例。一般设定稀土矿石粉料和浓硫酸的比例为 1:1(重量比),并根据工艺要求可以适当改变这一比例。 2)规定进入焙烧炉的稀土矿石粉料流量调节范围为每分钟 010kg,一般设定稀土矿石粉料进入焙烧炉的流量为 5kg/min。 3)1 号操作工要密切观察炉内情况,一旦发现焙烧炉的尾部有原料堆积的情况,就要及时通知 2 号操作工减少稀土矿石粉料,从而消除焙烧炉尾部原料堆积的情况。 用 C 语言或者 C+语言编写一个程序,用形象化方式模拟上述稀土焙烧炉的控制系统的工作过程。软件要能用适当的方式显示出稀土矿石粉料和浓硫酸的流量以及它们的比例,当发生稀土矿石粉料和浓硫酸的流量比例超出设定的阈值是,能够用声音和图形的方式报警。1.3设计指标或者要求(1) 要求用 C 语言或者 C+语言编写满足设计内容的程序,并调试正确; (2) 撰写设计报告。 2. 设计过程2.1程序功能软件要能用适当的方式模拟焙烧炉的尾部有原料堆积的情况以及相应的处理过程, 当发生焙烧炉尾部原料堆积时, 能够用声音和图形的方式报警; 软件要能允许用户在规定范围内设定稀土矿石粉料的流量、 稀土矿石粉料和浓硫酸的流量比例以及稀土矿石粉料和浓硫酸的流量比例阈值等三个参数。 2.2算法原理2.3程序流程图 开始设置硫酸流量设置稀土流量判断硫酸流量和稀土流量是否超过阈值否是结束 2.4程序主要模块或者函数void CMeter:SetScaleDecimals(int nDecimals)m_nScaleDecimals = nDecimals ;ReconstructControl() ;void CMeter:SetUnits(CString &strUnits)m_strUnits = strUnits ;ReconstructControl() ;void CMeter:SetValueDecimals(int nDecimals)m_nValueDecimals = nDecimals ;ReconstructControl() ;void CMeter:DrawNode(CDC *pDC)CPen penDraw, *pPenOld;COLORREF cEdge, cMiddle, cNode;cMiddle = RGB(255, 255, 255);cEdge = RGB(0, 0, 0);for(int i=m_nCenterRadius*3/4; i=0; i-)cNode = RGB(GetRValue(cEdge)-GetRValue(cMiddle)*(float)i)*4/(3*m_nCenterRadius)+GetRValue(cMiddle),(GetGValue(cEdge)-GetGValue(cMiddle)*(float)i)*4/(3*m_nCenterRadius)+GetGValue(cMiddle),(GetBValue(cEdge)-GetBValue(cMiddle)*(float)i)*4/(3*m_nCenterRadius)+GetBValue(cMiddle);penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, cNode);pPenOld = pDC-SelectObject(&penDraw);pDC-Arc(m_ptMeterCenter.x-i, m_ptMeterCenter.y-i,m_ptMeterCenter.x+i,m_ptMeterCenter.y+i,m_ptMeterCenter.x-i,m_ptMeterCenter.y,m_ptMeterCenter.x-i,m_ptMeterCenter.y);pDC-SelectObject(pPenOld);void CMeter:DrawValue(CDC *pDC)int nHeight;CPoint pttemp;CString strtemp;CFont *pFontOld;/ 数值显示nHeight = m_nRadiusFrame/5;pttemp = m_rectValue.CenterPoint();strtemp.Format(%.*lf, m_nValueDecimals, m_dCurrentValue); m_font.DeleteObject() ;m_font.CreateFont (nHeight, 0, 0, 0, 400,FALSE, FALSE, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH|FF_SWISS, Arial) ;pFontOld = pDC-SelectObject(&m_font);pDC-SetBkColor(m_colorButton);pDC-SetTextAlign(TA_TOP|TA_CENTER);pDC-TextOut(pttemp.x, pttemp.y, m_strUnits);pDC-TextOut(pttemp.x, pttemp.y+nHeight, strtemp);/ 恢复字体和背景色pDC-SelectObject(pFontOld);pDC-SetBkColor(m_colorWindow);void CMeter:SetSubTicks(int nSubTicks)m_nSubTicks = nSubTicks;ReconstructControl();void CMeter:SetAngleRange(int nStartAngleDeg, int nEndAngleDeg)m_nStartAngleDeg = nStartAngleDeg;m_nEndAngleDeg = nEndAngleDeg;ReconstructControl(); 3. 软件运行或者测试结果在运行时先添加稀土矿石粉料流量和浓硫酸流量,然后点击计算按钮,会自动计算出稀土矿石粉料和浓硫酸流量的比例,然后设定稀土矿石粉料流量与浓硫酸流量比例的阈值,按全部设置成功按钮,若超出阈值,会弹出对话框提想你重新输入,如果正确,则弹出流量设置成功对话框。4. 设计过程中遇到的问题及解决办法在刚开始拿到题的时候,没有一点头绪,但是,经过这几天在图书馆找资料,上网百度,慢慢地才对MFC有了一些了解,但是仅凭这些是远远不能完成这次的程序设计,所以在刚开始的时候,我就慢慢的看课件,从最基本的画矩形,画圆开始,慢慢地练习,最后终于能画出成型了,但是动不了,然我我又找资料,发现是用OnTimer()函数来实现的,经过多次调试,终于完成了这次的课程设计。5. 总结这次的课程设计对我个人来说其实还是比较难的,因为在以前的学习中从来没有接触过MFC,所以在这次课程设计中感觉压力还挺大的。但是,通过我的努力,我觉得我学到了不少知识,学会了怎么用OnDraw()函数,怎样用MFC作图。通过这次的课程设计,我觉得在平时对知识的总结和积累非常重要。不管学习哪门语言,都得学的精通,而且同时要掌握其他计算机语言,不能老师教什么就只学什么,这样远远不够。就像李老师给我们讲的那样,等工作了好多知识都得自学,我们要时刻保持着不断学习的心态,这样才能学的更好。而且,必须在平时的学习中养成独立思考的习惯,不能一遇到问题就问别的同学,这样只能使自己的惰性越来越严重,无法真正领悟编程的重要性以及在编程中应该注意的问题。6. 附录(源代码)/ Meter.cpp : implementation file#include stdafx.h#include MyMeter.h#include Meter.h#include math.h#include MemDC.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif#define PT_NUM 50/ CMeterCMeter:CMeter()m_nStartAngleDeg = 225;m_nEndAngleDeg = 315;m_nTicks = 10;m_nSubTicks = 5;m_dMaxValue = 100.0;m_dMinValue = 0.0;m_dCurrentValue = 50.0;m_nScaleDecimals = 0;m_nValueDecimals = 1;m_colorNeedle = RGB(255, 0, 0);m_strUnits = _T(粉料总流量计);m_bColorTick = FALSE;/ 颜色表格m_colorTable0 = RGB(255, 255, 0);m_colorTable1 = RGB( 0, 255, 0);m_colorTable2 = RGB(255, 0, 0);m_colorTable3 = RGB(255,183, 34);m_colorTable4 = RGB(255, 92, 93);CMeter:CMeter()BEGIN_MESSAGE_MAP(CMeter, CStatic)/AFX_MSG_MAP(CMeter)ON_WM_PAINT()ON_WM_SIZE()/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMeter message handlersvoid CMeter:OnPaint() CPaintDC dc(this); / device context for painting/ 获得控件区域GetClientRect (&m_rectCtrl);CMemDC memDC(&dc, &m_rectCtrl);/ 选取圆盘边框半径m_nRadiusFrame = max(m_rectCtrl.Height(), m_rectCtrl.Width()*9/21;/ 获得仪表盘中心点m_ptMeterCenter = m_rectCtrl.CenterPoint();m_ptMeterCenter.y += m_nRadiusFrame/10;/绘制仪表盘if(m_dcBackground.GetSafeHdc()= NULL| (m_bitmapBackground.m_hObject = NULL)m_dcBackground.CreateCompatibleDC(&dc);m_bitmapBackground.CreateCompatibleBitmap(&dc, m_rectCtrl.Width(), m_rectCtrl.Height() ;m_pBitmapOldBackground = m_dcBackground.SelectObject(&m_bitmapBackground) ;DrawMeterBackground(&m_dcBackground, m_rectCtrl);memDC.BitBlt(0, 0, m_rectCtrl.Width(), m_rectCtrl.Height(), &m_dcBackground, 0, 0, SRCCOPY) ;/ 绘制指针DrawNeedle(&memDC);DrawNode(&memDC);DrawValue(&memDC);/ Do not call CStatic:OnPaint() for painting messagesvoid CMeter:DrawMeterBackground(CDC *pDC, CRect &rect)int nInnerRadius = m_nRadiusFrame*8/10;/ 内圆弧半径m_nCenterRadius = m_nRadiusFrame/20;/ 中心园半径大小int nFrame = m_nRadiusFrame/18;/ 边框厚度double dstepTickDeg = (360.0+m_nStartAngleDeg-m_nEndAngleDeg)/(m_nTicks*m_nSubTicks);/ 刻度步进角度int nSubTickR = nInnerRadius+(m_nRadiusFrame-2*nFrame-nInnerRadius)/2;double dDeg = (m_nStartAngleDeg+360.0-m_nEndAngleDeg)/(TABNUM*PT_NUM); CRect rectPanel,rectInnerPanel;CPen penDraw, *pPenOld;CFont *pFontOld;CBrush brushFill, *pBrushOld;POINT ptStart, ptEnd, ptInnerStart, ptInnerEnd;CPoint pointInnerBOUNDARY_POINTS, ptGroup1PT_NUM*TABNUM+1, ptGroup2PT_NUM*TABNUM+1;CPoint ptRgnPT_NUM*2+2;CPoint pttemp;CString strtemp;double dRadPerDeg;double dTickAngleRad;double dTemp;int nRef = 0;int nTickAngle;int nHeight;/ 字体大小double dtempangle;/ 计算起始角终止角弧度dRadPerDeg = 4.0*atan(1.0)/180.0;m_dLeftAngleRad = (m_nStartAngleDeg-180.0)*dRadPerDeg;m_dRightAngleRad = (m_nEndAngleDeg-360.0)*dRadPerDeg;/ 计算圆弧起始终止点及区域ptStart.x = m_ptMeterCenter.x-(int)(m_nRadiusFrame*cos(m_dLeftAngleRad);ptStart.y = m_ptMeterCenter.y+(int)(m_nRadiusFrame*sin(m_dLeftAngleRad);ptEnd.x = m_ptMeterCenter.x+(int)(m_nRadiusFrame*cos(-m_dRightAngleRad);ptEnd.y = m_ptMeterCenter.y+(int)(m_nRadiusFrame*sin(-m_dRightAngleRad);rectPanel.SetRect(m_ptMeterCenter.x-m_nRadiusFrame, m_ptMeterCenter.y-m_nRadiusFrame,m_ptMeterCenter.x+m_nRadiusFrame, m_ptMeterCenter.y+m_nRadiusFrame);/ 获取点的位置for(int i=0; iSelectObject(&brushFill);pDC-Rectangle(rect);pDC-SelectObject(pBrushOld);/ 绘制圆盘边框for(int iOnBand=nFrame; iOnBand0; iOnBand-)penDraw.DeleteObject();colorCaption = RGB(GetRValue(cEdge)-GetRValue(cMiddle)*(float)iOnBand)/nFrame+GetRValue(cMiddle),(GetGValue(cEdge)-GetGValue(cMiddle)*(float)iOnBand)/nFrame+GetGValue(cMiddle),(GetBValue(cEdge)-GetBValue(cMiddle)*(float)iOnBand)/nFrame+GetBValue(cMiddle);penDraw.CreatePen(PS_SOLID, iOnBand*2, colorCaption);pPenOld = pDC-SelectObject(&penDraw);pDC-Arc(&rectPanel, ptEnd, ptStart);pDC-SelectObject(pPenOld);/ 绘制内圈ptInnerStart.x = m_ptMeterCenter.x-(int)(nInnerRadius*cos(m_dLeftAngleRad);ptInnerStart.y = m_ptMeterCenter.y+(int)(nInnerRadius*sin(m_dLeftAngleRad);ptInnerEnd.x = m_ptMeterCenter.x+(int)(nInnerRadius*cos(-m_dRightAngleRad);ptInnerEnd.y = m_ptMeterCenter.y+(int)(nInnerRadius*sin(-m_dRightAngleRad);rectInnerPanel.SetRect(m_ptMeterCenter.x-nInnerRadius, m_ptMeterCenter.y-nInnerRadius,m_ptMeterCenter.x+nInnerRadius ,m_ptMeterCenter.y+nInnerRadius);penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, RGB(255,255,0);pPenOld = pDC-SelectObject(&penDraw);pDC-Arc(&rectInnerPanel, ptInnerEnd, ptInnerStart);pDC-SelectObject(pPenOld);if(m_bColorTick)/ 绘制色彩刻度for(i=0; iTABNUM; i+)/确定区域for(int j=0; jSelectObject(&brushFill);penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, m_colorTablei);pPenOld = pDC-SelectObject(&penDraw);pDC-Polygon(ptRgn, 2*PT_NUM+2);pDC-SelectObject(pBrushOld);pDC-SelectObject(pPenOld);/ 计算刻度点,避免不能整除引起较大误差*100for(nTickAngle=m_nStartAngleDeg*100; nTickAngle=(m_nEndAngleDeg-360)*100; nTickAngle-=(int)(dstepTickDeg*100)/ 转换成弧度dTickAngleRad = (double)nTickAngle/100*dRadPerDeg;/ 确定外圈坐标/ 确定x坐标dTemp = m_ptMeterCenter.x + (m_nRadiusFrame-2*nFrame)*cos(dTickAngleRad);m_pointBoundarynRef.x = ROUND(dTemp);/ 确定y坐标dTemp = m_ptMeterCenter.y - (m_nRadiusFrame-2*nFrame)*sin(dTickAngleRad);m_pointBoundarynRef.y = ROUND(dTemp);/ 确定刻度点(主刻度和子刻度)/主刻度及文本标注点if(nRef%m_nSubTicks = 0)dTemp = m_ptMeterCenter.x + nInnerRadius*cos(dTickAngleRad);pointInnernRef.x = ROUND(dTemp);dTemp = m_ptMeterCenter.y - nInnerRadius*sin(dTickAngleRad);pointInnernRef.y = ROUND(dTemp);/ 子刻度elsedTemp = m_ptMeterCenter.x + nSubTickR*cos(dTickAngleRad);pointInnernRef.x = ROUND(dTemp);dTemp = m_ptMeterCenter.y - nSubTickR*sin(dTickAngleRad);pointInnernRef.y = ROUND(dTemp);nRef+ ;/ 多边形区域m_rgnBoundary.DeleteObject() ;m_rgnBoundary.CreatePolygonRgn(m_pointBoundary, nRef, ALTERNATE);m_rectValue.top = m_ptMeterCenter.y + m_nRadiusFrame/5;m_rectValue.bottom = m_ptMeterCenter.y + m_nRadiusFrame/2;m_rectValue.left = m_ptMeterCenter.x - m_nRadiusFrame/2;m_rectValue.right = m_ptMeterCenter.x + m_nRadiusFrame/2;/ 绘制刻度penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, RGB(0,0,0);pPenOld = pDC-SelectObject(&penDraw);for(i=0; iMoveTo(m_pointBoundaryi);pDC-LineTo(pointInneri);pDC-SelectObject(pPenOld);/ 刻度标号/ 确定字体大小nHeight = m_nRadiusFrame/6;m_font.CreateFont(nHeight, 0, 0, 0, 400, FALSE, FALSE, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH|FF_SWISS, Arial);pFontOld = pDC-SelectObject(&m_font);pDC-SetBkMode(TRANSPARENT);for(i=0; i190)pDC-SetTextAlign(TA_BOTTOM|TA_LEFT);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/2, strtemp);else if(dtempangle170)pDC-SetTextAlign(TA_BASELINE|TA_LEFT);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/3, strtemp);else if(dtempangle135)pDC-SetTextAlign(TA_BASELINE|TA_LEFT);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/2, strtemp);else if(dtempangle100)pDC-SetTextAlign(TA_TOP|TA_LEFT);pDC-TextOut(pointInnerm_nSubTicks*i.x-nHeight/4, pointInnerm_nSubTicks*i.y-nHeight/8, strtemp);else if(dtempangle80)pDC-SetTextAlign(TA_TOP|TA_CENTER);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y, strtemp);else if(dtempangle45)pDC-SetTextAlign(TA_BOTTOM|TA_RIGHT);pDC-TextOut(pointInnerm_nSubTicks*i.x+nHeight/3, pointInnerm_nSubTicks*i.y+nHeight, strtemp);else if(dtempangle10)pDC-SetTextAlign(TA_RIGHT|TA_BASELINE);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/2, strtemp);else if(dtempangle-10)pDC-SetTextAlign(TA_RIGHT|TA_BASELINE);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/3, strtemp);else pDC-SetTextAlign(TA_RIGHT|TA_BOTTOM);pDC-TextOut(pointInnerm_nSubTicks*i.x, pointInnerm_nSubTicks*i.y+nHeight/2, strtemp);pDC-SelectObject(pFontOld);void CMeter:ReconstructControl()if (m_pBitmapOldBackground) & (m_bitmapBackground.GetSafeHandle() & (m_dcBackground.GetSafeHdc()m_dcBackground.SelectObject(m_pBitmapOldBackground);m_dcBackground.DeleteDC() ;m_bitmapBackground.DeleteObject();Invalidate ();void CMeter:OnSize(UINT nType, int cx, int cy) CStatic:OnSize(nType, cx, cy);/ TODO: Add your message handler code hereReconstructControl() ;void CMeter:DrawNeedle(CDC *pDC)int nResult;double dRadPerDeg = 4.0*atan(1.0)/180.0;double dAngleDeg;double dAngleRad ;double dTemp ;CBrush brushFill, *pBrushOld ;CPen penDraw, *pPenOld ;CPoint pointNeedle4 ;/ 指针由四边形组成/ 计算角度并限定指针走的角度dAngleDeg = m_nStartAngleDeg-(360.0+m_nStartAngleDeg-m_nEndAngleDeg)*(m_dCurrentValue-m_dMinValue)/(m_dMaxValue-m_dMinValue);dAngleDeg = min(dAngleDeg, m_nStartAngleDeg);dAngleDeg = max(dAngleDeg, m_nEndAngleDeg-360.0);dAngleRad = dAngleDeg*dRadPerDeg;/ 计算三角形底边两个点pointNeedle0.x = m_ptMeterCenter.x - (int)(m_nCenterRadius*10*sin(dAngleRad)/8);pointNeedle0.y = m_ptMeterCenter.y - (int)(m_nCenterRadius*10*cos(dAngleRad)/8);pointNeedle2.x = m_ptMeterCenter.x + (int)(m_nCenterRadius*10*sin(dAngleRad)/8);pointNeedle2.y = m_ptMeterCenter.y + (int)(m_nCenterRadius*10*cos(dAngleRad)/8);/ 计算指针顶部坐标dTemp = m_ptMeterCenter.x + m_nRadiusFrame*cos(dAngleRad)*95/100;pointNeedle1.x = ROUND(dTemp);dTemp = m_ptMeterCenter.y - m_nRadiusFrame*sin(dAngleRad)*95/100;pointNeedle1.y = ROUND(dTemp);/ 计算指针尾部坐标dTemp = m_ptMeterCenter.x - m_nRadiusFrame*cos(dAngleRad)/6;pointNeedle3.x = ROUND(dTemp);dTemp = m_ptMeterCenter.y + m_nRadiusFrame*sin(dAngleRad)/6;pointNeedle3.y = ROUND(dTemp);pDC-SelectClipRgn(&m_rgnBoundary);brushFill.CreateSolidBrush(m_colorNeedle);penDraw.CreatePen(PS_SOLID, 1, m_colorNeedle);pPenOld = pDC-SelectObject(&penDraw) ;pBrushOld = pDC-SelectObject(&brushFill) ;/ 绘制指针pDC-Polygon(pointNeedle, 4);nResult = pDC-SelectClipRgn(NULL);pDC-SelectObject(pPenOld);pDC-SelectObject(pBrushOld);/ 立体感处理if(dAngleDeg90)penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 2, m_colorShadow);pPenOld = pDC-SelectObject(&penDraw);pDC-MoveTo(pointNeedle1);pDC-LineTo(pointNeedle0);pDC-LineTo(pointNeedle3);pDC-SelectObject(pPenOld);penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, m_colorHighlight);pPenOld = pDC-SelectObject(&penDraw);pDC-MoveTo(pointNeedle1);pDC-LineTo(pointNeedle2);pDC-LineTo(pointNeedle3);pDC-SelectObject(pPenOld);elsepenDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 2, m_colorShadow);pPenOld = pDC-SelectObject(&penDraw);pDC-MoveTo(pointNeedle1);pDC-LineTo(pointNeedle2);pDC-LineTo(pointNeedle3);pDC-SelectObject(pPenOld);penDraw.DeleteObject();penDraw.CreatePen(PS_SOLID, 1, m_colorHighlight);pPenOld = pDC-SelectObject(&penDraw);pDC-MoveTo(pointNeedle1);pDC-LineTo(pointNeedle0);pDC-LineTo(pointNeedle3);pDC-SelectObject(pPenOld);void CMeter:UpdateNeedle(double dValue)m_dCurrentValue = dValue;Invalidate();void CMeter:SetNeedleColor(COLORREF colorNeedle)m_colorNeedle = colorNeedle ;ReconstructControl() ;void CMeter:SetRange(double dMin, double dMax)m_dMaxValue = dMax ;m_dMinValue = dMin ;ReconstructControl() ;void CMeter:SetScaleDecimals(int nDecimals)m_nScaleDecimals = nDecimals ;ReconstructControl() ;void CMeter:SetUnits(CString &strUnits)m_strUnits = strUnits ;ReconstructControl() ;void CMeter:SetValueDecimals(int nDecimals)m_nValueDecimals = nDecimals ;ReconstructControl() ;void CMeter:DrawNode(CDC *pDC)CPen penDraw, *pPe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 裁缝理念考核试卷及答案
- 2025至2030中国期货行业市场行情监测及有效策略与实施路径评估报告
- 炭素煅烧工内部技能考核试卷及答案
- 石英玻璃冷加工工成本预算考核试卷及答案
- 学校保护耕地活动方案策划
- 化纤后处理工晋升考核试卷及答案
- 民法典考试题库及答案
- 变压器线圈制造工抗压考核试卷及答案
- 船舶特大型起重机驾驶工三级安全教育(车间级)考核试卷及答案
- 小学数学跳绳专项训练教学设计
- 刑法学课程课件教案绪论
- 精神科量表完整版本
- 混凝土搅拌站安全生产管理制度(2篇)
- 讲好中国故事英语演讲2-3分钟
- 跨境电商实务 课件 项目一 跨境电商概述
- 旗袍赛活动方案
- 大学高数-函数和极限省公开课获奖课件说课比赛一等奖课件
- PDCA血液透析水循环案例汇报
- DB13T 5971-2024 从业人员健康检查技术规范
- GB/T 7260.3-2024不间断电源系统(UPS)第3部分:确定性能和试验要求的方法
- 向左向右转 体育与健康一年级下册
评论
0/150
提交评论