/**
工件类
*/
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);
}
}
}
}
工件类
*/
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);
}
}
}
}
想考一下大家?