Main.c
#include "tools.h"
#include "dispatch.h"
/*
* 定义进程数据结构
*/
int main()
{
pro myPro[5] = {
{"A",0,3},{"B",2,6},{"C",4,4},{"D",6,5},{"E",8,2}};
for(int i=0;i<n;i++){
print(myPro[i]);//打印进程
}
FCFS(myPro,5);//先来先服务
RR(myPro,5);//乱转,q=1
SPN(myPro,5);//最短进程优先
SRT(myPro,5);//最短剩余时间
HRRN(myPro,5);//最高响应比
return 0;
}
tools.h
#define Num 100
typedef struct pro
{
char name[20]; //进程名称
int arrTime; //到达时间
int serTime; //服务时间
int finTime; //结束时间
int cycTime; //周转时间
float resRation; //响应比
}pro;
void printResult(pro process[], int n);
void copy(pro process[], pro tempPro[], int n);
void sortByArrTime(pro process[], int n);
void sortOfPro(pro process[], int sort[],int n);
int isFinish(pro process[], int n);
void print(pro process);
tools.c
#include<stdio.h>
#include<string.h>
#define Num 100
typedef struct pro
{
char name[20]; //进程名称
int arrTime; //到达时间
int serTime; //服务时间
int finTime; //结束时间
int cycTime; //周转时间
float resRation; //响应比
}pro;
void print(pro process)
{
printf("进程:%s\n", process.name);
printf("\t到达时间:%d\n", process.arrTime);
printf("\t服务时间:%d\n", process.serTime);
printf("\t结束时间:%d\n", process.finTime);
printf("\t周转时间:%d\n", process.cycTime);
}
void printResult(pro process[], int n)
{
for (int i = 0; i<n; i++) {
printf("进程 %s:\n", process[i].name);
//printf("\t到达时间:%d\n", process[i].arrTime);
//printf("\t服务时间:%d\n", process[i].serTime);
printf("\t完成时间:%d\n", process[i].finTime);
printf("\t周转时间:%d\n", process[i].cycTime);
printf("\t响应比: %.2f\n", process[i].resRation);
}
}
void copy(pro process[], pro tempPro[], int n)
{
for (int i = 0; i<n; i++) {
tempPro[i] = process[i];
//print(tempPro[i]);
}
}
void sortByArrTime(pro process[], int n)
{
for (int i = 0; i