Ir ao conteúdo
  • Cadastre-se

K9xy

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

posts postados por K9xy

  1. 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;
    }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!