资源简介
进程死锁的检测
建立资源分配图的数据结构描述;
建立绘制资源分配图的例程,包括结点和有向边;
可以删除、添加结点或有向边;
可用鼠标在窗口的任意位置指点,确定结点或有向边位置;
可以拖动现有结点的位置,与该结点相连的有向边也随之移动;
可以将资源分配图存入文件,从文件中取出。
代码片段和文件信息
// 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个文件信息
- 上一篇:28335实现SVPWM代码
- 下一篇:stm32红外程序
评论
共有 条评论