📄 sstfdlg.cpp
字号:
// sstfDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NDisk.h"
#include "sstfDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CsstfDlg dialog
CsstfDlg::CsstfDlg(CWnd* pParent /*=NULL*/)
: CDialog(CsstfDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CsstfDlg)
m_sum = 0;
m_i = 0;
m_d1 = 0.0f;
m_d2 = 0.0f;
m_d3 = _T("");
m_d4 = 0.0f;
m_d5 = _T("");
m_d6 = 0.0f;
m_d7 = 0.0f;
//}}AFX_DATA_INIT
}
void CsstfDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CsstfDlg)
DDX_Text(pDX, IDC_EDIT1, m_d1);
DDX_Text(pDX, IDC_EDIT2, m_d2);
DDX_Text(pDX, IDC_EDIT3, m_d3);
DDX_Text(pDX, IDC_EDIT4, m_d4);
DDX_Text(pDX, IDC_EDIT5, m_d5);
DDX_Text(pDX, IDC_EDIT6, m_d6);
DDX_Text(pDX, IDC_EDIT7, m_d7);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CsstfDlg, CDialog)
//{{AFX_MSG_MAP(CsstfDlg)
ON_BN_CLICKED(IDC_BUTTON_Add, OnBUTTONAdd)
ON_BN_CLICKED(IDC_BUTTON_Carray, OnBUTTONCarray)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CsstfDlg message handlers
void CsstfDlg::OnBUTTONAdd()
{
// TODO: Add your control notification handler code here
CString str;
UpdateData(true);
if(m_i<m_d4)
{
int temp;
m_array[m_i] = m_d1;
temp = m_d1;
str.Format("%i",temp);
m_d3.Insert(m_d3.GetLength(),str);
m_d3.Insert(m_d3.GetLength()," ");
m_i++;
UpdateData(false);
}
else
MessageBox("进程数不符合");
}
void CsstfDlg::OnBUTTONCarray()
{
// TODO: Add your control notification handler code here
CString str;
float x = 160,y = 0,a[100],b;
UpdateData(true);
b = m_d2;
int k,n,r=0,temp;
/*********************************************************************/
/***********************进行最短磁道判断******************************/
for(k=0;k<m_d4;k++)
{
x=159; y=0;
for(int s=0;s<m_d4;s++)
{
y=m_array[s]-b;
if (y<0)
y=-y;
if(y<x)
{
x=y;r=s;
}
}
temp = m_array[r];
str.Format("%i",temp);
m_d5.Insert(m_d5.GetLength(),str);
m_d5.Insert(m_d5.GetLength()," ");
a[k] = m_array[r];
b = m_array[r]; //把排好的磁道放入数组中
m_array[r] = 500;
}
/******************************************************************************/
/**********************利用刚才存如数组中的磁道进行操作************************/
/**********************把数组做用先进先出的算法来进行计算****************************/
if(m_d2 < a[0])
{
m_sum+=(a[0] - m_d2);
}
else
{
m_sum+=(m_d2-a[0]);
}
for(n = 0;n < m_d4-1;n++)
{
if(a[n] < a[n+1])
{
m_sum+=(a[n+1] - a[n]);
}
else
{
m_sum+=(a[n] - a[n+1]);
}
}
m_d6 = m_sum; //总寻道数
m_d7 = m_sum/m_d4; //平均寻道长度
UpdateData(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -