在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例Windows系统编程 → 操作系统课程设计:磁盘调度模拟程序

操作系统课程设计:磁盘调度模拟程序

Windows系统编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:58.15M
  • 下载次数:27
  • 浏览次数:218
  • 发布时间:2019-06-29
  • 实例类别:Windows系统编程
  • 发 布 人:crazycode
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 操作系统 磁盘 程序 调度 系统

实例介绍

【实例简介】磁盘调度调度: 建立磁盘的数据结构描述; 使用两种方式产生作业:(a)自动产生, (b)手工输入; 在屏幕上显示每个作业的执行情况; 时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可认为过一个时间单位; (b) 响应WM_TIMER; 将一批磁盘请求的执行情况存入磁盘文件,以后可以读出并重放。 支持算法:FCFS SSTF SCAN CSCAN FSCAN

【实例截图】

from clipboard

【核心代码】


// osDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "os.h"
#include "osDlg.h"
#include <iostream>
#include <fstream>
#include <string>

#include "Dia.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif
	//void FIFO();
	//void SSTF();
	//void SCAN();
	//void CSCAN();
	//void SN();
	//void FSCAN1();
	//void FSCAN2();
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
int c1[100],c2[100],c3[100],num=0,ks=0,dq=0,next,zb,len,fx=1,i,j,h,num1,num2=0,num3,c4[100],c5[100],c6[100],fx2=1,n=0,pdfx=0,c7[100],length1,xl,loc1,loc2,ydjl,nydjl,wz1,wz2;
double plen,pydjl;
class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// 对话框数据
	enum { IDD = IDD_ABOUTBOX };



	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

// 实现
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()


// CosDlg 对话框




CosDlg::CosDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CosDlg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CosDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT9, SSS);
}

BEGIN_MESSAGE_MAP(CosDlg, CDialog)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_BUTTON3, &CosDlg::OnBnClickedButton3)
	ON_BN_CLICKED(IDCANCEL, &CosDlg::OnBnClickedCancel)
	ON_BN_CLICKED(IDC_BUTTON5, &CosDlg::OnBnClickedButton5)
	ON_BN_CLICKED(IDC_BUTTON1, &CosDlg::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_BUTTON11, &CosDlg::OnBnClickedButton11)
	ON_EN_CHANGE(IDC_EDIT9, &CosDlg::OnEnChangeEdit9)
	ON_EN_CHANGE(IDC_EDIT1, &CosDlg::OnEnChangeEdit1)
	ON_BN_CLICKED(IDC_BUTTON10, &CosDlg::OnBnClickedButton10)
	ON_EN_CHANGE(IDC_EDIT2, &CosDlg::OnEnChangeEdit2)
	ON_BN_CLICKED(IDC_RADIO1, &CosDlg::OnBnClickedRadio1)
	ON_BN_CLICKED(IDC_RADIO2, &CosDlg::OnBnClickedRadio2)
	ON_BN_CLICKED(IDC_BUTTON8, &CosDlg::OnBnClickedButton8)
	ON_BN_CLICKED(IDC_BUTTON9, &CosDlg::OnBnClickedButton9)
	ON_BN_CLICKED(IDC_BUTTON2, &CosDlg::OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON7, &CosDlg::OnBnClickedButton7)
	ON_BN_CLICKED(IDC_BUTTON4, &CosDlg::OnBnClickedButton4)
	ON_BN_CLICKED(IDC_BUTTON6, &CosDlg::OnBnClickedButton6)
	ON_BN_CLICKED(IDOK, &CosDlg::OnBnClickedOk)
	ON_WM_CREATE()
	ON_BN_CLICKED(IDC_BUTTON12, &CosDlg::OnBnClickedButton12)
	ON_EN_CHANGE(IDC_EDIT10, &CosDlg::OnEnChangeEdit10)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON13, &CosDlg::OnBnClickedButton13)
END_MESSAGE_MAP()


// CosDlg 消息处理程序

BOOL CosDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	



	// 将“关于...”菜单项添加到系统菜单中。

	// IDM_ABOUTBOX 必须在系统命令范围内。
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
	//  执行此操作
	SetIcon(m_hIcon, TRUE);			// 设置大图标
	SetIcon(m_hIcon, FALSE);		// 设置小图标

	// TODO: 在此添加额外的初始化代码

	//CPen Pen(PS_SOLID,3,RGB(0,0,255));
	//CClientDC cdc(this);
	//CPen *OldPen=cdc.SelectObject(&Pen);
	//cdc.Rectangle(30,310,710,500);

	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

void CosDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。

void CosDlg::OnPaint()
{
	
	if (IsIconic())
	{
		CPaintDC dc(this); // 用于绘制的设备上下文

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// 使图标在工作矩形中居中
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(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);	
	}
	else
	{
	CPen Pen(PS_SOLID,3,RGB(0,0,255));
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	cdc.Rectangle(30,310,710,500);
		CDialog::OnPaint();
	}


}

//当用户拖动最小化窗口时系统调用此函数取得光标显示。
//
HCURSOR CosDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}


void CosDlg::OnBnClickedButton3()
{
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0;
	CPen Pen1(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	cdc1.Rectangle(30,310,710,500);
	
	len=0;
	 plen=0;
	 len =abs(c1[1]-ks);
	 if(num!=1)
	 {
		 for(i=1;i<num;i  )
		 {
			len =abs(c1[i]-c1[i 1]);
		 }
	 }
	 plen=(double)((double)(len)/(double)num);
	 //cout<<"移动次序为:";
	 //cout<<ks;
	c5[1]=ks;
	c6[1]=ks;
		 for(i=1;i<=num;i  )
		 {
			 c5[i 1]=c2[i];
			 c6[i 1]=c2[i];
			// cout<<"->"<<c2[i];
		 }
	n=num 1;

	///////////////////////////////////////////
	for(i=1;i<n;i  )
       {
           int ls1=c6[i];
           int ls2=i;
           for(j=i;j<=n;j  )
           {
                 if(ls1>c6[j])
                 {
                     ls1=c6[j];
                     ls2=j;
                 }   
           }
           c6[ls2]=c6[i];
           c6[i]=ls1;
       }
       length1=1;
       i=1;
       while(i<n)
       {
           c7[length1]=c6[i];
           while(c7[length1]==c6[i 1])
           i  ;
           i  ;
           if(i<=n)
           {
           length1  ;
           c7[length1]=c6[i];
           }
           else
           break;    
           
       }
////////////////////////////////////
	
	CPen Pen(PS_SOLID,15,RGB(0,255,0));
	
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	
	xl=640/(length1-1);
	
	cdc.MoveTo(50,400);
	cdc.LineTo(50,400);
	
	CString mi;
	mi=itoa(c7[1],new char,10);


	cdc.TextOutW(43,374,mi);
	for(i=2;i<=length1;i  )
	{
		cdc.MoveTo(50 xl*(i-1),400);
		cdc.LineTo(50 xl*(i-1),400);
		mi=itoa(c7[i],new char,10);
		cdc.TextOutW(43 xl*(i-1),374,mi);
	}


	CString qqcx;
	CString jt;
	jt="->";
	qqcx=itoa(c2[1],new char,10);
	if(num!=1)
	{
		for(i=2;i<=num;i  )
		{
			CString cpcx;
			cpcx=itoa(c2[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx);
	// TODO: 在此添加控件通知处理程序代码

	
	qqcx=itoa(c5[1],new char,10);
	
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx);
}

void CosDlg::OnBnClickedCancel()
{
	// TODO: 在此添加控件通知处理程序代码
	
	//cdc.Rectangle(0,0,1000,1000);

	OnCancel();
}

void CosDlg::OnBnClickedButton5()
{
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0;
	CPen Pen1(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	cdc1.Rectangle(30,310,710,500);
	
	len=0;
	plen=0;
	for(i=0;i<100;i  )
		c3[i]=0;
	if(num==1)
	{
		len=abs(c1[1]-ks);
		
	}
	else 
	{
		next=1;
		dq=abs(c1[next]-ks);
		for(i=1;i<=num;i  )
		{
			if(dq>abs(c1[i]-ks))
			{
				dq=abs(c1[i]-ks);
				next=i;

			}

		}
		c3[next]=1;
		len =dq;
		c2[1]=c1[next];
		zb=next;
		for(i=2;i<=num;i  )
		{
			for(j=1;j<=num;j  )
			{
				if(c3[j]==0)
				{
					next=j;
					dq=abs(c1[zb]-c1[next]);
					break;
				}
			}
			for(j=1;j<=num;j  )
			{
				if(dq>abs(c1[zb]-c1[j])&&c3[j]==0)
				{
					next=j;
					dq=abs(c1[zb]-c1[j]);

				}

			}
			c3[next]=1;
			len =dq;
			c2[i]=c1[next];
			zb=next;

		
		}
		
	}

	 plen=(double)((double)(len)/(double)num);
	 //cout<<"移动次序为:";
	 //cout<<ks;
	c5[1]=ks;
	c6[1]=ks;
		 for(i=1;i<=num;i  )
		 {
			 c5[i 1]=c2[i];
			 c6[i 1]=c2[i];
			// cout<<"->"<<c2[i];
		 }
	n=num 1;


		///////////////////////////////////////////
	for(i=1;i<n;i  )
       {
           int ls1=c6[i];
           int ls2=i;
           for(j=i;j<=n;j  )
           {
                 if(ls1>c6[j])
                 {
                     ls1=c6[j];
                     ls2=j;
                 }   
           }
           c6[ls2]=c6[i];
           c6[i]=ls1;
       }
       length1=1;
       i=1;
       while(i<n)
       {
           c7[length1]=c6[i];
           while(c7[length1]==c6[i 1])
           i  ;
           i  ;
           if(i<=n)
           {
           length1  ;
           c7[length1]=c6[i];
           }
           else
           break;    
           
       }
	   ///////////////////////////////
	CPen Pen(PS_SOLID,15,RGB(0,255,0));
		
		CClientDC cdc(this);
		CPen *OldPen=cdc.SelectObject(&Pen);
		
		xl=640/(length1-1);
		
		cdc.MoveTo(50,400);
		cdc.LineTo(50,400);
		
		CString mi;
		mi=itoa(c7[1],new char,10);


		cdc.TextOutW(43,374,mi);
		for(i=2;i<=length1;i  )
		{
			cdc.MoveTo(50 xl*(i-1),400);
			cdc.LineTo(50 xl*(i-1),400);
			mi=itoa(c7[i],new char,10);
			cdc.TextOutW(43 xl*(i-1),374,mi);
		}
	

	CString qqcx;
	CString jt;
	jt="->";
	qqcx=itoa(c1[1],new char,10);
	if(num!=1)
	{
		for(i=2;i<=num;i  )
		{
			CString cpcx;
			cpcx=itoa(c1[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx);
	
	qqcx=itoa(c5[1],new char,10);

	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx);
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton1()
{

	CString WJWZ;
	GetDlgItem(IDC_EDIT3)->GetWindowText(WJWZ);
	std::fstream file;
	file.open( WJWZ, std::ios_base::in );
	

	
	//file.open;
	if(pdfx==0)
	{
		num=0;
		for(i=0;i<100;i  )
			c3[i]=0;
		while(file>>h&&h>=0)
		{
			
			num  ;
			c1[num]=h;
			c2[num]=h;
			c3[num]=h;
		}
	}
	else
	{
		num2=0;
		for(i=0;i<100;i  )
			c4[i]=0;

		while(file>>h&&h>=0)
		{
			num2  ;
			c4[num2]=h;
		
		}
	}

	//CString str;
	//str.Format("%d", num);
	

	/*CString strnum;
	
	
	strnum=itoa(c1[1],new char,10);
	
	GetDlgItem(IDC_EDIT9)->SetWindowText(strnum);
		*/
	//UpdateData(false);

	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton11()
{
	CPen Pen(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	cdc.Rectangle(30,310,710,500);

	num=0;num2=0;
	wz1=0;wz2=0;
	fx=1;
	fx2=1;
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnEnChangeEdit9()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
}

void CosDlg::OnEnChangeEdit1()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton10()
{
	// TODO: 在此添加控件通知处理程序代码
	CString kscd;
	
	GetDlgItem(IDC_EDIT2)->GetWindowText(kscd);
	if(pdfx==0)
	ks=_wtoi(kscd);


	//kscd=itoa(ks,new char,10);
	/*CString mi;
	mi=itoa(ks,new char,10);

	GetDlgItem(IDC_EDIT1)->SetWindowText(mi);*/
}

void CosDlg::OnEnChangeEdit2()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedRadio1()
{
	if(pdfx==0)
	fx=2;
	else
		fx2=2;
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedRadio2()
{
	if(pdfx==0)
	fx=1;
	else
		fx2=1;
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton8()
{
	SetTimer(0,5000,NULL);
	/*CString strnum;
	
	
	
	strnum=itoa(fx,new char,10);
	
	GetDlgItem(IDC_EDIT8)->SetWindowText(strnum);*/
/*
	loc1  ;
	loc2=loc1 1;
	CString sstr;
	if(loc1<n)
	{
	CPen Pen3(PS_SOLID,15,RGB(255,255,0));
	CClientDC cdc3(this);
	CPen *OldPen3=cdc3.SelectObject(&Pen3);
	CPen Pen4(PS_SOLID,15,RGB(255,0,255));
	CClientDC cdc4(this);
	CPen *OldPen4=cdc4.SelectObject(&Pen4);	
	CPen Pen(PS_SOLID,3,RGB(0,0,255));
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	cdc.Rectangle(30,310,710,500);	
	CPen Pen1(PS_SOLID,15,RGB(0,255,0));
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	
	xl=640/(length1-1);
	
	cdc1.MoveTo(50,400);
	cdc1.LineTo(50,400);
	

	CString mi;
	mi=itoa(c7[1],new char,10);
	cdc1.TextOutW(43,374,mi);
	for(i=2;i<=length1;i  )
	{
		cdc1.MoveTo(50 xl*(i-1),400);
		cdc1.LineTo(50 xl*(i-1),400);
		mi=itoa(c7[i],new char,10);
		cdc1.TextOutW(43 xl*(i-1),374,mi);
	}


	if(wz2>=0)
	{
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
	}


		for(i=1;i<=length1;i  )
		{
			if(c5[loc1]==c7[i])
			{
				wz1=i;
			}
			else
			{}
			if(c5[loc2]==c7[i])
			{wz2=i;}
			else
			{}
		}

		sstr=itoa(c5[loc1],new char,10);
		GetDlgItem(IDC_EDIT4)->SetWindowText(sstr);
		sstr=itoa(c5[loc2],new char,10);
		GetDlgItem(IDC_EDIT5)->SetWindowText(sstr);
		ydjl=abs(c5[loc1]-c5[loc2]);
		sstr=itoa(ydjl,new char,10);
		GetDlgItem(IDC_EDIT6)->SetWindowText(sstr);
		nydjl =ydjl;
		sstr=itoa(nydjl,new char,10);

		GetDlgItem(IDC_EDIT7)->SetWindowText(sstr);

		CPen Pen2(PS_SOLID,2,RGB(255,0,0));		
		CClientDC cdc2(this);
		CPen *OldPen2=cdc2.SelectObject(&Pen2);

		if(wz1<wz2)
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1)-9,400);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,393);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,407);
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else if(wz1>wz2)
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1) 9,400);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,393);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,407);
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		
	}
	else 
	{
		pydjl=(double)((double)nydjl/(double)num);
		sstr.Format(_T("%f"),pydjl);
		GetDlgItem(IDC_EDIT8)->SetWindowText(sstr);
	}*/

	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton9()
{
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0;
	CPen Pen1(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	cdc1.Rectangle(30,310,710,500);
	
	// TODO: 在此添加控件通知处理程序代码
	ks=c2[num];
		fx=fx2;
		num3=num;
		num=num2;
		for(i=1;i<=num;i  )
			c3[i]=c4[i];
		int a,b;
	for(i=1;i<num;i  )
	{
		a=c3[i];
		b=i;
		for(j=i;j<=num;j  )
		{
			if(a>c3[j])
			{
				a=c3[j];
				b=j;
			}
		}
		c3[b]=c3[i];
		c3[i]=a;
	}
	
	if(fx==1)
	{
		num1=num;
		for(i=1;i<=num;i  )
		{
			if(c3[i]>=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==1)
		{
			for(i=1;i<=num;i  )
				c2[i]=c3[i];
		}
		else if(num1<num)
		{
			for(i=num1;i<=num;i  )
				c2[i-num1 1]=c3[i];
			for(i=num1-1;i>=1;i--)
				c2[num-i 1]=c3[i];

		}
		else
		{
		    for(i=num;i>=1;i--)
			c2[num-i 1]=c3[i];
		}
		
		len =abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		//plen=(double)((double)(len)/(double)num);
		// cout<<"移动次序为:";
		 
		 
		/*	 for(i=1;i<=num;i  )
			 {
				 cout<<"->"<<c2[i];
			 }
		 */
		// cout<<endl;
	
		 //cout<<"磁头移动总距离为:"<<len<<endl;
		// cout<<"磁头移动平均距离为:"<<plen<<endl;
		
	}
	else if(fx==2)
	{
		num1=1;
		for(i=num;i>=1;i--)
		{
			if(c3[i]<=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==num)
		{
			for(i=num;i>=1;i--)
				c2[num-i 1]=c3[i];
		}
		else if(num1>1)
		{
			for(i=num1;i>=1;i--)
				c2[num1-i 1]=c3[i];
			for(i=num1 1;i<=num;i  )
				c2[i]=c3[i];

		}
		else
		{
		    for(i=1;i<=num;i  )
			c2[i]=c3[i];
		}
		
		len =abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		//plen=(double)((double)(len)/(double)num);
		 //cout<<"移动次序为:";
		 
		
		/*	 for(i=1;i<=num;i  )
			 {
				 cout<<"->"<<c2[i];
			 }
		 */
		 //cout<<endl;
		
		 //cout<<"磁头移动总距离为:"<<len<<endl;
		 //cout<<"磁头移动平均距离为:"<<plen<<endl;
		

	}


		n=num3 num2 1;
		for(i=1;i<=num2;i  )
		{
			c5[i num3 1]=c2[i];
			c6[i num3 1]=c2[i];
		}
		/*cout<<c5[1];
		for(i=2;i<=n;i  )
			cout<<"->"<<c5[i];

		cout<<endl;*/
		plen=(double)((double)(len)/(double)(num3 num2));
		/*cout<<"磁头移动总距离为:"<<len<<endl;
		cout<<"磁头移动平均距离为:"<<plen<<endl;*/
	pdfx=0;

		///////////////////////////////////////////
	for(i=1;i<n;i  )
       {
           int ls1=c6[i];
           int ls2=i;
           for(j=i;j<=n;j  )
           {
                 if(ls1>c6[j])
                 {
                     ls1=c6[j];
                     ls2=j;
                 }   
           }
           c6[ls2]=c6[i];
           c6[i]=ls1;
       }
       length1=1;
       i=1;
       while(i<n)
       {
           c7[length1]=c6[i];
           while(c7[length1]==c6[i 1])
           i  ;
           i  ;
           if(i<=n)
           {
           length1  ;
           c7[length1]=c6[i];
           }
           else
           break;    
           
       }
	   ///////////////////////////////
	CPen Pen(PS_SOLID,15,RGB(0,255,0));
		
		CClientDC cdc(this);
		CPen *OldPen=cdc.SelectObject(&Pen);
		
		xl=640/(length1-1);
		
		cdc.MoveTo(50,400);
		cdc.LineTo(50,400);
		
		CString mi;
		mi=itoa(c7[1],new char,10);


		cdc.TextOutW(43,374,mi);
		for(i=2;i<=length1;i  )
		{
			cdc.MoveTo(50 xl*(i-1),400);
			cdc.LineTo(50 xl*(i-1),400);
			mi=itoa(c7[i],new char,10);
			cdc.TextOutW(43 xl*(i-1),374,mi);
		}


		CString qqcx;
	CString jt;
	jt="->";
	qqcx=itoa(c1[1],new char,10);
	if(num3!=1)
	{
		for(i=2;i<=num3;i  )
		{
			CString cpcx;
			cpcx=itoa(c1[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	jt="---";
	CString cpcx;
	cpcx=itoa(c4[1],new char,10);
			qqcx=qqcx jt cpcx;
	jt="->";
	if(num2!=1)
	{
		for(i=2;i<=num2;i  )
		{
			CString cpcx;
			cpcx=itoa(c4[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx);


	qqcx=itoa(c5[1],new char,10);
	
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx);
}

void CosDlg::OnBnClickedButton2()
{
	if(pdfx==0)
	{

		CString cdqq;
		GetDlgItem(IDC_EDIT1)->GetWindowText(cdqq);
		h=_wtoi(cdqq);
		if(h>=0)
		{
			num  ;
			c1[num]=h;
			c2[num]=h;
			c3[num]=h;
		}

	}
	else
	{
		CString cdqq;
		GetDlgItem(IDC_EDIT1)->GetWindowText(cdqq);
		h=_wtoi(cdqq);
		if(h>=0)
		{
			num2  ;
			c4[num2]=h;
			
		}

	}
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton7()
{
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0;
	CPen Pen1(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	cdc1.Rectangle(30,310,710,500);
	for(i=1;i<=num;i  )
	{
		c2[i]=c1[i];
		c3[i]=c1[i];
	}
		
	int a,b;
	for(i=1;i<num;i  )
	{
		a=c3[i];
		b=i;
		for(j=i;j<=num;j  )
		{
			if(a>c3[j])
			{
				a=c3[j];
				b=j;
			}
		}
		c3[b]=c3[i];
		c3[i]=a;
	}
	/*cout<<"确定磁头开始方向,1:向外 2:向内"<<endl;*/
	//cin>>fx;


	if(fx==1)
	{
		num1=num;
		for(i=1;i<=num;i  )
		{
			if(c3[i]>=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==1)
		{
			for(i=1;i<=num;i  )
				c2[i]=c3[i];
		}
		else if(num1<num)
		{
			for(i=num1;i<=num;i  )
				c2[i-num1 1]=c3[i];
			for(i=num1-1;i>=1;i--)
				c2[num-i 1]=c3[i];

		}
		else
		{
		    for(i=num;i>=1;i--)
			c2[num-i 1]=c3[i];
		}
		
		len=abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		plen=(double)((double)(len)/(double)num);
		 //cout<<"移动次序为:";
		 //cout<<ks;
		c5[1]=ks;
		c6[1]=ks;
			 for(i=1;i<=num;i  )
			 {
				 c5[i 1]=c2[i];
				 c6[i 1]=c2[i];
				// cout<<"->"<<c2[i];
			 }
		n=num 1;
		/*cout<<c5[1];
		for(i=2;i<=n;i  )
		{
			cout<<"->"<<c5[i];
		}

		 cout<<endl;
	
		 cout<<"磁头移动总距离为:"<<len<<endl;
		 cout<<"磁头移动平均距离为:"<<plen<<endl;*/
		
	}
	else if(fx==2)
	{
		num1=1;
		for(i=num;i>=1;i--)
		{
			if(c3[i]<=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==num)
		{
			for(i=num;i>=1;i--)
				c2[num-i 1]=c3[i];
		}
		else if(num1>1)
		{
			for(i=num1;i>=1;i--)
				c2[num1-i 1]=c3[i];
			for(i=num1 1;i<=num;i  )
				c2[i]=c3[i];

		}
		else
		{
		    for(i=1;i<=num;i  )
			c2[i]=c3[i];
		}
		
		len=abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		plen=(double)((double)(len)/(double)num);
		 //cout<<"移动次序为:";
		 //cout<<ks;
		c5[1]=ks;
		c6[1]=ks;
			 for(i=1;i<=num;i  )
			 {
				 c5[i 1]=c2[i];
				 c6[i 1]=c2[i];
				// cout<<"->"<<c2[i];
			 }
		n=num 1;
		/*cout<<c5[1];
		for(i=2;i<=n;i  )
		{
			cout<<"->"<<c5[i];
		}

		 cout<<endl;
		
		 cout<<"磁头移动总距离为:"<<len<<endl;
		 cout<<"磁头移动平均距离为:"<<plen<<endl;*/
		

	}


		///////////////////////////////////////////
	for(i=1;i<n;i  )
       {
           int ls1=c6[i];
           int ls2=i;
           for(j=i;j<=n;j  )
           {
                 if(ls1>c6[j])
                 {
                     ls1=c6[j];
                     ls2=j;
                 }   
           }
           c6[ls2]=c6[i];
           c6[i]=ls1;
       }
       length1=1;
       i=1;
       while(i<n)
       {
           c7[length1]=c6[i];
           while(c7[length1]==c6[i 1])
           i  ;
           i  ;
           if(i<=n)
           {
           length1  ;
           c7[length1]=c6[i];
           }
           else
           break;    
           
       }
   ///////////////////////////////
	CPen Pen(PS_SOLID,15,RGB(0,255,0));
		
		CClientDC cdc(this);
		CPen *OldPen=cdc.SelectObject(&Pen);
		
		xl=640/(length1-1);
		
		cdc.MoveTo(50,400);
		cdc.LineTo(50,400);
		
		CString mi;
		mi=itoa(c7[1],new char,10);


		cdc.TextOutW(43,374,mi);
		for(i=2;i<=length1;i  )
		{
			cdc.MoveTo(50 xl*(i-1),400);
			cdc.LineTo(50 xl*(i-1),400);
			mi=itoa(c7[i],new char,10);
			cdc.TextOutW(43 xl*(i-1),374,mi);
		}


		CString qqcx;
	CString jt;
	jt="->";
	qqcx=itoa(c1[1],new char,10);
	if(num!=1)
	{
		for(i=2;i<=num;i  )
		{
			CString cpcx;
			cpcx=itoa(c1[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx);


	qqcx=itoa(c5[1],new char,10);
	
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx);
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedButton4()
{
	loc1=0;loc2=0;ydjl=0;nydjl=0;pydjl=0;wz1=0;wz2=0;
	CPen Pen1(PS_SOLID,3,RGB(0,0,255));
	
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	cdc1.Rectangle(30,310,710,500);
	for(i=1;i<=num;i  )
	{
		c2[i]=c1[i];
		c3[i]=c1[i];
	}
	int a,b;
	for(i=1;i<num;i  )
	{
		a=c3[i];
		b=i;
		for(j=i;j<=num;j  )
		{
			if(a>c3[j])
			{
				a=c3[j];
				b=j;
			}
		}
		c3[b]=c3[i];
		c3[i]=a;
	}
	
	num1=num;
		for(i=1;i<=num;i  )
		{
			if(c3[i]>=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==1)
		{
			for(i=1;i<=num;i  )
				c2[i]=c3[i];

			len=abs(c2[1]-ks);
			if(num>1)
			{
				for(i=1;i<num;i  )
				{
					len =abs(c2[i 1]-c2[i]);
				}
			}
			plen=(double)((double)(len)/(double)num);
			// cout<<"移动次序为:";
			 //cout<<ks;
			c5[1]=ks;
			c6[1]=ks;
			 for(i=1;i<=num;i  )
			 {
				 c5[i 1]=c2[i];
				 c6[i 1]=c2[i];
			 }
			n=num 1;
		//	cout<<c5[1];
		//	 for(i=2;i<=n;i  )
		//		 cout<<"->"<<c5[i];
			// cout<<endl;
		
			// cout<<"磁头移动总距离为:"<<len<<endl;
			// cout<<"磁头移动平均距离为:"<<plen<<endl;
		}
		else if(num1<num)
		{
			for(i=num1;i<=num;i  )
				c2[i-num1 1]=c3[i];

				len=abs(c2[1]-ks);			
			for(i=1;i<num-num1 1;i  )
				len =abs(c2[i 1]-c2[i]);
			
			//cout<<"移动次序为:";
			c5[1]=ks;
			c6[1]=ks;
			 for(i=1;i<=num-num1 1;i  )
			 {
				 c5[i 1]=c2[i];
				 c6[i 1]=c2[i];
			 }
			
			for(i=num1-1;i>=1;i--)
				c2[num-i 1]=c3[num1-i];
			len =c2[num-num1 2];
			for(i=num-num1 2;i<num;i  )
				len =abs(c2[i 1]-c2[i]);
			plen=(double)((double)(len)/(double)num);
			c5[num-num1 3]=0;
			c6[num-num1 3]=0;
			
			for(i=num-num1 2;i<=num;i  )
			{
				c5[i 2]=c2[i];
				c6[i 2]=c2[i];
			}
			n=num 2;

			//cout<<c5[1];
			//for(i=2;i<=n;i  )
			//	cout<<"->"<<c5[i];

			//cout<<endl;
			//cout<<"磁头移动总距离为:"<<len<<endl;
			//cout<<"磁头移动平均距离为:"<<plen<<endl;
		}
		else
		{
		    for(i=1;i<=num;i  )
				c2[i]=c3[i];
			len=c2[1];
			if(num>1)
			{
				for(i=1;i<num;i  )
				{
					len =abs(c2[i 1]-c2[i]);
				}
			}
			plen=(double)((double)(len)/(double)num);
			// cout<<"移动次序为:";
			 c5[1]=ks;
			 c6[1]=ks;
			 c5[2]=0;
			 c6[2]=0;
			 for(i=1;i<=num;i  )
			 {
				 c5[i 2]=c2[i];
				 c6[i 2]=c2[i];
			 }
			
			 n=num 2;
		/*	 cout<<c5[1];
			for(i=2;i<=n;i  )
				cout<<"->"<<c5[i];

			 cout<<endl;
		
			 cout<<"磁头移动总距离为:"<<len<<endl;
			 cout<<"磁头移动平均距离为:"<<plen<<endl;*/
		}


			///////////////////////////////////////////
	for(i=1;i<n;i  )
       {
           int ls1=c6[i];
           int ls2=i;
           for(j=i;j<=n;j  )
           {
                 if(ls1>c6[j])
                 {
                     ls1=c6[j];
                     ls2=j;
                 }   
           }
           c6[ls2]=c6[i];
           c6[i]=ls1;
       }
       length1=1;
       i=1;
       while(i<n)
       {
           c7[length1]=c6[i];
           while(c7[length1]==c6[i 1])
           i  ;
           i  ;
           if(i<=n)
           {
           length1  ;
           c7[length1]=c6[i];
           }
           else
           break;    
           
       }
   ///////////////////////////////
	CPen Pen(PS_SOLID,15,RGB(0,255,0));
		
		CClientDC cdc(this);
		CPen *OldPen=cdc.SelectObject(&Pen);
		
		xl=640/(length1-1);
		
		cdc.MoveTo(50,400);
		cdc.LineTo(50,400);
		
		CString mi;
		mi=itoa(c7[1],new char,10);


		cdc.TextOutW(43,374,mi);
		for(i=2;i<=length1;i  )
		{
			cdc.MoveTo(50 xl*(i-1),400);
			cdc.LineTo(50 xl*(i-1),400);
			mi=itoa(c7[i],new char,10);
			cdc.TextOutW(43 xl*(i-1),374,mi);
		}

		CString qqcx;
	CString jt;
	jt="->";
	qqcx=itoa(c1[1],new char,10);
	if(num!=1)
	{
		for(i=2;i<=num;i  )
		{
			CString cpcx;
			cpcx=itoa(c1[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT12)->SetWindowText(qqcx);

	qqcx=itoa(c5[1],new char,10);
	
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}
	GetDlgItem(IDC_EDIT9)->SetWindowText(qqcx);
}

void CosDlg::OnBnClickedButton6()
{
	len=0;
		plen=0;
		/*cout<<"确定磁头开始方向,1:向外 2:向内"<<endl;
		cin>>fx;
		
		cout<<"输入处理过程中的新请求队列,输入负数结束"	<<endl;*/	
		num2=0;
		for(i=0;i<100;i  )
			c4[i]=0;

	/*	while(cin>>h&&h>=0)
		{
			num2  ;
			c4[num2]=h;
		
		}
		cout<<"确定磁头开始方向,1:向外 2:向内"<<endl;
		cin>>fx2;*/
		/*
		cout<<"移动次序为:"<<ks;
		SN();
		ks=c2[num];
		fx=fx2;
		num3=num;
		num=num2;
		for(i=1;i<=num;i  )
			c3[i]=c4[i];
		SN();
		cout<<endl;*/
		c5[1]=ks;
		c6[1]=ks;
		//cout<<"移动次序为:"<<ks;
		int a,b;
	for(i=1;i<num;i  )
	{
		a=c3[i];
		b=i;
		for(j=i;j<=num;j  )
		{
			if(a>c3[j])
			{
				a=c3[j];
				b=j;
			}
		}
		c3[b]=c3[i];
		c3[i]=a;
	}
	
	if(fx==1)
	{
		num1=num;
		for(i=1;i<=num;i  )
		{
			if(c3[i]>=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==1)
		{
			for(i=1;i<=num;i  )
				c2[i]=c3[i];
		}
		else if(num1<num)
		{
			for(i=num1;i<=num;i  )
				c2[i-num1 1]=c3[i];
			for(i=num1-1;i>=1;i--)
				c2[num-i 1]=c3[i];

		}
		else
		{
		    for(i=num;i>=1;i--)
			c2[num-i 1]=c3[i];
		}
		
		len =abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		//plen=(double)((double)(len)/(double)num);
		// cout<<"移动次序为:";
		 
		 
		/*	 for(i=1;i<=num;i  )
			 {
				 cout<<"->"<<c2[i];
			 }
		 */
		// cout<<endl;
	
		 //cout<<"磁头移动总距离为:"<<len<<endl;
		// cout<<"磁头移动平均距离为:"<<plen<<endl;
		
	}
	else if(fx==2)
	{
		num1=1;
		for(i=num;i>=1;i--)
		{
			if(c3[i]<=ks)
			{
				num1=i;
				break;

			}

		}
		if(num1==num)
		{
			for(i=num;i>=1;i--)
				c2[num-i 1]=c3[i];
		}
		else if(num1>1)
		{
			for(i=num1;i>=1;i--)
				c2[num1-i 1]=c3[i];
			for(i=num1 1;i<=num;i  )
				c2[i]=c3[i];

		}
		else
		{
		    for(i=1;i<=num;i  )
			c2[i]=c3[i];
		}
		
		len =abs(c2[1]-ks);
		if(num>1)
		{
			for(i=1;i<num;i  )
			{
				len =abs(c2[i 1]-c2[i]);
			}
		}
		//plen=(double)((double)(len)/(double)num);
		 //cout<<"移动次序为:";
		 
		
		/*	 for(i=1;i<=num;i  )
			 {
				 cout<<"->"<<c2[i];
			 }
		 */
		 //cout<<endl;
		
		 //cout<<"磁头移动总距离为:"<<len<<endl;
		 //cout<<"磁头移动平均距离为:"<<plen<<endl;
		

	}


		
		for(i=1;i<=num;i  )
		{
			c5[i 1]=c2[i];
			c6[i 1]=c2[i];
		}
		pdfx=1;



	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnBnClickedOk()
{
	CDia dlg;
	dlg.DoModal();
	//OnOK();
}

int CosDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	


	return 0;
}

void CosDlg::OnBnClickedButton12()
{
	CString wjm;
	GetDlgItem(IDC_EDIT10)->GetWindowText(wjm);
	std::ofstream abc(wjm);//文件名不能为中文 写入
	abc<<"磁盘调度顺序为:";
	abc<<c5[1];
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			abc<<"->"<<c5[i];
		}
	}
	abc<<"\n";
	int ydleng=0;
	double pydleng=0;
	for(i=1;i<n;i  )
	{
		ydleng =abs(c5[i]-c5[i 1]);
	}
	pydleng=(double)((double)ydleng/(double)num);
	abc<<"总移动距离为:"<<ydleng<<"\n";
	if(pydleng==(int)pydleng)
	abc<<"平均移动距离为:"<<(int)pydleng<<"\n";
	else
	abc<<"平均移动距离为:"<<pydleng<<"\n";
	/*CString qqcx;
	CString jt;
	jt="->";
	
	qqcx=itoa(c5[1],new char,10);
	
	if(n!=1)
	{
		for(i=2;i<=n;i  )
		{
			
			CString cpcx;
			cpcx=itoa(c5[i],new char,10);
			qqcx=qqcx jt cpcx;
		}
	}*/
	

//	abc<<qqcx; 

	//file.open( WJWZ, std::ios_base::in );
	// TODO: 在此添加控件通知处理程序代码
}

void CosDlg::OnEnChangeEdit10()
{
	// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
	// 发送该通知,除非重写 CDialog::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
}




void CosDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	
	loc1  ;
	loc2=loc1 1;
	CString sstr;
	if(loc1<n)
	{
	CPen Pen3(PS_SOLID,15,RGB(255,255,0));
	CClientDC cdc3(this);
	CPen *OldPen3=cdc3.SelectObject(&Pen3);
	CPen Pen4(PS_SOLID,15,RGB(255,0,255));
	CClientDC cdc4(this);
	CPen *OldPen4=cdc4.SelectObject(&Pen4);	
	CPen Pen(PS_SOLID,3,RGB(0,0,255));
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	cdc.Rectangle(30,310,710,500);	
	CPen Pen1(PS_SOLID,15,RGB(0,255,0));
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	
	xl=640/(length1-1);
	
	cdc1.MoveTo(50,400);
	cdc1.LineTo(50,400);
	

	CString mi;
	mi=itoa(c7[1],new char,10);
	cdc1.TextOutW(43,374,mi);
	for(i=2;i<=length1;i  )
	{
		cdc1.MoveTo(50 xl*(i-1),400);
		cdc1.LineTo(50 xl*(i-1),400);
		mi=itoa(c7[i],new char,10);
		cdc1.TextOutW(43 xl*(i-1),374,mi);
	}


	if(wz2>=0)
	{
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
	}


		for(i=1;i<=length1;i  )
		{
			if(c5[loc1]==c7[i])
			{
				wz1=i;
			}
			else
			{}
			if(c5[loc2]==c7[i])
			{wz2=i;}
			else
			{}
		}

		sstr=itoa(c5[loc1],new char,10);
		GetDlgItem(IDC_EDIT4)->SetWindowText(sstr);
		sstr=itoa(c5[loc2],new char,10);
		GetDlgItem(IDC_EDIT5)->SetWindowText(sstr);
		ydjl=abs(c5[loc1]-c5[loc2]);
		sstr=itoa(ydjl,new char,10);
		GetDlgItem(IDC_EDIT6)->SetWindowText(sstr);
		nydjl =ydjl;
		sstr=itoa(nydjl,new char,10);

		GetDlgItem(IDC_EDIT7)->SetWindowText(sstr);

		CPen Pen2(PS_SOLID,2,RGB(255,0,0));		
		CClientDC cdc2(this);
		CPen *OldPen2=cdc2.SelectObject(&Pen2);

		if(wz1<wz2)
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1)-9,400);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,393);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,407);
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else if(wz1>wz2)
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1) 9,400);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,393);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,407);
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else
		{
			Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			
			Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		CString yt;
		yt="";
		GetDlgItem(IDC_EDIT8)->SetWindowText(yt);
	}
	else 
	{
		pydjl=(double)((double)nydjl/(double)num);
		sstr.Format(_T("%f"),pydjl);
		GetDlgItem(IDC_EDIT8)->SetWindowText(sstr);
		CDialog::KillTimer(nIDEvent);
	}

	CDialog::OnTimer(nIDEvent);
}

void CosDlg::OnBnClickedButton13()
{
	
	loc1  ;
	loc2=loc1 1;
	CString sstr;
	if(loc1<n)
	{
	CPen Pen3(PS_SOLID,15,RGB(255,255,0));
	CClientDC cdc3(this);
	CPen *OldPen3=cdc3.SelectObject(&Pen3);
	CPen Pen4(PS_SOLID,15,RGB(255,0,255));
	CClientDC cdc4(this);
	CPen *OldPen4=cdc4.SelectObject(&Pen4);	
	CPen Pen(PS_SOLID,3,RGB(0,0,255));
	CClientDC cdc(this);
	CPen *OldPen=cdc.SelectObject(&Pen);
	cdc.Rectangle(30,310,710,500);	
	CPen Pen1(PS_SOLID,15,RGB(0,255,0));
	CClientDC cdc1(this);
	CPen *OldPen1=cdc1.SelectObject(&Pen1);
	
	xl=640/(length1-1);
	
	cdc1.MoveTo(50,400);
	cdc1.LineTo(50,400);
	

	CString mi;
	mi=itoa(c7[1],new char,10);
	cdc1.TextOutW(43,374,mi);
	for(i=2;i<=length1;i  )
	{
		cdc1.MoveTo(50 xl*(i-1),400);
		cdc1.LineTo(50 xl*(i-1),400);
		mi=itoa(c7[i],new char,10);
		cdc1.TextOutW(43 xl*(i-1),374,mi);
	}


	if(wz2>=0)
	{
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
	}


		for(i=1;i<=length1;i  )
		{
			if(c5[loc1]==c7[i])
			{
				wz1=i;
			}
			else
			{}
			if(c5[loc2]==c7[i])
			{wz2=i;}
			else
			{}
		}

		sstr=itoa(c5[loc1],new char,10);
		GetDlgItem(IDC_EDIT4)->SetWindowText(sstr);
		sstr=itoa(c5[loc2],new char,10);
		GetDlgItem(IDC_EDIT5)->SetWindowText(sstr);
		ydjl=abs(c5[loc1]-c5[loc2]);
		sstr=itoa(ydjl,new char,10);
		GetDlgItem(IDC_EDIT6)->SetWindowText(sstr);
		nydjl =ydjl;
		sstr=itoa(nydjl,new char,10);

		GetDlgItem(IDC_EDIT7)->SetWindowText(sstr);

		CPen Pen2(PS_SOLID,2,RGB(255,0,0));		
		CClientDC cdc2(this);
		CPen *OldPen2=cdc2.SelectObject(&Pen2);

		if(wz1<wz2)
		{
			//Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			//Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1)-9,400);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,393);
			cdc2.MoveTo(50 xl*(wz2-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1)-15,407);
			//Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else if(wz1>wz2)
		{
			//Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			//Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			cdc2.MoveTo(50 xl*(wz1-1)-9,400);
			cdc2.LineTo(50 xl*(wz2-1) 9,400);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,393);
			cdc2.MoveTo(50 xl*(wz2-1) 9,400);
			cdc2.LineTo(50 xl*(wz2-1) 15,407);
			//Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		else
		{
			//Sleep(1000); 
			cdc3.MoveTo(50 xl*(wz1-1),400);
			cdc3.LineTo(50 xl*(wz1-1),400);
			//Sleep(1000); 
			mi=itoa(ydjl,new char,10);
			cdc1.TextOutW(43 xl*(wz1 wz2-2)/2,406,mi);
			
			//Sleep(1000); 
			cdc4.MoveTo(50 xl*(wz2-1),400);
			cdc4.LineTo(50 xl*(wz2-1),400);
		}
		
	}
	else 
	{
		pydjl=(double)((double)nydjl/(double)num);
		sstr.Format(_T("%f"),pydjl);
		GetDlgItem(IDC_EDIT8)->SetWindowText(sstr);
	}
	// TODO: 在此添加控件通知处理程序代码
}


实例下载地址

操作系统课程设计:磁盘调度模拟程序

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警