What's new

Closed "Cpu Scheduling first come first serve" C++ mga master sa C++ pa help naman po sa error ko :(

Status
Not open for further replies.

Dj Serena Dez

Eternal Poster
Joined
Jun 7, 2016
Posts
690
Reaction
214
Points
289
#include <stdio.h>
#include <stdlib.h>
#include<iostream>
using namespace std;
#define MAX 100
#define MAX_PROCESS 100

typedef struct
{
int pid;
int arrival_time;
int burst_time;
int waiting_time;
int turnaround_time;
int current_time;
} Process1;

void print_table(Process1 p[], int n);
void print_gantt_chart1(Process1 p[], int n);

void print_table(Process1 p[], int n)
{
int i;

puts("+-----+--------------+---------------------------+-----------------+");
puts("| PID | Arrival Time | Burst Time | Waiting Time | Turnaround Time |");
puts("+-----+--------------+------------+--------------+-----------------+");

for(i=0; i<n; i++) {
printf("| %2d | %2d | %2d | %2d | %2d |\n"
, p.pid, p.arrival_time, p.burst_time, p.waiting_time, p.turnaround_time );
puts("+-----+--------------+------------+--------------+-----------------+");
}

}


void print_gantt_chart1(Process1 p[], int n)
{
int i, j;
// print top bar
printf(" ");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n|");

// printing process id in the middle
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("P%d", p.pid);
for(j=0; j<p.burst_time - 1; j++) printf(" ");
printf("|");
}
printf("\n ");
// printing bottom bar
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf("--");
printf(" ");
}
printf("\n");

// printing the time line
printf("0");
for(i=0; i<n; i++) {
for(j=0; j<p.burst_time; j++) printf(" ");
if(p.turnaround_time > 9) printf("\b"); // backspace : remove 1 space
printf("%d", p.turnaround_time);

}
printf("\n");

}


typedef struct Job {
unsigned int id;
unsigned int arrivaltime;
unsigned int bursttime;
unsigned int currenttime;
bool done;
} Job;

unsigned int time_width = 3;
int total_burst_time = 0;

int jobsN;

Job jobs[100];

void printGCStart() {
unsigned int i;
printf(" --");
for (i = 1; i < total_burst_time ; i++) {
printf("---");
}
printf("\n|");
}

void printGCEnd() {
unsigned int i;
printf("\n");
for (i = 0; i < total_burst_time ; i++) {
printf("|--");
}
printf("|\n");
for (i = 0; i <= total_burst_time ; i++) {
printf("%-*u", time_width, i);
}
printf("\n\n");
}

void scheduleFCFS() {
unsigned int i, x, time = 0;
float y,
avg_waiting_time5 = 0.0,
avg_turnaround_time5 = 0.0;
printf("First Come First Serve Scheduling:\n");
printGCStart();
for (i = 0; i < jobsN; i++) {
x = jobs.bursttime * time_width;
printf("%*u", x - (x/2), jobs.id);
printf("%*c", x/2, '|' );
y = (float)(time - jobs.arrivaltime) / jobsN;
avg_waiting_time5 += y;
avg_turnaround_time5 += y + (jobs.bursttime / jobsN);
time += jobs.bursttime;
}
printGCEnd();
printf("Average Waiting Time: %f\n", avg_waiting_time5);
printf("Average Turnaround Time: %f\n", avg_turnaround_time5);
}


int main()
{
main:
{
Process1 p[MAX];
int i, j, n;
int sum_waiting_time=0, sum_turnaround_time=0;
printf("Enter total number of process: ");
scanf("%d", &n);
printf("Enter Arrival time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.arrival_time);
p.waiting_time = p.turnaround_time = 0;
}
printf("Enter burst time for each process:\n");
for(i=0; i<n; i++) {
p.pid = i+1;
printf("P[%d] : ", i+1);
scanf("%d", &p.burst_time);
p.waiting_time = p.turnaround_time = 0;
}

// calculate waiting time and turnaround time
p[0].turnaround_time = p[0].burst_time;

for(i=1; i<n; i++) {
p.waiting_time = p[i-1].waiting_time + p[i-1].burst_time;
p.turnaround_time = p.waiting_time + p.burst_time;
}

// calculate sum of waiting time and sum of turnaround time
for(i=0; i<n; i++) {
sum_waiting_time += p.waiting_time;
sum_turnaround_time += p.turnaround_time;
}

// print table
puts(""); // Empty line
print_table(p, n);
puts(""); // Empty Line
printf("Total Waiting Time : %-2d\n", sum_waiting_time);
printf("Average Waiting Time : %-2.2lf\n", (double)sum_waiting_time / (double) n);
printf("Total Turnaround Time : %-2d\n", sum_turnaround_time);
printf("Average Turnaround Time : %-2.2lf\n", (double)sum_turnaround_time / (double) n);

// print Gantt chart
puts(""); // Empty line
puts(" GANTT CHART ");
puts(" *********** ");
print_gantt_chart1(p, n);
}
return 0;
}


•••••••••••••••••••••••••••••••••••••••••••••••••••
mga master paki check naman po yung code hindi ko maayos huhuhu :( mali yung nagiging computation niya sa waiting time :( ginawa ko na lahat pero ganun pa rin mga master pa help T-T :(
 
May ganito akong algorithm, kaso sa javascript ko ginawa. May CPU Scheduling, Memory Allocation Algorithm and Disk Scheduling. Gusto mo ba?
 
Sige, pagka-uwi ko mismo, send ko sa'yo.

Anyway, dapat naka do-while loop ka kasi mag e-error kung naka dipende ka lang sa burst time.
 
Naka up 'yung website pero kasi mukhang bukas pa ako makakauwi pero sa ngayon try mo 'yung website.

osalgorithm[dot]000webhostapp[dot]com/
 
Status
Not open for further replies.

Similar threads

Back
Top