Advertisement
lucashack

Untitled

Nov 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <locale.h>
  5.  
  6. typedef enum { false, true } bool;
  7. typedef enum {eletrico, computacao, civil, mecanico, quimico} tipo;
  8.  
  9. typedef struct{
  10.     char nome[50];
  11.     char cpf[25];
  12.     char endereco[50];
  13.     tipo tipo;
  14. }Engenheiro;
  15.  
  16. Engenheiro agenda[100];
  17.  
  18. void rodar_programa();
  19. void listar_engenheiro(int contador);
  20. void atualizar_engenheiro(int index);
  21. int adicionar_engenheiro(int size);
  22. int procurar_engenheiro(int contador);
  23. int remover_engenheiro(int index, int size);
  24. int inicializar();
  25. char* getTipoEngenheiro(tipo enumerador);
  26.  
  27.  
  28. int main() {
  29.  
  30.     setlocale(LC_ALL, "Portuguese");
  31.  
  32.     rodar_programa();
  33.  
  34.     return 0;
  35. }
  36.  
  37. void rodar_programa() {
  38.  
  39.     int op;
  40.     int contador = 0;
  41.  
  42.     contador = inicializar(contador);
  43.  
  44.     while(1) {
  45.         printf("================================\n");   // MENU PRINCIPAL
  46.         printf("0 - CADASTRAR\n");                      // MENU PRINCIPAL
  47.         printf("1 - LISTAR\n");                         // MENU PRINCIPAL
  48.         printf("2 - PESQUISAR\n");                      // MENU PRINCIPAL
  49.         printf("3 - ATUALIZAR\n");                      // MENU PRINCIPAL
  50.         printf("4 - REMOVER\n");                        // MENU PRINCIPAL
  51.         printf("5 - SAIR\n");                           // MENU PRINCIPAL
  52.         printf("================================\n");   // MENU PRINCIPAL
  53.         printf("\nSelecione uma das opções: ");         // MENU PRINCIPAL
  54.         scanf("%d", &op);
  55.         getchar();
  56.  
  57.         switch (op){
  58.         case 0:
  59.             contador = adicionar_engenheiro(contador);
  60.             break;
  61.         case 1:
  62.             listar_engenheiro(contador);
  63.             break;
  64.         case 2:
  65.             procurar_engenheiro(contador);
  66.             break;
  67.         case 3:
  68.             atualizar_engenheiro(procurar_engenheiro(contador));
  69.             break;
  70.         case 4:
  71.             contador = remover_engenheiro(procurar_engenheiro(contador), contador);
  72.             break;
  73.         case 5:
  74.             return 0;
  75.         default:
  76.             break;
  77.         }
  78.     }
  79.  
  80. }
  81.  
  82. int adicionar_engenheiro(int contador) {
  83.  
  84.     char nome[50];
  85.     char cpf[50];
  86.     char endereco[50];
  87.     tipo tipo = eletrico;
  88.  
  89.     printf("Insira o nome (Digite a Primeira Letra Maiscula!): ");
  90.     scanf(" %[^\n]s", nome);
  91.  
  92.     printf("\nInsira o cpf: ");
  93.     scanf(" %[^\n]s", cpf);
  94.  
  95.     printf("\nInsira o Endereço: ");
  96.     scanf(" %[^\n]s", endereco);
  97.  
  98.     printf("\nInsira o tipo: (0 = eletrico, 1 = computação, 2 = civil, 3 = mecanico, 4 = quimico)");
  99.     scanf("%d", (int)&tipo);
  100.  
  101.     strcpy(agenda[contador].nome, nome);
  102.     strcpy(agenda[contador].cpf, cpf);
  103.     strcpy(agenda[contador].endereco, endereco);
  104.     agenda[contador].tipo = tipo;
  105.     contador++;
  106.  
  107.     printf("\nEngenheiro Adicionado com Sucesso\n");
  108.  
  109.     return contador;
  110. }
  111.  
  112. void listar_engenheiro(int contador) {
  113.  
  114.     char nome[50];
  115.     char cpf[50];
  116.     char endereco[50];
  117.     tipo tipo = eletrico;
  118.     int i, j;
  119.  
  120.     for (i = 1; i < contador; i++) {
  121.         for (j = 1; j < contador; j++) {
  122.             if (strcmp(agenda[j - 1].nome, agenda[j].nome) > 0) {
  123.                 strcpy(nome, agenda[j - 1].nome);
  124.                 strcpy(agenda[j - 1].nome, agenda[j].nome);
  125.                 strcpy(agenda[j].nome, nome);
  126.  
  127.                 strcpy(cpf, agenda[j - 1].cpf);
  128.                 strcpy(agenda[j - 1].cpf, agenda[j].cpf);
  129.                 strcpy(agenda[j].cpf, cpf);
  130.  
  131.                 strcpy(endereco, agenda[j - 1].endereco);
  132.                 strcpy(agenda[j - 1].endereco, agenda[j].endereco);
  133.                 strcpy(agenda[j].endereco, endereco);
  134.  
  135.                 tipo = agenda[j - 1].tipo;
  136.                 agenda[j - 1].tipo = agenda[j].tipo;
  137.                 agenda[j].tipo = tipo;
  138.             }
  139.         }
  140.     }
  141.  
  142.     for (i = 0; i < contador; i++) {
  143.         printf("\nNome do individuo: %s\n", agenda[i].nome);
  144.         printf("CPF: %s\n", agenda[i].cpf);
  145.         printf("Endereco: %s\n", agenda[i].endereco);
  146.         printf("Tipo de Engenheiro: %s\n\n", getTipoEngenheiro(agenda[i].tipo));
  147.     }
  148. }
  149.  
  150. int procurar_engenheiro(int contador) {
  151.  
  152.     char nome[50];
  153.     bool search = false;
  154.     int i;
  155.     setlocale(LC_ALL, "Portuguese");
  156.     printf("Qual nome: ");
  157.     scanf("%s", nome);
  158.  
  159.     for (i = 0; i < contador; i++) {
  160.         if (strcmp(nome, agenda[i].nome) == 0) {
  161.             printf("\nNome do individuo: %s\n", agenda[i].nome);
  162.             printf("CPF: %s\n", agenda[i].cpf);
  163.             printf("Endereco: %s\n", agenda[i].endereco);
  164.             printf("Tipo de Engenheiro: %s\n\n", getTipoEngenheiro(agenda[i].tipo));
  165.             return i;
  166.             search = true;
  167.         }
  168.     }
  169.     if (search == false) {
  170.         printf("\nNenhum Engenheiro com este nome foi encontrado\n");
  171.     }
  172. }
  173.  
  174. void atualizar_engenheiro(int index) {
  175.  
  176.     char nome[50];
  177.     char cpf[50];
  178.     char endereco[50];
  179.     tipo tipo = eletrico;
  180.  
  181.     printf("Qual novo nome: ");
  182.     scanf("%s", nome);
  183.  
  184.     printf("\nQual novo CPF: ");
  185.     scanf("%s", cpf);
  186.  
  187.     printf("\nQual novo Endereço: ");
  188.     scanf("%s", endereco);
  189.  
  190.     printf("\nQual novo tipo (0 = eletrico, 1 = computação, 2 = civil, 3 = mecanico, 4 = quimico):");
  191.     scanf("%d", (int)&tipo);
  192.  
  193.     strcpy(agenda[index].nome, nome);
  194.     strcpy(agenda[index].cpf, cpf);
  195.     strcpy(agenda[index].endereco, endereco);
  196.     agenda[index].tipo = tipo;
  197.  
  198.     printf("\nEngenheiro Mudado com Sucesso\n");
  199. }
  200.  
  201. int remover_engenheiro(int index, int size) {
  202.     for (index; index < size; index++) {
  203.         strcpy(agenda[index].nome, agenda[index+1].nome);
  204.         strcpy(agenda[index].cpf, agenda[index + 1].cpf);
  205.         strcpy(agenda[index].endereco, agenda[index + 1].endereco);
  206.         agenda[index].tipo = agenda[index + 1].tipo;
  207.     }
  208.  
  209.     printf("\nEngenheiro Removido com Sucesso\n");
  210.  
  211.     size--;
  212.     return size;
  213. }
  214.  
  215. int inicializar(int contador) {
  216.     strcpy(agenda[0].nome, "Gustavo");              // Essa Função Pré estabelece os engenheiros já cadastrados .
  217.     strcpy(agenda[0].cpf, "123456789");
  218.     strcpy(agenda[0].endereco, "Rua");
  219.     agenda[0].tipo = computacao;
  220.     contador++;
  221.  
  222.     strcpy(agenda[1].nome, "Ruan");
  223.     strcpy(agenda[1].cpf, "123456789");
  224.     strcpy(agenda[1].endereco, "Rua");
  225.     agenda[1].tipo = computacao;
  226.     contador++;
  227.  
  228.     strcpy(agenda[2].nome, "Amanda");
  229.     strcpy(agenda[2].cpf, "123456789");
  230.     strcpy(agenda[2].endereco, "Rua");
  231.     agenda[2].tipo = computacao;
  232.     contador++;
  233.  
  234.     strcpy(agenda[3].nome, "Beto");
  235.     strcpy(agenda[3].cpf, "123456789");
  236.     strcpy(agenda[3].endereco, "Rua");
  237.     agenda[3].tipo = computacao;
  238.     contador++;
  239.  
  240.     strcpy(agenda[4].nome, "Pedro");
  241.     strcpy(agenda[4].cpf, "123456789");
  242.     strcpy(agenda[4].endereco, "Rua");
  243.     agenda[4].tipo = computacao;
  244.     contador++;
  245.  
  246.     strcpy(agenda[5].nome, "Tiago");
  247.     strcpy(agenda[5].cpf, "777777");
  248.     strcpy(agenda[5].endereco, "RuaAlpaca");
  249.     agenda[5].tipo = eletrico;
  250.     contador++;
  251.  
  252.     strcpy(agenda[6].nome, "Olivia");
  253.     strcpy(agenda[6].cpf, "123456789");
  254.     strcpy(agenda[6].endereco, "Rua");
  255.     agenda[6].tipo = computacao;
  256.     contador++;
  257.  
  258.     strcpy(agenda[7].nome, "Igor");
  259.     strcpy(agenda[7].cpf, "123456789");
  260.     strcpy(agenda[7].endereco, "Rua");
  261.     agenda[7].tipo = computacao;
  262.     contador++;
  263.  
  264.     strcpy(agenda[8].nome, "Xayah");
  265.     strcpy(agenda[8].cpf, "123456789");
  266.     strcpy(agenda[8].endereco, "Rua");
  267.     agenda[8].tipo = computacao;
  268.     contador++;
  269.  
  270.     strcpy(agenda[9].nome, "Junior");
  271.     strcpy(agenda[9].cpf, "123456789");
  272.     strcpy(agenda[9].endereco, "Rua");
  273.     agenda[9].tipo = computacao;
  274.     contador++;
  275.  
  276.     return contador;
  277. }
  278.  
  279. char* getTipoEngenheiro(tipo enumerador) {
  280.     static char tipo[50];
  281.  
  282.     if (enumerador == eletrico) {
  283.         strcpy(tipo, "Elétrico");
  284.     }
  285.     else if (enumerador == computacao) {
  286.         strcpy(tipo, "Computação");
  287.     }
  288.     else if (enumerador == civil) {
  289.         strcpy(tipo, "Civil");
  290.     }
  291.     else if (enumerador == mecanico) {
  292.         strcpy(tipo, "Mecanico");
  293.     }
  294.     else if (enumerador == quimico) {
  295.         strcpy(tipo, "Quimico");
  296.     }
  297.     return tipo;
  298. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement