Ir ao conteúdo
  • Cadastre-se

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


Aldemar Mendes

Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...