Untitled

 avatar
unknown
plain_text
18 days ago
1.3 kB
3
Indexable
#include <bits/stdc++.h>
using namespace std;
struct P { int id, bt, wt, tat; };
bool cmp(P a, P b) { return a.bt < b.bt; }

int main() {
    int n = 10, total_wt = 0, total_tat = 0;
    P p[n];

    cout << "Enter Burst Time (BT) for " << n << " processes:\n";
    for (int i = 0; i < n; i++) { p[i].id = i + 1; cin >> p[i].bt; }

    sort(p, p + n, cmp);
    p[0].wt = 0;
    for (int i = 1; i < n; i++) p[i].wt = p[i - 1].wt + p[i - 1].bt;
    for (int i = 0; i < n; i++) {
        p[i].tat = p[i].wt + p[i].bt;
        total_wt += p[i].wt;
        total_tat += p[i].tat;
    }

    cout << "\nProcess Details:\n";
    cout << "ID\tBT\tWT\tTAT\n";
    for (int i = 0; i < n; i++) 
        cout << p[i].id << "\t" << p[i].bt << "\t" << p[i].wt << "\t" << p[i].tat << "\n";

    cout << "\nAverage Waiting Time: " << (float)total_wt / n;
    cout << "\nAverage Turnaround Time: " << (float)total_tat / n << "\n";

    // Gantt Chart
    cout << "\nGantt Chart:\n ";
    for (int i = 0; i < n; i++) cout << "----";
    cout << "\n|";
    for (int i = 0; i < n; i++) cout << " P" << p[i].id << " |";
    cout << "\n ";
    for (int i = 0; i < n; i++) cout << "----";
    cout << "\n0";
    for (int i = 0; i < n; i++) cout << setw(4) << p[i].wt + p[i].bt;
    cout << "\n";
}
Leave a Comment