📄 main.cpp
字号:
#include "Node.h"
#include "dis.h"
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
Node Run[12]; //作业
int position=0; //作业个数
int S1[12]={2,4,6,8,10,15,20,25,30,50,80,150}; //存储器空间
void Compositor (int k) //调入作业后排序
{
int i=0,p;
while (S1[i]<S1[k])
i++;
for (;i!=k;k--)
{
p=S1[k];
S1[k]=S1[k-1];
S1[k-1]=p;
}
}
void Taxis (int k) //释放空间后排序
{
int j=1,i,p;
S1[0]=S1[0]+k;
do
j++;
while (S1[j]<S1[0]&&j<11);
for (i=0;i!=j;i++)
{
p=S1[i];
S1[i]=S1[i+1];
S1[i+1]=p;
}
}
int Turn (int k)
{
Node p;
if (k==position)
return 1;
for (;k!=position;k++)
{
p=Run[k];
Run[k]=Run[k+1];
Run[k+1]=p;
}
return 1;
}
void Delete () //调出作业
{
int i,k=0;
char na[20];
cout<<endl<<"请输入已完成的作业名称:";
cin>>na;
for (i=0;i<=position;i++)
if (strcmp(Run[i].Getname(),na)==0)
{
k=Run[i].Free(); //释放结点返回存储空间大小
Turn (i);
position--;
}
if (k==0)
{
cout<<"没有该作业!!按回车键返回!!"<<endl;
getchar ();
}
else
Taxis (k);
}
int Inputt () //调入进程
{
int s,i=0;
char na[20];
cout<<endl<<"请输入作业名称:";
cin>>na;
if (position!=0)
for (i=0;i<position;i++)
if (strcmp(Run[i].Getname(),na)==0)
{
cout<<"已有同名作业存在,按回车键返回!!"<<endl;
getchar ();
return 0;
}
cout<<"请输入作业大小:";
cin>>s;
if (s>S1[11])
{
cout<<"作业太大,没有足够空间,按回车键返回!!"<<endl;
getchar ();
return 0;
}
Node p(s,na);
Run[position]=p;
position++;
while (S1[i]<s)
i++;
S1[i]=S1[i]-s;
if (i!=1)
Compositor (i);
return 1;
}
int Displaylink () //输出全部运行中的作业
{
int i;
if (position==0)
{
cout<<endl<<endl<<"暂时没有运行作业!!按回车键返回"<<endl;
return 0;
}
for (i=0;i<position;i++)
{
cout<<endl<<"第"<<i+1<<"个作业:"<<endl;
cout<<"作业名: "<<Run[i].Getname()<<endl;
cout<<"作业大小: "<<Run[i].Getspace()<<endl;
}
cout<<endl<<"按回车键返回"<<endl;
return 1;
}
void Displayfree () //输入全部剩余存储器空
{
int i,sum=0;
cout<<endl<<"剩余存储器空间为:"<<endl<<" ";
for (i=0;i<11;i++)
{
cout<<S1[i]<<"->";
sum=S1[i]+sum;
}
cout<<S1[11];sum=sum+S1[11];
cout<<endl<<"共有存储空间:"<<sum;
cout<<endl<<endl<<"按回车键返回"<<endl;
}
void Control () //控制函数
{
int i=0;
i=Display ();
switch (i)
{
case 0:
cout<<endl;
exit (0);
case 1:
Inputt ();
Control ();
case 2:
Delete ();
Control ();
break;
case 3:
Displaylink ();
getchar ();
Control ();
case 4:
Displayfree ();
getchar ();
Control ();
break;
default:
cout<<"输入错误!!请重新输入!!按回车键返回"<<endl;
getchar ();
Control ();
}
}
void main ()
{
Control ();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -