Advertisement
Hansrrr

Agenda C

Mar 11th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define MAX 100
  5. #define STRING 255
  6.  
  7. typedef struct _nascimento
  8. {
  9.     int dia;
  10.     int mes;
  11.     int ano;
  12. }tp_nascimento;
  13.  
  14. typedef struct _endereco {
  15.     int numero;
  16.     char *rua;
  17. } tp_endereco;
  18.  
  19. typedef struct _pessoa{
  20.     char *nome;
  21.     char *cidade;
  22.     char *estado;
  23.     tp_endereco endereco;
  24.     long int telefone;
  25.     int dd;
  26.     tp_nascimento dataNascimento;
  27. }tp_pessoa;
  28.  
  29. tp_pessoa agenda[MAX];
  30. int i;
  31. int numeroAgenda = 0;
  32.  
  33. int menu(int* out){
  34.     int n;
  35.     printf("_____ AGENDA _____\n\nEscolha as opcoes:\n1 -Novo contato\n2 -Consultar todos contatos\n3 -Pesquisar contato por nome\n4 -Modificar contato\n5 -Cancelar\n");
  36.     scanf("%d",out);
  37. }
  38.  
  39. int mostraPessoa(int x){
  40.         printf("__________________________\n");
  41.         printf("Nome completo: %s",agenda[x].nome);
  42.         printf("Data de nascimento:%d/%d/%d",(agenda[x].dataNascimento.dia),(agenda[x].dataNascimento.mes),(agenda[x].dataNascimento.ano));
  43.         printf("\nNumero celular: (%d) %d",agenda[x].dd,agenda[x].telefone);
  44.         printf("\nEndereco: %sn %d",(agenda[x].endereco.rua),(agenda[x].endereco.numero));
  45.         printf("\nCidade: %s",agenda[x].cidade);
  46.         printf("Estado: %s",agenda[x].estado);
  47.         printf("__________________________\n");
  48. }
  49.  
  50. void cadastroPessoa(tp_pessoa pessoa){
  51.     agenda[numeroAgenda] = pessoa;
  52.     numeroAgenda++;
  53. }
  54.  
  55. tp_pessoa salvaCadastro(){
  56.     tp_pessoa auxiliar;
  57.     char consulta[100],consulta_2[100],consulta_3[100],consulta_4[100];
  58.     int tamanho = 0;
  59.         printf("\n\n");
  60.         printf("Nome completo: ");
  61.         fflush(stdin);
  62.         fgets(consulta, 100, stdin);
  63.         tamanho =strlen(consulta);
  64.         auxiliar.nome = malloc(tamanho);
  65.         strcpy(auxiliar.nome,consulta);
  66.         printf("Data de nascimento:\nDia - ");
  67.         fflush(stdin);
  68.         scanf("%d",&auxiliar.dataNascimento.dia);
  69.         printf("Data de nascimento:\nMes - ");
  70.         fflush(stdin);
  71.         scanf("%d",&auxiliar.dataNascimento.mes);
  72.         printf("Data de nascimento:\nAno - ");
  73.         fflush(stdin);
  74.         scanf("%d",&auxiliar.dataNascimento.ano);
  75.         printf("DD do celular: ");
  76.         fflush(stdin);
  77.         scanf("%ld",&auxiliar.dd);
  78.         printf("Numero celular: ");
  79.         fflush(stdin);
  80.         scanf("%ld",&auxiliar.telefone);
  81.         printf("Endereco (rua): ");
  82.         fflush(stdin);
  83.         fgets(consulta_2,100,stdin);
  84.         auxiliar.endereco.rua = malloc(strlen(consulta_2));
  85.         strcpy(auxiliar.endereco.rua,consulta_2);
  86.         printf("Endereco (numero): ");
  87.         fflush(stdin);
  88.         scanf("%d",&auxiliar.endereco.numero);
  89.         printf("Cidade: ");
  90.         fflush(stdin);
  91.         fgets(consulta_3, 100, stdin);
  92.         auxiliar.cidade = malloc(strlen(consulta_3));
  93.         strcpy(auxiliar.cidade,consulta_3);
  94.         printf("Estado: ");
  95.         fflush(stdin);
  96.         fgets(consulta_4, 100, stdin);
  97.         auxiliar.estado = malloc(strlen(consulta_4));
  98.         strcpy(auxiliar.estado,consulta_4);
  99.         return auxiliar;
  100. }
  101.  
  102. void consultaNome(){
  103.     char consulta[100];
  104.     int k = 0;
  105.     printf("Qual o contato que deseja encontrar?\n");
  106.     fflush(stdin);
  107.     fgets(consulta, 50, stdin);
  108.     for(int i = 0; i <numeroAgenda; i++){
  109.         if(strcmp(agenda[i].nome,consulta) == 0){
  110.             mostraPessoa(i);
  111.             k = 1;
  112.         }
  113.     }
  114.     if (k == 0){
  115.         printf("NOME NAO LISTADO\n");
  116.     }
  117. }
  118.  
  119. void modificarPessoa(){
  120.     tp_pessoa novoContato1;
  121.     int k;
  122.     printf("Qual o contato que deseja modificar?\n");
  123.     for(int i =0; i < numeroAgenda; i ++){
  124.         printf("%d - %s",(i+1),(agenda[i].nome));
  125.     }
  126.     scanf("%d",&k);
  127.  
  128.     while (k <= 0 || k > numeroAgenda)
  129.     {
  130.         printf("Valor nao listado, digite outro\n");
  131.         scanf("%d",&k);
  132.     }
  133.     novoContato1 = salvaCadastro();
  134.     agenda[(k-1)] = novoContato1;
  135. }  
  136.  
  137. int main(){
  138.     int choice,k = 1,lis=0;
  139.     tp_pessoa novoContato;
  140.     while (k != 0)
  141.     {
  142.         menu(&choice);
  143.         switch (choice)
  144.         {
  145.         case 1:
  146.             if (numeroAgenda < MAX){
  147.                 novoContato = salvaCadastro();
  148.                 cadastroPessoa(novoContato);
  149.             }
  150.             else{
  151.                 printf("Numero maximo de contatos (100) atingido!\n");
  152.                 break;
  153.             }
  154.             break;
  155.         case 2:
  156.             for(int i = 0; i< numeroAgenda; i++){
  157.                 mostraPessoa(i);
  158.             }
  159.             break;
  160.         case 3:
  161.             consultaNome();
  162.             break;
  163.         case 4:
  164.             modificarPessoa();
  165.             break;
  166.         case 5:
  167.             k = 0;
  168.             break;
  169.         }}}
  170.  
  171. "# facul"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement