该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
}
int kebiaomatrix[5][3];
int te_worktimematrix[5][3];
for(x0=0;x0<5;x0++)
for(int y0=0;y0<3;y0++)
te_worktimematrix[x0][y0]=0;
for(j=0;j
{
int kelesson=kemu[j].w_num /2;
int stepnum;
switch(kelesson)
{
case(3):
stepnum=2;
break;
case(2):
stepnum=3;
break;
case(1):
stepnum=4;
break;
default:
printf("信息有错,不好意思,你不得不重来,嘎嘎...\n");
exit(-1);
}
if(kemu[j].mainflag ==1)
{
int t0=0;
for(int m0=0;m0
{
int x0,y0;
for(x0=t0;x0<5;x0++)
for(y0=0;y0<2;y0++)
if(te_worktimematrix[x0][y0]==0&&kebiaomatrix[x0][y0]==0)
{
te_worktimematrix[x0][y0]=kebiaomatrix[x0][y0]=1;
t0=x0;
goto B1;
}
B1: int x00;
if(x0==5)
{
for(x00=0;x00<5;x00++)
{
y0=2;
if(te_worktimematrix[x00][y0]==0&&kebiaomatrix[x00][y0]==0)
{
te_worktimematrix[x00][y0]=kebiaomatrix[x00][y0]=1;
t0=x00;
}
}
x0=x00;
}
if(x0==5)
{
printf("课表已满\n");
exit(-1);
}
t0=(t0+stepnum)%5;
maxteacher[kemu[j].km_te ].te_worktime [x0][y0]=1;
kebiaotype *newkebiaonode=(kebiaotype *)malloc(sizeof(kebiaotype));
newkebiaonode->ketime =y0+1;
strcpy(newkebiaonode->kmname ,kemu[j].kemustr );
newkebiaonode->next =NULL;
kebiaotype *ap=NULL,*cp=kebiao[x0];
while(cp!=NULL)
if((y0+1)ketime )
break;
else
{
ap=cp;
cp=cp->next ;
}
if(ap==NULL)
{
newkebiaonode->next =kebiao[x0];
kebiao[x0]=newkebiaonode;
}
else
{
newkebiaonode->next =cp;
ap->next =newkebiaonode;
}
}
}
else
{
int t0=stepnum;
for(int m0=0;m0
int x0,y0;
for(x0=t0;x0<5;x0++)
{
y0=2;
if(te_worktimematrix[x0][y0]==0&&kebiaomatrix[x0][y0]==0)
{
te_worktimematrix[x0][y0]=kebiaomatrix[x0][y0]=1;
t0=x0;
goto C;
}
C: int x00;
if(x0==5)
{
for(x00=0;x00<5;x00++)
for(y0=0;y0<2;y0++)
if(te_worktimematrix[x00][y0]==0&&kebiaomatrix[x00][y0]==0)
{
te_worktimematrix[x00][y0]=kebiaomatrix[x00][y0]=1;
t0=x00;
goto D;
}
D: x0=x00;
}
if(x0==5)
{
printf("课表已满\n");
exit(-1);
}
maxteacher[kemu[j].km_te ].te_worktime [x0][y0]=1;
kebiaotype *newkebiaonode=(kebiaotype *)malloc(sizeof(kebiaotype));
newkebiaonode->ketime =y0+1;
strcpy(newkebiaonode->kmname ,kemu[j].kemustr );
newkebiaonode->next =NULL;
kebiaotype *ap=NULL,*cp=kebiao[x0];
while(cp!=NULL)
if((y0+1)ketime )
break;
else
{
ap=cp;
cp=cp->next ;
}
if(ap==NULL)
{
newkebiaonode->next =kebiao[x0];
kebiao[x0]=newkebiaonode;
}
else
{
newkebiaonode->next =cp;
ap->next =newkebiaonode;
}
}
}
printf("合肥学院%s班课表总览表\n",maxclassnum[i].classname );
for(int j0=0;j0<5;j0++)
{
printf("星期%d",j0+1);
kebiaotype *px0=kebiao[j0];
while(px0!=NULL)
{
if(px0->ketime ==1)
{
printf(" 1-2节 %s",px0->kmname );
px0=px0->next ;
}
else if(px0->ketime ==2)
{
printf(" 2-3节 %s",px0->kmname );
px0=px0->next ;
}
}
printf("\n");
}
printf("\n");
}
}