Skip to content

Instantly share code, notes, and snippets.

@franciscotis
Created September 2, 2021 21:07
Show Gist options
  • Save franciscotis/21363d3e8fd55d8df5dd5627411ccb18 to your computer and use it in GitHub Desktop.
Save franciscotis/21363d3e8fd55d8df5dd5627411ccb18 to your computer and use it in GitHub Desktop.
Cadastro de Clientes
#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