实现步骤:
1.将进程按到达时间排序;
进程开始运行:
(1)在进程运行结束前到达的进程:
比较运行时间—短的先运行
(2)在进程运行结束前到达的进程:
先到达的运行。
上源码:`
#include <iostream>
#include<string>
using namespace std;
class SJF {
public:
string name;//程序名
int a_time;//到达时间
int r_time;//运行时间
int s_time;//开始时间
int f_time;//结束时间
int round_time;//z周转时间
double wr_time;//带权周转时间
double ar_time;//平均周转时间
double awr_time;//平均带权周转时间
}; SJF a[1000];
void sjf() {
int num, i, j, temp;
string t;
cout << "请输入进程个数 :";
cin >> num;
cout << "请输入" << num << "个进程名字" << endl;
for (i = 0; i < num; i++) {
cin >> a[i].name;
a[i].a_time = (int)rand() % 10 + 1;
a[i].r_time = (int)rand() % 10 + 1;
}//随机生成到达时间和运行时间
cout << "打印数据.................." << endl;
cout << "进程名" << " " << "到达时间" << " " << "运行时间" << " " << "开始时间" << " " << "结束时间" << " " << "周转时间" << " " << "带权周转时间" << " " << "平均周转时间" << " " << "平均带权周转时间" << endl;
for (i = 0; i < num; i++) {
cout << a[i].name << "\t" << a[i]