Skip to content

Shiney-X/Trabalho-InCom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sistema de Análise de Risco de Saúde

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.

📜 Descrição

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.

✨ Funcionalidades

  • 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.

📋 Fatores de Risco Considerados

  1. Idade
  2. Colesterol Total
  3. Peso
  4. Altura (para cálculo do IMC)
  5. Triglicerídeos
  6. HDL (Colesterol "bom")
  7. Pressão Sistólica
  8. Pressão Diastólica
  9. Circunferência da Cintura
  10. Nível de Glicemia
  11. Prática Regular de Atividade Física (Sim/Não)
  12. Alimentação Saudável (Sim/Não)
  13. Histórico Familiar de Diabetes (Sim/Não)
  14. Sexo Biológico (Masculino/Feminino)

⚙️ Como Funciona (Estrutura do Código)

O código é organizado em uma estrutura, funções auxiliares e uma função main que controla todo o fluxo do programa.

  1. 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.
  2. 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.
  3. 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.
  4. analise(char a):

    • Descrição: Função auxiliar para a ler_SN. Analisa um único caractere de resposta (Sim/Não).
    • Retorno: 1 se a resposta for 'S' (Sim), 0 se for 'N' (Não), e -1 para qualquer outra resposta (inválida), indicando a necessidade de nova entrada.
  5. ler_SN(const char* pergunta):

    • Descrição: Solicita ao usuário uma resposta "Sim" ou "Não" ('S' ou 'N'). Utiliza a função analise para validar a resposta e garante que o loop continue até que uma entrada válida seja fornecida.
    • Retorno: 1 para 'S' e 0 para 'N'.
  6. 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:
      1. Cadastrar um paciente
      2. Visualizar os dados de um paciente cadastrado
      3. Redefinir os dados de um paciente ja cadastrado
      4. Sair 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_double e ler_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 ID do 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.

🚀 Como Compilar e Executar

Pré-requisitos

  • Um compilador C (como GCC, Clang, etc.) instalado em seu sistema.

Compilação

  1. Salve o código-fonte em um arquivo (ex: sistema_risco.c).
  2. Abra um terminal e navegue até o diretório do arquivo.
  3. Compile o código:
    gcc sistema_risco.c -o sistema_risco -lm
    • -o sistema_risco define o nome do arquivo executável.
    • -lm vincula a biblioteca matemática.

Execução

  1. Após a compilação, execute o programa:

    ./sistema_risco

    (No Windows, o comando pode ser sistema_risco.exe)

  2. Siga as instruções do menu para cadastrar ou visualizar pacientes.

Exemplo de Saída

Captura de tela 2025-06-09 192756 Captura de tela 2025-06-09 192808 image image

👥 Colaboradores

ericfelipe-tech geosr1 VegetaT2 RomuloTopp3n

About

Programa de análise de riscos de doenças crônicas

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages