Advertisement
Dark_Shard

GanttChartInProgress

Jul 25th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 20.14 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int cols = 9;
  8.     int row = 5;
  9.     int temp = 0;
  10.     int tempb = 0;
  11.     int counterb = 0;
  12.     int temp_endTime = 0;
  13.     int tempIndex =0 ;
  14.  
  15.     string header ="";
  16.  
  17.  
  18.     int counter = 0;
  19.     int arraycounter = 0;
  20.     int response=0;
  21.  
  22.     int final_time = 0;
  23.  
  24.     int idle = 0;
  25.     int idle_counter= 0  ;
  26.  
  27.  
  28.  
  29.  
  30.  
  31.     int average_wt = 0;
  32.     int average_bt = 0;
  33.     int average_tt = 0 ;
  34.     int average_at = 0;
  35.  
  36.  
  37.     int temp_var = 0;
  38.     cout << "Choose your CPU Scheduling Policy(1- FCFS\t2- SJF\t\t3- Priority)" << endl;
  39.     cin >> response;
  40.     while(cin.fail()|| response < 1 || response > 3)
  41.     {
  42.         cin.clear();
  43.         cin.ignore(512,'\n');
  44.         cout << "Invalid Input. Please try again." << endl;
  45.          cout << "Choose your CPU Scheduling(1- FCFS\t2- SJF\t\t3- Priority )" << endl;
  46.          cin>> response;
  47.     }
  48.     switch(response)
  49.     {
  50.         case 1:
  51.             header = "First Come, First Serve Scheduling";
  52.             break;
  53.  
  54.         case 2:
  55.             header = "Shortest Job First Scheduling";
  56.             break;
  57.  
  58.         case 3:
  59.             header = "Priority Scheduling";
  60.             break;
  61.     }
  62.  
  63.  
  64.     cout  << header   <<endl;
  65.     cout << "--------------------------------------------------------------------------------" << endl;
  66.     cout << "Input number of processes" << endl;
  67.     cin >> row;
  68.  
  69.     while(cin.fail())
  70.             {
  71.                 cin.clear();
  72.                 cin.ignore(512, '\n');
  73.                 cout << "Input error " << endl;
  74.                 cout << "Input number of processes" << endl;
  75.                 cin >> row;
  76.             }
  77.  
  78.     while(row>10 || row <= 0)
  79.     {
  80.         cout << "Processes cannot be more than 10 or less than 1. Please input another value." << endl;
  81.         cin >> row;
  82.         while(cin.fail())
  83.             {
  84.                 cin.clear();
  85.                 cin.ignore(512, '\n');
  86.                 cout << "Input error " << endl;
  87.                 cout << "Input number of processes" << endl;
  88.                 cin >> row;
  89.             }
  90.     }
  91.     /*  Indexes~
  92.     *   0 - PID
  93.     *   1 - Arv Time
  94.     *   2 - Burst Time
  95.     *   3 - Waiting Time
  96.     *   4 - Turnaround Time
  97.     *   5 - End Time
  98.     *   6 - Start Time
  99.     *   7 - Idle Time
  100.     *   8 - Priority (conditional)
  101.     *
  102.     */
  103.  
  104.     int cpuTime[row][cols] = {{0,0,0,0,0,0,0,0,0}};
  105.  
  106.     cout << endl;
  107.     cout << "------------------------------" << endl;
  108.     cout << "Arrival Time" << endl;
  109.  
  110.     for(int input = 0 ; input < row ; input++)
  111.     {
  112.  
  113.  
  114.             cpuTime[input][0] = input+1;
  115.             cout << "Input arrival time of process of " << " Process "  << cpuTime[input][0]  << endl;
  116.             cin >> cpuTime[input][1];
  117.  
  118.             while(!cin)
  119.             {
  120.                 cin.clear();
  121.                 cin.ignore(512, '\n');
  122.                 cout << "Input error" << endl;
  123.                 cout << "Input arrival time of process of " << " Process "  << cpuTime[input][0]  << endl;
  124.                 cin >> cpuTime[input][1];
  125.             }
  126.             cout << endl;
  127.     }
  128.  
  129.     cout << endl;
  130.     cout << "------------------------------" << endl;
  131.     cout << "Burst Time" << endl;
  132.  
  133.     for(int secondinput = 0 ; secondinput < row; secondinput++)
  134.     {
  135.  
  136.             cout << "Input the burst time of " << "Process " << cpuTime[secondinput][0]<< endl;
  137.             cin >> cpuTime[secondinput][2];
  138.  
  139.             while(!cin)
  140.             {
  141.                 cin.clear();
  142.                 cin.ignore(512, '\n');
  143.                 cout << "Input error" << endl;
  144.                 cout << "Input the burst time  " << endl;
  145.                 cin >> cpuTime[secondinput][2];
  146.             }
  147.             cout << endl;
  148.  
  149.     }
  150.      cout << "------------------------------" << endl;
  151.     cout << "Priority" << endl;
  152.     if(response == 3)
  153.     {
  154.         for(int prio = 0 ; prio < row ; prio++)
  155.         {
  156.             cout << "Input Priority level of Process " << cpuTime[prio][0] <<endl;
  157.             cin >> cpuTime[prio][8];
  158.             cout << endl;
  159.         }
  160.     }
  161.  
  162.  
  163.  
  164.  
  165.     for(int sortvar = 0 ; sortvar < row - 1 ; sortvar++)
  166.     {
  167.         for(int sort2 = 0; sort2 < row-sortvar-1 ; sort2++)
  168.         {
  169.             if(cpuTime[sort2][1] > cpuTime[sort2+1][1])        // according to arrival time
  170.             {
  171.                 temp_var = cpuTime[sort2][0];
  172.                 cpuTime[sort2][0] = cpuTime[sort2+1][0];            // Process Number Swap
  173.                 cpuTime[sort2+1][0] = temp_var;
  174.  
  175.                 temp_var = cpuTime[sort2][1];
  176.                 cpuTime[sort2][1] = cpuTime[sort2+1][1];            // Arrival Time Swap
  177.                 cpuTime[sort2+1][1] =  temp_var;
  178.  
  179.                 temp_var = cpuTime[sort2][2];
  180.                  cpuTime[sort2][2] =  cpuTime[sort2+1][2];          // Burst Time Swap
  181.                  cpuTime[sort2+1][2] = temp_var;
  182.  
  183.                  temp_var = cpuTime[sort2][8];
  184.                  cpuTime[sort2][8]= cpuTime[sort2+1][8];
  185.                  cpuTime[sort2+1][8] = temp_var;
  186.  
  187.             }
  188.         }
  189.     }
  190.  
  191.  
  192.     cout << "Sorted(Acc. Arrival Time)" << endl;
  193.     cout << "------------------------------" << endl;
  194.     cout << "Process\t" << "Arrival Time\t"  << "Burst Time\t";
  195.     cout << endl;
  196.     for(int print = 0; print < row ; print++)
  197.     {
  198.         cout << cpuTime[print][0] << "\t" << cpuTime[print][1] << "\t\t\t" << cpuTime[print][2] << "\t";
  199.         cout << endl;
  200.     }
  201.  
  202.  
  203.  
  204.     if(response == 2)                               // if user chooses SJF hmmm~
  205.     {
  206.  
  207.         for(int sortvar = 0; sortvar < row - 1; sortvar++)  // starts with the first index cause the first process would already be the lowest arrival time (not needed to be sorted no moreee)~
  208.         {
  209.             for(int sort2 = 1; sort2< row-sortvar-1; sort2++)
  210.             {
  211.                 if(cpuTime[sort2][2]> cpuTime[sort2+1][2])
  212.                 {
  213.                      temp_var = cpuTime[sort2][0];
  214.                 cpuTime[sort2][0] = cpuTime[sort2+1][0];            // Process Number Swap
  215.                 cpuTime[sort2+1][0] = temp_var;
  216.  
  217.                 temp_var = cpuTime[sort2][1];
  218.                 cpuTime[sort2][1] = cpuTime[sort2+1][1];            // Arrival Time Swap
  219.                 cpuTime[sort2+1][1] =  temp_var;
  220.  
  221.                 temp_var = cpuTime[sort2][2];
  222.                  cpuTime[sort2][2] =  cpuTime[sort2+1][2];          // Burst Time Swap
  223.                  cpuTime[sort2+1][2] = temp_var;
  224.  
  225.  
  226.                 }
  227.             }
  228.         }
  229.  
  230.  
  231.  
  232.     cout << "Sorted(Acc. Burst Time)" << endl;
  233.     cout << "------------------------------" << endl;
  234.     cout << "Process\t" << "Arrival Time\t"  << "Burst Time\t" << endl;
  235.  
  236.         for(int print = 0 ; print < row; print++)
  237.         {
  238.             cout << cpuTime[print][0] << "\t" << cpuTime[print][1] << "\t\t\t" << cpuTime[print][2] << endl;
  239.         }
  240.     }
  241.  
  242.  
  243.  
  244.     /*else if(response == 3)  // if user chooses Priority(woaaah priorities)
  245.     {
  246.         for(int sort = 1; sort < row - 1; sort++)   // starts with the first index cause the first process would already be the lowest arrival time (not needed to be sorted no moreee)~
  247.         {
  248.             for(int sort2 = 1; sort2< row-sort-1; sort2++)
  249.             {
  250.                 if(cpuTime[sort2][8]> cpuTime[sort2+1][8])
  251.                 {
  252.                 temp_var = cpuTime[sort2][0];
  253.                 cpuTime[sort2][0] = cpuTime[sort2+1][0];            // Process Number Swap
  254.                 cpuTime[sort2+1][0] = temp_var;
  255.  
  256.                 temp_var = cpuTime[sort2][1];
  257.                 cpuTime[sort2][1] = cpuTime[sort2+1][1];            // Arrival Time Swap
  258.                 cpuTime[sort2+1][1] =  temp_var;
  259.  
  260.                 temp_var = cpuTime[sort2][2];
  261.                  cpuTime[sort2][2] =  cpuTime[sort2+1][2];          // Burst Time Swap
  262.                  cpuTime[sort2+1][2] = temp_var;
  263.  
  264.                  temp_var = cpuTime[sort2][8];                  //Priority Swap
  265.                  cpuTime[sort2][8] = cpuTime[sort2+1][8];
  266.                  cpuTime[sort2+1][8] = temp_var;
  267.  
  268.                 }
  269.             }
  270.         }
  271.     }*/
  272.  
  273.        if(response == 3) // this is arranging it on how it will be presented in gantt chart for prio cpu scheduling
  274.     {
  275.  
  276.         counter = 0;
  277.         for(int a = 1 ; a<row; a++)
  278.         {
  279.             temp_endTime = cpuTime[a-1][1] + cpuTime[a-1][2];
  280.             tempIndex = a;
  281.             counter = tempIndex+1;
  282.             while(counter < row)
  283.             {
  284.                 if(cpuTime[tempIndex][8] > cpuTime[counter][8] && cpuTime[counter-1][1] <= temp_endTime)
  285.                 {
  286.                     tempb = cpuTime[tempIndex][8];
  287.                     cpuTime[tempIndex][8] = cpuTime[counter][8];
  288.                     cpuTime[counter][8] = tempb;
  289.  
  290.                     tempb = cpuTime[tempIndex][7];
  291.                     cpuTime[tempIndex][7] = cpuTime[counter][7];
  292.                     cpuTime[counter][7] = tempb;
  293.  
  294.                     tempb = cpuTime[tempIndex][6];
  295.                     cpuTime[tempIndex][6] = cpuTime[counter][6];
  296.                     cpuTime[counter][6] = tempb;
  297.  
  298.                     tempb = cpuTime[tempIndex][5];
  299.                     cpuTime[tempIndex][5] = cpuTime[counter][5];
  300.                     cpuTime[counter][5] = tempb;
  301.  
  302.                     tempb = cpuTime[tempIndex][4];
  303.                     cpuTime[tempIndex][4] = cpuTime[counter][4];
  304.                     cpuTime[counter][4] = tempb;
  305.  
  306.                     tempb = cpuTime[tempIndex][3];
  307.                     cpuTime[tempIndex][3] = cpuTime[counter][3];
  308.                     cpuTime[counter][3] = tempb;
  309.  
  310.                     tempb = cpuTime[tempIndex][2];
  311.                     cpuTime[tempIndex][2] = cpuTime[counter][2];
  312.                     cpuTime[counter][2] = tempb;
  313.  
  314.                     tempb = cpuTime[tempIndex][1];
  315.                     cpuTime[tempIndex][1] = cpuTime[counter][1];
  316.                     cpuTime[counter][1] = tempb;
  317.  
  318.                     tempb = cpuTime[tempIndex][0];
  319.                     cpuTime[tempIndex][0] = cpuTime[counter][0];
  320.                     cpuTime[counter][0] = tempb;
  321.                 }
  322.  
  323.                 counter++;
  324.             }
  325.  
  326.  
  327.  
  328.              //temp_endTime=cpuTime[a][2]+cpuTime[a][1];
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.         }
  337.         counter = 0;
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.         }
  345.         cout << "Sorted (Acc. Priority Level)" << endl;
  346.         cout << "------------------------------" << endl;
  347.         cout << "Process\t" << "Arrival Time\t"  << "Burst Time\t" << endl;
  348.         for(int print =0 ; print < row; print++)
  349.         {
  350.             cout << cpuTime[print][0] << "\t\t" << cpuTime[print][1] << "\t\t\t" << cpuTime[print][2] << "\t\t" << cpuTime[print][8] << endl;
  351.         }
  352.  
  353.     /*  Indexes~
  354.     *   0 - PID
  355.     *   1 - Arv Time
  356.     *   2 - Burst Time
  357.     *   3 - Waiting Time
  358.     *   4 - Turnaround Time
  359.     *   5 - End Time
  360.     *   6 - Start Time
  361.     *   7 - Idle Time
  362.     *   8 - Priority (conditional)
  363.     *
  364.     */
  365.  
  366.     for(int cal = 0; cal < row; cal++)          //Getting the start time, end time, waiting time, turnaround time of each process
  367.     {
  368.         if(cal == 0)
  369.         {
  370.                 cpuTime[cal][6] = cpuTime[cal][1]; // start time would be the arrival time of first proc
  371.                 if(cpuTime[cal][1]>0)
  372.                 {
  373.                     cpuTime[cal][7] = cpuTime[cal][1];
  374.  
  375.                 }
  376.                 cpuTime[cal][5] = cpuTime[cal][1] + cpuTime[cal][2]; // et = at + bt
  377.                 cpuTime[cal][3] = cpuTime[cal][6] - cpuTime[cal][1]; // wt = st - at
  378.                 cpuTime[cal][4] = cpuTime[cal][5] - cpuTime[cal][1]; // tt = et - at
  379.                 average_at+= cpuTime[cal][1];
  380.                 average_bt+= cpuTime[cal][2];
  381.                 average_wt+= cpuTime[cal][3];
  382.                 average_tt+= cpuTime[cal][4];
  383.  
  384.                 continue;
  385.         }
  386.  
  387.         if(cpuTime[cal][1] - cpuTime[cal-1][5] > 0) // if curr arv time - previous end time > 0 then implement idle time
  388.         {
  389.  
  390.             cpuTime[cal][7] = cpuTime[cal][1] - cpuTime[cal-1][5];
  391.             cpuTime[cal][6] = cpuTime[cal][1];
  392.         }
  393.  
  394.         else{
  395.             cpuTime[cal][6] = cpuTime[cal-1][5];
  396.         }
  397.         cpuTime[cal][5] = cpuTime[cal][6] + cpuTime[cal][2]; // et = at + bt
  398.         cpuTime[cal][3] = cpuTime[cal][6] - cpuTime[cal][1]; // wt = st - at
  399.         cpuTime[cal][4] = cpuTime[cal][5] - cpuTime[cal][1];
  400.         average_at+= cpuTime[cal][1];
  401.         average_bt+= cpuTime[cal][2];
  402.         average_wt+= cpuTime[cal][3];
  403.         average_tt+= cpuTime[cal][4];
  404.         if(cal == row - 1)
  405.         {
  406.             final_time = cpuTime[cal][5];
  407.         }
  408.  
  409.     }
  410.  
  411.  
  412.  
  413.  
  414.  
  415.     average_at/=row;
  416.     average_bt/= row;
  417.     average_wt/= row;
  418.     average_tt/= row;
  419.     cout << endl << endl << endl;
  420.  
  421.     cout << "With Calculated Waiting Time and Turn Around Time" << endl;
  422.     cout << "+---------------------------------------------------------------------------+" << endl;
  423.     cout << "PID\t" << "Arrival Time\t" << "Burst Time\t" << "Waiting Time\t" << "Turn Around Time\t";
  424.     if(response == 3)
  425.     {
  426.         cout << "Priority";
  427.     }
  428.     cout << endl;
  429.     for(int print = 0 ; print < row ; print++)
  430.     {
  431.         cout << cpuTime[print][0] << "\t     " << cpuTime[print][1] << "\t\t " << cpuTime[print][2] << "\t\t\t" << cpuTime[print][3] << "\t\t"<< cpuTime[print][4] << "\t\t\t";
  432.         if(response == 3)
  433.         {
  434.             cout << cpuTime[print][8];
  435.         }
  436.         cout << endl;
  437.     }
  438.     cout << "+---------------------------------------------------------------------------+" << endl;
  439.     cout << "Type of Scheduling: " << header << endl;
  440.     cout << "Total Number of Process/es: " << row << endl;
  441.     cout << "Average Arrival Time: " << average_at << endl;
  442.     cout << "Average Waiting Time: " << average_wt << endl;
  443.     cout << "Average Burst Time: " << average_bt << endl;
  444.     cout << "Average Turnaround Time: " << average_tt << endl;
  445.     cout << "Process Endtime: " << final_time << endl;
  446.  
  447.     /*  Indexes~
  448.     *   0 - PID
  449.     *   1 - Arv Time
  450.     *   2 - Burst Time
  451.     *   3 - Waiting Time
  452.     *   4 - Turnaround Time
  453.     *   5 - End Time
  454.     *   6 - Start Time
  455.     *   7 - Idle Time
  456.     *   8 - Priority (conditional)
  457.     *
  458.     */
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.     cout << "-----------------------------------------------------------------------------" << endl;
  466.     cout<< "\t\t\t\tGantt Chart" << endl;
  467.     cout << "      ";
  468.  
  469.  
  470.     // Gantt Chart Starttooo
  471.      for(int a = 0 ; a < 68; a++)
  472.     {
  473.         cout << "-";
  474.     }
  475.  
  476.  
  477.     cout << endl;
  478.  
  479.  
  480.     cout << "      ";
  481.     for(int b = 0; b < 204; b++)
  482.     {
  483.         switch (b)
  484.         {
  485.             case 0:
  486.  
  487.             case 2: // idle block first line
  488.             case 5:
  489.             case 9:
  490.             case 12:
  491.             case 16:
  492.             case 19:
  493.             case 23:
  494.             case 26:
  495.             case 30:
  496.             case 32:
  497.             case 36:
  498.             case 39:
  499.             case 43:
  500.             case 46:
  501.             case 50:
  502.             case 53:
  503.             case 57:
  504.             case 60:
  505.             case 64: // last idle block first line
  506.  
  507.             case 70: // first idle block second line
  508.             case 72:
  509.             case 76:
  510.             case 78:
  511.             case 82:
  512.             case 84:
  513.             case 88:
  514.             case 90:
  515.             case 93:
  516.             case 95:
  517.             case 99:
  518.             case 101:
  519.             case 104:
  520.             case 107:
  521.             case 110:
  522.             case 113:
  523.             case 116:
  524.             case 119:
  525.             case 122:
  526.  
  527.             case 128:
  528.             case 131: /// 3rd idle
  529.             case 135:
  530.             case 138:
  531.             case 142:
  532.             case 145:
  533.             case 149:
  534.             case 152:
  535.             case 156:
  536.             case 158:
  537.             case 162:
  538.             case 165:
  539.             case 169:
  540.             case 172:
  541.             case 176:
  542.             case 179:
  543.             case 183:
  544.             case 186:
  545.             case 190:
  546.  
  547.  
  548.  
  549.  
  550.             case 7:
  551.             case 14:
  552.             case 21: // first line of barlines
  553.             case 28:
  554.  
  555.             case 34:
  556.  
  557.             case 41:
  558.             case 48:
  559.             case 55:
  560.             case 62:
  561.  
  562.  
  563.             case 125:
  564.  
  565.  
  566.             case 133:
  567.             case 140:
  568.             case 147:
  569.             case 154:
  570.  
  571.             case 160:
  572.             case 167:
  573.             case 174:
  574.             case 181:
  575.             case 188:
  576.             case 193:
  577.  
  578.  
  579.  
  580.             case 67:
  581.  
  582.  
  583.                 //135 middle barline right
  584.                 cout << "|";
  585.                 if(b == 67 || b == 125)
  586.                 {
  587.                     cout << endl;
  588.                 }
  589.                 break;
  590.  
  591.  
  592.  
  593.             case 68:
  594.             case 126:
  595.                 //68 middle barline left
  596.                 if(b == 126)
  597.                 {
  598.                     cout << "      |";
  599.                     break;
  600.                 }
  601.                 cout << "      |";
  602.  
  603.                 break;
  604.  
  605.             case 71: //1
  606.             case 77:// 2
  607.             case 83://3
  608.             case 89: //4
  609.             case 94: //5
  610.             case 100: //6
  611.             case 106: // 7
  612.             case 112:
  613.             case 118:
  614.             case 123:
  615.  
  616.  
  617.                 if(counter < row)
  618.                 {
  619.                     cout << "P"  << cpuTime[counter][0];
  620.                     counter++;
  621.                 }
  622.                 else{
  623.                     cout << " x";
  624.                 }
  625.                 break;
  626.  
  627.             case 69:
  628.             case 74:
  629.             case 80:
  630.             case 86:
  631.             case 92:
  632.             case 98:
  633.             case 105:
  634.             case 109:
  635.             case 114:
  636.             case 120:
  637.  
  638.                 cout << "I";
  639.                 break;
  640.  
  641.             default:
  642.                 cout << " ";
  643.                 break;
  644.         }
  645.     }
  646.     cout << endl;
  647.     cout << "      ";
  648.  
  649.     for(int a = 0 ; a < 68; a++)
  650.     {
  651.         cout << "-";
  652.     }
  653.  
  654.     cout << endl;
  655.     cout << "      ";
  656.     for(int label = 0 ; label < 68; label++)
  657.     {
  658.         switch(label)
  659.         {
  660.             case 0:
  661.             case 7:
  662.             case 14:
  663.             case 21:
  664.             case 28:
  665.             case 35:
  666.             case 42:
  667.             case 49:
  668.             case 56:
  669.             case 63:
  670.             case 70:
  671.                 if(arraycounter <= row)
  672.                 {
  673.                     if(arraycounter == row)
  674.                     {
  675.                         cout << final_time;
  676.                         arraycounter++;
  677.                         break;
  678.                     }
  679.  
  680.                     if(cpuTime[arraycounter][7] > 0) // if next index of idle time > 0
  681.                     {
  682.                         if(arraycounter == 0)
  683.                         {
  684.                             cout << "|I|";
  685.  
  686.                         }
  687.                         else{
  688.                             cout <<"\b\b\b\b" <<cpuTime[arraycounter-1][5] << "|I|";
  689.                         }
  690.  
  691.  
  692.                     }
  693.                     cout << cpuTime[arraycounter][6];
  694.  
  695.  
  696.                     arraycounter++;
  697.                 }
  698.                 else{
  699.                     cout << "-";
  700.                 }
  701.                 break;
  702.  
  703.             default:
  704.                 cout << " ";
  705.                 break;
  706.         }
  707.     }
  708.     cout << endl;
  709.     cout << endl;
  710.  
  711.     while(idle < row-1)
  712.     {
  713.         if(idle == 0)
  714.         {
  715.             cout << "Idle time before Process " << cpuTime[idle][0]  << " starts " << cpuTime[idle_counter][7] << endl;
  716.             idle_counter++;
  717.         }
  718.  
  719.         cout << "Idle time between Process " << cpuTime[idle][0] << " and " << cpuTime[idle+1][0] << " is: " << cpuTime[idle_counter][7] << endl;
  720.         idle++;
  721.         idle_counter++;
  722.         }
  723.  
  724.      for(int sortvar = 0 ; sortvar < row - 1 ; sortvar++)
  725.     {
  726.         for(int sort2 = 0; sort2 < row-sortvar-1 ; sort2++)
  727.         {
  728.             if(cpuTime[sort2][0] > cpuTime[sort2+1][0])        // according to arrival time
  729.             {
  730.                 temp_var = cpuTime[sort2][0];
  731.                 cpuTime[sort2][0] = cpuTime[sort2+1][0];            // Process Number Swap
  732.                 cpuTime[sort2+1][0] = temp_var;
  733.  
  734.                 temp_var = cpuTime[sort2][1];
  735.                 cpuTime[sort2][1] = cpuTime[sort2+1][1];            // Arrival Time Swap
  736.                 cpuTime[sort2+1][1] =  temp_var;
  737.  
  738.                 temp_var = cpuTime[sort2][2];
  739.                  cpuTime[sort2][2] =  cpuTime[sort2+1][2];          // Burst Time Swap
  740.                  cpuTime[sort2+1][2] = temp_var;
  741.  
  742.                  temp_var = cpuTime[sort2][3];
  743.                  cpuTime[sort2][3]= cpuTime[sort2+1][3];
  744.                  cpuTime[sort2+1][3] = temp_var;
  745.  
  746.                  temp_var = cpuTime[sort2][4];
  747.                  cpuTime[sort2][4]= cpuTime[sort2+1][4];
  748.                  cpuTime[sort2+1][4] = temp_var;
  749.  
  750.             }
  751.         }
  752.     }
  753.     cout << endl;
  754.     cout << "+---------------------------------------------------------------------------+" << endl;
  755.     cout << "Process ID Sorted With Calculated Waiting Time and Turn Around Time" << endl;
  756.     cout << "+---------------------------------------------------------------------------+" << endl;
  757.     cout << "PID\t" << "Arrival Time\t" << "Burst Time\t" << "Waiting Time\t" << "Turn Around Time\t";
  758.     if(response == 3)
  759.     {
  760.         cout << "Priority";
  761.     }
  762.     cout << endl;
  763.     for(int print = 0 ; print < row ; print++)
  764.     {
  765.         cout << cpuTime[print][0] << "\t     " << cpuTime[print][1] << "\t\t " << cpuTime[print][2] << "\t\t\t" << cpuTime[print][3] << "\t\t"<< cpuTime[print][4] << "\t\t\t";
  766.         if(response == 3)
  767.         {
  768.             cout << cpuTime[print][8];
  769.         }
  770.         cout << endl;
  771.     }
  772.     cout << "+---------------------------------------------------------------------------+" << endl;
  773. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement