⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pk06.c

📁 dos下的排课软件。 学校使用可以自动排课程表。
💻 C
📖 第 1 页 / 共 4 页
字号:
    {clrscr();
  sound1();
    printf("\n请输入班号:");
    scanf("%d",&ta);
    y=0;
    for(bx=0;bx<bx3;bx++)
    if(ta==clno[bx])
    {y=1;break;}
    }
    while(y==0);
   }
  else if(jg=='a')
   {r--;
   sound6();
   if(r==-1)r=5;
   if(xg==xg2)
   xg=xg2+15;
   else
   xg=xg-3;
   }
  else if(jg=='d')
   {r++;
   sound6();
   if(r==6)r=0;
   if(xg==xg2+15)
   xg=xg2;
   else
   xg=xg+3;
   }
  else if(jg=='w')
   {jie=jie-1;
    sound6();
    if(jie==-1)jie=6;
    if(yg==yg2)
    yg=yg2+7;
    else
    yg=yg-1;
    if(yg==yg2+4)yg--;
    }
  else if(jg=='s')
   {jie=jie+1;
    sound6();
    if(jie==7)jie=0;
    if(yg==yg2+7)
    yg=yg2;
    else
    yg=yg+1;
    if(yg==yg2+4)yg++;
    }
  else if(jg=='g'&& z02==0)
   sdel();
  else if(jg=='c'&& z02==0)
  scopy();
  else if(jg=='h'&& z02==0)
   sxch();
  else if(jg=='p'&& z02==0)
   spast();
  else if(jg=='f'&& z02==0)
   sfill();
 else if(jg=='k')
   {cls();
    chake1(bx);
    cls();
    chuxian3();
    tishi();
    }
 else if(jg=='t')
 {
     cls();
    chuxian3();
    tishi();
 }
 else
   sound1();
   ch='n';
   if(jg=='x')
   {cls();
   chake();
   return;}
  }/* end do */
  while(ch!='#');
    }/*end sub tk*/

    void sound1()
    {sound(440);
    delay(40*ddt);
    nosound();}

    void sound2()
    {sound(220);
    delay(40*ddt);
    nosound();}

    void sound3()
    {sound(1000);
    delay(40*ddt);
    nosound();}

    void sound6()
    {sound(110);
    delay(20*ddt);
    nosound();}


   void sdel()
   {
   sound1();
   if(kx==kong)return;

   /*ddddddddddddddd dddddddddddddddd*/
   chuxian3();
   gotoxy(1,14);
   printf("\n 星期%d 第%d节 %s",r+1,jie+1,kemu[kx]);
   printf("   ,确实要删除吗?(y/n)");
   do
   {ch=getch();
    if(ch=='n')
     {sound3();
     tishi();
     return;}
   }
   while(ch!='y');
    clb[bx][jie][r]=kong;
    clbt[bx][jie][r]=kong;
    tcbk[tc4][jie][r]=kong;
    tcbb[tc4][jie][r]=kong;
   sound2();
   /*gotoxy(1,16);*/
   tishi();
   return;
   }

   void scopy()
   {
   sound1();
   chuxian3();
   gotoxy(1,14);
   printf("\ncopy %s to...",kemu[kx]);
   kxtmp1=kx;
   tishi();
   }

   void spast()
   {sound1();
   chuxian3();
   gotoxy(1,14);
   kx=kxtmp1;
   printf("\n 星期%d 第%d节 %s",r+1,jie+1,kemu[kx]);
   printf("  ,确实要粘贴吗?(y/n)");
   do
   {ch=getch();
    if(ch=='n')
     {sound1();
     tishi();
     return;}
   }
   while(ch!='y');

   ch='n';
   for(ta=0;ta<tcnumber;ta++)
   for(tt=0;tt<yubk;tt++)
   {if(banke[ta][tt][0]==kong)break;
    if(banke[ta][tt][0]!=bx)continue;
    if(banke[ta][tt][1]!=kx)continue;
    ch='y';
    i=ta;
   }
   if(ch=='n')
   {printf("\nerror!!!  --- sub spast()--- 11111111");
    sound3();
    getch();
   }

   y=stkno(i,bx4);
   if(y!=0)
   {sound3();
    return;
   }
    clb[bx][jie][r]=kx;
    clbt[bx][jie][r]=i;
    tcbk[i][jie][r]=kx;
    tcbb[i][jie][r]=bx;
   sound2();
   tishi();
   }

   void sfill()
   {int wk;
   sound1();
   chuxian3();
   gotoxy(1,14);
   printf("\n 填课: 星期%d 第%d节,请选择科目:",r+1,jie+1);
   do
   {
   for(wk=0;wk<kenumber;wk++)
     {printf("  %s ?(y/n/x--exit)",kemu[wk]);
      ch1='n';
      do
	{ch=getch();
	if(ch=='x')
	{sound3();
	tishi();
	return;}
	if(ch=='y' || ch=='x')
	  ch1='y';
	}
      while(ch1!='y');
      if(ch=='y')break;
     }  /*  end for wk  **/
   }
   while(ch!='y');
   if(ch=='x')
   return;
   kx=wk;

   ch='n';
   for(ta=0;ta<tcnumber;ta++)
   for(tt=0;tt<yubk;tt++)
   {if(banke[ta][tt][0]==kong)continue;
    if(banke[ta][tt][0]!=bx)continue;
    if(banke[ta][tt][1]!=kx)continue;
    ch='y';
    i=ta;
   }
   if(ch=='n')
   {printf("\nerror!!!  --- sub spast()--- 11111111");
    sound3();
    getch();
   }

   y=stkno(i,bx4);
   printf("\ni=%d tc4=%d  bx=%d bx4=%d",i,tc4,bx,bx4);
   if(y!=0)
     {sound3();
     tishi();
     return;
     }
    clb[bx][jie][r]=kx;
    clbt[bx][jie][r]=i;
    tcbk[i][jie][r]=kx;
    tcbb[i][jie][r]=bx;
   sound2();
   tishi();
   } /*  end sfill()   */

   void sound4()
   {sound(330);
    delay(50*ddt);
    sound(550);
    delay(40*ddt);
    nosound();
   }
   void sound42()
   {sound(770);
    delay(60*ddt);
    sound(220);
    delay(60*ddt);
    nosound();
   }

   /************* cha ke()   *******/
   void chake()
   {char tmp[yuke],x,y,z,kx,r,kx1,kx2,bx;
   int i,j,sumqian=0,sumduo=0;

   chuxian3();
   clrscr();
   for(i=0;i<clnumber;i++)
    {x=yer[i]-1;
     for(j=0;j<yuke;j++)tmp[j]=0;
     for(j=0;j<7;j++)
     {for(r=0;r<6;r++)
      {kx=clb[i][j][r];
       if(kx==kong)continue;
   /*    if(guken!=0)
       {for(k=0;k<guken;k++)
	{if(kx==gukexu[k])
	 {y=1;break;}
	y=0;
	}
	if(y==1)continue;
       }  */
       tmp[kx]++;
      }
     } /* j  */
     for(j=0;j<yuke;j++)
     {y=zhoujie[j][x];
      if(tmp[j]==y)continue;
      if(tmp[j]<y)
 {printf("\n %d班  %s , 应该排%d节,",clno[i],kemu[j],y);
  printf(" 8888888 已排%d节, 欠%d节,x--exit",tmp[j],y-tmp[j]);
  sumqian=sumqian+y-tmp[j];
 if(getch()=='x')return;
 continue;}
      if(tmp[j]>y)
 {printf("\n %d班  %s , 应该排%d节,",clno[i],kemu[j],y);
  printf(" 8888888 已排%d节,多%d节x--exit.",tmp[j],tmp[j]-y);
  sumduo=sumduo+tmp[j]-y;
 if(getch()=='x')return;
 continue;}
     }  /*  j  */
  }   /*  i  */
  sound1();
  printf("\n合计: 欠 %d节, 多%d节.",sumqian,sumduo);
  printf("\n班表检查完毕.");
  getch();
  for(i=0;i<tcnumber;i++)
  {
     for(j=0;j<7;j++)
     {for(r=0;r<6;r++)
       {kx1=tcbk[i][j][r];
	bx=tcbb[i][j][r];
	if(kx1==kong && bx==kong)continue;
	kx2=clb[bx][j][r];
	if(kx1==kx2)continue;
 printf("\n%d=%s教师表 第%d日 第 %d节 %s,与%d班表不一.",i,name[i],r+1,j+1,kemu[kx2],clno[bx]);
 if(getch()=='x')return;
       }  /*  r  */
     }  /* j   */
 }   /*i*/
 printf("\n教师表检查完毕.('y'--exit)");
 do
 ;
 while(getch()!='y');
 }

   /************* cha ke1()   *******/
   void chake1(char bx)
   {char tmp[yuke],x,y,z,kx,r,kx1,kx2,bx2;
   int i,j,sumqian=0,sumduo=0;

   chuxian3();
   clrscr();
   i=bx;
   x=yer[i]-1;
     for(j=0;j<yuke;j++)tmp[j]=0;
     for(j=0;j<7;j++)
     {for(r=0;r<6;r++)
      {kx=clb[i][j][r];
       if(kx==kong)continue;
  /*     if(guken!=0)
       {for(k=0;k<guken;k++)
	{if(kx==gukexu[k])
	 {y=1;break;}
	y=0;
	}
	if(y==1)continue;
       }   */
       tmp[kx]++;
      }
     } /* j  */
     for(j=0;j<yuke;j++)
     {y=zhoujie[j][x];
      if(tmp[j]==y)continue;
      if(tmp[j]<y)
 {printf("\n %d班  %s , 应该排%d节,",clno[i],kemu[j],y);
  printf(" 8888888 已排%d节, 欠%d节x--exit.",tmp[j],y-tmp[j]);
  sumqian=sumqian+y-tmp[j];
 if(getch()=='x')return;
 continue;}
      if(tmp[j]>y)
 {printf("\n %d班  %s , 应该排%d节,",clno[i],kemu[j],y);
  printf(" 8888888 已排%d节,多%d节x--exit.",tmp[j],tmp[j]-y);
  sumduo=sumduo+tmp[j]-y;
 if(getch()=='x')return;
 continue;}
     }  /*  j  */
  sound1();
  printf("\n合计: 欠 %d节, 多%d节.",sumqian,sumduo);
  printf("\n班表检查完毕.");
  getch();
  for(i=0;i<tcnumber;i++)
  {
     for(j=0;j<7;j++)
     {for(r=0;r<6;r++)
       {kx1=tcbk[i][j][r];
	bx=tcbb[i][j][r];
	if(kx1==kong && bx==kong)continue;
	kx2=clb[bx][j][r];
	if(kx1==kx2)continue;
 printf("\n%d=%s教师表 第%d日 第 %d节 %s,与%d班表不一.",i,name[i],r+1,j+1,kemu[kx2],clno[bx]);
 if(getch()=='x')return;
       }  /*  r  */
     }  /* j   */
 }   /*i*/
 printf("\n教师表检查完毕.('y'--exit)");
 do
 ;
 while(getch()!='y');
 }

    /************ stkno()   ***********/
   int stkno(int i,int bx)
   { int chai,chaj,tmp;
     char tkxp;

     tkxp=clb[bx][jie][r];
     if(tkxp!=kong)return 1;  /* clb(班表)不空,排下一节 */
     if(tcbb[i][jie][r]!=kong)return 1;  /* tcb(教师表)不空,排下一节*/
     tmp=0;
     for(chai=0;chai<7;chai++)         /* jin tian yi pai le duo shao ke?  */
      {if(tcbb[i][chai][r]!=kong)tmp++;}
      if(tmp>3)return 1;
   return 0;/* 可排 */
   } /* end sub stkno */

  void huifu()
  {
  clb[bx][jie2][r2]=kx2;
    clbt[bx][jie2][r2]=i2;
    if(qtc2b==1)
     {tcbk[i2][jie2][r2]=kx2;
      tcbb[i2][jie2][r2]=bx;
      }

    clb[bx][jie1][r1]=kx1;
    clbt[bx][jie1][r1]=i1;
    if(qtc1b==1)
      {tcbk[i1][jie1][r1]=kx1;
      tcbb[i1][jie1][r1]=bx;
      }
    sound3();
    jie=jie2;
    r=r2;
  }

  void sxch()
  {char ti1,ti2;
  itmp=i;
  ripin=4;
  xchbiao++;
  if(xchbiao==1)
   {jie1=jie;
    r1=r;
   kx1=clb[bx][jie][r];
   i1=clbt[bx][jie][r];
  sound4();
    return;
   }
   xchbiao=0;
   qtc1b=0;
   qtc2b=0;
   jie2=jie;
   r2=r;
   kx2=clb[bx][jie][r];
   i2=clbt[bx][jie][r];
   if(kx1==kong && kx2==kong)
    {sound3();return;}
    ti1=i1;
    ti2=i2;
    if(i2<0){i2=i2+256;}
    if(i1<0){i1=i1+256;}
    clb[bx][jie2][r2]=kong;
    clbt[bx][jie2][r2]=kong;
    if(ti2!=kong)
    {if(tcbb[i2][jie2][r2]==bx)
      {tcbk[i2][jie2][r2]=kong;
       tcbb[i2][jie2][r2]=kong;
       qtc2b=1;}}
    clb[bx][jie1][r1]=kong;
    clbt[bx][jie1][r1]=kong;
    if(ti1!=kong)
    {if(tcbb[i1][jie1][r1]==bx)
      {tcbk[i1][jie1][r1]=kong;
       tcbb[i1][jie1][r1]=kong;
       qtc1b=1;}}
    i=i1;
    kx=kx1;
    r=r2;
    jie=jie2;
    if(i<0)i=i+256;
    if(kx1==kong)
    y=0;
    else
    y=stkno(i1,bx4);
    if(y!=0)
    {huifu();
    return;
    }
    clb[bx][jie2][r2]=kx1;
    clbt[bx][jie2][r2]=ti1;
    if(ti1!=kong)
    {tcbk[i1][jie2][r2]=kx1;
    tcbb[i1][jie2][r2]=bx;}
    else
    ;
    i=i2;
    kx=kx2;
    jie=jie1;
    r=r1;
    if(kx2==kong)
    y=0;
    else
    y=stkno(i2,bx4);
    if(y!=0)
    {if(ti1!=kong)
     {tcbk[i1][jie2][r2]=kong;
     tcbb[i1][jie2][r2]=kong;}
     huifu();
     return;
    }
    clb[bx][jie1][r1]=kx2;
    clbt[bx][jie1][r1]=ti2;
    if(ti2!=kong)
      {tcbk[i2][jie1][r1]=kx2;
       tcbb[i2][jie1][r1]=bx;}
    else
    ;
    i=ti1;
    kx=kx1;
    jie=jie2;
    r=r2;
   sound42();
  }

   void tiao()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -