📄 workteam.java
字号:
package cn.edubest.work;
//WorkCall.java
//come true the os-program workcall
//java core package
import java.awt.*;
import java.awt.event.*;
//java extension packages
import javax.swing.*;
public class WorkTeam{
private Work works[]=new Work[4];
private double T;
private double W;
private double timex;
public WorkTeam()
{
for( int i=0;i<4;i++ )
{
works[i]=new Work();
}
}//end method WorkTeam
public WorkTeam( WorkTeam WT )
{
for(int i=0;i<4;i++)
{
works[i]=new Work(WT.works[i]);
}
T=0;
W=0;
}
public Work getWork(int i)
{
return works[i];
}
public boolean isAllOver()
{
for( int i=0;i<4;i++ )
{
if( !works[i].isOver() ) return false;
}
return true;
}//end method isAllOver
public void setName( String names,int i )//用作业i设置作业名
{
works[i].setWorkName( names );
}//end method setName
public void setHandTime( double time,int i )//为作业i设置提交时间time
{
works[i].setWorkHandTime(time);
}//end method setHandTime
public void setRunTime( double time,int i )//为作业i设置运行时间time
{
works[i].setWorkRunTime(time);
}//end mehtod setRunTime
public void setStartTime( double time,int i )//为作业i设置开始执行时间
{
works[i].setWorkStartTime(time);
}//end method setstartTime
public void setEndTime( double time,int i )//为作业i设置完成时间time
{
works[i].setWorkEndTime(time);
}//end method setEndTime
public void setTi( double T,int i )//为作业i设置周转时间T
{
works[i].setWorkT(T);
}//end method setTi
public void setWi( double W,int i )//为作业i设置带权周转时间W
{
works[i].setWorkW(W);
}//end method setWi
public void setT( double Ts )//为作业组设置平均周转时间
{
T=Ts;
}//end method sett
public void setW( double Ws )//为作业组设置平均带权周转时间
{
W=Ws;
}//end mentod setW
public double getT()
{
return T;
}
public double getW()
{
return W;
}
public String getName(int i)
{
return works[i].getWorkName();
}
public double getStartTime(int i)
{
return works[i].getWorkStartTime();
}
public double getRunTime(int i)
{
return works[i].getWorkRunTime();
}
public double getEndTime( int i )
{
return works[i].getWorkEndTime();
}
public double getHandTime( int i )
{
return works[i].getWorkHandTime();
}
public void setT( double time,int i )//设置某个作业的周转时间
{
works[i].setWorkT( time );
}
public void setW( double time,int i )//设置某个作业的带权周转时间
{
works[i].setWorkW( time );
}
public double getT(int i)//取得某个作业的周转时间
{
return works[i].getWorkT();
}
public double getW( int i )//取得某个作业的带权周转时间
{
return works[i].getWorkW();
}
public void setTime( double times )//上一个作业完成时刻
{
timex=times;
}
public double getTime( )
{
return timex;
}
public void setState( int xia,int i )//把作业xia的状态设置成i
{
works[xia].setWorkState( i );
}
public int findMinTime(double time)//查找最先提交但还没有完成的作业
{
double minTime=0;
int xia=0;
if(time==0)//第一次从作业1开始
{
works[0].setWorkState( 1 );
//JOptionPane.showMessageDialog(null,"getWorkHandTime()"+works[0].getWorkHandTime(),"dhn",JOptionPane.INFORMATION_MESSAGE);
setTime( works[0].getWorkHandTime() );
//JOptionPane.showMessageDialog(null,"works[0].getWorkHandTime()"+timex,"dhn",JOptionPane.INFORMATION_MESSAGE);
return 0;
}
else{
for( int j=1;j<4;j++ )//找一个没有完成的作业,方便下面比较
{
if( !works[j].isOver() )
{
minTime=works[j].getWorkHandTime();
//JOptionPane.showMessageDialog(null,"minTime "+minTime,"dhn",JOptionPane.INFORMATION_MESSAGE);
break;
}
}
for( int i=1;i<4;i++ )
{
if(!isAllOver())//整个作业组没有全部完成
{
if(!works[i].isOver())
{
if( minTime>=works[i].getWorkHandTime() )//作业i的提交时间得小于或者等于上一个作业的完成时间
{
minTime=works[i].getWorkHandTime();
xia=i;
}
}
}
}
}
works[xia].setWorkState(1);
return xia;
}//end method findMinTime
public int findMinRunTime(double time)
{
double minTime=0;
int xia=0;
if(time==0)
{
works[0].setWorkState( 1 );
//JOptionPane.showMessageDialog(null,"getWorkHandTime()"+works[0].getWorkHandTime(),"dhn",JOptionPane.INFORMATION_MESSAGE);
setTime( works[0].getWorkHandTime() );
//JOptionPane.showMessageDialog(null,"works[0].getWorkHandTime()"+timex,"dhn",JOptionPane.INFORMATION_MESSAGE);
return 0;
}
else{
for( int j=1;j<4;j++ )//找一个没有完成的作业
{
if( !works[j].isOver() )
{
minTime=works[j].getWorkRunTime();
//JOptionPane.showMessageDialog(null,"没有完成的作业的运行时间minTime "+minTime,"dhn",JOptionPane.INFORMATION_MESSAGE);
break;
}
}
for( int i=1;i<4;i++ )
{
if(!isAllOver())//整个作业组没有全部完成
{
if(!works[i].isOver())
{
if( minTime>=works[i].getWorkRunTime() )//作业i的运行时间得小于或者等于上一个作业的完成时间
{
minTime=works[i].getWorkRunTime();
xia=i;
//JOptionPane.showMessageDialog(null,"测试中的最小运行时间 "+xia,"dhn",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
}
works[xia].setWorkState(1);
JOptionPane.showMessageDialog(null,"最小运行时间 "+xia,"dhn",JOptionPane.INFORMATION_MESSAGE);
return xia;
}
public int findMaxRp( double time ,double Rp[])
{
double minTime=0;
int xia=0;
if(time==0)
{
works[0].setWorkState( 1 );
//JOptionPane.showMessageDialog(null,"getWorkHandTime()"+works[0].getWorkHandTime(),"dhn",JOptionPane.INFORMATION_MESSAGE);
setTime( works[0].getWorkHandTime() );
//JOptionPane.showMessageDialog(null,"works[0].getWorkHandTime()"+timex,"dhn",JOptionPane.INFORMATION_MESSAGE);
return 0;
}
else{
for( int j=1;j<4;j++ )//找一个没有完成的作业
{
if( !works[j].isOver() )
{
minTime=Rp[j];
//JOptionPane.showMessageDialog(null,"没有完成的作业的Rp minTime "+minTime,"dhn",JOptionPane.INFORMATION_MESSAGE);
break;
}
}
for( int i=1;i<4;i++ )//找最大的响应比
{
if(!isAllOver())//整个作业组没有全部完成
{
if(!works[i].isOver())
{
if( minTime<=Rp[i])
{
minTime=Rp[i];
xia=i;
//JOptionPane.showMessageDialog(null,"测试中的最大Rp "+xia,"dhn",JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
}
works[xia].setWorkState(1);
JOptionPane.showMessageDialog(null,"最大Rp "+xia,"dhn",JOptionPane.INFORMATION_MESSAGE);
return xia;
}
}//end class WorkTeam
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -