Ir ao conteúdo
  • Cadastre-se
K9xy

Teclado de t9 codigo em c++

Recommended Posts

Bom dia Pessoal , estou fazedo um codigo de para um teclado t9,e e sta dando alguns erros, não consigo utlizar a função gotoxy, alguem poderia me dar uma ajuda??

 

 

 

t9.txt

Editado por K9xy

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa, o erro esta dando na função void imprime_linha, na linha onde esta definido gotoxy!

 

 

 

#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <cstdlib>
#include <cmath>
#include <windows.h>
#include <conio.h>
#include <algorithm>
#define max 19
#define min 0
using namespace std;
class Elemento{
    public:
    Elemento *p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;
    
    vector<string> palavras;

    Elemento(){
        p1=NULL;
        p2=NULL;
        p3=NULL;
        p4=NULL;
        p5=NULL;
        p6=NULL;
        p7=NULL;
        p8=NULL;
        p9=NULL;
        
    }
};
class Arvore {
public:
  Elemento *raiz;
  int tam;
  
  Arvore() {
    raiz = new Elemento(); 
    tam = 0;
  }


void Monta_ramo(string palavra) {
    Elemento *onde = raiz;  
    for(int i=0;i<palavra.size();i++)
            {
        switch(palavra){

        case'a':
        case'b':
        case'c':
                if(onde->p2== NULL){
                   onde->p2 = new Elemento();
                   }
                   onde=onde->p2;
                   break;

        case'd':
        case'e':
        case'f':
                if(onde->p3== NULL){
                   onde->p3 = new Elemento();
                   }
                   onde=onde->p3;
                   break;
        case'g':
        case'h':
        case'i':
                if(onde->p4== NULL){
                   onde->p4 = new Elemento();
                   }
                   onde=onde->p4;
                   break;
        case'j':
        case'k':
        case'l':
                if(onde->p5== NULL){
                   onde->p5 = new Elemento();
                   }
                   onde=onde->p5;
                   break;
        case'm':
        case'n':
        case'o':
               if(onde->p6== NULL){
                  onde->p6 = new Elemento();
                  }
                  onde=onde->p6;
                  break;
        case'p':
        case'q':
        case'r':
        case's':
                if(onde->p7== NULL){
                  onde->p7 = new Elemento();
                   }
                   onde=onde->p7;
                   break;
        case't':
        case'u':
        case'v':
                if(onde->p8== NULL){
                   onde->p8 = new Elemento();
                   }
                   onde=onde->p8;
                   break;
        case'w':
        case'x':
        case'y':
        case'z':
                if(onde->p9== NULL){
                   onde->p9 = new Elemento();
                   }
                   onde=onde->p9;
                   break;
        default:
        if(onde->p1==NULL){
                           onde->p1 = new Elemento();
                           }
                           onde=onde->p1;
                           break;
        }
        onde->palavras.push_back(palavra);
        }
    }
   
void popula_arvore(){
     string palavra;
     ifstream ler;
     ler.open("termos.txt");
     if(!ler.is_open())
        {
        cout<<"Não foi possível abrir arquivo! Programa será terminado!\n";
        ler.clear(); 
        }
    while(ler >> palavra){
            Monta_ramo(palavra);
    }
    return ;
}

vector<string> ler( Elemento *proc ){
        
        vector<string> word;
        for(int i=0;i<fmin(max,proc->palavras.size());i++){
                           word.push_back(proc->palavras);
                           
                }
        return word;
        
}
void imprime_espaco(long int e,int x,int y,bool a){
    for(long int i=0;i<e;i++){
        cout<<" ";
    }
}

 void imprime_linha(long int l,int x,int y,bool a){
    for(long int i=0;i<l;i++){
        if(a==true){
          gotoxy(x+i,y);
          cout <<"_";
    }
    }
    }
void imprime_coluna(int c,int x,int y,bool a){
    for(int i=0;i<c;i++){
        if(a==true){
        gotoxy(x,y); y++;}
        cout<<"|";
    }
    return;
}

void tela(vector<string> palavra,int x,string texto){
    system("cls");
    system ("color 70");
    textcolor(0);
    textbackground(10);
    imprime_espaco(38,0,0,false);
    cout<<"T9";
    imprime_espaco(40,0,0,false);
    imprime_linha(80,0,0,false);
    textbackground(7);
    textcolor(0);
    cout<<"        | Teclado |\n";
    cout<<"  _______________________\n";
    cout<<" |       |       |       |\n";
    cout<<" |   1   |   2   |   3   |\n";
    cout<<" |_______|_______|_______|\n";
    cout<<" |       |       |       |\n";
    cout<<" |       | a b c | d e f |\n";
    cout<<" |_______|_______|_______|\n";
    cout<<" |       |       |       |\n";
    cout<<" |   4   |   5   |   6   |\n";
    cout<<" |_______|_______|_______|\n";
    cout<<" |       |       |       |\n";
    cout<<" | g h i | j k l | m n o |\n";
    cout<<" |_______|_______|_______|\n";
    cout<<" |       |       |       |\n";
    cout<<" |   7   |   8   |   9   |\n";
    cout<<" |_______|_______|_______|\n";
    cout<<" |       |       |       |\n";
    cout<<" |p q r s| t u v |w x y z|\n";
    cout<<" |_______|_______|_______|\n";
    imprime_coluna(21,27,3,true);    
    imprime_coluna(21,54,3,true);
    imprime_linha(81,0,23,true);
    if(palavra.size()>0){
            gotoxy(55,3);
            cout<<"PALAVRA:";
            for(int i=0;i<fmin(max,palavra.size());i++){
            gotoxy(55,i+4);
               cout<<"[";
            }
            for(int i=0;i<fmin(max,palavra.size());i++){
            gotoxy(57,i+4);
            cout<<"]"<<palavra;}
           gotoxy(56,x-5);
           cout<<" ";
           gotoxy(56,x+5);
           cout<<" ";
           gotoxy(56,x+4);
           cout<<"*";
           cout<<"\n";
           if(palavra.size()<max){
            gotoxy(1,25);
            textcolor(12);
            cout<<"\n\n           Alerta: Numero de palavras na Base esta chegando no limite" <<endl;
            textcolor(0);
             }
}
    
    gotoxy(28,3);
    cout<<"Modo de usar:";
    gotoxy(28,5);
    cout<<"-> Digite '0' para confir-";
    gotoxy(28,6);
    cout<<"mar a palavra.";
    gotoxy(28,8);
    cout<<"-> Os carateres '+' e '-'";
    gotoxy(28,9);
    cout<<"selecionam a palavra.";
    gotoxy(28,11);
    cout<<"-> Digite 's' para sair.";
    gotoxy(28,13);
    cout<<"-> Digite 'c' para  cance-";
    gotoxy(28,14);
    cout<<"lar.";
    
}

};
int main(){
    Arvore a;
    char tecla;
    string texto;
    vector <string> palavra;
    int x=min,MAX;
    bool erro;
    
    Elemento *no;
    a.popula_arvore();
    system("mode con:cols=80 lines=28");
    system ("title TECLADO T9");
    no=a.raiz;
      while(tecla!='s')
    {
    //if (palavra.size()>0)
    a.tela(palavra,x,texto);
    gotoxy(1,24);
    cout<<"Texto:"<<texto;
    gotoxy(1,25);
    cout<<"Tecla:";
    tecla=getch();
         switch(tecla){
            palavra.clear();
           case'2':
                   if(no->p2!=NULL){
                    no = no->p2;
                    palavra=a.ler(no);
                    MAX=palavra.size();
                    }
          break;
           
           case '3':
                if(no->p3!=NULL){
                    no = no->p3;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'4':
                   if(no->p4!=NULL){
                    no = no->p4;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'5':
                if(no->p5!=NULL){
                    no = no->p5;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'6':
                if(no->p6!=NULL){
                    no = no->p6;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'7':
                if(no->p7!=NULL){
                    no = no->p7;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'8':
                if(no->p8!=NULL){
                    no = no->p8;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           
           case'9':
                if(no->p9!=NULL){
                    no = no->p9;
                    palavra=a.ler(no);
                    MAX=palavra.size();
            }
           break;
           case'0':
                texto=texto+" "+palavra[x];
                palavra.clear();
                no=a.raiz;
            
           break;
           case's':
                
                    system("cls");
                       cout<<"SAIR!!" <<endl;
                       erro=true;
           break;
           case'c':
                
                    system("cls");
                       palavra.clear();
                       no=a.raiz;
           break;
           default:
                  if((tecla=='-')&&(x>min))x--;
         else  if((tecla=='+')&&(x<fmin(max,MAX-1)))x++;
         else {
             
             cout<<"ERRO!!" <<endl;
             Sleep(1000);
         }
            break; 
            
       }
       
    }
    gotoxy(7,24);
    cout<<"\n\n";
    system("PAUSE");
    return EXIT_SUCCESS;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem por favor pode me ajudar com esse código, ele ta dando erro na gotoxy!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

gotoxy é uma função da biblioteca Allegro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×