Ir ao conteúdo
  • Cadastre-se

Gegê Carvalho

Membros Juniores
  • Total de itens

    5
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Algúem que possa me ajudar a encontrar o erro? #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> #define max 100 #define col 50 typedef struct endereco { char nome[30]; char fone[17]; char email[80]; char rua[40]; int numero; char bairro[50]; char cidade[30]; char sigla_estado[3]; char cep[8]; int dia; int mes; int ano; }Tpessoa; void inclusao(void); void Listar(void); void quick_struct(int); void qs_struct(int,int); void ordenar(void); void pesquisar(void); char Validaresp(); void imprimir(void); static int qtd = 0; Tpessoa Tab[100]; FILE *fp; void inclusao(void){ int total = 0, retorno; char op = 's'; if ((fp = fopen("endereco.db", "a")) == NULL) { printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } while ((total < 100) && (op == 's')) { printf ("Digite o nome: "); gets(Tab[total].nome); printf ("Digite o fone: "); gets(Tab[total].fone); printf ("Digite o E-mail: "); gets(Tab[total].email); printf ("Digite a rua: "); gets(Tab[total].rua); printf ("Digite o numero de sua residencia:"); gets(Tab[total].numero); printf ("Digite o bairro:"); gets(Tab[total].bairro); printf ("Digite a cidade:"); gets(Tab[total].cidade); printf ("Digite a sigla do Estado:"); gets(Tab[total].sigla_estado); printf ("Digite o cep:"); gets(Tab[total].cep); retorno = fwrite (&Tab[total], sizeof(struct endereco) ,1,fp); if (retorno == 1) { printf(" \n Gravacao ok ! "); } total++; op = Validaresp(); qtd++; } fclose (fp); } char Validaresp() { char op; do { printf(" \n Deseja inserir novos dados? [S ou N] ? " ); op = getch(); printf("\n" ); } while (op != 's' && op != 'n'); return op; } void ordenar(void){ Tpessoa vet; int aux,i,j,k,retorno; char *str, *str2, *straux; aux = qtd; for ( i = 0 ; i < aux ; i++ ){ str = Tab.nome; for ( j = i+1 ; j < aux ; j++ ){ str2 = Tab[j].nome; if ( strcmp ( str, str2 ) > 0 ){ vet = Tab; Tab = Tab[j]; Tab[j] = vet; } } } void ordenar(void){ Tpessoa vet; int aux,i,j,k,retorno; char *str, *str2, *straux; aux = qtd; for ( i = 0 ; i < aux ; i++ ){ str = Tab.dia; for ( j = i+1 ; j < aux ; j++ ){ str2 = Tab[j].dia; if ( strcmp ( str, str2 ) > 0 ){ vet = Tab; Tab = Tab[j]; Tab[j] = vet; } } } void ordenar(void){ Tpessoa vet; int aux,i,j,k,retorno; char *str, *str2, *straux; aux = qtd; for ( i = 0 ; i < aux ; i++ ){ str = Tab.mes; for ( j = i+1 ; j < aux ; j++ ){ str2 = Tab[j].mes; if ( strcmp ( str, str2 ) > 0 ){ vet = Tab; Tab = Tab[j]; Tab[j] = vet; } } } remove("endereco.db"); if ((fp = fopen("endereco.db", "w+")) == NULL){ printf ("ERRO!\n"); getch(); exit(1); } for ( k = 0 ; k < aux ; k++ ){ retorno = fwrite (&Tab[k], sizeof(struct endereco) ,1,fp); if (retorno != 1) { printf(" \n ERRO ! "); } } fclose(fp); printf("\n Lista Ordenada! \n"); getch(); } void pesquisar(void){ int indice = 0, retorno = 1, cont = 0; char nome[80],op; if ((fp = fopen("endereco.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o nome: "); gets(nome); retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); while (retorno == 1){ if (strcmp(nome, Tab[indice].nome) == 0 ){ printf("\nNome..: %s\nFone..: %s\nE-mail..:%s\nrua..:%s\numero..: %s\nbairro..:%s\ncidade...%s\nsigla_estado..:%s\ncep ..:%s\n",nome,Tab[indice].fone,Tab[indice].email,Tab[indice].rua,Tab[indice].numero,Tab[indice].bairro,Tab[indice].cidade,Tab[indice].sigla_estado,Tab[indice].cep); cont++; } indice++; retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); } if(cont == 0){ printf("Nao existe contatos com este nome!\n"); } getch(); fclose(fp); } void pesquisarfone(void){ int indice = 0, retorno = 1, cont = 0; char fone[80],op; if ((fp = fopen("endereco.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o telefone: "); gets(fone); retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); while (retorno == 1){ if (strcmp(fone, Tab[indice].fone)==0){ printf ("\nNome ..: %s\nFone ..: %s\nE-mail ..: %s\n", Tab[indice].nome, Tab[indice].fone, Tab[indice].email); cont++; } indice ++; retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); } if(cont == 0){ printf("Nao ha contatos com este Telefone!\n"); } getch(); fclose(fp); } void pesquisaremail(void){ int indice = 0, retorno = 1, cont =0; char email[80],op; if ((fp = fopen("endereco.db", "r")) == NULL){ printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } printf ("Digite o E-mail: "); gets(email); retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); while (retorno == 1){ if (strcmp(email, Tab[indice].email)==0){ printf("\nNome..: %s\nFone..: %s\nE-mail..: %s\nrua..: %s\nnumero..: %s\nbairro..: %s\ncidade... %s\nsigla_estado..: %s\ncep ..: %s\n", Tab[indice].nome, Tab[indice].fone, Tab[indice].email, Tab[indice].rua, Tab[indice].numero, Tab[indice].bairro, Tab[indice].cidade, Tab[indice].sigla_estado, Tab[indice].cep); cont++; } indice ++; retorno = fread(&Tab[indice], sizeof(struct endereco), 1, fp); } if(cont == 0){ printf("Nao existe contatos com este Email!\n"); } getch(); fclose(fp); } void Listar(void){ int i = 0, retorno; if ((fp = fopen("endereco.db", "r")) == NULL) { printf ("O arquivo da lista não pode ser aberto!\n"); printf ("Insira dados!\n"); getch(); exit(1); } retorno = fread(&Tab, sizeof(struct endereco), 1, fp); while ( retorno == 1) { printf("\n Nome ..: %s", Tab.nome); printf("\n Fone ..: %s", Tab.fone); printf("\n E-mail ..: %s\n", Tab.email); printf ("\n Rua ..: %s\n", Tab.rua); printf ("\n Numero ..: %s\n", Tab.numero); printf ("\n Bairro ..: %s\n", Tab.bairro); printf ("\n Cidade..: %s\n", Tab.cidade); printf ("\n Sigla do estado ..: %s\n", Tab.sigla_estado); printf ("\n cep ..: %s\n", Tab.cep); i++; retorno = fread(&Tab, sizeof(struct endereco), 1, fp); } printf(" \n\n %d Contatos salvos!\n", i); getch(); fclose(fp); } void menu(void){ char op; int teste; if ((fp = fopen("endereco.db", "r")) != NULL){ qtd = 0; do { teste = fread(&Tab, sizeof(struct endereco), 1, fp); qtd++; }while ( teste == 1 ); qtd--; } do{ system("cls"); printf("\n(1)Incluir\n(2)Listar\n(3)Ordenar por nome\n(4)Pesquisar por nome\n"); printf("(5)Pesquisar por fone\n(6)Pesquisar por E-mail\n(7)Pesquisar por mes de aniversario\n"); printf("(8) Pesquisar por dia de aniversario\n(9)Qualquer outra tecla para sair\n\n"); op = getch(); switch(op){ case '1': inclusao(); break; case '2': Listar(); break; case '3': ordenar(); break; case '4': pesquisar(); break; case '5': pesquisarfone(); break; case '6': pesquisaremail(); break; case '7': pesquisarmesdeaniversario(); break; case '8': pesquisardiadeaniverasario(); break; default: exit(1); } }while (op < '9'); } int main (){ int var; printf("\n\n\n\n\n\n\n\n\n\n"); printf(" .::AGENDA DE TELEFONES:. \n\n"); printf(" Veja todas as funcoes disponiveis no menu \n"); printf(" use os numeros para selecionar a opcao desejada \n"); printf(" pressione qualquer tecla para continuar ou ESC para sair do programa agora."); var=getch(); if(var == 27){ exit(1);} menu(); system("pause"); }
  2. Minha duvida está em programar o if e o else if, alguém que possa me orientar em como iniciar a lógica, pois, tenho muita dificultade nessa parte. Desde já agradeço pela atenção. #include <stdio.h> #include <stdlib.h> typedef struct node{ int data; struct node *next; } Tnode; Tnode *start = NULL; Tnode *CriarListaLigada(Tnode *); Tnode *ImprimirListaLigada(Tnode *); Tnode *InsereInicioLista(Tnode *); Tnode *InsereFimLista(Tnode *); Tnode *InsereDepois(Tnode *); Tnode *InsereAntes(Tnode *); Tnode *DeletaNoInicio(Tnode *); Tnode *DeletaNoFim(Tnode *); Tnode *DeletaNoEspecifico(Tnode *); Tnode *DeletaDepois(Tnode *); Tnode *DeletaTudo(Tnode *); Tnode *OrdenaLista(Tnode *); void SalvarTXT(Tnode *); int main() { int option; do{ printf("\n\n *****MAIN MENU *****"); printf("\n 1: Cria lista/elementos"); printf("\n 2: Imprime a lista"); printf("\n 3: Adiciona um no no inicio da lista"); printf("\n 4: Adiciona um no no fim da lista"); printf("\n 5: Adiciona um no depois de um dado no"); printf("\n 6: Adiciona um no antes de um dado no"); printf("\n 7: Deleta um no no inicio da lista"); printf("\n 8: Deleta um no no fim da lista"); printf("\n 9: Deleta um no especifico"); printf("\n 10: Deleta um no depois um no especifico"); printf("\n 11: Deleta toda a lista"); printf("\n 12: ordena a lista"); printf("\n 13: Salvar Lista no TXT"); printf("\n 14: Sair"); printf("\n\n Informe uma opcao: "); scanf("%d", &option); if (option>1 && option<14 && start==NULL) continue; if (/*....*/){ start = CriarListaLigada(/*....*/); }else if (/*....*/){ start = ImprimirListaLigada(/*....*/); }else if (/*....*/){ start = InsereInicioLista(/*....*/); }else if (/*....*/){ start = InsereFimLista(/*....*/); }else if (/*....*/){ start = InsereDepois(/*....*/); }else if (/*....*/){ start = InsereAntes(/*....*/); }else if (/*....*/){ start = DeletaNoInicio(/*....*/); }else if (/*....*/){ start = DeletaNoFim(/*....*/); }else if (/*....*/){ start = DeletaNoEspecifico(/*....*/); }else if (/*....*/){ start = DeletaDepois(/*....*/); }else if (/*....*/){ start = DeletaTudo(/*....*/); }else if (/*....*/){ start = OrdenaLista(/*....*/); }else if (/*....*/){ SalvarTXT(/*....*/); } }while(/*....*/); return 0; }
  3. Tv adicionado 1 minuto depois Eu vou resolver o exercício e o posto as dúvidas que são muitas.
  4. Boa noite pessoal, faço engenharia mas, programação não é minha praia. Estou apanhando muito, preciso resolver esse exercício valendo nota alguém que possa me ajudar? A disciplina é Estrutura de Dados. Obrigada. Ele deu o template #include <stdio.h> #include <stdlib.h> #include <string.h> #define Max 100 #define Col 50 typedef struct{ //........... } Tendereco; typedef struct{ //........... } Ttelefone; typedef struct{ //.......... } Tdata; typedef struct{ //............. Tendereco //.......... //.......; } Tpessoa; void PreencheRegistro(Tpessoa *p){ //......... scanf............... } void ImprimeRegistro(Tpessoa *p){ //......... printf ......... } void BuscaRegistroNome(Tpessoa Vet[], char busca[], int TotalRegistros){ //.......... for(/*..............*/){ if (/*.................*/){ ImprimeRegistro(/*.................*/); } } } void BuscaRegistroMes(Tpessoa Vet[], int mes, int TotalRegistros){ //.......... for(/*..............*/){ if (/*.................*/){ ImprimeRegistro(/*.................*/); } } } void BuscaRegistroDiaMes(Tpessoa Vet[], int dia, int mes, int TotalRegistros){ //.......... for(/*..............*/){ if (/*.................*/){ ImprimeRegistro(/*.................*/); } } } void ImprimeTodos(Tpessoa Vet[],int TotalRegistros){ //.......... for(/*..............*/){ ImprimeRegistro(/*.................*/); } } int continuar(){ fflush(stdin); int c=0; printf("\nDeseja continuar (1 - sim, 0 - nao): "); scanf("%d",&c); fflush(stdin); return c; } void CadastrarRegistros(int *TotalRegistros, Tpessoa Vet[]){ //.......... if(/*............*/) i=/*...............*/; for(/*..............*/){ (*TotalRegistros)++; PreencheRegistro(/*..........*/); if (continuar()!=1) break; } } void main(){ int TotalRegistros=-1; // Var. q mostra qts nomes tem cadastrado na agenda (MAX = 100). Tpessoa Vet[Max]; //vetor de contados da agenda (100 elementos) do{ //menu do programa........ system("cls"); printf("Informe o que você deseja fazer:\n"); printf("1 - Cadastrar uma pessoa\n"); printf("2 - Imprimir TODOS os registros\n"); printf("3 - Buscar pelo primeiro nome\n"); printf("4 - Buscar pelo mes de aniversario\n"); printf("5 - Buscar pelo mes e dia de aniversario\n"); fflush(stdin); int opcao=0; scanf(/*...........*/); fflush(stdin); if (/*...........*/){ CadastrarRegistros(/*...........*/); }else if (/*...........*/){ system("cls"); ImprimeTodos(/*...........*/); getchar(); }else if (/*...........*/){ char busc[Col]; printf("\nInforme o nome que deseja buscar: "); fflush(stdin); scanf(/*...........*/); fflush(stdin); BuscaRegistroNome(/*...........*/); getchar(); }else if (/*...........*/){ int ddia; printf("\nInforme o dia do nascimento que deseja buscar: "); fflush(stdin); scanf(/*...........*/); fflush(stdin); BuscaRegistroMes(/*...........*/); getchar(); }else if (/*...........*/){ int ddia, mmes; printf("\nInforme o dia do nascimento que deseja buscar: "); fflush(stdin); scanf(/*...........*/); fflush(stdin); printf("\nInforme o mes do nascimento que deseja buscar: "); scanf(/*...........*/); fflush(stdin); BuscaRegistroDiaMes(/*...........*/); getchar(); } }while(1==1); }

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

×