FranciscoSoccol

Lista 07 - Exercicio 11

Aug 5th, 2013
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.07 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 20
  4.  
  5. //struct dos compromissos
  6. struct tipoAgenda{
  7.     char nome[20], mes[10];
  8.     char am_pm[3];
  9.     int dias, ano, auxMes;
  10.     int horas, minutos;
  11. };
  12.  
  13. // protótipos das funções
  14. int menu();
  15. void cadastroCompromissos();
  16. void listarCompromissos();
  17. void converterHoras();
  18. void determinadaData();
  19. void converterMes();
  20.  
  21. //funçao principal
  22. int main()
  23.     {
  24.         struct tipoAgenda compromissos[MAX];
  25.         cadastroCompromissos(compromissos);
  26.  
  27.         switch(menu()){
  28.         case 1:
  29.             converterHoras(compromissos);
  30.             converterMes(compromissos);
  31.             listarCompromissos(compromissos);
  32.             break;
  33.         case 2:
  34.             converterMes(compromissos);
  35.             converterHoras(compromissos);
  36.             listarCompromissos(compromissos);
  37.             break;
  38.         case 3:
  39.             converterMes(compromissos);
  40.             converterHoras(compromissos);
  41.             determinadaData(compromissos);
  42.             break;
  43.         case 4:
  44.             converterMes(compromissos);
  45.             printf("\nQauntidade de compromissos no mes: %d\n",determinadoMes(compromissos));
  46.             break;
  47.         default:
  48.             printf("\nOpcao invalida!\n");
  49.             break;
  50.  
  51.         }
  52.     }
  53.  
  54. //funçao menu
  55. int menu()
  56.     {
  57.         system("cls");
  58.         int opcao;
  59.         printf("******************************  Menu Principal  *******************************\n\n");
  60.         printf("(1)Listar todos os compromissos.\n");
  61.         printf("(2)Listar todos os compromissos apresentando os horarios no formato de hora 24h.");
  62.         printf("(3)Exibir os compromissos de uma determinada data.\n");
  63.         printf("(4)Exibir a quantidade de compromissos de um determinado mes.\n\n");
  64.         printf("********************************************************************************\n\n");
  65.         printf("Escolha uma opcao: ");
  66.         scanf("%d", &opcao);
  67.         return opcao;
  68.     }
  69.  
  70. //funçao cadastro
  71.  void cadastroCompromissos(struct tipoAgenda compromissos[])
  72.     {
  73.         int i;
  74.         for(i=0;i<MAX;i++){
  75.             printf("Digite o nome do compromisso: ");
  76.             fflush(stdin);
  77.             gets(compromissos[i].nome);
  78.             printf("Digite a data (ex: 18 07 13): ");
  79.             scanf("%d %d %d", &compromissos[i].dias, &compromissos[i].auxMes, &compromissos[i].ano);
  80.             printf("Digite a a hora (ex: 09 40 AM/PM): ");
  81.             fflush(stdin);
  82.             scanf("%d %d %s", &compromissos[i].horas, &compromissos[i].minutos, compromissos[i].am_pm);}
  83.     }
  84.  
  85. //funçao listar compromissos
  86. void listarCompromissos(struct tipoAgenda compromissos[])
  87.     {
  88.         system("cls");
  89.         int i;
  90.         printf("***************************  Todos os compromissos  ***************************\n\n");
  91.         for(i=0;i<MAX;i++)
  92.             printf("%s, %02d-%s-%d, %02d:%02d %s\n", compromissos[i].nome, compromissos[i].dias, compromissos[i].mes, compromissos[i].ano, compromissos[i].horas, compromissos[i].minutos, compromissos[i].am_pm);
  93.  
  94.     }
  95.  
  96. //funçao converter horas
  97. void converterHoras(struct tipoAgenda compromissos[])
  98.     {
  99.         int i;
  100.         for(i=0;i<MAX;i++)
  101.             if(strcmp(compromissos[i].am_pm,"pm")==0)
  102.                 if(compromissos[i].horas<12)
  103.                     compromissos[i].horas+=12;
  104.     }
  105.  
  106. //exibir a data no formato aa-mmm-aa
  107. void converterMes(struct tipoAgenda compromissos[])
  108.     {
  109.         int i;
  110.         for(i=0;i<MAX;i++)
  111.             if(compromissos[i].auxMes==1)
  112.                 strcpy(compromissos[i].mes,"Jan");
  113.                 else if(compromissos[i].auxMes==2)
  114.                     strcpy(compromissos[i].mes,"Fev");
  115.                     else if(compromissos[i].auxMes==3)
  116.                         strcpy(compromissos[i].mes,"Mar");
  117.                         else if(compromissos[i].auxMes==4)
  118.                             strcpy(compromissos[i].mes,"Abr");
  119.                             else if(compromissos[i].auxMes==5)
  120.                                 strcpy(compromissos[i].mes,"Mai");
  121.                                 else if(compromissos[i].auxMes==6)
  122.                                     strcpy(compromissos[i].mes,"Jun");
  123.                                     else if(compromissos[i].auxMes==7)
  124.                                         strcpy(compromissos[i].mes,"Jul");
  125.                                         else if(compromissos[i].auxMes==8)
  126.                                             strcpy(compromissos[i].mes,"Ago");
  127.                                             else if(compromissos[i].auxMes==9)
  128.                                                 strcpy(compromissos[i].mes,"Set");
  129.                                                 else if(compromissos[i].auxMes==10)
  130.                                                     strcpy(compromissos[i].mes,"Out");
  131.                                                     else if(compromissos[i].auxMes==11)
  132.                                                         strcpy(compromissos[i].mes,"Nov");
  133.                                                         else
  134.                                                             strcpy(compromissos[i].mes,"Dez");
  135.     }
  136.  
  137. //funçao que exibi por uma determinada data
  138. void determinadaData(struct tipoAgenda compromissos[])
  139.     {
  140.         system("cls");
  141.         int i, dia, ano, mes;
  142.         printf("Digite uma data(ex: dia mes ano): ");
  143.         scanf("%d %d %d", &dia, &mes, &ano);
  144.         for(i=0;i<MAX;i++)
  145.             if(compromissos[i].dias==dia  && compromissos[i].auxMes==mes && compromissos[i].ano==ano)
  146.                 printf("\n%s, %02d:%02d %s\n", compromissos[i].nome, compromissos[i].horas, compromissos[i].minutos, compromissos[i].am_pm);
  147.     }
  148.  
  149. //funçao que exibi por um determinado mes
  150. int determinadoMes(struct tipoAgenda compromissos[])
  151.     {
  152.         system("cls");
  153.         int i, cont=0;
  154.         char  mes[10];
  155.         printf("Digite o nome do Mes: ");
  156.         fflush(stdin);
  157.         gets(mes);
  158.         for(i=0;i<MAX;i++)
  159.             if(strcmp(mes,compromissos[i].mes)==0)
  160.                 cont++;
  161.         return cont;
  162.     }
Advertisement
Add Comment
Please, Sign In to add comment