操作系统:SJF算法——c++实现

实现步骤:
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]
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值