📄 jincengdiaodu.cpp
字号:
#include<iostream.h>
#define N 100
void main()
{
int key=1,key1=1,key2=1,jishu,jishu1;
int i,j,i1,i2,n1,n2,n3,n4,n,q,add,n0;
int arrive[N],run[N],start[N],over[N];
double W[N],T[N];
int t1,t2;
char t,s,s1,shuchu[N];
cout<<"请输入作业到达的时刻(以100结束):"<<endl;
cin>>t1;
i1=0;
while(t1!=100)
{
arrive[i1]=t1;
i1++;
cin>>t1;
}
cout<<endl;
cout<<"请输入作业运行的时间(以100结束):"<<endl;
cin>>t2;
i2=0;
while(t2!=100)
{
run[i2]=t2;
i2++;
cin>>t2;
}
cout<<endl;
while(key2)
{
while(key)
{
cout<<"是否需要查看算发表,是请输入'Y',否则输入'N'"<<endl;
cout<<"-";
cin>>s;
if(s=='Y'||s=='y')
{
cout<<"***************算发表***************"<<endl;
cout<<"** **"<<endl;
cout<<"** 1-FCFS **"<<endl;
cout<<"** 2-SJF **"<<endl;
cout<<"** 3-RR **"<<endl;
cout<<"** #-退出 **"<<endl;
cout<<"** **"<<endl;
cout<<"************************************"<<endl;
cout<<"请选择您要使用的算法:"<<endl;
cout<<"-";
cin>>t;
key=0;
}
else if(s=='N'||s=='n')
{
cout<<"请选择您要使用的算法:"<<endl;
cout<<"-";
cin>>t;
key=0;
}
else
{
cout<<"输入错误请重新输入:"<<endl;
cout<<"-";
cin>>s;
key=1;
}
}
while(t!='#')
{
if(t=='1')
{
n1=0;
start[n1]=0;
cout<<endl;
cout<<"到达时刻:";
for(i=0;i<i1;i++)
{
cout<<" "<<arrive[i]<<" ";
}
cout<<endl;
cout<<"运行时间:";
for(i=0;i<i2;i++)
{
cout<<" "<<run[i]<<" ";
}
n1++;
for(i=1;i<i1;i++)
{
start[n1]=start[n1-1]+run[i-1];
n1++;
}
cout<<endl;
cout<<"开始时刻:";
for(i=0;i<n1;i++)
{
cout<<" "<<start[i]<<" ";
}
cout<<endl;
n2=0;
for(i=1;i<n1;i++)
{
over[n2]=start[i];
n2++;
}
over[n2]=start[n1-1]+run[i2-1];
n2++;
cout<<"完成时刻:";
for(i=0;i<n2;i++)
{
cout<<" "<<over[i]<<" ";
}
cout<<endl;
n3=0;
for(i=0;i<i1;i++)
{
T[n3]=over[i]-arrive[i];
n3++;
}
cout<<"T(周转时间):";
for(i=0;i<n3;i++)
{
cout<<" "<<T[i]<<" ";
}
cout<<endl;
n4=0;
for(i=0;i<n3;i++)
{
W[n4]=T[i]/run[i];
n4++;
}
cout<<"W(带权周转时间):";
for(i=0;i<n4;i++)
{
cout<<" "<<W[i]<<" ";
}
cout<<endl;
cout<<endl;
cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
cin>>s1;
if(s1=='Y')
{
t='#';
key2=1;
key=1;
break;
}
else if(s1=='N')
{
t='#';
key2=0;
key=0;
break;
}
else
{
cout<<"错误,请重新输入!"<<endl;
cin>>s1;
}
}
else if(t=='2')
{
for(i=1;i<i2-1;i++)
{
for(j=i2-2;j>=i;j--)
{
if(run[j+1]<run[j])
{
jishu=run[j+1];
run[j+1]=run[j];
run[j]=jishu;
jishu1=arrive[j+1];
arrive[j+1]=arrive[j];
arrive[j]=jishu1;
}
}
}
cout<<endl;
cout<<"到达时刻:";
for(i=0;i<i1;i++)
{
cout<<" "<<arrive[i]<<" ";
}
cout<<endl;
cout<<"运行时间:";
for(i=0;i<i2;i++)
{
cout<<" "<<run[i]<<" ";
}
n1=0;
start[n1]=0;
n1++;
for(i=1;i<i1;i++)
{
start[n1]=start[n1-1]+run[i-1];
n1++;
}
cout<<endl;
cout<<"开始时刻:";
for(i=0;i<n1;i++)
{
cout<<" "<<start[i]<<" ";
}
cout<<endl;
n2=0;
for(i=1;i<n1;i++)
{
over[n2]=start[i];
n2++;
}
over[n2]=start[n1-1]+run[i2-1];
n2++;
cout<<"完成时刻:";
for(i=0;i<n2;i++)
{
cout<<" "<<over[i]<<" ";
}
cout<<endl;
n3=0;
for(i=0;i<i1;i++)
{
T[n3]=over[i]-arrive[i];
n3++;
}
cout<<"T(周转时间):";
for(i=0;i<n3;i++)
{
cout<<" "<<T[i]<<" ";
}
cout<<endl;
n4=0;
for(i=0;i<n3;i++)
{
W[n4]=T[i]/run[i];
n4++;
}
cout<<"W(带权周转时间):";
for(i=0;i<n4;i++)
{
cout<<" "<<W[i]<<" ";
}
cout<<endl;
cout<<endl;
cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
cin>>s1;
if(s1=='Y')
{
t='#';
key2=1;
key=1;
break;
}
else if(s1=='N')
{
t='#';
key2=0;
key=0;
break;
}
else
{
cout<<"错误,请重新输入!"<<endl;
cin>>s1;
}
}
else if(t=='3')
{
cout<<"请输入时间片单位q"<<endl;
cout<<"q=";
cin>>q;
add=0;
for(i=0;i<i2;i++)
{
add=add+run[i];
}
n=0;
if(q==1)
{
shuchu[n]='A';
run[0]--;
n++;
shuchu[n]='B';
run[1]--;
n++;
shuchu[n]='C';
run[2]--;
n++;
shuchu[n]='D';
run[3]--;
n++;
shuchu[n]='E';
run[4]--;
n++;
n0=0;
while(key1)
{
if(run[0]!=0)
{
shuchu[n]='A';
run[0]--;
n++;
key1=1;
}
else
{
n0++;
}
if(run[1]!=0)
{
shuchu[n]='B';
run[1]--;
n++;
key1=1;
}
else
{
n0++;
}
if(run[2]!=0)
{
shuchu[n]='C';
run[2]--;
n++;
key1=1;
}
else
{
n0++;
}
if(run[3]!=0)
{
shuchu[n]='D';
run[3]--;
n++;
key1=1;
}
else
{
n0++;
}
if(run[4]!=0)
{
shuchu[n]='E';
run[4]--;
n++;
key1=1;
}
else
{
n0++;
}
while(n0!=7)
{
key=1;
break;
}
while(n0==7)
{
key1=0;
break;
}
}
cout<<"时间片轮转的次序为:";
for(i=0;i<add;i++)
{
cout<<" "<<shuchu[i];
}
cout<<endl;
cout<<endl;
cout<<"是否需要继续?-是-Y,-否-N!"<<endl;
cin>>s1;
if(s1=='Y')
{
t='#';
key2=1;
key=1;
break;
}
else if(s1=='N')
{
t='#';
key2=0;
key=0;
break;
}
else
{
cout<<"错误,请重新输入!"<<endl;
cin>>s1;
}
}
else if(q==2)
{
}
else
{
cout<<"error"<<endl;
break;
}
}
}
}
while(t=='#')
{
cout<<endl;
cout<<"欢迎再次使用!"<<endl;
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -