📄 tcb.cpp
字号:
#include<stdio.h>
#include"g:\file.cpp"
#define ERROR -1
int i,a,h,m,pr;
CHANGE(LinkQueue &P,QueuePtr q){
QueuePtr s;
if(Q.front==Q.rear) return ERROR;
q=Q.front->next;
Q.front->next=q->next;
if(Q.rear==q)Q.rear=Q.front;
s=(QueuePtr)malloc(sizeof (QNode));
if(!s) exit(OVERFLOW);
s->ID=q->ID;s->Priority=q->Priority;s->hour=q->hour;s->minute=q->minute;s->Alltime=q->Alltime;
s->next=NULL;
P.rear->next=s;
P.rear=s;
free(q);
return OK;
}
EnQueue(LinkQueue &P,int i,int pr,int h,int m,int a){
QueuePtr s;
s=(QueuePtr)malloc(sizeof (QNode));
if(!s) exit(OVERFLOW);
s->ID=i;s->Priority=pr;s->hour=h;s->minute=m;s->Alltime=a;
s->next=NULL;
P.rear->next=s;
P.rear=s;
return OK;
}
DeQueue(LinkQueue &P,int &i,int &pr,int &h,int &m,int &a){
if(P.front==P.rear)
return ERROR;
p=P.front->next;
i=p->ID;pr=p->Priority;h=p->hour;m=p->minute;a=p->Alltime;
P.front->next=p->next;
if(P.rear==p)
P.rear=P.front;
free(p);
return OK;
}
change(QueuePtr &p){
int a,b,c;
a=p->hour;
b=p->minute;
a=a*60+b;
return a;
}
time(){
int i,T;
int a,b,c,m,n=1;
int t=0;
s=Q.front->next;
CHANGE(P,s);
p=P.front->next;
a=change(p);
while(p!=NULL)
{ T=10*p->Priority;
p->Alltime-=T;
a+=T;
t=n*T;
q=Q.front->next;
b=change(q);
s1=p->next;
if(b<=a)
{ if(p->Alltime<=0) p->Alltime=0;
printf("%d\t%d\t\t%d\n" ,p->ID,p->Alltime,t);
p->hour=a/60;p->minute=a%60;
CHANGE(P,q);
DeQueue(P,i,pr,h,m,a);
if(p->Alltime>0)
EnQueue(P,i,pr,h,m,a);
p=P.front->next;
n=1;
continue;
}
if(s1!=NULL)
{ if(p->Alltime<=0) p->Alltime=0;
printf("%d\t%d\t\t%d\n" ,p->ID,p->Alltime,t);
p->hour=a/60;p->minute=a%60;
DeQueue(P,i,pr,h,m,a);
if(p->Alltime>0)
EnQueue(P,i,pr,h,m,a);
p=P.front->next;
n=1;
continue;
}
if(p->Alltime<=0)
{ p->Alltime=0;
printf("%d\t%d\t\t%d\n" ,p->ID,p->Alltime,t);
CHANGE(P,q);
DeQueue(P,i,pr,h,m,a);
p=P.front->next;
a=change(p);
n=1;
continue;
}
n++;
}
return OK;
}
void main()
{
printf(" *****************\n");
printf(" Now,begining!\n");
printf(" *****************\n");
InitQueue(Q);
file();
InitQueue(P);
printf("The State of the PCBs are:\n");
printf("ID the left of time TIME\n");
time();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -