时间片轮转调度算法实现
学校的一个处理机调度实验,可能有的细节做的不是很好,但能运行出想要的结果,希望能够帮助有需要的人。
#include <iostream>
#include <queue>
#include <iomanip>
#include <fstream>
using namespace std;
//全局变量
typedef struct
{
char name; //进程名
int arrivaltime; //到达时间
int servicetime; //服务时间
int starttime; //开始时间
int finishtime; //结束时间
int wholetime; //周转时间
double weightwholetime; //带权周转时间
}RR;
static queue<RR>RRqueue; //声明一个队列
static double averagewt = 0, averagewwt = 0;
static int q; //时间片
static int n; //进程个数
static RR RRarray[100]; //进程结构
void Input()
{
cout<<"--------------------------------时间片轮转调度算法------------------------------"<<endl;
cout<<"请输入进程的数量n = "; //进程总数
cin>>n;
cout<<"请输入时间片的大小q = "; //设定时间片大小
cin>>q;
cout<<"请输入各个进程的名字:"<<endl; //各进程名称
for (int i=0;i<n;i++)
{
cin>>RRarray[i].name;
}
cout<<"请输入各个进程的到达时间:"<<endl; //各进程到达时间
for (int i=0;i<n;i++)
{
cin>>RRarray[i].arrivaltime;
}
cout<<"请输入各个进程的服务时间:"<<endl; //各进程服务时间
for (int i=0;i<n;i++)
{
cin>>RRarray[i].servicetime;
}
cout << "********************************************************************************" << endl;
//输出用户所输入的信息
cout << "各个进程的信息:" << endl;
cout << setw(10) << "processName" << " ";
cout << setw(10) << "ArrivalTime" << " ";
cout