操作系統(tǒng) 課程設(shè)計(jì) 處理機(jī)調(diào)度 圖形界面 完整報(bào)告_第1頁(yè)
操作系統(tǒng) 課程設(shè)計(jì) 處理機(jī)調(diào)度 圖形界面 完整報(bào)告_第2頁(yè)
操作系統(tǒng) 課程設(shè)計(jì) 處理機(jī)調(diào)度 圖形界面 完整報(bào)告_第3頁(yè)
操作系統(tǒng) 課程設(shè)計(jì) 處理機(jī)調(diào)度 圖形界面 完整報(bào)告_第4頁(yè)
操作系統(tǒng) 課程設(shè)計(jì) 處理機(jī)調(diào)度 圖形界面 完整報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 目錄第一章 概述11.1 需求分析11.2背景設(shè)計(jì)1第二章 概要設(shè)計(jì)2第三章 詳細(xì)設(shè)計(jì)43.1高響應(yīng)比調(diào)度算法43.2時(shí)間片輪轉(zhuǎn)法53.3短進(jìn)程優(yōu)先法7第四章 調(diào)試分析與測(cè)試結(jié)果9第五章 總結(jié)13第六章 參考文獻(xiàn)14第七章 附錄15第一章 概述1.1 需求分析進(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度是操作系統(tǒng)內(nèi)核的重要功能,本實(shí)驗(yàn)要求用C語(yǔ)言編寫(xiě)一個(gè)進(jìn)程調(diào)度模擬程序,使用短作業(yè)優(yōu)先調(diào)度算法,高響應(yīng)比調(diào)度算法,時(shí)間片輪轉(zhuǎn)調(diào)度算法實(shí)現(xiàn)進(jìn)程調(diào)度??梢允謩?dòng)阻塞與喚醒。并用MFC實(shí)現(xiàn)圖形界面。本實(shí)驗(yàn)可加深對(duì)進(jìn)程調(diào)度算法的理解。1.2背景設(shè)計(jì)在OS中,調(diào)度的實(shí)質(zhì)是一種資源分配,調(diào)度算法即指:根據(jù)系統(tǒng)的資

2、源分配策略所規(guī)定的資源分配算法。對(duì)于不同的系統(tǒng)和系統(tǒng)目標(biāo),通常采用不同的調(diào)度算法,如在批處理系統(tǒng)中,為照顧為數(shù)眾多的短作業(yè),采用短作業(yè)有限調(diào)度算法;在分時(shí)系統(tǒng)中,為保證系統(tǒng)具有合理的響應(yīng)時(shí)間,采用輪轉(zhuǎn)法進(jìn)行調(diào)度。采用算法時(shí),則要考慮多方面因素,以便達(dá)到最佳效果。第二章 概要設(shè)計(jì)設(shè)計(jì)一個(gè)有多個(gè)進(jìn)程共行的進(jìn)程調(diào)度程序。進(jìn)程調(diào)度算法:短作業(yè)優(yōu)先調(diào)度算法,高響應(yīng)比調(diào)度算法,時(shí)間片輪轉(zhuǎn)調(diào)度算法每個(gè)進(jìn)程有一個(gè)進(jìn)程控制塊( PCB)表示。進(jìn)程控制塊可以包含如下信息:進(jìn)程名、優(yōu)先數(shù)、到達(dá)時(shí)間、服務(wù)時(shí)間、進(jìn)程狀態(tài)等等。struct progressCString Name; /進(jìn)程名稱CString Start

3、;/創(chuàng)建時(shí)間int ServiceT;/服務(wù)時(shí)間int RunningT;/消逝時(shí)間int RemainT;/剩余時(shí)間int id;/進(jìn)程標(biāo)識(shí)符CProgressCtrl* pro;/指向進(jìn)度條的指針int Rp;/進(jìn)程成為就緒進(jìn)程的時(shí)間float prio;/進(jìn)程優(yōu)先權(quán);進(jìn)程的優(yōu)先權(quán)為:響應(yīng)時(shí)間/要求服務(wù)時(shí)間。進(jìn)程的運(yùn)行時(shí)間以時(shí)間片為單位進(jìn)行計(jì)算。每個(gè)進(jìn)程的狀態(tài)可以是就緒、執(zhí)行、阻塞、完成。就緒進(jìn)程獲得 CPU后都只能運(yùn)行一個(gè)時(shí)間片。用已占用CPU時(shí)間加1來(lái)表示。當(dāng)阻塞進(jìn)程時(shí),將當(dāng)前運(yùn)行的進(jìn)程移動(dòng)到阻塞隊(duì)列,并從就緒隊(duì)列將下個(gè)進(jìn)程移動(dòng)到進(jìn)程執(zhí)行區(qū)(本程序中就緒隊(duì)列中第一個(gè)即為正在執(zhí)行進(jìn)程,后

4、文不再贅述)。當(dāng)添加或喚醒進(jìn)程時(shí),將添加標(biāo)記m_bchange置為真,并將進(jìn)程添加進(jìn)就緒隊(duì)列。在運(yùn)行一個(gè)時(shí)間片中,檢查添加標(biāo)記m_bchange是否為真,若為真,則判斷單選框選中的算法,并按各自算法進(jìn)行模擬調(diào)度,詳見(jiàn)詳細(xì)設(shè)計(jì)。當(dāng)執(zhí)行區(qū)進(jìn)程完成時(shí),將之移動(dòng)到已完成的隊(duì)列,并判斷就緒隊(duì)列中是否有進(jìn)程:若有,則將下一個(gè)進(jìn)程添加進(jìn)就緒隊(duì)列;若無(wú),則彈出提示窗口。重復(fù)以上流程,直到用戶退出。第三章 詳細(xì)設(shè)計(jì)3.1高響應(yīng)比調(diào)度算法該算法在添加標(biāo)記m_bchange為真且單選框選中“高響應(yīng)比優(yōu)先”時(shí)調(diào)用,分別通過(guò)每個(gè)進(jìn)程前的隊(duì)列中進(jìn)程RemainT之和除以該進(jìn)程的ServiceT,求出優(yōu)先級(jí)prio,并根據(jù)

5、prio重新為就緒隊(duì)列排序。最后將m_bchange置為假。if ( m_bchange )if(iRadioButton=IDC_RADIO1)/計(jì)算優(yōu)先級(jí)for (int i=1;iProNum;i+)float sum=0;for (int j=0;ji;j+)sum+=Proj.RemainT;Proi.prio=sum/Proi.ServiceT;/end for/根據(jù)優(yōu)先級(jí)排序progress Tem;for ( i=0;iProNum-1;i+)for (int j=0;jProNum-1-i;j+)if (Proj.prioProj+1.prio)Tem=Proj+1;Proj

6、+1=Proj;Proj=Tem;m_bchange=false;/end 排序3.2時(shí)間片輪轉(zhuǎn)法該算法在添加標(biāo)記m_bchange為真且單選框選中“輪轉(zhuǎn)調(diào)度”時(shí)調(diào)用,直接將就緒隊(duì)列相鄰2個(gè)進(jìn)程兩兩互換,最終達(dá)到將正在執(zhí)行進(jìn)程放置于就緒隊(duì)列后,并將下一個(gè)將要執(zhí)行的進(jìn)程開(kāi)始執(zhí)行,輸出結(jié)果,并將m_bchange置為真,以便繼續(xù)輪轉(zhuǎn)。if(iRadioButton=IDC_RADIO2)progress Tem;for ( int i=0;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識(shí)符:%d

7、進(jìn)程名稱:%s 創(chuàng)建時(shí)間:%s 需要時(shí)間:%d秒 剩余時(shí)間:%d秒 已運(yùn)行時(shí)間:%d秒 優(yōu)先權(quán):%frn, Pro0.id,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/end 排序3.3短進(jìn)程優(yōu)先法該算法在添加標(biāo)記m_bchange為真且單選框選中“短進(jìn)程優(yōu)先”時(shí)調(diào)用,按照進(jìn)程RemainT來(lái)重新排列隊(duì)列順序。最后將m_bc

8、hange置為假。if(iRadioButton=IDC_RADIO3)progress Tem;for (int i=0;iProNum-1;i+)for (int j=0;jProj+1.RemainT)Tem=Proj+1;Proj+1=Proj;Proj=Tem;rm_bchange=false;/end 排序第四章 調(diào)試分析與測(cè)試結(jié)果 高響應(yīng)比優(yōu)先算法 輪轉(zhuǎn)調(diào)度算法 短進(jìn)程優(yōu)先算法 進(jìn)程的阻塞與喚醒 差錯(cuò)控制第五章 總結(jié)通過(guò)此次課程設(shè)計(jì),更深入的理解了各個(gè)進(jìn)程調(diào)度算法,及實(shí)現(xiàn)過(guò)程。熟悉了MFC環(huán)境的使用。增進(jìn)了VC編程的水平。對(duì)進(jìn)程或作業(yè)先來(lái)先服務(wù)、短作業(yè)優(yōu)先算法,最高響應(yīng)比算法,高

9、優(yōu)先權(quán)、按時(shí)間片輪轉(zhuǎn)調(diào)度算法以及進(jìn)程調(diào)度的概念和算法,有了更深入的認(rèn)識(shí)!初步理解了操作系統(tǒng)對(duì)于作業(yè)處理的基本思想!并加深了我對(duì)于操作系統(tǒng)理論的理解。在此過(guò)程中,遇到了困難,能及時(shí)請(qǐng)教同學(xué),查詢相關(guān)資料,及時(shí)解決了問(wèn)題,但仍有不足之處,將會(huì)在今后學(xué)習(xí)中更加努力。第六章 參考文獻(xiàn)計(jì)算機(jī)操作系統(tǒng)(第三版)湯子瀛 西安電子科技大學(xué)出版社 操作系統(tǒng)教程方敏編 西安電子科技大學(xué)出版社 操作系統(tǒng)原理與實(shí)踐教程周湘貞、曾憲權(quán) 清華出版社 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)嚴(yán)蔚敏 清華大學(xué)出版社深入淺出MFC(第2版)侯俊杰 華中科技大學(xué)出版社第七章 附錄pcb1.cpp:#include stdafx.h#include

10、pcb1.h#include pcb1Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifBEGIN_MESSAGE_MAP(CPcb1App, CWinApp)ON_COMMAND(ID_HELP, CWinApp:OnHelp)END_MESSAGE_MAP()CPcb1App:CPcb1App()CPcb1App theApp;BOOL CPcb1App:InitInstance()AfxEnableControlContainer();#ifdef _AF

11、XDLLEnable3dControls();#elseEnable3dControlsStatic();#endifCPcb1Dlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)else if (nResponse = IDCANCEL)return FALSE;Pcb1.rc- IDD_PCB1_DIALOG:pcb1Dlg.cpp:#include stdafx.h#include pcb1.h#include pcb1Dlg.h#ifdef _DEBUG#define new DEBU

12、G_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifprogress Pro100; /就緒隊(duì)列progress Zusai100; /阻塞隊(duì)列static int ProNum=0; /用來(lái)表示第n就緒進(jìn)程static int ZusaiNum=0; /用來(lái)表示第n阻塞進(jìn)程static int id=0;int m_bchange;class CAboutDlg : public CDialogpublic:CAboutDlg();enum IDD = IDD_ABOUTBOX ;protected:virtual void D

13、oDataExchange(CDataExchange* pDX); protected:DECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)void CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()CPcb1Dlg:CPcb1Dlg(CWnd* pParent ): CDialog(CPcb1Dlg:IDD,

14、 pParent)m_Jincheng = _T();m_Jiuxu = _T();m_Wancheng = _T();m_Time = _T();m_Zhixing = _T();m_Zusai = _T();m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CPcb1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Control(pDX, IDC_PROGRESS1, m_progress);DDX_Text(pDX, IDC_EDIT_Jinch

15、eng, m_Jincheng);DDX_Text(pDX, IDC_EDIT_Jiuxu, m_Jiuxu);DDX_Text(pDX, IDC_EDIT_Wancheng, m_Wancheng);DDX_Text(pDX, IDC_EDIT_Time, m_Time);DDX_Text(pDX, IDC_EDIT_Zhixing, m_Zhixing);DDX_Text(pDX, IDC_EDIT_Zusai, m_Zusai);BEGIN_MESSAGE_MAP(CPcb1Dlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDR

16、AGICON()ON_BN_CLICKED(IDC_BUTTON_Huanxiang, OnBUTTONHuanxiang)ON_BN_CLICKED(IDC_BUTTON_Qingkong, OnBUTTONQingkong)ON_BN_CLICKED(IDC_BUTTON_Tianjia, OnBUTTONTianjia)ON_BN_CLICKED(IDC_BUTTON_Zuisai, OnBUTTONZuisai)ON_WM_TIMER()END_MESSAGE_MAP()BOOL CPcb1Dlg:OnInitDialog()CDialog:OnInitDialog();ASSERT(

17、IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);SetIcon(m_hIcon, TRUE);SetIcon(m_hIcon, FALSE);(CButton * )GetDlgItem( IDC_RADIO1 )-SetCheck( TRUE );return TRUE; void CPcb1Dlg:OnSysCommand(UINT nID, LPARAM

18、 lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);void CPcb1Dlg:OnPaint() if (IsIconic()CPaintDC dc(this); SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMet

19、rics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();HCURSOR CPcb1Dlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;/喚醒按扭void CPcb1Dlg:OnBUTTONHuanxiang() if ( ZusaiNum=0 )Message

20、Box(阻塞隊(duì)列為空,沒(méi)有可喚醒的進(jìn)程,溫馨提示,MB_OK|MB_ICONINFORMATION);return; ProProNum=Zusai0;int atime=this-getArrTime();ProProNum.Rp=atime;ZusaiNum-; ProNum+;/阻塞的隊(duì)列元素都前移一位for (int i=0;iZusaiNum;i+)Zusaii=Zusaii+1;/顯示就緒m_Jiuxu.Empty();CString T;for (i=1;iSetWindowText(m_Jiuxu);/顯示阻塞m_Zusai.Empty();for (i=0;iSetWindo

21、wText(m_Zusai);m_bchange=true;SetTimer(1,1000,NULL);/清空按扭void CPcb1Dlg:OnBUTTONQingkong() m_Wancheng.Empty();UpdateData(false);/添加按扭 void CPcb1Dlg:OnBUTTONTianjia() UpdateData(true); if ( m_Jincheng.IsEmpty() )MessageBox(請(qǐng)輸入進(jìn)程名稱);GetDlgItem(IDC_EDIT_Jincheng)-SetFocus();return;if ( m_Time.IsEmpty()

22、)MessageBox(請(qǐng)輸入服務(wù)時(shí)間);GetDlgItem(IDC_EDIT_Time)-SetFocus();return; int atime=this-getArrTime();ProProNum.Name=m_Jincheng;ProProN=&m_progress;ProProNum.RemainT=atoi(m_Time);ProProNum.ServiceT=atoi(m_Time);ProProNum.RunningT=0;ProProNum.Start=(CTime:GetCurrentTime().Format(%H:%M:%S);ProProNum.Rp=

23、atime;ProProNum.id=id+1;m_Jincheng.Empty();m_Time.Empty();UpdateData(false);id+;ProNum+; if(ProNum1) CString Temple=;for ( int i=1;iSetWindowText(m_Jiuxu); SetTimer(1,1000,NULL);m_bchange=true;/阻塞按扭void CPcb1Dlg:OnBUTTONZuisai() int i;if ( ProNum=0 )KillTimer(1);MessageBox(當(dāng)前沒(méi)有進(jìn)程在執(zhí)行,請(qǐng)?zhí)砑踊騿拘堰M(jìn)程);return

24、;elseZusaiZusaiNum+=Pro0;m_Zusai.Empty();CString Temple=;/顯示阻塞for ( i=0;iSetWindowText(m_Zusai);/更新進(jìn)度條,將進(jìn)程條和運(yùn)行清空P-SetPos(0);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(_T();ProNum-;if ( ProNumgetArrTime();/因?yàn)榈谝粋€(gè)元素空了,所以數(shù)組要前移double temp=0; double High; int highidex; for(i=1;i=temp)temp=High;high

25、idex=i;Pro0=Prohighidex;for ( i=highidex;iProNum;i+)Proi=Proi+1;for (i=highidex;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識(shí)符:%d 進(jìn)程名稱:%s 創(chuàng)建時(shí)間:%s 需要時(shí)間:%d秒 剩余時(shí)間:%d秒 已運(yùn)行時(shí)間:%d秒 優(yōu)先權(quán):%frn, Pro0.id,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDl

26、gItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/如果添加了新的成員,重新排序 if ( m_bchange )if(iRadioButton=IDC_RADIO1)/計(jì)算優(yōu)先級(jí)for (int i=1;iProNum;i+)float sum=0;for (int j=0;ji;j+)sum+=Proj.RemainT;Proi.prio=sum/Proi.ServiceT;/end for/根據(jù)優(yōu)先級(jí)排序progress Tem;for ( i=0;iProNum-1;i+)fo

27、r (int j=0;jProNum-1-i;j+)if (Proj.prioProj+1.prio)Tem=Proj+1;Proj+1=Proj;Proj=Tem;m_bchange=false;/end 排序if(iRadioButton=IDC_RADIO2)progress Tem;for ( int i=0;iSetRange(0,Pro0.ServiceT);Pro0.RemainT-;Pro0.RunningT+;m_Zhixing.Format(標(biāo)識(shí)符:%d 進(jìn)程名稱:%s 創(chuàng)建時(shí)間:%s 需要時(shí)間:%d秒 剩余時(shí)間:%d秒 已運(yùn)行時(shí)間:%d秒 優(yōu)先權(quán):%frn, Pro0.i

28、d,Pro0.Name,Pro0.Start,Pro0.ServiceT,Pro0.RemainT,Pro0.RunningT,Pro0.prio);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(m_Zhixing);P-SetPos(Pro0.RunningT);/end 排序if(iRadioButton=IDC_RADIO3)progress Tem;for (int i=0;iProNum-1;i+)for (int j=0;jProj+1.RemainT)Tem=Proj+1;Proj+1=Proj;Proj=Tem;m_bcha

29、nge=false;/end 排序/如果已經(jīng)完成if ( Pro0.RemainTSetPos(0);UpdateData(false);GetDlgItem(IDC_EDIT_Wancheng)-SetWindowText(m_Wancheng);/如果沒(méi)有就緒的進(jìn)程if( ProNum=0 )KillTimer(1);GetDlgItem(IDC_EDIT_Zhixing)-SetWindowText(_T();MessageBox(當(dāng)前沒(méi)有進(jìn)程在執(zhí)行,請(qǐng)?zhí)砑踊騿拘堰M(jìn)程!);/還有就緒的進(jìn)程elseint i;int atime=this-getArrTime();/因?yàn)榈谝粋€(gè)元素空了,所

30、以數(shù)組要前移double temp=0; double High; int highidex; for(i=1;i=temp)temp=High;highidex=i;Pro0=Prohighidex;for ( i=highidex;iProNum;i+)Proi=Proi+1;CString Temple=;for ( i=1;iSetWindowText(m_Jiuxu);m_bchange=true;/end 完成m_Jiuxu=;CString Temple=;for ( int i=1;iSetWindowText(m_Jiuxu);CDialog:OnTimer(nIDEvent

31、);StdAfx.cpp:#include stdafx.hpcb1.h:#if !defined(AFX_PCB1_H_D0EC9916_5956_47D0_A87D_BF26EFBECAD7_INCLUDED_)#define AFX_PCB1_H_D0EC9916_5956_47D0_A87D_BF26EFBECAD7_INCLUDED_#if _MSC_VER 1000#pragma once#endif #ifndef _AFXWIN_H_#error include stdafx.h before including this file for PCH#endif#include

32、resource.hclass CPcb1App : public CWinApppublic:CPcb1App();public:virtual BOOL InitInstance();DECLARE_MESSAGE_MAP();#endifpcb1Dlg.h:#if !defined(AFX_PCB1DLG_H_85A9A06E_CC92_4F5B_B772_4E1D184B7433_INCLUDED_)#define AFX_PCB1DLG_H_85A9A06E_CC92_4F5B_B772_4E1D184B7433_INCLUDED_#if _MSC_VER 1000#pragma o

33、nce#endif struct progressCString Name; /進(jìn)程名稱CString Start;/創(chuàng)建時(shí)間int ServiceT;/服務(wù)時(shí)間int RunningT;/消逝時(shí)間int RemainT;/剩余時(shí)間int id;/進(jìn)程標(biāo)識(shí)符CProgressCtrl* pro;/指向進(jìn)度條的指針int Rp;/進(jìn)程成為就緒進(jìn)程的時(shí)間float prio;/進(jìn)程優(yōu)先權(quán);class CPcb1Dlg : public CDialogpublic:int getArrTime();CPcb1Dlg(CWnd* pParent = NULL);enum IDD = IDD_PCB1_

34、DIALOG ;CProgressCtrlm_progress;CStringm_Jincheng;CStringm_Jiuxu;CStringm_Wancheng;CStringm_Time;CStringm_Zhixing;CStringm_Zusai;protected:virtual void DoDataExchange(CDataExchange* pDX);protected:HICON m_hIcon;virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_msg void OnBUTTONHuanxiang();afx_msg void OnBUTTONQingkong();afx_msg void OnBUTTONTianjia();afx_msg void OnBUTTONZuisai();afx_msg void OnTimer(UINT nIDEvent);DECLARE_MESSAGE_MAP();#endifResource.h:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論