#include #include #include using namespace std; typedef struct { char name; int ArrivalTime; int ServiceTime; int FinishedTime; int WholeTime; double WeightWholeTime; }RR; static queueRRqueue; //声明一个队列 static double AverageWT =0,AverageWWT=0; static int q; //时间片 static int n; //进程个数 static RR RRarray[100]; //进程结构 void Input() { //用户输入模式 cout<<"________________________________________________________"<>n; cout<<"请输入时间片: "; cin>>q; cout<<"请输入进程名:"<>RRarray[i].name; } cout<<"请输入各进程的到达时间:"<>RRarray[i].ArrivalTime; } cout<<"请输入各进程的服务时间:"<>RRarray[i].ServiceTime; } } void RRAlgorithm() { char processMoment[100]; //存储每个时间片p对应的进程名称 RRqueue.push(RRarray[0]); int processMomentPoint = 0; int CurrentTime=0; int tempTime; int i=1; //指向还未处理的进程的下标 int finalProcessNumber = 0; //执行RR算法后,进程的个数 int processTime[50]; //CurrentTime的初始化 if (RRarray[0].ServiceTime>=q) { CurrentTime = q; } else { CurrentTime = RRarray[0].ServiceTime; } while(!RRqueue.empty()) { for (int j=i;j= RRarray[j].ArrivalTime) { RRqueue.push(RRarray[j]); i++; } } if (RRqueue.front().ServiceTime