O feioso 0 Denunciar post Postado Novembro 19, 2010 Seguinte.. recebi um trabalho para fazer na faculdade, uma agenda e tal. Até agora eu criei só o esqueleto dela, minha dúvida está na parte de pesquisar e excluir um contato dela. Também tenho que ordenar os contatos em ordem alfabética. Queria que vcs me dessem uma luz quanto as funções, pelo menos um caminho, estou totalmente perdido :( (Ainda tem que guardar tudo isso em um arquivo) #include <stdio.h> #include <stdlib.h> // Protótipos das Funções void abrir (void); void inserir (void); void pesquisar (void); void pesquisar_nome (void); void pesquisar_cidade (void); void pesquisar_estado (void); void apagar (void); int q=0, i; FILE *fp; //---------------------------------------------------------------------------------- // Estrutura de Dados struct agenda{ char nome[20]; char sobrenome[30]; char endereco[40]; char numero[10]; char complemento[20]; char bairro[20]; char cidade[20]; char estado[20]; char telefone[20]; char celular[20]; }x[5]; //------------------------------------------------------ // Função para Abrir Arquivo //------------------------------------------------------ // Função para Inserir Contato void inserir() { fp = fopen ("arquivo.txt", "a"); if (fp == NULL){ printf ("Erro na abertura do arquivo!\n\n"); } // Leitura de dados for (i=0; i<3; i++){ fflush(stdin); printf ("\nNome: "); gets (x[q].nome); printf ("Sobrenome: "); gets (x[q].sobrenome); printf ("Endereco: "); gets (x[q].endereco); printf ("Numero: "); gets (x[q].numero); printf ("Complemento: "); gets (x[q].complemento); printf ("Bairro: "); gets (x[q].bairro); printf ("Cidade: "); gets (x[q].cidade); printf ("Estado: "); gets (x[q].estado); printf ("Telefone: "); gets (x[q].telefone); printf ("Celular: "); gets (x[q].celular); printf ("\n\n"); // Gravação de Dados no Arquivo fprintf (fp, "\nNome: %s\n", x[q].nome); fprintf (fp, "Sobrenome: %s\n", x[q].sobrenome); fprintf (fp, "Endereco: %s\n", x[q].endereco); fprintf (fp, "Numero: %s\n", x[q].numero); fprintf (fp, "Complemento: %s\n", x[q].complemento); fprintf (fp, "Bairro: %s\n", x[q].bairro); fprintf (fp, "Cidade: %s\n", x[q].cidade); fprintf (fp, "Estado: %s\n", x[q].estado); fprintf (fp, "Telefone: %s\n", x[q].telefone); fprintf (fp, "Celular: %s\n", x[q].celular); } fclose(fp); } //------------------------------------------------------------ // Função para Pesquisar Contato void pesquisar() { int op_2; printf ("\n===========================\n"); printf ("Escolha uma opcao:\n\n"); printf ("1. Pesquisar por nome\n"); printf ("2. Pesquisar por cidade\n"); printf ("3. Pesquisar por estado\n"); printf ("4. Voltar ao Menu Principal\n"); printf ("===========================\n\n"); printf ("* Opcao: "); scanf ("%d", &op_2); printf ("\n"); switch (op_2){ case 1: //printf ("Funciona!\n"); pesquisar_nome(); break; case 2: //pesquisar_cidade(); break; case 3: //pesquisar_estado(); break; case 4: main(); break; default: printf ("Opcao Invalida - Tente Novamente\n"); pesquisar(); break; } } //------------------------------------------------------------ // Função Pesquisar Contato por Nome void pesquisar_nome () { char nome_1[30]; printf ("Digite o nome que voce deseja pesquisar: "); scanf ("%s", &nome_1); for (q=0; q<3; q++){ if (strcmp (nome_1, x[q].nome)== 0){ // Aqui é comparada a string "nome_1" com a string "x[q].nome", se elas forem iguais, a função retorna 0, e então se printa os dados na tela. printf ("\nNome: %s\n", x[q].nome); printf ("Sobrenome: %s\n", x[q].sobrenome); printf ("Endereco: %s\n", x[q].endereco); printf ("Numero: %s\n", x[q].numero); printf ("Complemento: %s\n", x[q].complemento); printf ("Bairro: %s\n", x[q].bairro); printf ("Cidade: %s\n", x[q].cidade); printf ("Estado: %s\n", x[q].estado); printf ("Telefone: %s\n", x[q].telefone); printf ("Celular: %s\n\n", x[q].celular); printf ("Pesquisa Concluida !\n\n"); } } } // Função para Excluir Dados void apagar () { } // ----------------------------------------------------------- int main() { int op; do{ printf ("======== Menu ========\n"); printf ("1. Abrir Arquivo\n"); printf ("2. Inserir Contato\n"); printf ("3. Pesquisar Contato\n"); printf ("4. Apagar Contato\n"); printf ("5. Sair\n"); printf ("======================\n\n"); printf ("* Escolha sua opcao: "); scanf ("%d", &op); switch (op){ case 1: //abrir(); break; case 2: inserir(); break; case 3: pesquisar(); break; case 4: //apagar(); break; case 5: printf ("\nFim do programa\n"); break; default: printf ("Opcao Invalida - Tente Novamente\n\n"); break; } }while(op != 5); //------------------------------------------------------------ system("PAUSE"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Novembro 22, 2010 É tera que trabalhar os contatos em blocos.. sempre usará uma struct para armazenar os dados lidos do txt.. para ordenar veja sobre o comando strcoll; []s Compartilhar este post Link para o post Compartilhar em outros sites