Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h>
- typedef enum { false, true } bool;
- typedef enum {eletrico, computacao, civil, mecanico, quimico} tipo;
- typedef struct{
- char nome[50];
- char cpf[25];
- char endereco[50];
- tipo tipo;
- }Engenheiro;
- Engenheiro agenda[100];
- void rodar_programa();
- void listar_engenheiro(int contador);
- void atualizar_engenheiro(int index);
- int adicionar_engenheiro(int size);
- int procurar_engenheiro(int contador);
- int remover_engenheiro(int index, int size);
- int inicializar();
- char* getTipoEngenheiro(tipo enumerador);
- int main() {
- setlocale(LC_ALL, "Portuguese");
- rodar_programa();
- return 0;
- }
- void rodar_programa() {
- int op;
- int contador = 0;
- contador = inicializar(contador);
- while(1) {
- printf("================================\n"); // MENU PRINCIPAL
- printf("0 - CADASTRAR\n"); // MENU PRINCIPAL
- printf("1 - LISTAR\n"); // MENU PRINCIPAL
- printf("2 - PESQUISAR\n"); // MENU PRINCIPAL
- printf("3 - ATUALIZAR\n"); // MENU PRINCIPAL
- printf("4 - REMOVER\n"); // MENU PRINCIPAL
- printf("5 - SAIR\n"); // MENU PRINCIPAL
- printf("================================\n"); // MENU PRINCIPAL
- printf("\nSelecione uma das opções: "); // MENU PRINCIPAL
- scanf("%d", &op);
- getchar();
- switch (op){
- case 0:
- contador = adicionar_engenheiro(contador);
- break;
- case 1:
- listar_engenheiro(contador);
- break;
- case 2:
- procurar_engenheiro(contador);
- break;
- case 3:
- atualizar_engenheiro(procurar_engenheiro(contador));
- break;
- case 4:
- contador = remover_engenheiro(procurar_engenheiro(contador), contador);
- break;
- case 5:
- return 0;
- default:
- break;
- }
- }
- }
- int adicionar_engenheiro(int contador) {
- char nome[50];
- char cpf[50];
- char endereco[50];
- tipo tipo = eletrico;
- printf("Insira o nome (Digite a Primeira Letra Maiscula!): ");
- scanf(" %[^\n]s", nome);
- printf("\nInsira o cpf: ");
- scanf(" %[^\n]s", cpf);
- printf("\nInsira o Endereço: ");
- scanf(" %[^\n]s", endereco);
- printf("\nInsira o tipo: (0 = eletrico, 1 = computação, 2 = civil, 3 = mecanico, 4 = quimico)");
- scanf("%d", (int)&tipo);
- strcpy(agenda[contador].nome, nome);
- strcpy(agenda[contador].cpf, cpf);
- strcpy(agenda[contador].endereco, endereco);
- agenda[contador].tipo = tipo;
- contador++;
- printf("\nEngenheiro Adicionado com Sucesso\n");
- return contador;
- }
- void listar_engenheiro(int contador) {
- char nome[50];
- char cpf[50];
- char endereco[50];
- tipo tipo = eletrico;
- int i, j;
- for (i = 1; i < contador; i++) {
- for (j = 1; j < contador; j++) {
- if (strcmp(agenda[j - 1].nome, agenda[j].nome) > 0) {
- strcpy(nome, agenda[j - 1].nome);
- strcpy(agenda[j - 1].nome, agenda[j].nome);
- strcpy(agenda[j].nome, nome);
- strcpy(cpf, agenda[j - 1].cpf);
- strcpy(agenda[j - 1].cpf, agenda[j].cpf);
- strcpy(agenda[j].cpf, cpf);
- strcpy(endereco, agenda[j - 1].endereco);
- strcpy(agenda[j - 1].endereco, agenda[j].endereco);
- strcpy(agenda[j].endereco, endereco);
- tipo = agenda[j - 1].tipo;
- agenda[j - 1].tipo = agenda[j].tipo;
- agenda[j].tipo = tipo;
- }
- }
- }
- for (i = 0; i < contador; i++) {
- printf("\nNome do individuo: %s\n", agenda[i].nome);
- printf("CPF: %s\n", agenda[i].cpf);
- printf("Endereco: %s\n", agenda[i].endereco);
- printf("Tipo de Engenheiro: %s\n\n", getTipoEngenheiro(agenda[i].tipo));
- }
- }
- int procurar_engenheiro(int contador) {
- char nome[50];
- bool search = false;
- int i;
- setlocale(LC_ALL, "Portuguese");
- printf("Qual nome: ");
- scanf("%s", nome);
- for (i = 0; i < contador; i++) {
- if (strcmp(nome, agenda[i].nome) == 0) {
- printf("\nNome do individuo: %s\n", agenda[i].nome);
- printf("CPF: %s\n", agenda[i].cpf);
- printf("Endereco: %s\n", agenda[i].endereco);
- printf("Tipo de Engenheiro: %s\n\n", getTipoEngenheiro(agenda[i].tipo));
- return i;
- search = true;
- }
- }
- if (search == false) {
- printf("\nNenhum Engenheiro com este nome foi encontrado\n");
- }
- }
- void atualizar_engenheiro(int index) {
- char nome[50];
- char cpf[50];
- char endereco[50];
- tipo tipo = eletrico;
- printf("Qual novo nome: ");
- scanf("%s", nome);
- printf("\nQual novo CPF: ");
- scanf("%s", cpf);
- printf("\nQual novo Endereço: ");
- scanf("%s", endereco);
- printf("\nQual novo tipo (0 = eletrico, 1 = computação, 2 = civil, 3 = mecanico, 4 = quimico):");
- scanf("%d", (int)&tipo);
- strcpy(agenda[index].nome, nome);
- strcpy(agenda[index].cpf, cpf);
- strcpy(agenda[index].endereco, endereco);
- agenda[index].tipo = tipo;
- printf("\nEngenheiro Mudado com Sucesso\n");
- }
- int remover_engenheiro(int index, int size) {
- for (index; index < size; index++) {
- strcpy(agenda[index].nome, agenda[index+1].nome);
- strcpy(agenda[index].cpf, agenda[index + 1].cpf);
- strcpy(agenda[index].endereco, agenda[index + 1].endereco);
- agenda[index].tipo = agenda[index + 1].tipo;
- }
- printf("\nEngenheiro Removido com Sucesso\n");
- size--;
- return size;
- }
- int inicializar(int contador) {
- strcpy(agenda[0].nome, "Gustavo"); // Essa Função Pré estabelece os engenheiros já cadastrados .
- strcpy(agenda[0].cpf, "123456789");
- strcpy(agenda[0].endereco, "Rua");
- agenda[0].tipo = computacao;
- contador++;
- strcpy(agenda[1].nome, "Ruan");
- strcpy(agenda[1].cpf, "123456789");
- strcpy(agenda[1].endereco, "Rua");
- agenda[1].tipo = computacao;
- contador++;
- strcpy(agenda[2].nome, "Amanda");
- strcpy(agenda[2].cpf, "123456789");
- strcpy(agenda[2].endereco, "Rua");
- agenda[2].tipo = computacao;
- contador++;
- strcpy(agenda[3].nome, "Beto");
- strcpy(agenda[3].cpf, "123456789");
- strcpy(agenda[3].endereco, "Rua");
- agenda[3].tipo = computacao;
- contador++;
- strcpy(agenda[4].nome, "Pedro");
- strcpy(agenda[4].cpf, "123456789");
- strcpy(agenda[4].endereco, "Rua");
- agenda[4].tipo = computacao;
- contador++;
- strcpy(agenda[5].nome, "Tiago");
- strcpy(agenda[5].cpf, "777777");
- strcpy(agenda[5].endereco, "RuaAlpaca");
- agenda[5].tipo = eletrico;
- contador++;
- strcpy(agenda[6].nome, "Olivia");
- strcpy(agenda[6].cpf, "123456789");
- strcpy(agenda[6].endereco, "Rua");
- agenda[6].tipo = computacao;
- contador++;
- strcpy(agenda[7].nome, "Igor");
- strcpy(agenda[7].cpf, "123456789");
- strcpy(agenda[7].endereco, "Rua");
- agenda[7].tipo = computacao;
- contador++;
- strcpy(agenda[8].nome, "Xayah");
- strcpy(agenda[8].cpf, "123456789");
- strcpy(agenda[8].endereco, "Rua");
- agenda[8].tipo = computacao;
- contador++;
- strcpy(agenda[9].nome, "Junior");
- strcpy(agenda[9].cpf, "123456789");
- strcpy(agenda[9].endereco, "Rua");
- agenda[9].tipo = computacao;
- contador++;
- return contador;
- }
- char* getTipoEngenheiro(tipo enumerador) {
- static char tipo[50];
- if (enumerador == eletrico) {
- strcpy(tipo, "Elétrico");
- }
- else if (enumerador == computacao) {
- strcpy(tipo, "Computação");
- }
- else if (enumerador == civil) {
- strcpy(tipo, "Civil");
- }
- else if (enumerador == mecanico) {
- strcpy(tipo, "Mecanico");
- }
- else if (enumerador == quimico) {
- strcpy(tipo, "Quimico");
- }
- return tipo;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement