Lap Lich CPU

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();}