Advertisement
Guest User

trabalho

a guest
Aug 22nd, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.01 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5.  
  6. struct endereco
  7. {
  8.     char bairro[50];
  9.     char rua[50];
  10.     unsigned short int numero;
  11. };
  12.  
  13. struct data
  14. {
  15.     unsigned short int dia;
  16.     unsigned short int mes;
  17.     unsigned int ano;
  18. };
  19.  
  20. struct funci
  21. {
  22.     char nome[100];
  23.     struct endereco end;
  24.     struct data niver;
  25.     struct data admissao;
  26.     unsigned int salario;
  27. };
  28.  
  29. struct disciplina
  30. {
  31.     char nome[50];
  32.     unsigned short int horario[6];
  33.     char duracao[20];
  34. };
  35.  
  36. struct prof
  37. {
  38.     struct funci funci_;
  39.     struct disciplina d1;
  40.     struct disciplina d2;
  41.     struct disciplina d3;
  42.     struct disciplina d4;
  43.     unsigned int q_d;
  44. };
  45.  
  46.  
  47. void cl(void)
  48. {
  49.     int c;
  50.     while( (c = fgetc( stdin )) != EOF && c != '\n' );
  51. }
  52.  
  53.  
  54. void sd (struct disciplina d)
  55. {
  56.     unsigned int i = 0, j = 0;
  57.  
  58.     printf("\nDISCIPLINA: %s", d.nome);
  59.     printf("\nDURACAO: %s", d.duracao);
  60.     printf("\nHORARIOS:");
  61.     for (; i < 6 ; i++)
  62.     {
  63.         printf("\n");
  64.         switch (i)
  65.         {
  66.             case 0: printf("SEGUNDA:"); break;
  67.             case 1: printf("TERÇA:  "); break;
  68.             case 2: printf("QUARTA: "); break;
  69.             case 3: printf("QUINTA: "); break;
  70.             case 4: printf("SEXTA:  "); break;
  71.             case 5: printf("SABADO: "); break;
  72.         }
  73.  
  74.     }
  75.  
  76. }
  77.  
  78. void sf(struct funci f)
  79. {
  80.     printf("\nNOME: %s", f.nome);
  81.     printf("\nENDERECO: %s", f.endereco);
  82.     printf("\nNASCIMENTO: %d/%d/%d", f.nascimento[0], f.nascimento[1], f.nascimento[2]);
  83.     printf("\nADMISSAO: %d/%d/%d", f.admissao[0], f.admissao[1], f.admissao[2]);
  84.     printf("\nSALARIO: %d", f.salario);
  85. }
  86.  
  87. struct disciplina xd()
  88. {
  89.     struct disciplina d;
  90.     unsigned int i = 0;
  91.     char temp[5];
  92.     unsigned int horai = 0, horaf = 0;
  93.     memset(d.nome, '\0', sizeof(d.nome));
  94.     memset(d.horario, '\0', sizeof(d.horario));
  95.     memset(d.duracao, '\0', sizeof(d.duracao));
  96.  
  97.     printf("\nQual nome da disciplina?");
  98.     scanf("%50[^\n]c", d.nome); cl();
  99.  
  100.     while (1)
  101.     {
  102.         printf("\nA duracao é anual ou semestral? Digite 'anual' ou 'semestral': ");
  103.         scanf("%20[^\n]c", d.duracao); cl();
  104.         if (strcmp(d.duracao, "anual") != 0 || strcmp(d.duracao, "semestral") != 0)
  105.         {
  106.             break;
  107.         }
  108.         else
  109.         {
  110.             printf ("\nEntrada invalida. Tente novamente.");
  111.         }
  112.     }
  113.  
  114.     for (; i < 6; i++)
  115.     {
  116.         while (1)
  117.         {
  118.             printf("\nQuantas horas você dá ");
  119.             switch (i)
  120.             {
  121.                 case 0: printf("na Segunda"); break;
  122.                 case 1: printf("na Terça");   break;
  123.                 case 2: printf("na Quarta");  break;
  124.                 case 3: printf("na Quinta");  break;
  125.                 case 4: printf("na Sexta");   break;
  126.                 case 5: printf("no Sábado");  break;
  127.             }
  128.  
  129.             scanf("%d", &d.horario[i]); cl();
  130.             if (d.horario[i] < 0 || d.horario[i] > 24)
  131.             {
  132.                 printf("\nInvalido! Tente novamente!");
  133.             }
  134.             else
  135.             {
  136.                 break;
  137.             }
  138.         }
  139.     }
  140.     return d;
  141. }
  142.  
  143. struct funci xf()
  144. {
  145.     struct funci f;
  146.  
  147.     printf("\nQual vosso nome? ");
  148.     scanf("%100[^\n]c", f.nome); cl();
  149.  
  150.     printf("\nQual o seu endereco? ");
  151.     scanf("%200[^\n]c", f.endereco); cl();
  152.  
  153.     printf("\nQual seu dia de nascimento? ");
  154.     scanf("%d", &f.nascimento[0]); cl();
  155.     printf("\nE mês? ");
  156.     scanf("%d", &f.nascimento[1]); cl();
  157.     printf("\nE ano? ");
  158.     scanf("%d", &f.nascimento[2]); cl();
  159.  
  160.     printf("\nQual sua data de admissao? ");
  161.     scanf("%d", &f.admissao[0]); cl();
  162.     printf("\nE mês? ");
  163.     scanf("%d", &f.admissao[1]); cl();
  164.     printf("\nE ano? ");
  165.     scanf("%d", &f.admissao[2]); cl();
  166.  
  167.     printf("\nQual seu salário? ");
  168.     scanf ("%d", &f.salario); cl();
  169.  
  170.     return f;
  171. }
  172.  
  173.  
  174. int main()
  175. {
  176.     struct funci f;
  177.     struct prof  p;
  178.     unsigned int i = 0, temp = 0;
  179.     setlocale(LC_ALL, "Portuguese");
  180.  
  181.     for (; i < 2; i++)
  182.     {
  183.         if (i == 0)
  184.             printf("\nDigite dados do professor!");
  185.         else if (i == 1)
  186.         {
  187.            // p.funci_ = f;
  188.             printf("\nQuantas disciplinas esse professor dá?");
  189.             scanf("%d", &p.q_d); temp = p.q_d;  cl();
  190.  
  191.             if (temp == 4) { p.d4 = xd(); temp--; }
  192.             if (temp == 3) { p.d3 = xd(); temp--; }
  193.             if (temp == 2) { p.d2 = xd(); temp--; }
  194.             if (temp == 1) { p.d1 = xd(); temp--; }
  195.  
  196.             printf("\nDados do professor salvos!\nDigite dados do funcionario!");
  197.         }
  198.        // f = xf();
  199.     }
  200.  
  201.     printf("\nMostrando dados do professor: ");
  202.    // sf (p.funci_);
  203.     temp = p.q_d;
  204.     if (temp == 4) { sd(p.d4); temp--; }
  205.     if (temp == 3) { sd(p.d3); temp--; }
  206.     if (temp == 2) { sd(p.d2); temp--; }
  207.     if (temp == 1) { sd(p.d1); temp--; }
  208.  
  209.     printf("\nMostrando dados do funcionario: ");
  210.    // sf (f);
  211.  
  212.     return 0;
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement