📄 djf.txt
字号:
q1=b;
i=1;
while(i<=length(c))
{ if((p->dd)>=CHAOSHI)
{/*printf("yicsj()-i=%d",i);*/
goto end;
}
p=p->next;i++;
}
end:q=c;
/* printf("yicsj xia mina %d",i); */
for(j=1;j<=i-1;j++)
{
q=q->next;
}
q->next=p->next;
p->next=0;
shuaw(c);
shuaz(c,'c');
while(q1->next)
{q1=q1->next;}
q1->next=p;
p->z='b';
shuaw(b);
shuaz(b,'b');
}
shuadd(int hour,int min,int sec,int hour1,int min1,int sec1)
{
int i;
int sj;
/*时间计算*/
if((hour1-hour)==0)
{ if((min1-min)==0)
sj=(sec1-sec);
if((min1-min)==1)
sj=(60-sec)+sec1;
if((min1-min)>=2)
sj=(abs(min1-min-1))*60+(60-sec)+sec1;
}
if((hour1-hour)==1)
sj=abs(hour1-hour-1)*3600+(59-min)*60+min1*60+(60-sec)+sec1;
/*printf("sj=%d",sj);*/
for(i=1;i<=length(a);i++)
{
gengdd(a,i,sj);
}
for(i=1;i<=length(b);i++)
{
gengdd(b,i,sj);
}
for(i=1;i<=length(c);i++)
{
gengdd(c,i,sj);
}
}
main()
{ int e;/*取结点时间量*/
Init();/*图形驱动*/
initer();/*程序主框架的生成*/
initlist(&a);/*三个级别的链表的初始化*/
initlist(&b);
initlist(&c);
/*insert(a,'a',4);
insert(a,'a',3);
insert(a,'a',4);
insert(a,'a',3);
insert(a,'a',4);
insert(a,'a',3);
insert(a,'a',4);
insert(a,'a',3);*/
insert(a,'a',4);
insert(a,'a',3);
insert(b,'b',4);
insert(b,'b',6);
insert(b,'b',2);
insert(b,'b',2);
insert(b,'b',6);
insert(b,'b',7);
insert(b,'b',8);
/* insert(b,'b',6);
insert(b,'b',5);
insert(b,'b',5);
insert(c,'c',6);
insert(c,'c',4);
insert(c,'c',7);
insert(c,'c',2); */
insert(c,'c',5);
insert(c,'c',8);
insert(c,'c',2);
insert(c,'c',4);
insert(c,'c',1);
insert(c,'c',5);
while(1)
{
while(!kbhit()){
loop: if(length(a)==0){if(length(b)==0){if(length(c)==0){ randi(); /*弹出消息任务队列为空*/}
else{ j=0;
gettime(&t);
hour=t.ti_hour;
min=t.ti_min;
sec=t.ti_sec;
/* printf("%d:%d:%d\n",hour,min,sec);*/
gethz(c,1,&h,&z);
setcolor(14);
outtextxy(515,331,"job:swapping..");
famen1(3,0);
hmove('c',z,h,480,10);
famen1(3,1);
famen(3,0,1);
hmove('c',480,h,520,10);
famen(3,1,1);
setcolor(0);
outtextxy(515,331,"job:swapping..");
setcolor(14);
outtextxy(515,340,"cpu:running...");
while(gett(c,1)+1)
{
for(i=1;i<=70;i++)
if(j%16!=0){setcolor(j);
line(560+i,31,560+i,329);
}
if(j%16!=0)sleep(1);
j++;
gengt(c,1,gett(c,1)-1);
gengdd(c,1,-1);
if(j%3==0) randi();
if((length(a)!=0)||(length(b)!=0))
{
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
famen(3,0,1);
nhmove('c',520,315,480,10);
famen(3,1,1);
famen1(3,0);
nhmove('c',480,315,440,10);
famen1(3,1);
setcolor(0);
outtextxy(515,331,"job:swapping..");
goto loop;}
}
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
gettime(&t);
hour1=t.ti_hour;
min1=t.ti_min;
sec1=t.ti_sec;
/*printf("%d:%d:%d\n",hour1,min1,sec1);*/
shuadd(hour,min,sec,hour1,min1,sec1);
xiaoying();
delete(c);
delay(DELAY);
shuaw(c);
shuaz(c,'c');
biaozhun(c,3);
if(length(b)<=9)
{if(pan())yic();}/*数据结构的更改,图形的移动*/;
setcolor(0);
outtextxy(515,331,"job:swapping..");
}
}/*end if(length(c)==0)*/
/*b yun xing */ else{
gethz(b,1,&h,&z);
setcolor(14);
outtextxy(515,331,"job:swapping..");
famen1(2,0);
hmove('b',z,h,480,10);
famen1(2,1);
famen(2,0,1);
hmove('b',480,h,520,10);
famen(2,1,1);
setcolor(0);
outtextxy(515,331,"job:swapping..");
if(gett(b,1)<=B)
{ gettime(&t);
hour=t.ti_hour;
min=t.ti_min;
sec=t.ti_sec;
setcolor(14);
outtextxy(515,340,"cpu:running...");
while(gett(b,1)+1)
{for(i=1;i<=70;i++)
if(j%16!=0){setcolor(j);
line(560+i,31,560+i,329);
}
if(j%16!=0)sleep(1);
j++;
gengt(b,1,gett(b,1)-1);
gengdd(b,1,-1);
if(j%3==0) randi();
if(length(a)!=0)
{
setcolor(0);
outtextxy(515,340,"cpu:running...");
famen(2,0,1);
nhmove('b',520,195,480,10);
famen(2,1,1);
famen1(2,0);
nhmove('b',480,195,440,10);
famen1(2,1);
goto loop;
}
}
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
gettime(&t);/*取得当前时间*/
hour1=t.ti_hour;
min1=t.ti_min;
sec1=t.ti_sec;
shuadd(hour,min,sec,hour1,min1,sec1);/*刷新时间*/
xiaoying();/*把已经完成的任务的图象消掉*/
delete(b);/*把完成的任务从数据结构中删除*/
delay(DELAY);
shuaw(b);/*把已经完成任务从数据结构中删除后,其他任务结点在任务队列中位置的刷新*/
shuaz(b,'b');/*刷新结点变化后的结点坐标*/
biaozhun(b,2);/*任务完成后图形的移动*/
if(length(b)<=9)
{if(pan()==1)yic();}/*数据结构的更改,图形的移动*/;
setcolor(0);
outtextxy(515,331,"job:swapping..");
}
/*涉及到轮转*/ else
{ int m=B;/*必须定义一个常量来定义代表,因为作为一个常量不能做加减操作*/
gettime(&t);
hour=t.ti_hour;
min=t.ti_min;
sec=t.ti_sec;
setcolor(14);
outtextxy(515,340,"cpu:running...");
while(m+1)
{for(i=1;i<=70;i++)
if(j%16!=0)
{setcolor(j);
line(560+i,31,560+i,329);
}
if(j%16!=0)
sleep(1);
j++;
m=m-1;
gengt(b,1,gett(b,1)-1);
gengdd(b,1,-1);
if(j%3==0) randi();
if(length(a)!=0)
{
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
famen(2,0,1);
nhmove('b',520,195,480,10);
famen(2,1,1);
famen1(2,0);
nhmove('b',480,195,440,10);
famen1(2,1);
setcolor(0);
outtextxy(515,331,"job:swapping..");
goto loop;}
}
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
gettime(&t);
hour1=t.ti_hour;
min1=t.ti_min;
sec1=t.ti_sec;
shuadd(hour,min,sec,hour1,min1,sec1);/*刷新时间*/
xiaoying();
lunz(b);/*任务在时间片内没有完成,把他移到数据结构链表的后面结点*/
delay(DELAY);
shuaw(b);/*把已经完成任务从数据结构中删除后,其他任务结点在任务队列中位置的刷新*/
shuaz(b,'b');
luntu(b,2);/*biaozhun(b,2); 应该是轮回中的把图形移动到任务队列的后面*/
if(length(b)<=9)
{if(pan()==1) yic();}/*数据结构的更改,图形的移动*/;
setcolor(0);
outtextxy(515,331,"job:swapping..");
}/*end else */
}/*end else*/
}/*end if(length(b)==0)*/
/*a yun xing */ else{
gethz(a,1,&h,&z);
setcolor(14);
outtextxy(515,331,"job:swapping..");
famen1(1,0);
hmove('a',z,h,480,10);
famen1(1,1);
famen(1,0,1);
hmove('a',480,h,520,10);
famen(1,1,1);
setcolor(0);
outtextxy(515,331,"job:swapping..");
if(gett(a,1)<=A)
{ gettime(&t);
hour=t.ti_hour;
min=t.ti_min;
sec=t.ti_sec;
setcolor(14);
outtextxy(515,340,"cpu:running...");
while(gett(a,1)+1)
{for(i=1;i<=70;i++)
if(j%16!=0)
{setcolor(j);
line(560+i,31,560+i,329);
}
if(j%16!=0)
sleep(1);
j++;
gengt(a,1,gett(a,1)-1);
gengdd(a,1,-1);
if(j%3==0) randi();
}
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
gettime(&t);
hour1=t.ti_hour;
min1=t.ti_min;
sec1=t.ti_sec;
shuadd(hour,min,sec,hour1,min1,sec1);
xiaoying();
delete(a);
delay(DELAY);
shuaw(a);
shuaz(a,'a');
biaozhun(a,1);
if(length(b)<=9)
{if(pan()) yic();}/*数据结构的更改,图形的移动*/;
setcolor(0);
outtextxy(515,331,"job:swapping..");
}
else
{ int m=A;
gettime(&t);
hour=t.ti_hour;
min=t.ti_min;
sec=t.ti_sec;
setcolor(14);
outtextxy(515,340,"cpu:running...");
while(m+1)
{for(i=1;i<=70;i++)
if(j%16!=0)
{
setcolor(j);
line(560+i,31,560+i,329);
}
if(j%16!=0)
sleep(1);
j++;
m=m-1;
gengt(a,1,gett(a,1)-1);
gengdd(a,1,-1);
if(j%3==0) randi();/*随机生成任务*/
}
setcolor(0);
outtextxy(515,340,"cpu:running...");
setcolor(14);
outtextxy(515,331,"job:swapping..");
gettime(&t);
hour1=t.ti_hour;
min1=t.ti_min;
sec1=t.ti_sec;
shuadd(hour,min,sec,hour1,min1,sec1);
xiaoying();
lunz(a);
delay(DELAY);
shuaw(a);
shuaz(a,'a');
luntu(a,1);
if(length(b)<=9)
{ if(pan()) yic();}/*数据结构的更改,图形的移动*/;
/* biaozhun(a,1); 应该是轮回中的把图形移动到任务队列的后面*/
}
setcolor(0);
outtextxy(515,331,"job:swapping..");
}/*end of a's else */
}/*end length(a)==0)*/
key=bioskey(0);/*从缓存中返回接收的按键,返回后清空*/
if(key==ENTER)
{ setcolor(14);
for(i=0;i<29;i++)
line(501,1+i,630,1+i);
{/*一次可以输入多个任务*/
{scanf(" %c,%d",&sr1,&sr2);
if(sr1=='a')
insert(a,sr1,sr2);
if(sr1=='b')
insert(b,sr1,sr2);
if(sr1=='c')
insert(c,sr1,sr2);}}
setcolor(0);
for(i=0;i<29;i++)line(501,1+i,630,1+i);
}
if(key==ESC) {over();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -