中易网

求一个很短的先来先服务或者最短作业优先算法的代码。。还有解释。急求!!!

答案:1  悬赏:80  
解决时间 2021-12-31 03:32
是C++的……能运行的……越短越好。同时求大体的对代码的解释
最佳答案
#include <stdio.h>
struct fcfs
{
char name[10];
float arrivetime;
float servicetime;
float starttime;
float finishtime;
float zztime;
float dqzztime;
};
//读取数字
fcfs a[100];
void input(fcfs *p,int N)
{
int i;
printf("intput the process's name & arrivetime & servicetime:\nfor exmple: a 0 100\n");
for(i=0;i<=N-1;i++)
{
printf("input the %dth process's information:\n",i+1);
scanf("%s%f%f",&p[i].name,&p[i].arrivetime,&p[i].servicetime);
}
}
//打印输出
void Print(fcfs *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N)
{
int k;

printf("run order:");
printf("%s",p[0].name);
for(k=1;k<N;k++)
{
printf("-->%s",p[k].name);
}
printf("\nthe process's information:\n");
printf("\nname\tarrive\tservice\tstart\tfinish\tzz\tdqzz\n");

for(k=0;k<=N-1;k++)
{
printf("%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n",p[k].name,p[k].arrivetime,p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].zztime,p[k].dqzztime);
}
}
//按时间排序
void sort(fcfs *p,int N)
{
for(int i=0;i<=N-1;i++)
{
for(int j=0;j<=i;j++)
{
if(p[i].arrivetime < p[j].arrivetime)
{
fcfs temp;
temp=p[i];
p[i]=p[j];
p[j]=temp;
}
}
}
}

void deal(fcfs *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &dqzztime,int N)
{
int k;
for(k=0;k<=N-1;k++)
{
if(k==0)
{
p[k].starttime=p[k].arrivetime;
p[k].finishtime=p[k].arrivetime+p[k].servicetime;
}
else
{
p[k].starttime=p[k-1].finishtime;
p[k].finishtime=p[k-1].finishtime+p[k].servicetime;
}
}

for(k=0;k<=N-1;k++)
{
p[k].zztime=p[k].finishtime-p[k].arrivetime;
p[k].dqzztime=p[k].zztime/p[k].servicetime;
}
}
void FCFS(fcfs *p,int N)
{
float arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0;
sort(p,N);
deal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
Print(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
}
void main()
{
int N;
printf("------先来先服务调度算法------\n");
printf("input the process's number:\n");
scanf("%d",&N);
input(a,N);
FCFS(a,N);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
焦煎的意思是什么?焦煎的释义是什么啊?
以字母J开头的男性英文名字有哪些?谢谢了。
炫名的意思是什么啊?请解释下!
種佃的意思是什么?種佃的释义是什么啊?
翅席的意思是什么?翅席的释义是什么啊?
钱包的意思是什么啊?请解释下!
頓宿的意思是什么?頓宿的释义是什么啊?
怎么样才能快速学习单片机?基于合泰芯片
谁知道武汉现在兼职的工资多少一小时吗?我是
帆席的意思是什么啊?请解释下!
我有台180kw的变压器由于增加用电再装一台250
大舅哥私下问妹妹借款怎么办
正仪的意思是什么?正仪的释义是什么啊?
奄沦的意思是什么啊?请解释下!
我们寝室局域网我的电脑一插上网线,别人就上
推荐资讯
手游飞车a车多少钱抽到
品竹调丝的意思是什么啊?请解释下!
我怀孕三个月引产会不会有危险
炼质的意思是什么?炼质的释义是什么啊?
黎母的意思是什么?黎母的释义是什么啊?
我信用卡丢失了,现在补办的已经拿到手了,也
我是大专生,女,大二了。学的城市轨道交通。
截削的意思是什么?截削的释义是什么啊?
被网上通缉了在大的建筑工地用身份证做门卡要
盼睞的意思是什么?盼睞的释义是什么啊?
仗腰的意思是什么啊?请解释下!
碧塔海自然保护区派出所地址在哪,我要去那里
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?