Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Aldemar Mendes

C Pessoal Alguém poderia me da Dicas de Como eu Posso Usar Pilha&Lista na..

Recommended Posts

Pessoal Alguém poderia me Ajuda com Dicas de Como eu Posso Usar Pilha&Lista na minha Agenda .. ???

 

/*
	 
	// main.c 
	#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <conio.h>
	struct Endereco
{
    char rua[30];
    int numero;
    char comp[30];
    char bairro[30];
    int cep;
    char cidade[30];
    char estado[3];
    char pais[30];
};
	struct Telefone
{
    int dd;
    int tel;
};
	struct Aniversario
{
    int dd;
    int mes;
    int ano;
};
	struct Pessoa
{
    char nome[30];
    char email[30];
    struct Endereco ende;
    struct Telefone fone;
    struct Aniversario data;
    char obs[50];
};
	int main()
{
    setlocale(LC_ALL,"Portuguese");
    struct Pessoa contatos[100];
    struct Pessoa aux;
    int troca;
    int opcao;/// VARIAVEL NA ESCOLHA DO MENU
    int indice=0;///VARIAVEL QUE CONTEM O VALOR DO INDICE DO VETOR
    int i,j,encontrou=0;///INDICA A QDE DE REGISTRO
    char pesq[30];///GUARDAR O NOME DA PESQUISA
    int cod;
    int d,m;
	    do
    {
        system("cls");
        printf("---###--AGENDA DE CONTATOS--###---\n");
        printf("\n 1 - Pesquisar por NOME");//será mostrado NOME, TELEFONE, EMAIL
        printf("\n 2 - Pesquisar por MES ANIVERSARIO");
        printf("\n 3 - Pesquisar por DIA e MES ANIVERSARIO");
        printf("\n 4 - Cadastrar CONTATO");
        printf("\n 5 - Excluir CONTATO");
        printf("\n 6 - LISTAR todos os contatos");
        printf("\n 7 - ORDENAR POR NOME");//
        printf("\n 8 - ORGANIZAR POR NUMERO TELEFONE DO CAMPO DA OPERADORA O (DDD) ");
        printf("\n 9 - ORDENAR POR DADOS DA STRUCT");
        printf("\n 10 - FINALIZAR PROGRAMA\n");
        printf("\n ESCOLHA UMA OPCAO:");
        scanf("%d",&opcao);
        fflush(stdin);
        switch(opcao)
        {
        case 1:
            system("cls");
            printf("\n--**** PESQUISAR POR NOME ****--");
            printf("\nPESQUISAR:");
            gets(pesq);
            for(i=0; i<indice; i++)
            {
                if(strcmp(pesq,contatos[i].nome)==0)
                {
                    printf("\n CODIGO:%i",i);
                    printf("\n NOME:%s",contatos[i].nome);
                    printf("\n EMAIL:%s",contatos[i].email);
                    printf("\n TEL:%d %d",contatos[i].fone.dd,contatos[i].fone.tel);
                    printf("\n ANIVERSARIO DD/MM/ANO : %i/%i/%i", contatos[i].data.dd, contatos[i].data.mes, contatos[i].data.ano);
	                    encontrou = 1;
                }
            }
            if (encontrou==0)
            {
                printf("\n NENHUM REGISTRO ENCONTRADO!\n\n");
            }
            printf("\n");
	
            system("pause");
            break;
        case 2:
           printf("\nPesquisar por MES ANIVERSARIO\n");
	            printf("\nPESQUISAR: ");
            scanf("%d",&m);
            encontrou=0;
            for(i=0; i<indice; i++)
            {
                if(m == contatos[i].data.mes)
                {
                    printf("\n CODIGO:%i",i);
                    printf("\n NOME:%s",contatos[i].nome);
                    printf("\n EMAIL:%s",contatos[i].email);
                    printf("\n TEL:%d %d",contatos[i].fone.dd,contatos[i].fone.tel);
                    printf("\n ANIVERSARIO DD/MM/ANO : %i/", contatos[i].data.dd);
                    printf("%d/%d",contatos[i].data.mes, contatos[i].data.ano);
                    encontrou = 1;
                }
                printf("\n------------------------------------------------------\n");
            }
            if(encontrou==0)
            {
                printf("\n     REGISTRO NÃO ENCONTRADO!\n\n");
            }
            printf("\n");
            system("pause");
            break;
        case 3:
	              printf("\nPesquisar por DIA e MES ANIVERSARIO\n");
            printf("\nPESQUISAR: ");
            printf("Informe O Dia:  ");
            scanf("%i",&d);
            printf("Informe O Mes: ");
            scanf("%d",&m);
            encontrou=0;
            for(i=0; i<indice; i++)
            {
                if(d == contatos[i].data.dd && m == contatos[i].data.mes)
                {
                    printf("\n CODIGO:%i",i);
                    printf("\n NOME:%s",contatos[i].nome);
                    printf("\n EMAIL:%s",contatos[i].email);
                    printf("\n TEL:%d %d",contatos[i].fone.dd,contatos[i].fone.tel);
                    printf("\n ANIVERSARIO DD/MM/ANO : %i/", contatos[i].data.dd);
                    printf("%d/%d",contatos[i].data.mes, contatos[i].data.ano);
                    encontrou = 1;
                }
                printf("\n------------------------------------------------------\n");
            }
            if(encontrou==0)
            {
                printf("\n     REGISTRO NÃO ENCONTRADO!\n\n");
            }
            printf("\n");
            system("pause");
	            break;
        case 4:
            system("cls");
            printf("\n--**** CADASTRO DE CONTATO ****--");
            printf("\n CODIGO:%i\n",indice);
            printf("\n NOME:");
            gets(contatos[indice].nome);
            printf("\n EMAIL:");
            gets(contatos[indice].email);
            printf("\n TELEFONE:");
            printf("\n DD:");
            scanf("%d",&contatos[indice].fone.dd);
            printf("\n TEL:");
            scanf("%d",&contatos[indice].fone.tel);
            printf("\n ANIVERSARIO: ");
            scanf("%i/%i/%i", &contatos[indice].data.dd, &contatos[indice].data.mes, &contatos[indice].data.ano);
            indice++;
            fflush(stdin);
            break;
        case 5:
            printf("\n--###----EXCLUIR CONTATO----###--\n");
            printf("\nINFORMA O CODIGO:");
            scanf("%i",&cod);
            printf("\n NOME:%s",contatos[cod].nome);
            printf("\n EMAIL:%s",contatos[cod].email);
            printf("\n TEL:%d %d",contatos[cod].fone.dd,contatos[cod].fone.tel);
            printf("\n ANIVERSARIO: %i/%i/%i", contatos[cod].data.dd, contatos[cod].data.mes, contatos[cod].data.ano);
            printf("\nDeseja EXCLUIR CONTATO? SIM(1)/NAO(2): ");
            scanf("%i",&i);
            if(i==1)
            {
                for(i=cod; i<indice; i++)
                {
                    strcpy(contatos[i].nome,contatos[i+1].nome);
                    strcpy(contatos[i].email,contatos[i+1].email);
                    contatos[i].fone.dd=contatos[i+1].fone.dd;
                    contatos[i].fone.tel=contatos[i+1].fone.tel;
                    contatos[i].data.dd=contatos[i+1].data.dd;
                    contatos[i].data.mes=contatos[i+1].data.mes;
                    contatos[i].data.ano= contatos[i+1].data.ano;
                }
                indice--;
            }
            break;
        case 6:
	            printf("LISTAR TODOS OS CONTATOS: \n");
            for(i=0; i<indice; i++)
            {
                printf("\nCODIGO: %i",i);
                printf("\n NOME:%s",contatos[i].nome);
                printf("\n EMAIL:%s",contatos[i].email);
                printf("\n TEL:%d %d",contatos[i].fone.dd,contatos[i].fone.tel);
                printf("\n ANIVERSARIO: %i/%i/%i", contatos[i].data.dd, contatos[i].data.mes, contatos[i].data.ano);
                printf("\n--------------------------------\n");
            }
            system("pause");
            break;
        case 7:
            system("cls");
            printf("===============================\n");
            printf("Ordenando por Nome: ");
            // Ordenar por Inserção
          for(i = 1; i < indice; i++)
    {
	        aux = contatos[i];
        j = i - 1;
	        while(j >= 0 && strcmp(contatos[j].nome, aux.nome) > 0)
        {
	            contatos[j+1] = contatos[j];
            j--;
	        }
	        contatos[j+1] = aux;
	    }
	
    printf("\n\n");
	            for(i=0; i < indice; i++){
	                printf("%s\n", contatos[i].nome);
                system("pause");
            }
                printf("\n\n\n");
	            break;
	            case 8:
	            printf("=================================\n");
            printf("Ordenando por Lista Telefonica Pelo DDD da Operadora: \n");
            // Ordenar Seleção
	            for(i=1; i < contatos[i].fone.dd; i++){
                for(j=i+1; j < indice; j++){
                    if(contatos[i].fone.dd > contatos[j].fone.dd){
                        contatos[0] = contatos[j];
                        contatos[j] = contatos[i];
                        contatos[i] = contatos[0];
                    }
                }
            }
	            printf("\n\n");
	            for(i=0; i < indice; i++){
	                printf("%d\n", contatos[i].fone.dd);
                system("pause");
            }
                printf("\n\n\n");
	            break;
	            case 9:
                printf("\n\n  ORDENAÇÃO POR STRUCT \n\n"); //usando o metodo bolha
                do{
	                        troca=0;
                        for(i=0; i<encontrou-1; i++){
                    if(strcmp(contatos[i].nome, contatos[i+1].nome)>0){
                        // os valores da posição i estão sendo guardadas na struct
                        strcpy(aux.nome, contatos[i].nome);
                        strcpy(aux.ende.rua, contatos[i].ende.rua);
                        strcpy(aux.ende.bairro, contatos[i].ende.bairro);
                        aux.data.dd=contatos[i].data.dd;
                        aux.data.mes=contatos[i].data.mes;
                        aux.data.ano=contatos[i].data.ano;
                        //troca dos valores
                        strcpy(contatos[i].nome, contatos[i+1].nome);
                        strcpy(contatos[i].ende.rua, contatos[i+1].ende.rua);
                        strcpy(contatos[i].ende.bairro, contatos[i+1].ende.bairro);
                        contatos[i].data.dd = contatos[i+1].data.dd;
                        contatos[i].data.mes = contatos[i+1].data.mes;
                        contatos[i].data.ano = contatos[i+1].data.ano;
                        //posição i+1 recebe o valor guardado na struct aux
                        strcpy(contatos[i+1].nome, aux.nome);
                        strcpy(contatos[i+1].ende.rua, aux.ende.rua);
                        strcpy(contatos[i+1].ende.bairro, aux.ende.bairro);
                        contatos[i].data.dd = aux.data.dd;
                        contatos[i].data.mes = aux.data.mes;
                        contatos[i].data.ano = aux.data.ano;
	                        troca = 1;
	                                }
	                        }
	                }while(troca==1);
	       }
	    }while(opcao!=10);
	
    return 0;
}
 
	*/

 

/* 
	// agenda.h
	struct Endereco{
    char rua[30];
    int numero;
    char comp[30];
    char bairro[30];
    int cep;
    char cidade[30];
    char estado[3];
    char pais[30];
};
	struct Telefone{
    int dd;
    int tel;
};
	struct Aniversario{
    int dd;
    int mes;
    int ano;
};
	struct Pessoa{
    char nome[30];
    char email[30];
    struct Endereco ende;
    struct Telefone fone;
    struct Aniversario data;
    char obs[50];
};
	int indice=0;
 
	 
	 
	*/



 

AGENDA CODIGO-1.jpg

AGENDA CODIGO-2.jpg

AGENDA CODIGO-3.jpg

AGENDA CODIGO-4.jpg

AGENDA CODIGO-5.jpg

AGENDA CODIGO-6.jpg

AGENDA CODIGO-7.jpg

agenda-1.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Minha duvida é só no Case 5 Sobre Fila é Pilha como eu posso Fazer Pra Subistituir ao invés de Excluir !

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Para substituir os dados, basta altera-los novamente. Na entrada peça o código que no caso é índice. Depois comece a sobreescrever os dados. 

    Não precisa usar nenhum tipo de laço.

    • Amei 1

    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






    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

    ×