first commit
This commit is contained in:
111
计算机组成原理实验代码/FCFS_2.cpp
Normal file
111
计算机组成原理实验代码/FCFS_2.cpp
Normal file
@@ -0,0 +1,111 @@
|
||||
|
||||
#include<iostream>
|
||||
using namespace std;
|
||||
#define N 3
|
||||
struct PCB
|
||||
{
|
||||
char name[8];
|
||||
int arrive_time;
|
||||
int run_time;
|
||||
int finish_time;
|
||||
int zhouzhuan_time;
|
||||
float daiquan_time;
|
||||
};
|
||||
|
||||
float sumzhouzhuantime,sumdaiquanzhouzhuantime;
|
||||
struct PCB pcb[N],temp;
|
||||
|
||||
void input(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void sort(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>
|
||||
void output(); //<2F><><EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><E3B7A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||
|
||||
int main()
|
||||
{
|
||||
input();
|
||||
sort( );
|
||||
output();
|
||||
}
|
||||
|
||||
void input()
|
||||
{
|
||||
int i;
|
||||
cout<<"--------------------------------------"<<endl;
|
||||
cout<<" FCFS<46><53><EFBFBD><EFBFBD><EFBFBD>㷨 "<<endl;
|
||||
cout<<"--------------------------------------"<<endl;
|
||||
cout<<" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ:"<<endl;
|
||||
for ( i=0;i<N;i++)
|
||||
{
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n" );
|
||||
scanf("%s",pcb[i].name);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뵽<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:");
|
||||
scanf("%d",&pcb[i].arrive_time);
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>:");
|
||||
scanf("%d",&pcb[i].run_time);
|
||||
}
|
||||
cout<<"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:"<<endl;
|
||||
for( i=0;i<N;i++)
|
||||
{ printf("%s ",pcb[i].name);
|
||||
printf("%d ",pcb[i].arrive_time);
|
||||
printf("%d \n",pcb[i].run_time);
|
||||
}
|
||||
}
|
||||
|
||||
void sort()//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>Խ<EFBFBD><D4BD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
for(int i=0;i<N-1;i++)
|
||||
{
|
||||
for(int j=i+1;j<N;j++)
|
||||
{
|
||||
if(pcb[i].arrive_time>pcb[j].arrive_time)
|
||||
{
|
||||
temp=pcb[i];
|
||||
pcb[i]=pcb[j];
|
||||
pcb[j]=temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void output()
|
||||
{
|
||||
int i;
|
||||
cout<<"FCFS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㷨:"<<endl;
|
||||
pcb[0].finish_time=pcb[0].arrive_time+pcb[0].run_time;
|
||||
pcb[0].zhouzhuan_time=pcb[0].finish_time-pcb[0].arrive_time;
|
||||
pcb[0].daiquan_time=(float)pcb[0].zhouzhuan_time/pcb[0].run_time;
|
||||
for(i=1;i<N;i++)
|
||||
{
|
||||
if(pcb[i].arrive_time>pcb[i-1].finish_time)
|
||||
{
|
||||
pcb[i].finish_time=pcb[i].arrive_time+pcb[i].run_time;
|
||||
pcb[i].zhouzhuan_time=pcb[i].run_time;
|
||||
pcb[i].daiquan_time=(float)pcb[i].zhouzhuan_time/pcb[i].run_time;
|
||||
}
|
||||
else
|
||||
{
|
||||
pcb[i].finish_time=pcb[i-1].finish_time+pcb[i].run_time;
|
||||
pcb[i].zhouzhuan_time=pcb[i].finish_time-pcb[i].arrive_time;
|
||||
pcb[i].daiquan_time=(float)pcb[i].zhouzhuan_time/pcb[i].run_time;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
for(i=0;i<N;i++)
|
||||
{
|
||||
sumzhouzhuantime+=pcb[i].zhouzhuan_time;
|
||||
sumdaiquanzhouzhuantime+=pcb[i].daiquan_time;
|
||||
}
|
||||
|
||||
printf("----------------------------------------------------------------\n");
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>תʱ<D7AA><CAB1> <20><>Ȩ<EFBFBD><C8A8>תʱ<D7AA><CAB1> \n");
|
||||
printf("----------------------------------------------------------------\n");
|
||||
for(i=0;i<N;i++)
|
||||
{
|
||||
printf(" %s %d %d %d %d %.2f\n",pcb[i].name,pcb[i].arrive_time,pcb[i].run_time,pcb[i].finish_time,pcb[i].zhouzhuan_time,pcb[i].daiquan_time);
|
||||
|
||||
}
|
||||
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumzhouzhuantime/N<<endl;
|
||||
cout<<"ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD>תʱ<EFBFBD><EFBFBD>:"<<sumdaiquanzhouzhuantime/N<<endl;
|
||||
printf("----------------------------------------------------------------\n");
|
||||
}
|
||||
|
Reference in New Issue
Block a user