该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import java.util.Scanner;
public class 时间片轮转法 {
public static void fresh(int p[],String Q[]){
int w1,w2,m;
String x;
for(w1=0;w1
for(w2=w1+1;w2
if(p[w1]>p[w2]) {
m=p[w1];
p[w1]=p[w2];
p[w2]=m;
x=Q[w1];
Q[w1]=Q[w2];
Q[w2]=x; }
}}}
public static void main(String[] args) {
Scanner shuru=new Scanner(System.in);
System.out.println("请设定时间片长度");
char flag='r';
int timepiece=shuru.nextInt();
System.out.println("请告知提交作业总数");
int i,j,n=shuru.nextInt();
String process[]=new String[n];
int reachtime[]=new int[n];
int spendtime[]=new int[n];
int timeover[]=new int[n];
int begintime=0; //int turnovertime=0;
int undotime[]=new int [n];
System.out.println("请告知作业名称,提交时间,运行时间");
for(i=0;i
process[i]=shuru.next();
undotime[i]=reachtime[i]=shuru.nextInt();
timeover[i]=spendtime[i]=shuru.nextInt();
}
fresh(reachtime,process);
i=0;
while(flag!='e'){
i=i%n;
if(spendtime[i]!=0&&begintime!=reachtime[i]){
flag='w';
}else if(spendtime[i]!=0&&begintime==reachtime[i]){flag='r';}
else flag='e';
if(flag=='r'){
System.out.println("第"+begintime+"秒"+process[i]+"正在运行1个时间片");
begintime++;i++;}
else if(flag=='w'){i++;}
else if(flag=='e'){i++;}
if(timeover[0]==0&&timeover[1]==0&&timeover[2]==0&&timeover[3]==0&&timeover[4]==0){
break;}
}}}