Created
September 2, 2021 21:07
-
-
Save franciscotis/21363d3e8fd55d8df5dd5627411ccb18 to your computer and use it in GitHub Desktop.
Cadastro de Clientes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#define SOLTEIRO 's' | |
#define CASADO 'c' | |
#define DIVORCIADO 'd' | |
typedef struct cliente{ | |
char matricula[20],nome[50], status_civil; | |
float valor_apolice; | |
int idade; | |
}Cliente; | |
void cadastrar_cliente(Cliente *c, int *posicao){ | |
printf("=== CADASTRO DE CLIENTE ===\n"); | |
printf("Digite a matrícula:\n"); | |
fflush(stdin); | |
getchar(); | |
fgets(c[*posicao].matricula, 20, stdin); | |
printf("Digite o nome:\n"); | |
fgets(c[*posicao].nome, 50, stdin); | |
printf("Digite o valor da apolice:\n"); | |
scanf("%f",&c[*posicao].valor_apolice); | |
getchar(); | |
printf("Digite a idade do cliente:\n"); | |
scanf("%d",&c[*posicao].idade); | |
getchar(); | |
printf("Digite o status civil do cliente:\n [c] - Casado\n [s] - Solteiro\n [d] - Divorciado\n"); | |
scanf("%c",&c[*posicao].status_civil); | |
getchar(); | |
(*posicao)++; | |
} | |
void listar_clientes(Cliente *c, int tamanho){ | |
printf("=== LISTAGEM DE CLIENTE ===\n"); | |
for(int i = 0; i<tamanho; i++){ | |
printf("Matricula:"); | |
puts(c[i].matricula); | |
printf("Nome: %s \n",c[i].nome); | |
printf("Valor da apólice: %f \n",c[i].valor_apolice); | |
printf("Idade: %d\n", c[i].idade); | |
printf("Status Civil: %c\n",c[i].status_civil); | |
printf("-------------------\n"); | |
} | |
} | |
void media_apolice_casados(Cliente *c, int tamanho){ | |
int soma = 0, qtd_casados = 0; | |
float total; | |
for(int i = 0; i < tamanho; i++){ | |
if(c[i].status_civil == 'c'){ | |
soma+= c[i].valor_apolice; | |
qtd_casados++; | |
} | |
} | |
total = (float) soma/qtd_casados; | |
printf("A média da apólice dos clientes casados eh de: %f",total); | |
} | |
void cliente_maior_apolice(Cliente *c, int tamanho){ | |
int id_maior =0; | |
float maior_apolice =0; | |
for(int i = 0; i<tamanho; i++){ | |
if(c[i].valor_apolice> maior_apolice){ | |
id_maior = i; | |
maior_apolice = c[i].valor_apolice; | |
} | |
} | |
printf("Nome do cliente com maior apolice: %s\n Status civil do cliente com maior apolice: %c\n",c[id_maior].nome,c[id_maior].status_civil); | |
} | |
void porcentagem_clientes_menores_40_anos(Cliente *c, int tamanho){ | |
int quantidade=0, total=0; | |
float porcentagem; | |
for(int i = 0; i < tamanho; i++){ | |
if(c[i].idade <40){ | |
quantidade++; | |
} | |
total++; | |
} | |
porcentagem = (float) quantidade/total *100; | |
printf("A porcentagem dos clientes com menos de 40 anos eh de: %f % ",porcentagem); | |
} | |
int main(void) { | |
int index = 0, quantidade, escolha; | |
Cliente *clientes; | |
printf("===== BEM VINDO AO SISTEMA DE CADASTRO DE CLIENTES =====\n"); | |
printf("==== Quantos clientes você gostaria de cadastrar no sistema? ====\n"); | |
scanf("%d",&quantidade); | |
clientes = malloc(quantidade * sizeof(Cliente)); | |
if(clientes == NULL){ | |
printf("Não existe memoria suficiente para o cadastro...\n"); | |
printf("Finalizando o sistema...\n"); | |
exit(0); | |
} | |
do{ | |
printf("---- Escolha o que você deseja fazer: ----\n"); | |
printf("[0] - Cadastrar novos clientes\n"); | |
printf("[1] - Verificar a media da apolice dos clientes casados\n"); | |
printf("[2] - Verificar o cliente com a maior apólice cadastrada\n"); | |
printf("[3] - Verificar a porcentagem de clientes com menos de 40 anos\n"); | |
printf("[4] - Listar todos os clientes\n"); | |
printf("[5] - SAIR\n"); | |
scanf("%d",&escolha); | |
switch(escolha){ | |
case 0: | |
cadastrar_cliente(clientes, &index); | |
break; | |
case 1: | |
if(index+1<1){ | |
printf("Cadastre um sistema primeiro...\n"); | |
} | |
media_apolice_casados(clientes, index); | |
break; | |
case 2: | |
if(index+1<1){ | |
printf("Cadastre um sistema primeiro...\n"); | |
} | |
cliente_maior_apolice(clientes,index); | |
break; | |
case 3: | |
if(index+1<1){ | |
printf("Cadastre um sistema primeiro...\n"); | |
} | |
porcentagem_clientes_menores_40_anos(clientes,index); | |
break; | |
case 4: | |
listar_clientes(clientes,index); | |
break; | |
default: | |
printf("OPÇÃO INVÁLIDA\n"); | |
break; | |
} | |
}while(escolha!=5); | |
printf("Hello World\n"); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment