📄 djf.txt
字号:
s=(linklist)malloc(sizeof(struct node));
s->j=e;
s->t=m;
s->h=h;
s->z=z;
s->dd=0;
if(e=='a') s->ys=13;/*这个数据量没有用,但是给程序本身的升级有一定的好处*/
else if (e=='b') s->ys=14;
else if (e=='c') s->ys=15;
if(e=='a') s->wz=j;
else if (e=='b') s->wz=j1;/*当有任务完成时要另外想办法实现‘减’操作*/
else if (e=='c') s->wz=j2;
if(e=='a')
{
lingxing(z,h);
delay(DELAY);
}/*if not you shouldd't see the graphics */
else if (e=='b')
{
tuyuan(z,h);
delay(DELAY);
}
else if (e=='c')
{
juxing(z,h);
delay(DELAY);
}
s->next=p->next;/*数据结点的插入*/
p->next=s;
}
}
gethz(linklist l,int i,int *h,int *z) /* 取得第i个结点的横纵坐标*/
{
int j=1;
linklist p=l->next;
while(p&&j<i)
{
p=p->next;
j++;
}
if(!p||j>i)
return 0;
*h=p->h;
*z=p->z;
}
gett(linklist l,int i)/*取得第i个结点的时间*/
{
int j=1;
linklist p=l->next;
while(p&&j<i)
{
p=p->next;
j++;
}
if(!p||j>i)
return 0;
return(p->t);
}
shuaz(linklist l,char e)/*刷新删除结点后,结点的横纵坐标的更新,但并未在图形上画出*/
{
int h1,z1;
int j=1;
linklist p=l->next;
while(p)
{
if(e=='a') {if(j<=5)
{
h1=75;
z1=(480-40*j);
}
else if(j>=6)
{
h1=45;
z1=(240+40*(j-5));
}
}
else if(e=='b'){ if(j<=5)
{
h1=195;
z1=(480-40*j);
}
else if(j>=6)
{
h1=165;
z1=(240+40*(j-5));
}
}
else if(e=='c'){if(j<=5)
{
h1=315;
z1=(480-40*j);
}
else if(j>=6)
{
h1=285;
z1=(240+40*(j-5));
}
}
p->h=h1;
p->z=z1;
/* printf("-%d",p->dd);*/
p=p->next;
j++;
}
}
biaozhun(linklist l,int n)/*消影后图形的移动,N代表是第几列*/
{
int i,h,h1;
char j;
if(n==1)
{
j='a';
h=75;
h1=45;
}
if(n==2)
{
j='b';
h=195;
h1=165;
}
if(n==3)
{
j='c';
h=315;
h1=285;
}
if(length(l)<=4)
{ for(i=1;i<=length(l);i++)
{
hmove(j,440-40*i,h,480-40*i,10);
}
}
if(length(l)>4){ for(i=1;i<=4;i++)
{
hmove(j,440-40*i,h,480-40*i,10);
}
lmove(j,280,h1,h,10);
for(i=1;i<=length(l)-5;i++)
{
nhmove(j,280+40*i,h1,240+40*i,10);
}
}
}
wbiaozhun(linklist l,int n)/*轮转后图形的移动,N代表是第几列*/
{
int i,h,h1;
char j;
if(n==1)
{
j='a';
h=75;
h1=45;
}
if(n==2)
{
j='b';
h=195;
h1=165;
}
if(n==3)
{
j='c';
h=315;
h1=285;
}
if(length(l)<=4)
{for(i=1;i<=length(l)-1;i++)
{
hmove(j,440-40*i,h,480-40*i,10);
}
}
if(length(l)>4){ for(i=1;i<=4;i++)
{
hmove(j,440-40*i,h,480-40*i,10);
}
lmove(j,280,h1,h,10);/*the fifth */
for(i=1;i<=length(l)-6;i++)
{
nhmove(j,280+40*i,h1,240+40*i,10);}
}
}
luntu(linklist l,int n)/*轮转后图形的标准化*/
{ char j; int h,h1;
if(n==1)
{
j='a';
h=75;
h1=45;
}
if(n==2)
{
j='b';
h=195;
h1=165;
}
if(n==3)
{
j='c';
h=315;
h1=285;
}
if(length(l)<=4){
nlmove(j,520,h,h1,10);
famen(n,0,0);
nhmove(j,520,h1,480,10);
famen(n,1,0);
wbiaozhun(l,n);
gethz(l,length(l),&h,&z);
nhmove(j,480,h1,z,10);
lmove(j,z,h1,h,10);
}
if(length(l)>4){
nlmove(j,520,h,h1,10);
famen(n,0,0);
nhmove(j,520,h1,480,10);
famen(n,1,0);
wbiaozhun(l,n);
gethz(l,length(l),&h,&z);
nhmove(j,480,h1,z,10);
}
}
lunz(linklist l)/*轮转算法中的数据结构表示部分:当第一个任务完成后把它排到队列的最后一个*/
{
linklist p=l;
linklist q;
if(!p->next)
return 0;
q=p->next;
p->next=q->next;
while(p->next)
{
p=p->next;
}
q->next=0;
p->next=q;
}
randi()
{
int k;
j=(rand()%800+10)/100;
if(j==1){
k=(rand()%800+10)/100;
if(k!=0)
insert(a,'a',k);
}
if(j==2){
k=(rand()%600+70)/100;
k=k+4;
insert(b,'b',k);
}
if(j==3){
k=(rand()%1000+100)/60;
insert(c,'c',k);
}
}
pan()/*判断是否要把B中的任务升级*/
{
linklist p;
p=c->next;
j=0;
for(i=1;i<=length(c);i++)
{
if((p->dd)>=CHAOSHI)
{
j=1;
break;
}
/*printf("pan(%d)=%d",i,p->dd);*/
p=p->next;
}
return (j);
}
/*删除l的第i个结点,加到l1的中.(l,i,l1,n),n代表:n=1,队列l1的最前面,n=0的最后面*/
yic()/*移动B中的任务*/
{ int m;int i;
linklist p;
setcolor(0);
outtextxy(515,331,"job:swapping..");
setcolor(14);
outtextxy(515,349,"job:updating..");
p=c->next;
for(i=1;i<=length(c);i++)
{
if((p->dd)>=CHAOSHI) break;
p=p->next;
}
/*printf("yic>>>>>>>>%d\n",i);*/
yicsj();
/* ying gai shan chu jie dian */
if(i<=5)
{ k=480-40*i;m=500-40*i;
/* printf("yic xiamian %d",i); */
for(j=1;j<=40;j++)
{
setcolor(0);
line(500-40*i-1,330,500-40*i-j,330);
delay(DELAY);
}
lmove('c',480-40*i,315,345,10);
for(j=1;j<=40;j++)
{
setcolor(10);
line(m,330,m-j,330);
delay(DELAY);
}
nhmove('c',k,345,220,10);
if(length(b)<=5)
{
nlmove('c',220,345,195,10);/*向上移动图形*/
for(j=1;j<=28;j++)
{
setcolor(0);
line(240,181,240,181+j);
delay(DELAY);
}
m=480-40*length(b);
hmove('c',220,195,m,10);
for(j=1;j<=28;j++)
{
setcolor(10);
line(240,181,240,181+j);
delay(DELAY);
}
biaozhun(c,3);
}/*打开门让任务进来*/
else if((length(b)<=10)&&(length(b)>=6))/*只有b中少于十个任务时才能c从移动任务*/
{nlmove('c',220,345,135,10);
for(j=1;j<=30;j++)
{
setcolor(0);
line(240,149,240,149-j);
delay(DELAY);
}
hmove('c',220,135,280+(length(b)-6)*40,10);
for(j=1;j<=30;j++)
{
setcolor(10);
line(240,149,240,149-j);
delay(DELAY);
}
for(j=1;j<=39;j++)
{
setcolor(0);
line(261+(length(b)-6)*40,150,261+(length(b)-6)*40+j,150);
delay(DELAY);
}
lmove('c',280+(length(b)-6)*40,135,165,10);
for(j=1;j<=39;j++)
{
setcolor(10);
line(261+(length(b)-6)*40,150,261+(length(b)-6)*40+j,150);
delay(DELAY);
}
biaozhun(c,3);
}
}
else if(i>5) /* hai xu yao ji xu xie */
{
for(j=1;j<=40;j++)
{
setcolor(0);
line(261+(i-6)*40,270,261+(i-6)*40+j,270);
delay(DELAY);
}
nlmove('c',280+(i-6)*40,285,255,10);
for(j=1;j<=40;j++)
{
setcolor(10);
line(261+(i-6)*40,270,261+(i-6)*40+j,270);
delay(DELAY);
}
for(j=1;j<=30;j++)
{
setcolor(0);
line(240,271,240,271+j);
delay(DELAY);
}
nhmove('c',280+(i-6)*40,255,220,10);
for(j=1;j<=30;j++)
{
setcolor(10);
line(240,271,240,271+j);
delay(DELAY);
}
if(length(b)<=5)
{
nlmove('c',220,255,195,10);/*向上移动图形*/
for(j=1;j<=28;j++)
{
setcolor(0);
line(240,181,240,181+j);
delay(DELAY);
}
hmove('c',220,195,480-40*length(b),10);
for(j=1;j<=28;j++)
{
setcolor(0);
line(240,181,240,181+j);
delay(DELAY);
}
biaozhun(c,3);
}
else if((length(b)<=10)&&(length(b)>=6))/*只有b中少于十个任务时才能c从移动任务*/
{
nlmove('c',220,255,135,10);/*向上移动图形*/
for(j=1;j<=30;j++)
{
setcolor(0);
line(240,149,240,149-j);
delay(DELAY);
}
hmove('c',220,135,280+(length(b)-6)*40,10);
for(j=1;j<=30;j++)
{
setcolor(10);
line(240,149,240,149-j);
delay(DELAY);
}
for(j=1;j<=39;j++)
{
setcolor(0);
line(261+(length(b)-6)*40,150,261+(length(b)-6)*40+j,150);
delay(DELAY);
}
lmove('c',280+(length(b)-6)*40,135,165,10);
for(j=1;j<=39;j++)
{
setcolor(10);
line(261+(length(b)-6)*40,150,261+(length(b)-6)*40+j,150);
delay(DELAY);
}
biaozhun(c,3);
}
}
setcolor(0);
outtextxy(515,349,"job:updating..");
}
yicsj()/*在移动C中结点时,B,C中数据结构中的变化*/
{
int i=0;
linklist p,q,q1;
p=c->next;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -