• 大小: 878KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签:

资源简介

进程死锁的检测 建立资源分配图的数据结构描述; 建立绘制资源分配图的例程,包括结点和有向边; 可以删除、添加结点或有向边; 可用鼠标在窗口的任意位置指点,确定结点或有向边位置; 可以拖动现有结点的位置,与该结点相连的有向边也随之移动; 可以将资源分配图存入文件,从文件中取出。

资源截图

代码片段和文件信息

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

#include “stdafx.h“
#include “Deadlocks.h“
#include “AddNodeDlg.h“

// CAddNodeDlg 对话框

IMPLEMENT_DYNAMIC(CAddNodeDlg CDialog)

CAddNodeDlg::CAddNodeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAddNodeDlg::IDD pParent)
 iAddType(0)
 m_Max(_T(““))
 m_Allocation(_T(““))
 m_Need(_T(““))
 m_Rcount(0)
{

}

CAddNodeDlg::~CAddNodeDlg()
{
}

void CAddNodeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Radio(pDX IDC_ADDPROCESS iAddType);
DDX_Text(pDX IDC_MAX m_Max);
DDX_Text(pDX IDC_ALLOCATION m_Allocation);
DDX_Text(pDX IDC_NEED m_Need);
DDX_Text(pDX IDC_SOURCECOUNT m_Rcount);
}


BEGIN_MESSAGE_MAP(CAddNodeDlg CDialog)
ON_BN_CLICKED(IDOK &CAddNodeDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_ADDPROCESS &CAddNodeDlg::OnBnClickedAddprocess)
ON_BN_CLICKED(IDC_ADDRESOURCE &CAddNodeDlg::OnBnClickedAddresource)
ON_EN_CHANGE(IDC_MAX &CAddNodeDlg::OnEnChangeMax)
ON_EN_CHANGE(IDC_ALLOCATION &CAddNodeDlg::OnEnChangeAllocation)
END_MESSAGE_MAP()


// CAddNodeDlg 消息处理程序

void CAddNodeDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData();
if(!Defaulttitle())
return;
if(iAddType==0)
{
m_Max+=“       “;//程序为防止用户忘了最后7个空格,这里加上了;如果什么都没输入,就是默认各项为0
m_Allocation+=“       “;
m_Need+=“       “;

int m_Rcount=((CDeadlocksDlg*)GetParent())->m_Rcount;
int iStartPos=0;
int iEndPos=-1;
CString tempNum;
for(int j=0;j {
iEndPos=m_Max.Find(“ “iEndPos+1);
tempNum=m_Max.Mid(iStartPosiEndPos-iStartPos);
if(tempNum==““)
Max.push_back(0);
else
Max.push_back(atoi(tempNum));
iStartPos=iEndPos+1;
}

iStartPos=0;
iEndPos=-1;
for(int j=0;j {
iEndPos=m_Allocation.Find(“ “iEndPos+1);
tempNum=m_Allocation.Mid(iStartPosiEndPos-iStartPos);
if(tempNum==““)
Allocation.push_back(0);
else
Allocation.push_back(atoi(tempNum));
iStartPos=iEndPos+1;
}

iStartPos=0;
iEndPos=-1;
for(int j=0;j {
iEndPos=m_Need.Find(“ “iEndPos+1);
tempNum=m_Need.Mid(iStartPosiEndPos-iStartPos);
if(tempNum==““)
Need.push_back(0);
else
Need.push_back(atoi(tempNum));
iStartPos=iEndPos+1;
}
}
UpdateData(true);
OnOK();
}

void CAddNodeDlg::OnBnClickedAddprocess()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_MAX)->EnableWindow(true);
GetDlgItem(IDC_ALLOCATION)->EnableWindow(true);
GetDlgItem(IDC_NEED)->EnableWindow(true);

GetDlgItem(IDC_SOURCECOUNT)->EnableWindow(false);
}

void CAddNodeDlg::OnBnClickedAddresource()
{
// TODO: 在此添加控件通知处理程序代码
GetDlgItem(IDC_MAX)->EnableWindow(false);
GetDlgItem(IDC_ALLOCATION)->EnableWindow(false);
GetDlgItem(IDC_NEED)->EnableWindow(false);

GetDlgItem(IDC_SOURCECOUNT)->EnableWindow(true);
}

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

// TODO:  在此添加额外的初始化
GetDlgItem(IDC_MAX)->EnableWindow(true);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5903  2010-07-03 19:04  进程死锁的检测源代码\AddNodeDlg.cpp

     文件        817  2010-07-03 19:04  进程死锁的检测源代码\AddNodeDlg.h

     文件        350  2009-06-23 13:20  进程死锁的检测源代码\data\安全1.txt

     文件        350  2009-06-27 00:50  进程死锁的检测源代码\data\安全2.txt

     文件        265  2009-06-25 11:21  进程死锁的检测源代码\data\安全3.txt

     文件        287  2010-07-03 21:12  进程死锁的检测源代码\data\导出.txt

     文件        224  2009-06-25 03:26  进程死锁的检测源代码\data\无.txt

     文件        350  2009-06-25 03:30  进程死锁的检测源代码\data\死锁1.txt

     文件        350  2009-06-25 03:30  进程死锁的检测源代码\data\死锁2.txt

     文件     868596  2010-07-03 20:42  进程死锁的检测源代码\Deadlocks.aps

     文件       1688  2010-06-29 12:05  进程死锁的检测源代码\Deadlocks.cpp

     文件        461  2010-06-29 12:04  进程死锁的检测源代码\Deadlocks.h

     文件       9577  2010-07-03 20:42  进程死锁的检测源代码\Deadlocks.rc

     文件       6096  2009-06-24 18:27  进程死锁的检测源代码\Deadlocks.vcproj

     文件       1415  2009-06-27 14:13  进程死锁的检测源代码\Deadlocks.vcproj.ANGELHOOD.Angelhood.user

     文件       1427  2010-07-03 21:22  进程死锁的检测源代码\Deadlocks.vcproj.PC-200807190355.Administrator.user

     文件      29605  2010-07-03 21:02  进程死锁的检测源代码\DeadlocksDlg.cpp

     文件       3473  2010-07-06 21:12  进程死锁的检测源代码\DeadlocksDlg.dsp

     文件        532  2010-07-06 21:12  进程死锁的检测源代码\DeadlocksDlg.dsw

     文件       2948  2010-07-03 20:24  进程死锁的检测源代码\DeadlocksDlg.h

     文件      33792  2010-07-06 21:12  进程死锁的检测源代码\DeadlocksDlg.ncb

     文件      48640  2010-07-06 21:12  进程死锁的检测源代码\DeadlocksDlg.opt

     文件        712  2010-07-06 21:12  进程死锁的检测源代码\DeadlocksDlg.plg

     文件       2239  2010-07-03 19:04  进程死锁的检测源代码\DeleteNodeDlg.cpp

     文件        585  2009-06-24 23:38  进程死锁的检测源代码\DeleteNodeDlg.h

     文件       2905  2009-06-15 17:49  进程死锁的检测源代码\ReadMe.txt

     文件       4989  2010-07-03 20:24  进程死锁的检测源代码\RectButton.cpp

     文件        732  2010-07-03 20:24  进程死锁的检测源代码\RectButton.h

     文件     757854  2009-06-15 20:54  进程死锁的检测源代码\res\CLIENT.bmp

     文件      67777  2007-11-28 16:21  进程死锁的检测源代码\res\Deadlocks.ico

............此处省略16个文件信息

评论

共有 条评论

相关资源