个人练习
输入:作业序列,即一系列要执行的作业,每个作业包括三个数据项:
作业号、作业进入系统的时间(用一整数表示,如 10:10,表示成 1010)、
估计执行时间(单位分)
3
参数用空格隔开,下面是示例:
1 800 50
2 815 30
3 830 25
4 835 20
5 845 15
6 900 10
7 920 5
按不同的调度算法输出作业序列,进入内存的时间;每行输出一个作业信息
#include<iostream>
using namespace std;
struct JOB {
char name[10];//进程名
int arrivetime;//到达时间
int runtime;//运行时间
int starttime;//开始时间
int endtime;//完成时间
int zztime;//周转时间
double dqzztime;//带权周转时间
int time;
int R;//响应比算法优先级
};
JOB z[100];//定义一个结构体数组
/*时间转换*/
int time_hm(int n) {
int a;
int b;
int time_min;
a = (int)n * 1.0 / 100;
b = n % 100;
time_min = a * 60 + b;
return time_min;
}
int time_mh(int n) {
int a;
int b;
int time;
a = (int)n * 1.0 / 60;
b = n % 60;
time = a * 100 + b;
return time;
}
/*输入函数*/
void input(JOB* p, int n) {
int i;
cout << "请输入作业编号,到达时间,运行时间" << endl;
for (i = 0; i <= n - 1; i++) {
cout << "输入作业" << i + 1 << "的信息:" << endl;
cin >> z[i].name >> z[i].time >> z[i].runtime;
z[i].arrivetime = time_hm(z[i].time);
}
}
/*输出函数*/
void print(JOB* p, int arrivetime, int runtime, int starttime, int endtime, int zztime, double dqzztime, int n) {
int k;
cout << "执行顺序:";
cout << z[0].name;
for (k = 1; k < n; k++) {
cout << "->" << z[k].name;
}
cout