//First Come First Serve - CPU Scheduling Algorithm
#include<iostream>
#include<vector>
using namespace std;
struct Process {
int process_number;
int arrival_time;
int burst_time;
int completion_time;
int waiting_time;
int turn_around_time;
Process(int _process_number, int _arrival_time, int _burst_time) {
process_number = _process_number;
arrival_time = _arrival_time;
burst_time = _burst_time;
}
};
int main() {
cout << "Enter the number of processes: ";
int total_processes;
cin >> total_processes;
vector<Process> processes;
for(int i = 1;i <= total_processes;i++) {
int arrival_time, burst_time;
cin >> arrival_time >> burst_time;
Process process(i, arrival_time, burst_time);
processes.push_back(process);
}
int current_time = 0;
for(auto &process : processes) {
process.completion_time = current_time + process.burst_time;
process.turn_around_time = process.completion_time - process.arrival_time;
process.waiting_time = process.turn_around_time - process.burst_time;
current_time = process.completion_time;
}
for(auto process : processes) {
cout << "Process Number : " << process.process_number << endl;
cout << "Arrival Time : " << process.arrival_time << endl;
cout << "Burst Time : " << process.burst_time<< endl;
cout << "Completion Time : " << process.completion_time << endl;
cout << "Waiting Time : " << process.waiting_time << endl;
cout << "Turn around TIme: " << process.turn_around_time << endl;
cout << endl;
}
return 0;
}