先来先服务调度算法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 Finput(fcfs *p,int N)
{
int i; printf("输入进程的名称、到达时间、服务时间:(例如: x 0 100)\n"); for(i=0;i<=N-1;i++) { printf("输入第%d进程的名称、到达时间、服务时间:",i+1); } scanf("%s%f%f",&p[i].name,&p[i].arrivetime,&p[i].servicetime);
}
//输出函数
void FPrint(fcfs *p,float arrivetime,float servicetime,float starttime,float finishtime,float zztime,float dqzztime,int N)
{
int k; printf("\n执行顺序:\n"); printf("%s",p[0].name); for(k=1;k<N;k++) { printf("-%s",p[k].name); } printf("\n进程名\tarrive\tservice\tstart\tfinish\tzz\tdqzz\n\n"); for(k=0;k<=N-1;k++) {
printf("%s\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t%-.2f\t\n\n",p[k].name,p[k].arrivetime,p[k].servicetime,p[k].starttime,p[k].finishtime,p[k].zztime,p[k].dqzztime);
}
//按到达时间排序,先到达排在前面 } void Fsort(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 Fdeal(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; } else { p[k].starttime=p[k-1].finishtime; //开始时间=前一个进程的完成时间 p[k].finishtime=p[k-1].finishtime+p[k].servicetime; //结束时间=前一个进} p[k].finishtime=p[k].arrivetime+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; Fsort(p,N); Fdeal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N); FPrint(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
}
void main() //主函数
{int N;
printf("------先来先服务调度算法------\n"); printf("输入进程数:"); scanf("%d",&N); Finput(a,N); FCFS(a,N); }
…… 此处隐藏:85字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [行业资料]创设有效语境 改善英语教学
- [行业资料]微商推广引流的44种方法
- [行业资料]医疗机构输血科血库基本标准
- [行业资料]锂离子电池项目可行性研究报告(2015年
- [行业资料]申请执行人长沙市开福区人口和计划生育
- [行业资料]倾听草木的呼吸(初中阅读)
- [行业资料]长沙新环境厂房租赁合同书
- [行业资料]2022年经济师《金融专业知识与实务(中
- [行业资料]浦东新区2009学年度第二学期期末考试七
- [行业资料]企业劳动用工协议书
- [行业资料]最新苏科版七年级数学上册第二章有理数
- [行业资料]12星座与英语词汇学习
- [行业资料]2008年高考化学科经验
- [行业资料]镇政府2015年工作总结及2016年政府工作
- [行业资料]梧州市产业园区规划及招商引资报告
- [行业资料]大体积砼承台施工作业指导书
- [行业资料]学生干部在创建和谐校园中的作1
- [行业资料]小学语文教师实习个人总结
- [行业资料]2014完美最新奖金制度
- [行业资料]2016年一建建筑实务-重要知识点地质
- 【最新】人教版小学语文三年级上册:第
- 中国中小企业年鉴(地区数据)
- 动物与人类生活的关系 ppt
- 选修3 专题3 胚胎工程知识点
- 遥感技术基础复习题
- 公司员工职业生涯规划实施方案
- 辽宁省建筑施工企业安全生产许可证管理
- 15秋福师《中外幼儿教育史》在线作业二
- 2015-2020年中国网络视频行业深度调研
- 数学八年级下华东师大版21.1算术平均数
- 苏教版一年级语文下册《小松树和大松树
- 油画论文:摄影对当下油画艺术的影响
- 西方自由主义影响下的新闻自由——从17
- 基于支持向量机的商业银行信用风险评估
- 机械设计基础复习题答案(修改)(1)
- 语文:高考作文素材:材料引用及论点论
- 月份工程进度款结算单62+56
- 2018-2023年中国互联网基金行业现状研
- 人教版 PEP 五年级下册Unit1Lesson1 th
- 2014学年第二学期四年级数学期末教学质




