Este programa em C funciona como um sistema para cadastrar pacientes e analisar seus fatores de risco de saúde. O objetivo principal é estimar a probabilidade de desenvolvimento de diabetes tipo 2, além de identificar a presença de obesidade e hipertensão. A pontuação de risco é inspirada em modelos como o FINDRISC.
O programa oferece um menu interativo onde um profissional de saúde pode escolher entre cadastrar um novo paciente, visualizar os dados de um paciente existente, recadastrar um paciente ou sair.
Ao cadastrar um paciente, o sistema coleta dados como idade, IMC (calculado a partir do peso e altura), níveis de colesterol, HDL, triglicerídeos, pressão arterial, circunferência da cintura, hábitos de atividade física, alimentação, histórico familiar de diabetes e sexo biológico.
Após a coleta e confirmação dos dados, o programa processa as informações para calcular uma pontuação de risco total. Com base nessa pontuação, ele informa:
- A probabilidade percentual de desenvolver diabetes.
- Uma avaliação qualitativa do risco de diabetes (baixo, moderado ou alto).
- Se o paciente apresenta obesidade.
- Se o paciente apresenta hipertensão.
Todos os dados e resultados do paciente são armazenados, podendo ser consultados posteriormente através de um ID único. O sistema suporta o cadastro de até 10 pacientes.
- Menu Interativo: Navegação simples para cadastrar, visualizar, recadastrar ou sair.
- Cadastro de Múltiplos Pacientes: Capacidade de armazenar os dados de até 10 pacientes.
- Visualização de Pacientes: Permite consultar os dados e resultados de qualquer paciente cadastrado pelo seu ID.
- Coleta de Dados Abrangente: Coleta interativa de dados de saúde do paciente.
- Validação de Entradas: Garante que as entradas numéricas e as respostas Sim/Não (
S/N) sejam válidas. - Revisão e Correção: Permite ao usuário revisar e alterar os dados fornecidos antes de finalizar o cadastro.
- Cálculo do IMC: Calcula automaticamente o Índice de Massa Corporal.
- Sistema de Pontuação de Risco: Utiliza um algoritmo de pontuação para avaliar diversos fatores de risco.
- Diagnóstico Preliminar: Apresenta de forma clara o risco de diabetes, obesidade e hipertensão.
- Idade
- Colesterol Total
- Peso
- Altura (para cálculo do IMC)
- Triglicerídeos
- HDL (Colesterol "bom")
- Pressão Sistólica
- Pressão Diastólica
- Circunferência da Cintura
- Nível de Glicemia
- Prática Regular de Atividade Física (Sim/Não)
- Alimentação Saudável (Sim/Não)
- Histórico Familiar de Diabetes (Sim/Não)
- Sexo Biológico (Masculino/Feminino)
O código é organizado em uma estrutura, funções auxiliares e uma função main que controla todo o fluxo do programa.
-
struct pessoa:- Descrição: Estrutura de dados que armazena todas as informações de um único paciente, permitindo o cadastro múltiplo.
- Campos:
variaveis[12]: Array para armazenar os 10 dados numéricos coletados.sn[4]: Array para armazenar as 4 respostas Sim/Não.risco_diabete: Armazena o resultado final do risco de diabetes em porcentagem.
-
pont(...):- Descrição: Função genérica que atribui uma pontuação a uma variável com base em faixas de valores (intervalos). Usada para calcular os pontos de risco para idade, IMC, cintura, etc.
-
ler_double(const char* pergunta):- Descrição: Solicita ao usuário que insira um valor numérico (
double) e garante que a entrada seja válida. Se o usuário digitar um caractere não numérico, a função exibe uma mensagem de erro e pede para digitar novamente.
- Descrição: Solicita ao usuário que insira um valor numérico (
-
analise(char a):- Descrição: Função auxiliar para a
ler_SN. Analisa um único caractere de resposta (Sim/Não). - Retorno:
1se a resposta for 'S' (Sim),0se for 'N' (Não), e-1para qualquer outra resposta (inválida), indicando a necessidade de nova entrada.
- Descrição: Função auxiliar para a
-
ler_SN(const char* pergunta):- Descrição: Solicita ao usuário uma resposta "Sim" ou "Não" ('S' ou 'N'). Utiliza a função
analisepara validar a resposta e garante que o loop continue até que uma entrada válida seja fornecida. - Retorno:
1para 'S' e0para 'N'.
- Descrição: Solicita ao usuário uma resposta "Sim" ou "Não" ('S' ou 'N'). Utiliza a função
-
main():- Descrição: É a função principal que controla todo o fluxo do programa. Ela inicializa as variáveis e o array de pacientes, e então entra em um loop que apresenta o menu principal ao usuário, gerenciando suas ações.
- Menu Principal: O programa opera dentro de um loop
do-while, exibindo as seguintes opções até que o usuário escolha sair:Cadastrar um pacienteVisualizar os dados de um paciente cadastradoRedefinir os dados de um paciente ja cadastradoSair do programa
- Lógica do Menu (
switch):- Opção 1: Cadastrar um Paciente:
- Verifica se o limite de 10 pacientes foi atingido.
- Coleta todos os dados numéricos e de Sim/Não através das funções
ler_doubleeler_SN. - Apresenta uma tabela de confirmação e permite ao usuário corrigir um ou mais dados inseridos incorretamente.
- Calcula os riscos (IMC, obesidade, hipertensão) e a pontuação total de diabetes.
- Converte a pontuação em uma porcentagem de risco e apresenta todos os resultados.
- Armazena o conjunto completo de dados do paciente na próxima posição disponível do array
paciente[].
- Opção 2: Visualizar um Paciente:
- Verifica se existe algum paciente cadastrado.
- Solicita o
IDdo paciente a ser visualizado. - Valida se o
IDé um número válido e está dentro da faixa de pacientes cadastrados. - Recupera os dados do
paciente[ID]e os exibe em uma tabela detalhada e formatada.
- Opção 3: Opção de mudar o cadastro de uma pessoa:
- Modifica as informações de um ID de uma pessoa já cadastrada.
- Opção 4: Sair do Programa:
- Modifica a variável de controle do loop
do-while, fazendo com que o programa saia do menu e exiba a mensagem de encerramento.
- Modifica a variável de controle do loop
- Opção 1: Cadastrar um Paciente:
- Um compilador C (como GCC, Clang, etc.) instalado em seu sistema.
- Salve o código-fonte em um arquivo (ex:
sistema_risco.c). - Abra um terminal e navegue até o diretório do arquivo.
- Compile o código:
gcc sistema_risco.c -o sistema_risco -lm
-o sistema_riscodefine o nome do arquivo executável.-lmvincula a biblioteca matemática.
-
Após a compilação, execute o programa:
./sistema_risco
(No Windows, o comando pode ser
sistema_risco.exe) -
Siga as instruções do menu para cadastrar ou visualizar pacientes.



