for(;i
} } } for(i=0;i char* ch; ch=new char[1]; cout<<\请输入第\个进程的进程名优先、需要运行的时间:\ cin>>ch; hpcb[i].name=new char[strlen(ch)+1]; strcpy(hpcb[i].name,ch); cin>>hpcb[i].firstNum>>hpcb[i].allTime; hpcb[i].cpuTime=0; hpcb[i].process=ready; } do { f=getFirst(); hpcb[f].cpuTime+=P_TIME; hpcb[f].firstNum--; hpcb[f].process=run; if(hpcb[f].cpuTime>=hpcb[f].allTime)//该进程执行完成 { hpcb[f].cpuTime-=P_TIME; system(\ print(); Sleep(1000); hpcb[f].firstNum=MIN; hpcb[f].process=finish; hpcb[f].cpuTime=hpcb[f].allTime;//防止所用时间超过总的时间 system(\ print(); Sleep(1000); } else { hpcb[f].cpuTime-=P_TIME;//为了输出改变前的相关信息 hpcb[f].firstNum++;//为了输出改变前的相关信息 system(\ print(); Sleep(1000); hpcb[f].cpuTime+=P_TIME; hpcb[f].firstNum--; 13 hpcb[f].process=ready; } for(ii=0;ii if((i+1)!=P_NUM) //如果第i+1个进程不是最后一个进程,便于下一个程序从就绪状态到运行状态 { fpcb[i].cpuTime-=P_TIME; system(\ print(); Sleep(1000); fpcb[i].cpuTime+=P_TIME; fpcb[i].cpuTime=fpcb[i].allTime; fpcb[i].process=finish; fpcb[i+1].process=run; system(\ print(); Sleep(1000); } else { fpcb[i].cpuTime-=P_TIME; system(\ print(); Sleep(1000); fpcb[i].process=finish; fpcb[i].cpuTime=fpcb[i].allTime; system(\ print(); Sleep(1000); } } else { fpcb[i].cpuTime-=P_TIME; system(\ print(); Sleep(1000); fpcb[i].cpuTime+=P_TIME; } } } cout<<\所有进程已运行完成!\ 15