Ir para conteúdo
Fórum Script Brasil

lucas_marciano

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre lucas_marciano

lucas_marciano's Achievements

0

Reputação

  1. To com uma duvida que, creio eu, muita gente tem. Gostaria de saber como abrir um arquivo, eu tenho que colocar o endereço dele ou simplesmente digitar o nome ?? :unsure: meu codigo é esse : ------------------------------------------------------------------------------------------------------------------------------------------------------- #include<iostream> #include<string.h> #include<stdio.h> #include<conio.h> #include <fstream> #include <string> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct arvore Arv; struct arvore{ char info[30]; char net[30]; char telefone[15]; Arv * esq; Arv * dir; }; Arv * criaArvore(void){ return NULL; } void insereArvore(Arv ** raiz, char nome[], char tel[],char email[]){ if (*raiz == NULL){ *raiz = new Arv; strcpy((*raiz)->info, nome); strcpy((*raiz)->telefone, tel); strcpy((*raiz)->net, email); (*raiz)->esq = NULL; (*raiz)->dir = NULL; } else { if(strcmp(nome,(*raiz)->info) < 0){ insereArvore(&(*raiz)->esq,nome,tel,email); } else{ insereArvore(&(*raiz)->dir,nome,tel,email); } } } void exibeArvorePreOrdem(Arv * raiz){ if(raiz != NULL){ cout << raiz->info << endl; exibeArvorePreOrdem(raiz->esq); exibeArvorePreOrdem(raiz->dir); } } void exibeArvoreEmOrdem(Arv * raiz){ if(raiz != NULL){ exibeArvoreEmOrdem(raiz->esq); cout << raiz->info << endl; exibeArvoreEmOrdem(raiz->dir); } } void exibeArvorePosOrdem(Arv * raiz){ if(raiz != NULL){ exibeArvorePosOrdem(raiz->esq); exibeArvorePosOrdem(raiz->dir); cout << raiz->info << endl; } } void limparArvore(Arv** raiz){ if(*raiz != NULL){ limparArvore(&(*raiz)->esq); limparArvore(&(*raiz)->dir); delete(*raiz); } *raiz = NULL; } Arv* procurarArvore(Arv * raiz,char info[]){ if(raiz != NULL){ if(strcmp(raiz->info,info)==0){ return raiz; } else{ if(strcmp(raiz->info,info)<0){ procurarArvore(raiz->dir,info); } else{ if(strcmp(raiz->info,info)>0){ procurarArvore(raiz->esq,info); } } return raiz; } }else return NULL; } int alturaArvore(Arv* raiz){ if (raiz == NULL) return 0; // altura de árvore vazia é 0 else { int he = alturaArvore(raiz->esq); int hd = alturaArvore(raiz->dir); if (he < hd){ return hd + 1; } else{ return he + 1; } } } void remover(Arv** raiz,char v[]){ if(*raiz != NULL){ if(strcmp((*raiz)->info,v) < 0){ remover(&(*raiz)->esq,v); } else if(strcmp((*raiz)->info,v) > 0){ remover(&(*raiz)->dir,v); } else{ if((*raiz)->esq == NULL && (*raiz)->dir == NULL){ delete (*raiz); *raiz = NULL; } else if((*raiz)->esq == NULL || (*raiz)->dir == NULL){ Arv* aux = *raiz; if((*raiz)->esq == NULL){ *raiz = (*raiz)->dir; delete(aux); } else{ *raiz = (*raiz)->esq; delete(aux); } } else { Arv* aux = (*raiz)->esq; while(aux->dir != NULL){ aux = aux->dir; } char aux2[30]; strcpy(aux2, aux->info); strcpy(aux->info,(*raiz)->info); strcpy((*raiz)->info, aux2); remover(&(*raiz)->esq,v); } } } } int main(){ ofstream myfile ("Agenda.txt"); Arv * arv; arv = criaArvore(); int op, alt = 0, cont = 0; bool sair = false; do{ if (myfile.is_open()){ cout << "\t_Arvore Binaria_ \n\n" << endl; cout << "1. Insere na Arvore "<<endl; cout << "2. Pre-Ordem " << endl; cout << "3. Em-Ordem " << endl; cout << "4. Pos-Ordem " << endl; cout << "5. Liberar Arvore " << endl; cout << "6. Procurar Elementos " << endl; cout << "7. Altura da arvore " << endl; cout << "8. Eliminar um elemento " << endl; cout << "9. Mostrar arquivo salvo " << endl; cout << "10. EXIT \n\n" << endl; cout << "Entre com a opcao: "; cin >> op; getchar(); switch(op){ case 1: { system("cls"); char nome[30],tel[15],email[30]; cout << ". Digite o nome: " << endl; gets(nome); cout << ". Digite o telefone: " << endl; gets(tel); cout << ". Digite o e-mail: " << endl; gets(email); myfile << ".Nome: "; myfile << nome << "\n"; myfile << ".Telefone: "; myfile << tel << "\n"; myfile << ".Email: "; myfile << email << "\n"; insereArvore(&arv,nome,tel,email); myfile << "\n------------------------\n"; break; } case 2: system("cls"); cout << "--- Pre-ordem ---" << endl; exibeArvorePreOrdem(arv); break; case 3: system("cls"); cout << "--- Em-ordem ---" << endl; exibeArvoreEmOrdem(arv); break; case 4: system("cls"); cout << "--- Pos-ordem ---" << endl; exibeArvorePosOrdem(arv); break; case 5: system("cls"); if(arv == NULL){ cout << "Arvore vazia "<<endl; break; }else limparArvore(&arv); cout << "Arvore Limpa "<<endl; break; case 6: { system("cls"); char elemento[30]; Arv* aux; cout << "Entre com o elemento a procurar: " << endl; gets(elemento); aux = procurarArvore(arv,elemento); if (aux == NULL){ cout << "Elemento não encontrado." << endl; } else{ cout << "Elemento " << elemento << " existe." << endl; } break; } case 7: system("cls"); alt = alturaArvore(arv); if (alt <= 0){ cout << "Arvore Vazia " << endl; cout << "\n\n"; } else{ cont = cont + alt; cout << "Altura da arvore: "<< cont; } cout << "\n\n\n"; break; case 8: { system("cls"); char val[30]; cout << "Entre com o elemento a ser eliminado: " << endl; gets(val); remover(&arv,val); break; } case 9: { ifstream iFile( "Agenda.txt" ); char nome2[ 25 ]; while ( iFile && !iFile.eof() ) { iFile >> nome2; cout << "Nome: " << nome2; } } case 10: system("cls"); sair = true; break; default: system("cls"); cout << "Opcao errada\n\n\n" << endl; myfile.close(); break; } } else cout << "Unable to open file"; }while(!sair); return 0; } ------------------------------------------------------------------------------------------------------------------------------------------------------- o "case 9" deveria ler o arquivo mas quando entro nele ele simplesmente fecha ....
×
×
  • Criar Novo...