输入N(N>0)个作业,输入每个作业的名字,到达时间,服务时间,按照先来先服务算法,计算每个作业的完成时间,周转时间,带权周转时间(保留2位小数)。

输入格式:
第一行输入作业数目,第二行输入作业的名字,第三行输入到达时间,第四行输入服务时间。

输出格式:
按照到达时间从小到大排序,第一行输出作业的名字,第二行输出到达时间,第三行输出服务时间,第四行输出完成时间,第五行输出完成时间,第六行输出带权周转时间。

输入样例:
在这里给出一组输入。例如:

5
A B C D E
0 1 2 3 4
4 3 4 2 4

输出样例:
在这里给出相应的输出。例如:

作 业 名:A B C D E
到达时间:0 1 2 3 4
服务时间:4 3 4 2 4
完成时间:4 7 11 13 17
周转时间:4 6 9 10 13
带权周转时间:1.00 2.00 2.25 5.00 3.25

代码实现:

import java.util.Arrays;
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner s = new Scanner(System.in);int number = s.nextInt();//输入名字String[] name = new String[number];for (int i = 0; i < name.length; i++) {name[i] = s.next();}//输入到达时间int[] arriveTime = new int[number];for (int i = 0; i < name.length; i++) {arriveTime[i] = s.nextInt();}//输入服务时间int[] serivceTime = new int[number];for (int i = 0; i < name.length; i++) {serivceTime[i] = s.nextInt();}//有几个作业就创建几个对象Work[] work = new Work[number];for (int i = 0; i < number; i++) {work[i] = new Work();work[i].name1 = name[i];work[i].arriveTime = arriveTime[i];work[i].seriviceTime = serivceTime[i];}Arrays.sort(work);//到达时间排序System.out.print("作 业 名:");//输出名字for (int i = 0; i < number; i++) {if(i == number-1){System.out.print(work[i].name1);break;}System.out.print(work[i].name1 + " ");}System.out.println();System.out.print("到达时间:");//输出到达时间for (int i = 0; i < number; i++) {if(i == number-1){System.out.print(work[i].arriveTime);break;}System.out.print(work[i].arriveTime + " ");}System.out.println();System.out.print("服务时间:");//输出服务时间for (int i = 0; i < number; i++) {if(i == number-1){System.out.print(work[i].seriviceTime);break;}System.out.print(work[i].seriviceTime + " ");}System.out.println();//计算完成时间for (int i = 0; i < number; i++) {if (i == 0) {work[i].finishTime = work[0].arriveTime + work[0].seriviceTime;} else {if (work[i].arriveTime > work[i - 1].finishTime) {work[i].finishTime = work[i].arriveTime + work[i].seriviceTime;} else {work[i].finishTime = work[i - 1].finishTime + work[i].seriviceTime;}}}System.out.print("完成时间:");//输出for (int i = 0; i < number; i++) {if(i == number-1){System.out.print(work[i].finishTime);break;}System.out.print(work[i].finishTime + " ");}System.out.println();System.out.print("周转时间:");//输出周转时间for (int i = 0; i < number; i++) {work[i].turnAroundTime = work[i].finishTime - work[i].arriveTime;//周转时间=完成时间-到达时间if(i == number-1){System.out.print(work[i].turnAroundTime);break;}System.out.print( work[i].turnAroundTime + " ");}System.out.println();System.out.print("带权周转时间:");for (int i = 0; i < number; i++) {work[i].turnAroundTimeQ =1.00 * work[i].turnAroundTime / work[i].seriviceTime;//带权周转时间=周转时间/服务时间if(i == number-1){System.out.printf("%.2f",work[i].turnAroundTimeQ);break;}System.out.printf("%.2f ",work[i].turnAroundTimeQ);}System.out.println();}
}
class Work implements Comparable{String name1;//名字int arriveTime;//到达时间int seriviceTime;//服务时间int finishTime;//完成时间int turnAroundTime;//周转时间double turnAroundTimeQ;//带权周转时间public Work() {}public Work(String name1, int arriveTime, int seriviceTime) {this.name1 = name1;this.arriveTime = arriveTime;this.seriviceTime = seriviceTime;}
//达到时间要进行排序public int compareTo(Object o) {if (o instanceof Work) {Work p = (Work) o;return (this.arriveTime - p.arriveTime);}throw new IllegalArgumentException("非法参数,o=" + o);}
}

作业调度算法--先来先服务相关推荐

  1. 7-1 作业调度算法--先来先服务

    7-1 作业调度算法–先来先服务 输入N(N>0)个作业,输入每个作业的名字,到达时间,服务时间,按照先来先服务算法,计算每个作业的完成时间,周转时间,带权周转时间(保留2位小数). 输入格式: ...

  2. 操作系统实验 作业调度算法 先来先服务FCFS调度算法

    作业调度算法 先来先服务FCFS调度算法 作业调度的原理: 非抢占调度 把作业从外存调入内存 作业调度算法: 先来先服务FCFS 短作业优先SJF 静态优先级调度 高响应比优先调度 实验原理 作业调度 ...

  3. 7-1 作业调度算法--先来先服务 (30 分)(思路+详解+vector+map+map做法)Come Baby!!!!!!!!!!!

    一:题目: 输入N(N>0)个作业,输入每个作业的名字,到达时间,服务时间,按照先来先服务算法,计算每个作业的完成时间,周转时间,带权周转时间(保留2位小数). 输入格式: 第一行输入作业数目, ...

  4. 3.处理机调度——作业调度算法与进程调度算法

    1.作业调度与进程调度算法 作业调度算法: 先来先服务调度算法(FCFS) 短作业优先调度算法(SJF) 优先级调度算法 高响应比优先调度算法 进程调度算法: 先来先服务调度算法(FCFS) 短进程优 ...

  5. Hadoop集群三种作业调度算法介绍

    Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先来先服务(FIFO) Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执 ...

  6. 计算机操作系统——作业调度算法

    文章目录 一.作业的基本知识 1.作业和作业步 2.作业运行的三个阶段 二.先来先服务(FCFS)调度算法 1.算法思想 2.算法评价 三.短作业优先(SJF)调度算法 1.算法思想 2.算法评价 四 ...

  7. 操作系统实验六:作业调度算法模拟

    一.实验目的 (1)掌握周转时间.等待时间.平均周转时间等概念及其计算方法. (2)理解五种常用的进程调度算法(FCFS.SJF.HRRF.HPF.RR),区分算法之间的差异性,并用C语言模拟实现各算 ...

  8. Java操作系统进程调度算法——先来先服务(FCFS)算法

    Java操作系统进程调度算法--先来先服务(FCFS)算法 Java操作系统进程调度算法--先来先服务(FCFS)算法 文章目录 Java操作系统进程调度算法--先来先服务(FCFS)算法 前言 一. ...

  9. 作业调度算法--高响应比优先 操作系统_处理器管理_编程题

    操作系统_处理器管理_编程题 作业调度算法–高响应比优先 输入N个作业,输入每个的作业名字,到达的时间,服务的时间,根据高响应比优先算法,计算出每个作业的完成的时间,周转的时间,带权周转的时间(其中保 ...

最新文章

  1. devServer proxy跨域 设置代理 proxy
  2. Spring Boot 操作 Redis 的各种实现
  3. python中的 怎么用_Python中如何调用Linux命令
  4. 电子电路基础复习 —— 电感
  5. 发现一个很好的工具——VNN
  6. NSIS打包软件使用
  7. 验证redis的主从复制
  8. Web开发-Django视图层
  9. 文档中根元素后面的标记格式必须正确。
  10. java jedis_Java操作Redis之Jedis用法详解
  11. 一个servlet,多个dwr.xml配置文件
  12. 95.91p30.space\/index.php,关于 ThinkPHP6 分页样式的定制及点击下一页搜索条件丢失的解决方法...
  13. 清空数据库中的某个表中数据
  14. 为什么我的Linux主机内存用的那么快?
  15. 常见c语言语法错误,C语言常见语法错误.doc
  16. 软件测试功底技术——编程语言
  17. element的上传如何获取路径_element Ui 上传组件upload提交的文件目录 集成进度条样式...
  18. 浅谈交易开拓者程序化
  19. Edge 被 hao123 劫持解决方法
  20. 自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube

热门文章

  1. 电脑公司GHOST WIN7 装机旗舰版 2013 05
  2. hadoop 2.6遇到的DataNode无法启动问题
  3. OBS Studio(obs录屏软件)官方中文版V27.2.4 | 最新obs中文版百度云下载
  4. 量化交易学习5--获取板块中股票
  5. 网易我的世界中国版服务器存档文件在哪里,网易我的世界怎么导入存档 网易中国版手游存档位置...
  6. 修改域服务器同步时间,配置Windows Server 2008 R2 域控制器的时间同步
  7. spssχ2检验_实用医学统计:配对四格表资料的χ2检验之SPSS操作篇
  8. 动态规划之最大非空子段和
  9. Android 全埋点方案盘点
  10. Python案例篇3-pip install 失败 Command “python setup.py egg_info“ failed with error code 1