面向对象程序设计课程设计报告《电子时钟》(C++).doc_第1页
面向对象程序设计课程设计报告《电子时钟》(C++).doc_第2页
面向对象程序设计课程设计报告《电子时钟》(C++).doc_第3页
面向对象程序设计课程设计报告《电子时钟》(C++).doc_第4页
面向对象程序设计课程设计报告《电子时钟》(C++).doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1 前言12 需求分析12.1 要求12.2 任务12.3 运行环境12.4 开发工具13 分析和设计13.1 系统分析及设计思路13.2 主要类图33.3 函数流程图34 具体代码实现45 课程设计总结265.1 程序运行结果或预期运行结果265.2 设计结论27参考文献27致 谢271 前言时钟在人们日常生活中必不可少,时钟的原理是怎么样的呢,本程序将模拟一个电子时钟。为了使程序更加美观,本程序是使用Visual C+编写一个可视化的模拟电子时钟程序。电子时钟的关键在于延时,为了达到延时的准确性,不受程序执行时间的影响,采用了系统两秒之间的间隔进行延时。该程序还加入了显示星期功能,在知道1901年每月1号是星期几的情况下,再根据年、月、日即可算出星期几。2 需求分析2.1 要求设计类结构,模拟电子时钟的行走,在屏幕上显示一个活动时钟。2.2 任务(1)显示日期的格式:XXXX年XX月XX日(2)显示时间的格式:XX:XX:XX。(3)添加显示星期的格式:星期X2.3 运行环境(1)WINDOWS2000/XP系统(2)Visual C+ 6.0编译环境或DEV C+ 5.0编译环境2.4 开发工具C+语言3 分析和设计+3.1 系统分析及设计思路为了使程序的显示更加美观,该程序使用了C+可视化程序设计方法进行设计。在可视化程序设计中,建立了一个MFC单文档应用程序工程,该工程包括了视图类、文档类对话框类和主框架类。在主框架类中修改窗口等属性,使整个时间的显示更加协调。模拟电子时钟是一个显示和计时的小程序,因此只要在视图类和文档类添加相关的属性和方法即可完成模拟电子时钟的功能。文档类定义时钟的相关属性,包括int类型的year、month、day、hour、minute、second,和包括CString类型的str_year、str_month、str_day、str_hour、str_minute、str_second等信息。int类型的时间日期属性用以计算,CSrting类型的时间日期属性用以显示,通过CString类中的成员函数Formart可以把int型的数据转成CString型的。视图类实现时钟的主要功能,在该类的OnDraw函数里面对时间日期进行显示输出。向窗口输出信息时,为了保证高刷新率下绘图不闪烁,使用内存绘图的方法,在内存中创建一个与屏幕绘图区域一致的对象,使得重绘视图时可以大大提高运行速度。为了使计时能够达到几乎无误差,使用了一个获取系统两秒间隔作为计时间隔的方法,使得计时间隔和系统时间间隔一致。每次重绘视图的时候都重新获取系统时间,当该两次获得的秒不一致时,就对时间加一秒。通过一个计时器消息,使视图50ms刷新一次,以保证时间的准确性。在视图类中需要添加几个方法:用于计算时间的方法RunTime()、计算星期的方法Week()、int型转CString型的方法Change()、获取系统时间的方法GetDateTime()、重获系统时间方法OnReset()和计时器消息。在计算时间日期的时候,每达到1秒的时候对second进行加1,然后判断是否达到60秒,达到的话minute就加1,同样的方法对hour、day、month和year进行计算,在对day计数时,考虑到大小月和闰年,对day进行加1时,判断是哪一月和是否为闰年。在确定年、月、日之后,使用函数Week()进行对星期几的计算,根据1901年每月1号是星期几可以得出现在是星期几。在这个程序中,还使用了一个对话框类,使用对话框来对时间日期的设置。在菜单栏里添加一个“设置时间”的选项和一个菜单消息,当点击这个选项就会弹出设置时间日期的对话框,对话框中编辑控件设定了每个值的取值范围,从而对输入错误进行排除。3.2 主要类图图3.1 主要类图3.3 函数流程图OnDraw函数流程图如图3.2所示:图3.2 OnDraw函数流程图4 具体代码实现/ MainFrm.h文件,负责主窗口框架的显示class CMainFrame : public CFrameWndprotected: / create from serialization onlyCMainFrame();DECLARE_DYNCREATE(CMainFrame)public:virtual BOOL PreCreateWindow(CREATESTRUCT& cs);public:virtual CMainFrame();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected: / control bar embedded membersCStatusBar m_wndStatusBar;CToolBar m_wndToolBar;protected:afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);DECLARE_MESSAGE_MAP();#endif / MainFrm.cpp文件#include stdafx.h#include DateTime.h#include MainFrm.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)ON_WM_CREATE()END_MESSAGE_MAP()static UINT indicators =ID_SEPARATOR, / status line indicatorID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;CMainFrame:CMainFrame()CMainFrame:CMainFrame()int CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)if (CFrameWnd:OnCreate(lpCreateStruct) = -1)return -1;if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) | !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)TRACE0(Failed to create toolbarn);return -1;m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);ShowControlBar(&m_wndToolBar,FALSE,FALSE); /隐藏工具栏return 0;BOOL CMainFrame:PreCreateWindow(CREATESTRUCT& cs)if( !CFrameWnd:PreCreateWindow(cs) )return FALSE;cs.style=WS_OVERLAPPED|WS_SYSMENU; /禁止调整窗口大小 cs.style=WS_OVERLAPPED|WS_SYSMENU|WS_MINIMIZEBOX;return TRUE;#ifdef _DEBUGvoid CMainFrame:AssertValid() constCFrameWnd:AssertValid();void CMainFrame:Dump(CDumpContext& dc) constCFrameWnd:Dump(dc);#endif /_DEBUG/ DateTime.h文件#if !defined(AFX_DATETIME_H_6CD6B4B6_BC79_4328_8187_EE6FCD7FEB17_INCLUDED_)#define AFX_DATETIME_H_6CD6B4B6_BC79_4328_8187_EE6FCD7FEB17_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#ifndef _AFXWIN_H_#error include stdafx.h before including this file for PCH#endif#include resource.h / main symbolsclass CDateTimeApp : public CWinApppublic:CDateTimeApp();public:virtual BOOL InitInstance();afx_msg void OnAppAbout();DECLARE_MESSAGE_MAP();#endif / DateTime.cpp文件#include stdafx.h#include DateTime.h#include MainFrm.h#include DateTimeDoc.h#include DateTimeView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifBEGIN_MESSAGE_MAP(CDateTimeApp, CWinApp)ON_COMMAND(ID_APP_ABOUT, OnAppAbout)ON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen)END_MESSAGE_MAP()CDateTimeApp:CDateTimeApp()CDateTimeApp theApp;BOOL CDateTimeApp:InitInstance()AfxEnableControlContainer();#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endifSetRegistryKey(_T(Local AppWizard-Generated Applications);LoadStdProfileSettings(); / Load standard INI file options (including MRU)CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CDateTimeDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CDateTimeView);AddDocTemplate(pDocTemplate);CCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);if (!ProcessShellCommand(cmdInfo)return FALSE;m_pMainWnd-ShowWindow(SW_SHOW);m_pMainWnd-UpdateWindow();m_pMainWnd-SetWindowPos(NULL,0,0,400,250,SWP_SHOWWINDOW);AfxGetMainWnd()-CenterWindow(CWnd:GetDesktopWindow();/窗口置屏幕中央return TRUE;class CAboutDlg : public CDialog /对话框类,负责设置时间public:CAboutDlg();enum IDD = IDD_ABOUTBOX ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV supportprotected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()void CDateTimeApp:OnAppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ DateTimeDoc.h文件,文档类,定义了文字信息的属性#if !defined(AFX_DATETIMEDOC_H_7CB32F09_D9D2_4ABD_87CA_F51383AFDC67_INCLUDED_)#define AFX_DATETIMEDOC_H_7CB32F09_D9D2_4ABD_87CA_F51383AFDC67_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000class CDateTimeDoc : public CDocumentprotected:CDateTimeDoc();DECLARE_DYNCREATE(CDateTimeDoc)public:int year,month,day,hour,minute,second; /定义int型变量用以计算时间CString str_year,str_month,str_day,str_hour,str_minute,str_second; /定义CString型变量用以显示CString str1,str2,str3;public:virtual BOOL OnNewDocument();virtual void Serialize(CArchive& ar);public:virtual CDateTimeDoc();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:protected:DECLARE_MESSAGE_MAP();#endif / DateTimeDoc.cpp 文件#include stdafx.h#include DateTime.h#include DateTimeDoc.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CDateTimeDoc, CDocument)BEGIN_MESSAGE_MAP(CDateTimeDoc, CDocument)END_MESSAGE_MAP()CDateTimeDoc:CDateTimeDoc()day=1;month=0;year=110;hour=0;minute=0;second=0;str_year= ;str_month= ;str_day= ;str_hour= ;str_minute= ;str_second= ;str1= ;str2= ;str3= ;CDateTimeDoc:CDateTimeDoc()BOOL CDateTimeDoc:OnNewDocument()if (!CDocument:OnNewDocument()return FALSE;return TRUE;void CDateTimeDoc:Serialize(CArchive& ar)if (ar.IsStoring()else#ifdef _DEBUGvoid CDateTimeDoc:AssertValid() constCDocument:AssertValid();void CDateTimeDoc:Dump(CDumpContext& dc) constCDocument:Dump(dc);#endif /_DEBUG/ DateTimeView.h文件,负责绘图显示和时钟定义主要功能的函数#if !defined(AFX_DATETIMEVIEW_H_D7609974_EA26_4AB5_82B0_A04A15A1C9F2_INCLUDED_)#define AFX_DATETIMEVIEW_H_D7609974_EA26_4AB5_82B0_A04A15A1C9F2_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#include DateTimeDoc.h#include Setting.hclass CDateTimeView : public CViewprotected:CDateTimeView();DECLARE_DYNCREATE(CDateTimeView)public:CDateTimeDoc* GetDocument();private:int flag;int _sec1;int _sec2;public:virtual void OnDraw(CDC* pDC); / overridden to draw this viewvirtual BOOL PreCreateWindow(CREATESTRUCT& cs);virtual void OnInitialUpdate();public:int Week(int,int,int); /计算星期函数void RunTime(); /运行时间函数void Change(); /int型转CString函数void GetDateTime(); /获取系统时间函数virtual CDateTimeView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:protected:afx_msg void OnDestroy();afx_msg void OnTimer(UINT nIDEvent);afx_msg void OnSetting();afx_msg void OnReset();afx_msg BOOL OnEraseBkgnd(CDC* pDC);DECLARE_MESSAGE_MAP();#ifndef _DEBUGinline CDateTimeDoc* CDateTimeView:GetDocument() return (CDateTimeDoc*)m_pDocument; #endif/ DateTimeView.cpp 文件#include stdafx.h#include DateTime.h#include DateTimeDoc.h#include DateTimeView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifIMPLEMENT_DYNCREATE(CDateTimeView, CView)BEGIN_MESSAGE_MAP(CDateTimeView, CView)ON_WM_DESTROY()ON_WM_TIMER()ON_COMMAND(IDD_SETTING, OnSetting)ON_COMMAND(ID_RESET, OnReset)ON_WM_ERASEBKGND()END_MESSAGE_MAP()CDateTimeView:CDateTimeView()flag=0;_sec1=_sec2=0;CDateTimeView:CDateTimeView()BOOL CDateTimeView:PreCreateWindow(CREATESTRUCT& cs)return CView:PreCreateWindow(cs);void CDateTimeView:OnDraw(CDC* pDC)CDateTimeDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CClientDC dc(this);/ 获得窗体大小 CRect rect;GetWindowRect(&rect); int nWidth = rect.Width(); int nHeight= rect.Height();/在内存中创建一个与屏幕绘图区域一致的对象 CDC MemDC; CBitmap MemBitmap; MemDC.CreateCompatibleDC(NULL); MemBitmap.CreateCompatibleBitmap(&dc, nWidth, nHeight); CBitmap *pOldBit = MemDC.SelectObject(&MemBitmap); time_t curtime=time(0);tm getsec=*localtime(&curtime);if(flag=0)GetDateTime();_sec1=_sec2=getsec.tm_sec;curtime=time(0);getsec=*localtime(&curtime);_sec2=getsec.tm_sec;if(_sec2!=_sec1) /和系统时间比较判断是不是需要加1秒_sec1=_sec2;RunTime();MemDC.SetTextColor(RGB(0,0,255); /文本颜色int cHeight;UINT position=0;CFont font;cHeight=16+3*8;font.CreateFont(-cHeight,0,0,0,FW_NORMAL,FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_MODERN,NI7SEG); /字体格式CFont *oldFont=MemDC.SelectObject (&font);position+=cHeight;flag=1;Change();pDoc-str1=pDoc-str_year+年+pDoc-str_month+月+pDoc-str_day+日;pDoc-str2=pDoc-str_hour+:+pDoc-str_minute+:+pDoc-str_second;CBrush MyBrush;CBrush *pOldBrush=pDC-SelectObject(&MyBrush);GetClientRect(&rect);MemDC.Rectangle(-1,-1,400,260);MemDC.SelectObject(pOldBrush);MemDC.TextOut(25,25,pDoc-str1);MemDC.TextOut(140,70,pDoc-str3);MemDC.TextOut(95,122,pDoc-str2);/将内存中绘制的图像复制到当前设备dc.BitBlt(0, 0, nWidth, nHeight, &MemDC, 0, 0, SRCCOPY); MemBitmap.DeleteObject();/销毁对象 MemDC.DeleteDC(); #ifdef _DEBUGvoid CDateTimeView:AssertValid() constCView:AssertValid();void CDateTimeView:Dump(CDumpContext& dc) constCView:Dump(dc);CDateTimeDoc* CDateTimeView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CDateTimeDoc);return (CDateTimeDoc*)m_pDocument;#endif /_DEBUGvoid CDateTimeView:GetDateTime() /获取系统时间CDateTimeDoc* pDoc = GetDocument();time_t curtime=time(0); tm tim =*localtime(&curtime);pDoc-day=tim.tm_mday; pDoc-month=tim.tm_mon+1; pDoc-year=tim.tm_year+1900; pDoc-hour=tim.tm_hour;pDoc-minute=tim.tm_min;pDoc-second=tim.tm_sec;void CDateTimeView:Change() int型转CString型函数CDateTimeDoc* pDoc = GetDocument();pDoc-str_year.Format(%d,pDoc-year);pDoc-str_month.Format(%d,pDoc-month);pDoc-str_day.Format(%d,pDoc-day);pDoc-str_hour.Format(%d,pDoc-hour);pDoc-str_minute.Format(%d,pDoc-minute);pDoc-str_second.Format(%d,pDoc-second);if(pDoc-monthstr_month=0+pDoc-str_month;if(pDoc-daystr_day=0+pDoc-str_day;if(pDoc-hourstr_hour=0+pDoc-str_hour;if(pDoc-minutestr_minute=0+pDoc-str_minute;if(pDoc-secondstr_second=0+pDoc-str_second;switch(Week(pDoc-year,pDoc-month,pDoc-day)case 1:pDoc-str3=星期一;break;case 2:pDoc-str3=星期二;break;case 3:pDoc-str3=星期三;break;case 4:pDoc-str3=星期四;break;case 5:pDoc-str3=星期五;break;case 6:pDoc-str3=星期六;break;case 0:pDoc-str3=星期日;break;void CDateTimeView:RunTime() /时间运行函数CDateTimeDoc* pDoc = GetDocument();pDoc-second+;if(pDoc-second=60)pDoc-second=0;pDoc-minute+;if(pDoc-minute=60)pDoc-minute=0;pDoc-hour+;if(pDoc-hour=24)pDoc-hour=0;pDoc-day+;if(pDoc-month=1|pDoc-month=3|pDoc-month=5|pDoc-month=7|pDoc-month=8|pDoc-month=10|pDoc-month=12)&pDoc-day=32)pDoc-day=1;pDoc-month+;if(pDoc-month=4|pDoc-month=6|pDoc-month=9|pDoc-month=11)&pDoc-day=31)pDoc-day=1;pDoc-month+;if(pDoc-month=2&(pDoc-year%4!=0|pDoc-year%100=0)&pDoc-day=29)pDoc-day=1;pDoc-month+;if(pDoc-month=2&pDoc-day=30)pDoc-day=1;pDoc-month+;if(pDoc-month=13)pDoc-month=1;pDoc-year+;void CDateTimeView:OnInitialUpdate() /计时器设置CView:OnInitialUpdate();SetTimer(1,50,NULL); /50ms的计时器void CDateTimeView:OnDestroy() CView:OnDestroy();KillTimer(1);/清除计时器void CDateTimeView:OnTimer(UINT nIDEvent) Invalidate(false); /计时完成,调用Invalidate()函数重绘试图CView:OnTimer(nIDEvent);void CDateTimeView:OnSetting() /设置时间函数CDateTimeDoc* pDoc = GetDocument();CSetting cst;cst.year=&pDoc-year; /把文档类的相应属性赋给编辑框cst.month=&pDoc-month;cst.day=&pDoc-day;cst.hour=&pDoc-hour;cst.minute=&pDoc-minute;cst.second=&pDoc-second;cst.DoModal();void CDateTimeView:OnReset() /重获系统时间函数GetDateTime();Invalidate();BOOL CDateTimeView:OnEraseBkgnd(CDC* pDC) return TRUE;int CDateTimeView:Week(int y,int m,int d) /星期计算函数int g, f=y-1901+(y-1901)/4+2;switch(m)case 1:g=f+d;break;case 2:g=f+d+31;break;case 3:g=f+d+59;break;case 4:g=f+d+90;break;case 5:g=f+d+120;break;case 6:g=f+d+151;break;case 7:g=f+d+181;break;case 8:g=f+d+212;break;case 9:g=f+d+243;break;case 10:g=f+d+273;break;case 11:g=f+d+304;break;case 12:g=f+d+334;break;if(y%4=0&y%100!=0&m2)g+;return (g-1)%7;#if !defined(AFX_SETTING_H_D569349B_C1DA_4639_BC4F_1B59A0E7C554_INCLUDED_)#define AFX_SETTING_H_D569349B_C1DA_4639_BC4F_1B59A0E7C554_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000/ Setting.h文件,对话框类,负责设置时间#include DateTimeView.h#include DateTimeDoc.hclass CSetting : public CDialogpublic:CSetting(CWnd* pParent = NULL); / standard constructorenum IDD = IDD_SETTING ;CSpinButtonCtrlm_syear;CSpinButtonCtrlm_ssecond;CSpinButtonCtrlm_smonth;CSpinButtonCtrlm_sminute;CSpinButtonCtrlm_shour;CSpinButtonCtrlm_sday;intm_year;intm_day;intm_hour;intm_minute;intm_month;intm_second;int *year,*month,*day,*hour,*minute,*second;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV supportafx_msg void OnChangeEditYear();afx_msg void OnChangeEditMonth();afx_msg void OnChangeEditDay();afx_msg void OnChangeEditHour();afx_msg void OnChangeEditMinute();afx_msg void OnChangeEditSecond();virtual BOOL OnInitDialog();virtual void OnOK();afx_msg void OnOutofmemorySpinYear(NMHDR* pNMHDR, LRESULT* pResult);DECLARE_MESSAGE_MAP();#endif / Setting.cpp文件#include stdafx.h#include DateTime.h#include Setting.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCSetting:CSetting(CWnd* pParent /*=NULL*/): CDialog(CSetting:IDD, pParent)m_year = 0;m_day = 0;m_hour = 0;m_minute = 0;m_month = 0;m_second = 0;void CSetting:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_SPIN_YEAR, m_syear);DDX_Control(pDX, IDC_SPIN_SECOND, m_ssecond);DDX_Control(pDX, IDC_SPIN_MONTH, m_smonth);DDX_Control(pDX, IDC_SPIN_MINUTE, m_sminute);DDX_Control(pDX, IDC_SPIN_HOUR, m_shour);DDX_Control(pDX, IDC_SPIN_DAY, m_sday);DDX_Text(pDX, IDC_EDIT_YEAR, m_year);DDV_MinMaxInt(pDX, m_year, 1900, 2999);DDX_Text(pDX, IDC_EDIT_DAY, m_day);DDV_MinMaxInt(pDX, m_day, 1, 31);DDX_Text(pDX, IDC_EDIT_HOUR, m_hour);DDV_MinMaxInt(pDX, m_hour, 0, 23);DDX_Text(pDX, IDC_EDIT_MINUTE, m_minute);DDV_MinMaxInt(pDX, m_minute, 0, 59);DDX_Text(pDX, IDC_EDIT_MONTH, m_month);DDV_MinMaxInt(pDX, m_month, 1, 12);DDX_Text(pDX, ID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论