CPP/计算机组成原理实验代码/FCFS.cpp

92 lines
2.5 KiB
C++
Raw Normal View History

2023-05-12 00:34:15 +08:00
#include <stdio.h>
#define n 5
struct JCB
{
int name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int atime; //<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>ʱ<EFBFBD><CAB1>
int runtime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int ftime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
int total; //<2F><>תʱ<D7AA><CAB1>
float welght; //<2F><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><EFBFBD><E4A3A8>תϵ<D7AA><CFB5><EFBFBD><EFBFBD>
int arun; //<2F><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}f[n];
//<2F><>ʼִ<CABC><D6B4>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>תʱ<D7AA><CAB1><EFBFBD>ʹ<EFBFBD>Ȩ<EFBFBD><C8A8>תʱ<D7AA><EFBFBD><E4A3A8>תϵ<D7AA><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int main()
{
int amount;
int i,j,l,k,h;
struct JCB f[n];
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD≯<EFBFBD><EFBFBD><EFBFBD>(2-24):\n");
scanf("%d",&amount);
for(i=0;i<amount;i++)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨0-30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣨1-8<><38>:\n");
scanf("%d",&f[i].name);
scanf("%d",&f[i].atime);
scanf("%d",&f[i].runtime);
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t\t%d\t\n",f[i].name,f[i].atime,f[i].runtime);
}
printf("------<2D><><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>FCFS<46><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨------\n");
for(i=0;i<amount-1;i++) //<2F><><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD>
{ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD><EFA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(j=i+1;j<amount;j++)
{
if(f[j].atime < f[i].atime)
{
l =f[j].atime;
h =f[j].runtime;
k =f[j].name;
f[j].atime =f[i].atime;
f[j].runtime =f[i].runtime;
f[j].name =f[i].name;
f[i].atime =l;
f[i].runtime =h;
f[i].name =k;
}
}
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n\n");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t\t%d\t\n",f[i].name,f[i].atime,f[i].runtime);
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><>תʱ<D7AA><CAB1> <20><>תϵ<D7AA><CFB5>\n");
f[0].arun=0;
for(i=0;i<amount;i++)
{
if(f[i].arun<f[i].atime)
{
f[i].arun =f[i].atime;
}
f[i].ftime=f[i].arun+f[i].runtime;
f[i].total=f[i].ftime-f[i].atime;
f[i].welght=(float)f[i].total/(float)f[i].runtime;
printf("%d\t%d\t %d\t %d\t %d\t\t%d\t%f\n",f[i].name,f[i].atime,f[i].arun,f[i].runtime,f[i].ftime,f[i].total,f[i].welght);
f[i+1].arun=f[i].arun+f[i].ftime;
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD><CCB5><EFBFBD> <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><>תʱ<D7AA><CAB1> <20><>תϵ<D7AA><CFB5>\n");
for(i=0;i<amount;i++)
{
printf("%d\t%d\t %d\t %d\t %d\t\t%d\t%f\n",f[i].name,f[i].atime,f[i].arun,f[i].runtime,f[i].ftime,f[i].total,f[i].welght);
}
}