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

📄 40.c

📁 这是我大学4年来做过的竞赛以及老师的科研项目所积累下来的c51源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
                 }
             }
         }
     }
}

check_key( unsigned char k)                     //查看并确认键值
{
int c;
   switch(k)
           {
           case '1':c=1;
           break;
           case '2':c=2;
           break;
           case '3':c=3;
           break;
           case '4':c=4;
           break;
           case '5':c=5;
           break;
           case '6':c=6;
           break;
           case '7':c=7;
           break;
           case '8':c=8;
           break;
           case '9':c=9;
           break;
           case '0':c=0;
           break;
           case 'q':c=10;                       //define F1
           break;
           case 'w':c=11;                       //define F2
           break;
           case 'e':c=12;                       //define F3
           break;
           case 'r':c=13;                       //define F4
           break;
           case 'c':
           closegraph();
           exit(0);
           default:
           c=20;
           break;
           }
return(c);
}

main()
{
int firqmh,firqml;
int a[6][16];
int key[6],i,j,s,ii,k,m,kkk,kk=0,jj=120,n,nn=0;
int ks,mm,d=0,key1,key2,qmh,qml,ss,kp,kd=0,page=0,page1=0;
int driver=DETECT,mode;
int end;
int endd;
int mu;
int end1;
int sm[6];
int ok;
char kc;
initgraph(&driver,&mode,"");
setcolor(5);
headdisp();
headdisp2();
bar(0,50,500,100);
bar(0,100,500,220);
     for(i=0;i<5;i++)
     {
     line(0,100+i,500,100+i); 
     }
     for(i=0;i<5;i++)
     {
     line(0,220+i,500,220+i);
     }
     for(i=0;i<5;i++)
     {
     line(0,45+i,500,45+i);
     }
     for(i=0;i<2;i++)
     {
     line(i,45,i,220);
     }
     for(i=0;i<2;i++)
     {
     line(i+500,45,i+500,220);
     }
top:
     if(kd==4)
     {
     kd=0;
     }                                        //键盘状态循环
     while(kd==0)                              //汉字输入状态
     {
     bar(0,50,500,100);
     pydisp();
     h1:
        for(;;)
        {
        page=0;
            for(i=0;i<7;i++)
            {
            again:
            key[i]=check_key(getch());             //取键值
                 if(key[0]==0)
                 {
                  goto again;
                 }
                 switch(key[i])
                 {                          //判断键状态
                 case 9:kk=kk+8;goto h1;
                 case 13:kd++;goto  top;       //是否是状态切换键
                 case 12:
                 kk=kk-8;
                 bar(kk,jj,kk+8,jj+16);
                      if(kk<0)
                      {
                      kk=304;
                      jj=jj-16;
                      }
                      if(jj<=120)
                      {
                      jj=120;
                      }
                 goto h1;
                 case 0 :
                 s=check_key(getch());
                 goto outhz;                     //汉字输入确认
                 case 10:i=i-2;if(i<0){i=0;goto top;}
                 break;
                 case 11:
                 case 20:
                 goto again;
                 }
                 if(i==0)
                 {                              //若为第一次读键
                    for(k=0;k<402;k++)
                    {
                     if(hzk_index[k][0]==key[0])    //搜索索引表
                          {
                          ok=k;
                          goto here;
                          }
                    }
                 }
                 if(i==1)
                 {                              //若为第二次读键
                 mu=0;
                     for(k=0;k<402;k++)
                     {
if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1])  
//搜索索引表
                         {        
                         mu=1;
                         ok=k;
                         goto here;
                         }
                     }
                     if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==2)
                {                               //若为第三次读键
                mu=0;
                     for(k=0;k<402;k++)
                     {
                          if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2])
//搜索索引表
                          {   
                          ok=k;
                          mu=1;
                          goto here;
                          }
                     }
                     if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==3)
                {                               //若为第四次读键
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3])
                            {
                            ok=k;
                            mu=1;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==4)
                {                                 //若为第五次读键
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4])
                            {
                            mu=1;
                            ok=k;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }
                
                if(i==5)
                {                              //若为第六次读键
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4]&&hzk_index[k][5]==key[5])
                            {
                            mu=1;
                            ok=k;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }

                here:                     //显示对应键盘字母所有的可能组合
                m=hzk_index[k][6];        //m为所有可能数,它位于索引表每行第7列
                firqmh=hzk_index[k][7];
                firqml=hzk_index[k][8];
                bar(0,50,300,100);
                pydisp();
                bar(100,50,200,100);
                       for(ks=0;ks<9;ks++)
                       {
                       putnum(ks*32,70,ks+1,2);
                       puthz((ks*2+1)*16,70,firqmh,firqml+ks,2);
                       }
                       for(n=0;n<m;n++)
                       {
                       putnum(10*8+n*64,50,n+1,2);
                            for(kkk=1;kkk<=i+1;kkk++)
                            {
                             a[n][kkk]=hzk_index[k][18+(n*(i+1)+kkk)];
                             putzimus(11*8+n*64+kkk*8,50,a[n][kkk]-1,2);
                            }
                       }

          } 

          outhz:                              //用户选择组合中所有可能中的一种
          nn=++nn ;
               if(mu==1)
               {
               qmh=hzk_index[k][7+(s-1)*2];
               qml=hzk_index[k][7+(s-1)*2+1];
               }
               if(mu==0)

⌨️ 快捷键说明

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