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

📄 t9.c

📁 T9 输入法. 可以方便地移值到单片机上使用. 可实验T9输入法.
💻 C
📖 第 1 页 / 共 3 页
字号:
      n=n+16;
     }
                                /* 16*5=80点 */
    if(n>80)
     {
      m=0;
      n=0;
      bar(105,155,536,255);
     }
   /*  printf("n=%d,",n); */
   }
 }


/*-------------------------------------------------------------------------------------*/
/*                             void enter_r(unsigned int key)                          */
/*                                                                                     */
/*  ---输入法切换子函数---                                                             */
/*  ---入口:key[0]的首次输入值;返回:无---                                            */
/*  ---功能:按下“r”会更改当前输入法,按q,w会上下翻页操作---                         */
/*-------------------------------------------------------------------------------------*/

void enter_r(unsigned int key)
 {
  unsigned int page=0,flag_6=0;
  unsigned int s1=0,s2=8;
  do
   {
    if(v_s==1)
     {
      bar(101,102,174,119);          /*清空拼音输入框*/
      st_display(en_s);              /*==调用 输入切换显示;显示 “英文小写:子函数*/
      bar(180,100,536,145);
      show_other_clue(1,s1,s2);      /*==调用 其它输入提示子函数 ==*/
     }
    if(v_s==2)
     {
      bar(101,102,174,119);          /*清空拼音输入框*/
      st_display(en_l);              /*显示 “英文大写:*/
      bar(180,100,536,145);
      show_other_clue(2,s1,s2);
     }
    if(v_s==3)
     {
      bar(101,102,174,119);          /*清空拼音输入框*/
      st_display(num_e);             /*显示 “数字输入:*/
      bar(180,100,536,145);
      show_other_clue(3,s1,s2);      /*==调用 数字输入提示子函数 ==*/
     }
    if(v_s==4)
     {
      bar(101,102,174,119);          /*清空拼音输入框*/
      st_display(sign_e);            /*显示 “符号输入:*/
      bar(180,100,536,145);
      show_other_clue(4,s1,s2);
     }
    if(key==0)                       /*按确认键*/
     {
    /*  cancel_data2();      */          /*==调用 清除退格线子函数*/
      bar(101,102,174,119);          /*清空拼音输入框*/
      st_display(py);                /*==调用 显示“拼音输入:”子函数==*/
      bar(180,100,536,145);
      v_s=1;
      break;
      }
     key=check_return(getch());
    if(key==12)
     {
      s1=0;                                 /*恢复原状态*/
      s2=8;
      flag_6=0;
      v_s=v_s+1;
      if(v_s>4)v_s=1;
      key=20;
     }
    if(key==11&&flag_6==0)                  /*下翻页*/
     {
      s1=s1+8;
      page=page+1;
      if(v_s==1&&s1>16){s2=2;flag_6=1;}
      if(v_s==2&&s1>16){s2=2;flag_6=1;}
      if(v_s==3&&s1>0){s2=2;flag_6=1;}
      if(v_s==4&&s1>16){s2=4;flag_6=1;}
     }
    if(key==10&&page!=0)                    /*上翻页*/
     {
      if(v_s==1&&s1>16){s2=8;flag_6=0;}
      if(v_s==2&&s1>16){s2=8;flag_6=0;}
      if(v_s==3&&s1>0){s2=8;flag_6=0;}
      if(v_s==4&&s1>16){s2=8;flag_6=0;}
      s1=s1-8;
      page=page-1;
     }
     get_other_data(key,v_s,s1);
     if(key==9)
      {
        cancel_data();                      /*==调用 清除退格线子函数*/
        output_other(105+m,155+n,28,9,4);
        cancel_data1();                     /*==调用 消除退格线*/
      }

    }while(1);
 }

/*--------------------------------------------------------------------------------------*/
/*                               void input_work()                                      */
/*  ---键盘数据处理子函数---                                                            */
/*  ---入口:无;返回:无---                                                            */
/*  ---功能:处理输入的数据字符等---                                                    */
/*--------------------------------------------------------------------------------------*/
void input_work()
{
 int v1,key[7],i,num_p,k,flag_1=0,flag_2=0,j;
 int v_1;
 unsigned char *p3,num_6,num_7,temp_d[36];

 for(;;)
 {
  for(i=0;i<7;i++)                          /*最多拼音字母为6个*/
  {

    if(flag_1==0)
     {
      do
       {
          key[0]=check_return(getch());     /*调用check_key() 取首次键值,若首次值不等以下值则循环等待*/
            if(key[0]==9)
             {
              cancel_data();                /*==调用 退格子函数*/
              output_other(105+m,155+n,28,9,4);  /*划条清除线 */
              cancel_data1();               /*==调用 消除退格线*/
             }
          if(key[0]==12)                    /*输入法切换键时候,输入拼音前和输完拼音后才可以切换*/
           {
           cancel_data2();                  /*==调用 清除退格线子函数*/
            enter_r(key[0]);                /*==调用 输入法切换子函数*/
            key[0]=20;
            i=0;
           }
       }while(key[0]!=1&&key[0]!=2&&key[0]!=3&&key[0]!=4&&key[0]!=5&&key[0]!=6&&key[0]!=7&&key[0]!=8);
     }

    if(flag_1==1)
     {
      do
        {
           key[i]=check_return(getch());    /*调用check_key() 取首次键值,若首次值不等以下值则循环等待*/
        }while(key[i]!=1&&key[i]!=2&&key[i]!=3&&key[i]!=4&&key[i]!=5&&key[i]!=6&&key[i]!=7&&key[i]!=8&&key[i]!=9&&key[i]!=0);
      }

      flag_1=1;                       /*flag_1作用:对第一次输入的键值限定*/

      cancel_data2();                 /*==调用 清除退格线子函数*/

    if(key[i]==9)                     /*取消当前 拼音,以便重新输入拼音*/
     {
      bar(180,100,536,145);           /*清空字母文字提示框*/
      flag_1=0;
      i=0;                            /*跳出for(i=0;i<7;i++)循环*/
      break;
     }

    if(key[i]==0)                     /*按确认键*/
     {
      flag_1=0;
      flag_2=1;
      v_1=temp_data[1];
      num_6=*p3;
      p3++;
      num_7=*p3;

/*      printf("num_6=%d,",num_6);
      printf("num_7=%d,",num_7);           */
     for(j=0;j<temp_data[0];j++)
       {
        temp_d[j]=hzk_bin[j+v_1];     /*将当前显示的拼音字模代码存好,以便将来选择时候使用*/
  /*      printf("%d=%d,",j,temp_d[j]);        */
       }
      break;
     }

  if(i==0)                            /*第一个键值*/
   {
    for(k=0;k<224;k++)
     {
      if(hzk_index[k][0]==key[0])
       {
        p3=show_hz_clue(i,k);         /*==调用 字符数字提示子函数子函数==*/
        break;
       }
      }
   }
    if(i==1)                          /*第二个键值*/
   {
     for(k=0;k<224;k++)
      {
       if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1])
        {
         p3=show_hz_clue(i,k);
         break;
        }
      }
   }
  if(i==2)                            /*第三个键值*/
   {
     for(k=0;k<224;k++)
      {
       if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2])
        {
         p3=show_hz_clue(i,k);
         break;
        }
      }
   }
  if(i==3)                            /*第四个键值*/
   {
     for(k=0;k<224;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])
        {
         p3=show_hz_clue(i,k);
         break;
        }
      }
   }
  if(i==4)                            /*第五个键值*/
   {
     for(k=0;k<224;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])
        {
         p3=show_hz_clue(i,k);
         break;
        }
      }
   }
  if(i==5)                            /*第六个键值*/
   {
     for(k=0;k<224;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])
        {
         p3=show_hz_clue(i,k);
         break;
        }
      }
   }
  while(i>=6)                         /*避免没有输入确定键,而导致乱码*/
   {
     error_display();
    if(check_return(getch())==9)
     {

      for(num_p=0;num_p<21;num_p++)
       {
        output_other(num_p*8+200,50,29,0,4);
       }

      bar(180,100,536,145);           /*清空字母文字提示框*/
      flag_1=0;                       /*跳出for(i=0;i<7;i++)循环*/
      flag_2=0;
      break;
     }
   }

  }
  if(flag_2==1)
   {
    get_hz_index(num_6,num_7,temp_d);  /*==调用 取输入框中汉字子函数 */
    flag_2=0;
    flag_1=0;
    i=0;
   }
 }

}

/*--------------------------------------------------------------------------------------*/
/*                                   void main()                                        */
/*  ---程序主函数---                                                                    */
/*  ---功能:模拟手机进行T9输入法---                                                    */
/*--------------------------------------------------------------------------------------*/

void main()
{
 int *p1;
 initial();                   /*==调用 初始化图形和边框子函数  ==*/
 logo_display();              /*==调用 显示logo子函数          ==*/
 st_display(py);              /*==调用 显示“拼音输入:”子函数==*/
 input_work();                /*==调用 键盘数据处理子函数      ==*/



 getch();
}

⌨️ 快捷键说明

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