include <stdiao.h>
typedef struct {
int pid;
int arrival;
int burst;
int remaining_burst;
int waiting_time;
int turnaround_time;
int weighted_turnaround_time;
int priority;
} Process;
int main() {
printf("请输入进程数量: ");
scanf_s("%d", &n);
Process ;processes[n];
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个进程的到达时间和服务时间: ", i + 1);
scanf_s("%d %d", &processes[i].arrival, &processes[i].burst);
processes[i].pid = i + 1;
}
qsort(processes, n, sizeof(Process), compare_arrival);
int choice;
printf("请选择调度算法:\n1. FCFS\n2. SJF\n3. 优先级调度\n4. 轮询调度 (Round Robin)\n");
scanf_s("%d", &choice);
switch (choice) {
case 1:
FCFS(processes);
break;
case 2:
SJF(processes);
break;
case 3:
PriorityScheduling(processes);
break;
case 4:
{
int time_quantum;
printf("请输入时间片大小: ");
scanf_s("%d", &time_quantum);
RoundRobin(processes, time_quantum);
break;
}
default:
printf("无效选择\n");
}
return 0;
}