//round robin #include<stdio.h> #include<conio.h> #include<iostream.h> struct process { int pid; int atime; int wtime; int left; int btime; int ttime; int finish; }pro[5]; int i=0; int finish() { int j; for(j=0;j<i;j++) { if(pro[j].finish==0) { return 0; } } return 1; } void main() { clrscr(); char chart[100]; char symbol[5]={'1','2','3','4','5'}; int choice=1; float awtime=0,attime=0; do { cout<<"Do you have a process?(1/0)\n"; cin>>choice; if(choice==1) { cout<<"Process id:"; cin>>pro[i].pid; cout<<"Arrival time:"; cin>>pro[i].atime; cout<<"Burst time:"; cin>>pro[i].btime; pro[i].left=pro[i].btime; pro[i].finish=0; i++; } }while(choice==1);
clrscr(); cout<<"Gauntt Chart\n"; int tslice=4; int s=0; int flag; int totaltime=0; int j,c; do { flag=1; for(j=0;j<i;j++) { if((pro[j].atime<=totaltime)&&(pro[j].finish==0)) { flag=0; if(pro[j].left>tslice) { pro[j].left=pro[j].left-tslice; totaltime+=tslice; for(int d=0;d<tslice;d++) { textcolor(j+1); cprintf("%c",char(219)); chart[s]=symbol[j]; s++; } }//end of if 2 else { totaltime+=pro[j].left; pro[j].finish=1; pro[j].wtime=totaltime-pro[j].atime-pro[j].btime; pro[j].ttime=totaltime-pro[j].atime; for(int d=0;d<pro[j].left;d++) { textcolor(j+1); cprintf("%c",char(219)); chart[s++]=symbol[j]; } pro[j].left=0; } }//end of for if(flag==1) { c=finish(); if(c!=1) { textcolor(i); cprintf("%c",char(219)); totaltime++; chart[s++]='i'; } }