Upload
metal28032013
View
218
Download
0
Embed Size (px)
Citation preview
7/28/2019 Lap Lich CPU
1/14
Phn 2: Bi tp lp lch CPU
Yu cu: Lp trnh cc thut ton FCFS, SJF, SRT v RR bng ngnng C++
Code:
#include "math.h"#include "conio.h"#include "stdio.h"#include "iomanip.h"#include "iostream.h"#include "string.h"#include "alloc.h"
//////////////////Bat dau khai bao cau truc du lieu////////struct tientrinh{char name[3];int txh;int tth;int color;int status;};struct kq
{char name[3];int th;int color;
};struct kt{char name[3];int tkt;//thoi gian ket thuc//};tientrinh a[10];
int n;//////////////////HET khai bao cau truc du lieu////////////////////////////////HAM VE TIEN TRINH///////////////////////////void veTT(kq k[],int d){textbackground(BLACK);window(1,5,80,25);clrscr();int Toadoc=0;int Tong=0;for(int i=0;i
7/28/2019 Lap Lich CPU
2/14
{for(int j=1;j
7/28/2019 Lap Lich CPU
3/14
{if(strcmp(a[i].name,b[j].name)==0){c[d2]=b[j].tkt-a[i].txh-a[i].tth;d2++;}
}
int T=0;for(i=0;i
7/28/2019 Lap Lich CPU
4/14
for(i=1;i=a[i].txh){
strcpy(k[d].name,a[i].name);k[d].th=a[i].tth;k[d].color=a[i].color;d=d+1;curentt=curentt+a[i].tth;
}
else{strcpy(k[d].name,"p*");
k[d].th=a[i].txh-curentt;k[d].color=13;curentt=a[i].txh;d=d+1;strcpy(k[d].name,a[i].name);k[d].th=a[i].tth;k[d].color=a[i].color;d=d+1;curentt=a[i].tth + curentt;}
}
veTT(k,d);}////////////////////KET THUC FCFS///////////////////////////////////////////////////BAT DAU SJF ///////////////////////////////void SJF(tientrinh a[],int n){// sap xep tien trinh theo su tang dan cua txhfor(int i=0;i
7/28/2019 Lap Lich CPU
5/14
kq k[100];int d=0;while(dk
7/28/2019 Lap Lich CPU
6/14
}veTT(realkq,rd+1);/////////////////KET THUC CHUAN HOA KET QUA//////////////////}//////het SJF//////////////BAT DAU SRT//////////////////////////////////////////////
void SRT(tientrinh a[],int n){// sap xep tien trinh theo su tang dan cua txhfor(int i=0;i
7/28/2019 Lap Lich CPU
7/14
dk=dk+1;}if(kt==0){strcpy(k[d].name,"p*");k[d].th=1;
k[d].color=13;}d=d+1;current=current+1;
}
kq realkq[10];int rd=0;realkq[rd]=k[0];
for(i=0;i
7/28/2019 Lap Lich CPU
8/14
}}int T1=0;int T2=0;int ut;//Van de o phia duoi///////////
// khoi tao ban dauif(a1[0].tth>=q){a1[0].tth=a1[0].tth-q;T2=q;k[0].th=q;k[0].color=a1[0].color;}else{k[0].th=a1[0].tth;
k[0].color=a1[0].color;T2=a1[0].tth;a1[0].tth=0;}
strcpy(k[0].name,a1[0].name);d1=1;
///het khoi tao////
que[d2]=a1[0];d2=d2+1;ut=0;a1[0].status=1;//ket thuc khoi tao
// tao queint dk=1;
int find;int kt;while(dk=T1;t--){for(i=0;i
7/28/2019 Lap Lich CPU
9/14
break;}
if( kt==0){
int kt1=0;int l=0;while(l0)// thuc hien que[ut]{strcpy(k[d1].name,que[ut].name);if(que[ut].tth>=q){que[ut].tth=que[ut].tth-q;k[d1].color=que[ut].color;k[d1].th=q;
//T2=T2+q;}else{k[d1].th= que[ut].tth;k[d1].color=que[ut].color;//T2=T2+que[ut].tth;que[ut].tth=0;}d1++;kt1=1;
ut=ut+1;if(ut==d2)ut=0;break;}else{ut=ut+1;if(ut==d2)ut=0;}
l++;}if(kt1==0){strcpy(k[d1].name,"p*");k[d1].th=1;k[d1].color=13; // mau cua p* la mau tim nhatd1=d1+1;
T2=T2+1;}}
if(kt==1){
7/28/2019 Lap Lich CPU
10/14
strcpy(k[d1].name,a1[find].name);if(a1[find].tth>=q){a1[find].tth=a1[find].tth-q;k[d1].th =q;k[d1].color=a1[find].color;
T2=T2+q;}else{T2=T2+a1[find].tth;k[d1].th=a1[find].tth;k[d1].color=a1[find].color;a1[find].tth=0;
}d1++;que[d2]=a1[find];
d2++;dk++;}}///////////////////////////////////////////////tientrinh que1[100];int m=0;strcpy(que1[m].name,k[d1-1].name);
m=m+1;
for(i=d1-2;i>=0;i--){ int check=0;for(int j=0;j
7/28/2019 Lap Lich CPU
11/14
///int dem=0;for(i=0;i0){strcpy(k[d1].name,que1[i].name);if(que1[i].tth>q){que1[i].tth=que1[i].tth-q;k[d1].th=q;k[d1].color=que1[i].color;
}else{k[d1].th=que1[i].tth;que1[i].tth=0;k[d1].color=que1[i].color;dem=dem+1;}d1=d1+1;}}}///
kq realkq[10];int rd=0;realkq[rd]=k[0];
for(i=0;i
7/28/2019 Lap Lich CPU
12/14
{textcolor(mc);textbackground(mn);window(cot,dong,cot+dai,dong);clrscr();cout
7/28/2019 Lap Lich CPU
13/14
/////////////////////////HET MENU/////////////////////////main(){clrscr();
inputdata();int* ch;char nd[6][35];strcpy(nd[1],"FCFS");///co loi?strcpy(nd[2],"SJF");strcpy(nd[3],"SRT");strcpy(nd[4],"RRB");strcpy(nd[5],"Ket thuc");tt:textmode(C80);clrscr();
menu(ch,nd);khoitao();if(*ch==1){cout
7/28/2019 Lap Lich CPU
14/14
}}}getch();}