📄 bank.cpp
字号:
#include "iostream.h"
#include "bank.h"
int main(void)
{
CProcess process[N];
CResource resource;
DWORD n = 0, j = 0;
for(int i = 0; i < N; i++)
{
process[i].Set();
}
cout<<Test(process);
while (0 == Test(process))
{
// cout<<"A"<<n;
if (0 == process[n].ok)
{
if (Check(process, resource, n))
{
resource.AddResource(process[n]);
cout<<(n + 1);
j = 0;
}
}
n++;
j++;
if (j > N)
{
cout<<"no!";
return 1;
}
n %= N;
}
return 0;
}
CProcess::CProcess()
{
srand((unsigned)time (NULL));
Sleep(1000);
for(int i = 0; i < M; i++)
{
max[i] = (rand() % Z) + 1;
used[i] = Z;
cout<<max[i];
}
ok = 0;
cout<<endl;
}
void CProcess::Set()
{
srand((unsigned)time (NULL));
Sleep(1000);
for(int i = 0; i < M; i++)
{
while (used[i] >= max[i])
{
used[i] = rand() % Z;
}
cout<<used[i];
}
cout<<endl;
}
CResource::CResource()
{
srand((unsigned)time (NULL));
cout<<endl;
for(int i = 0; i < M; i++)
{
r[i] = (rand() % Z) + 1;
cout<<r[i];
}
cout<<endl<<endl;
}
void CResource::AddResource(CProcess &p)
{
for(int i = 0; i < M; i++)
{
r[i] += p.used[i];
p.used[i] = 0;
}
p.ok = 1;
}
int Test(CProcess p[N])
{
int result = 1;
for(int i = 0; i < N; i++)
{
result *= p[i].ok;
}
return result;
}
BOOL Check(CProcess p[N], CResource r, int n)
{
int result = TRUE;
for(int i = 0; i < M; i++)
{
if (r.r[i] < (p[n].max[i] - p[n].used[i]))
{
return FALSE;
}
}
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -