/**
工件类
*/
class WorkPiece 
{
public boolean isProcessing = false;//是否在被加工中
        public boolean Processed[5] = false;//机床加工完成
        public int workertime[5];//机床加工时间
        public int starttime[5];//每个机床上开始时间点
        public int endtime[5];//每台机床加工结束时间//开始加工
        public startworked(int workernum, int time)
        {
isProcessing=true;
starttime[workernum]=time;
                
        }//结束加工
        public endworked(int workernum, int time)
        {
               isProcessing=false;
               endtime[workernum]=time;
               Processed[workernum] = true;
        } 
        
}/**
机床类
*/
class Worker
{
public boolean isworking = false;//是否在工作中
        public WorkPiece;//这台机床上正在被加工的工件
public int worklongth;//加工中工件已加工时长
        public int starttime;//正在加工的开始时间
        
}/**
加工场
*/
Class Factory
{
WorkPiece toprocessworkpiece =workpiece[0] ;
        Worker    toprocessworker;
int time = 0;//总工作时长
WorkPiece workpiece[4]; 
WorkPiece workpiece[0] = new WorkPiece();
        WorkPiece workpiece[1]= new WorkPiece();
        WorkPiece workpiece[2]= new WorkPiece();
        WorkPiece workpiece[3]= new WorkPiece();        Worker work[5]
Worker work[0] = new Worker();
Worker work[1] = new Worker();
Worker work[2] = new Worker();
Worker work[3] = new Worker();
Worker work[4] = new Worker(); public void work()
{

                //把机床加工时间付给每个工件
                  workpiece[1].workertime[0] =155;
workpiece[1].workertime[0] =155;
workpiece[1].workertime[1] =155;
workpiece[1].workertime[2] =155;
workpiece[1].workertime[3] =155;
workpiece[1].workertime[4] =155;
workpiece[2].workertime[0] =155;
workpiece[2].workertime[1] =155;
workpiece[2].workertime[2] =155;
workpiece[2].workertime[3] =155;
workpiece[2].workertime[4] =155;
workpiece[3].workertime[0] =155;
workpiece[3].workertime[1] =155;
workpiece[3].workertime[2] =155;
                  workpiece[3].workertime[3] =155;
workpiece[3].workertime[4] =155;
workpiece[4].workertime[0] =155;
workpiece[4].workertime[1] =155;
workpiece[4].workertime[2] =155;
workpiece[4].workertime[3] =155;
workpiece[4].workertime[4] =155                while(true)
                {
time++;
                        whoendprocess();
whostartprocess();                        if(都被加工完)
                        {
跳出;
                        }

}
}       //检查当前时刻谁要被加工
public whostartprocess()
{
//循环工件
                for (i=0,i<4,i++)
{
//察看工件在每个机床上的加工时间,挑出这个时刻谁可以被加工
                       for(j=0,j<5,j++)
{

                                if(workpiece[i].Processed[j] = true) //工件被此机床加工过跳出
                                break;
if(workpiece[i].isProcessing=true || work[j].isworking=true )//加工中跳出
                                break;
                                for(k=0,k<5,k++)
                                {
      if(toprocessworkpiece.Processed[j] = true)
                                      break;
                                      if(workpiece[i].workertime[j] > toprocessworkpiece.workertime[k])
                                      toprocessworkpiece = workpiece[i];
                                      toprocessworker = work[k];
      work[k].WorkPiece=toprocessworkpiece;
      work[k].WorkPiece.startworked(k,time);                                }
                               
}
}
                
}
       //检查当前时刻谁被加工完
        public whoendprocess()
        {
              for(i=0,i<5,i++)
              {
                   if(work[i].WorkPiece != null)
                   {
                        if( (time-work[i].starttime) > work[i].WorkPiece.workertime[i];
                        work[i].WorkPiece.endworked(i, time);
                   }
              }
        }
               
}