Buscar

PIM-IV- Unip

Prévia do material em texto

UNIP EaD 
Projeto Integrado Multidisciplinar IV 
Cursos Superiores de Tecnologia 
 
 
 
 
 
 
 
PROJETO DE SISTEMA EM C PARA CADASTRO E MONITORAMENTO DE 
PACIENTES COM COVID EM HOSPITAIS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Unip EaD 
2021 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
UNIP EaD 
Projeto Integrado Multidisciplinar IV 
Cursos Superiores de Tecnologia 
 
 
 
 
 
 
 
PROJETO DE SISTEMA EM C PARA CADASTRO E MONITORAMENTO DE 
PACIENTES COM COVID EM HOSPITAIS 
 
 
 
 
 
 
 
 
 
 
Aluno: Victor Matheus Ximenes de Brito 
RA: 2087510 
Aluno: Ana Carolinne Martins de Carvalho 
RA: 2095246 
Curso: Análise e desenvolvimento de sistemas 
 
 
 
 
 
 
 
Unip EaD 
2021
 
 
Resumo 
 
No presente trabalho traremos uma solução para o escopo do processo de 
cadastramento e averiguação de status de saúde dos pacientes de um hospital, trata-
se de um sistema em linguagem C, tem como fundamento o cadastro de dados, bem 
como o armazenamento da informação em arquivo, além disso ocorrerá a gravação e 
leitura do arquivo. Demonstraremos a lógica utilizada na criação do programa, e 
também os métodos e ferramentas escolhidos para o desenvolvimento do projeto. Os 
comandos utilizados serão tipificados, ademais as lógicas e os procedimentos 
utilizados para fomentar a solução do problema dos clientes e além de tudo, reforçar 
objetivos propostos pela disciplina. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Palavras-chave: Linguagem C, Cadastro de Pacientes, 
 
 
Abstract 
 
In the present work, we will bring a solution to the scope of the registration process 
and verification of the health status of patients in a hospital, it is a system in C 
language, based on the registration of data, as well as the storage of information in 
file, the file will also be written and read. We will demonstrate the logic used in creating 
the program, as well as the methods and tools chosen for developing the project. The 
commands used will be typified, in addition to the logics and procedures used to 
promote the solution of the clients' problem and, above all, reinforce the objectives 
proposed by the discipline. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Keywords: Language C, Patient Registration, Covid 19
 
 
SUMÁRIO 
 
1. Introdução............................................................................................ 6 
2. Estrutura de Dados ............................................................................ 7 
3. Login .................................................................................................. 11 
4. Menu Principal .................................................................................. 13 
5. Cadastro de dados ............................................................................ 14 
6. Função Checa Idade ......................................................................... 17 
7. Função Imprime .................................................................................19 
8. Método de Desenvolvimento ........................................................... 20 
Conclusão .......................................................................................... 21 
Referências .........................................................................................22 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 
 
 
 
7 
1. Introdução 
A pandemia global mudou o cenário mundial sob várias óticas, isso afetou a 
maioria das esferas da nossa sociedade, como sabemos, os hospitais tiveram que se 
adaptar aos riscos e protocolos da nova onda da pandemia, com uma visão holística, 
e buscando solucionar um problema comum nos dias atuais, criaremos um programa 
em linguagem C, que faça um cadastro de registro de dados de pacientes, a fim de 
proporcionar maior segurança para as pessoas, principalmente as do grupo de risco. 
 
O sistema precisar alcançar alguns objetivos, tais objetivos abaixo, foram 
retirados diretamente do material disponível na disciplina: 
 
 
 
Objetivos dispostos no trabalho: 
 
- Desenvolver um sistema em C. 
- Rotina de login, com usuário e senha. 
- Deverá ter uma estrutura de cadastro dos pacientes. 
- Dados dos pacientes precisam ser salvos em arquivo dedicado. 
- Uma função que verifica se o paciente cadastrado está no grupo de risco. 
 
 
Abaixo podemos ver um fluxograma, com a ideia de como o funcionamento do 
programa deverá seguir. 
8 
 
Figura 1 - Fluxograma funcionamento. 
 
Após a inicialização programa, será feito a verificação se existem os arquivos 
de senhas no diretório do programa, caso exista ele irá passar para a próxima etapa, 
caso não, irá criar o arquivo e passar para a próxima etapa. 
Em seguida a função de login, a qual irá ser feita a verificação dos usuários e 
senhas, assim prosseguirá para o programa, caso não seja correto, irá se repetir 
dentro de um laço 0 qual a única saída será com as credenciais corretas. 
O primeiro objetivo a ser alcançado por esse projeto é tratar esses dados, e 
gravá-los, além disso a possibilidade de como ler eles de uma forma que nos ajude a 
alcançar o nosso objetivo. 
 
 
2. Estrutura de dados 
 
O comando FPRINTF(), nos dá a possibilidade de apontar para um fluxo de 
saída, como um arquivo, e gravar nele dados como caracteres, valores inteiros, no 
nosso caso a saída desses textos seria em um arquivo de texto. 
 
 O comando FSCANF(), faz a leitura dos dados em arquivos até um delimitador, 
e pode ser repetido a partir do último ponto lido, até o final do arquivo. 
O delimitador usado por esse comando é o pulo de linha(“\n”), com isso 
conseguimos ler todos os caracteres em sequência até a função identificar o pulo de 
linha, logo podemos ler uma linha por vez do arquivo. Dado o exemplo de uma 
estrutura de dados em um arquivo: 
9 
 
Variavel1Variavel2 
Variavel3Variavel4 
Variavel5Variavel6 
 
Como podemos ver, cada linha contém cadeias de caracteres que indicam duas 
variáveis, um pulo de linha e mais duas variáveis, o comando FSCANF() faz a leitura 
até o pulo de linha, na sua primeira instância ele iria ler: 
 
Variavel1Variavel2 
 
Na sua segunda instância ele iria ler: 
 
Variavel3Variavel4 
 
E assim sucessivamente até ele chegar ao final do arquivo e o retorno do 
comanda ser nulo. 
 
Mas dessa forma, precisamos de uma solução para separar os dados. A 
solução utilizada foi o comando STRCHR(), que retorna um ponteiro para o primeiro 
encontro de delimitador estipulado, dentro de uma cadeia de caracteres. 
 
Seguindo os exemplos anteriores e assumindo que o formato do arquivo está 
da seguinte maneira: 
 
Variavel1;Variavel2 
Variavel3;Variavel4 
Variavel5;Variavel6 
 
Ao fazer a leitura da linha teremos: 
 
Variavel1;Variavel2 
 
E ao aplicar o comando STRCHR(), utilizando o delimitador de ponto e 
vírgula(“;”), teremos como retorno: 
 
;Variavel2 
 
Retorno é um ponteiro para a parte da memória que contém a primeira instância 
do carácter delimitador, dito isso podemos exemplificar que deve ser dentro de uma 
cadeia de caracteres, assim podendo manipular esse ponto e ajustar esses dados da 
forma mais conveniente para o nosso objetivo. 
 
Exemplificando: 
10 
1 - Precisamos gravar no arquivo o registro a ser lido seguindo a estrutura de, 
“Variavel1;Variavel2\n”, neste exemplo usarei o seguinte registro: 
 
 
Figura 2 - Exemplo função fprintf() 
 
2 - Ao usar o comando FSCANF(), apontando para o arquivo que tem o registro 
anterior, ele irá ter a leitura: 
 
Figura 3 - Exemplo função fscanf() 
 
Saída: 
 
Figura 4 - Exemplo saída fscanf() 
 
3 - Se alocar a um ponteiro o retorno de STRCHR(), utilizando o delimitador de 
ponto e vírgula(“;”) teremos a saída: 
 
Figura 5 - Exemplo função strchr()Saída: 
 
Figura 6 - Exemplo saída função strchr() 
 
4 - É muito importante observar que o retorno da função STRCHR() é um 
ponteiro para o ponto de um vetor de caracteres já existente, ou seja, a primeira 
posição do vetor do ponteiro vai ser um ponto de um vetor já existente. Utilizando o 
vetor anterior como exemplo: 
 
Figura 7 - Exemplo de cadeia de vetores 
11 
 
A saída: 
 
Figura 8 - Exemplo da saída de cadeia de vetores 
 
Nesse caso o caractere de ponto e vírgula(“;“), se repete porque, o ponteiro[0], 
é o mesmo carácter na posição [3] do vetor da variável texto, e assim sucessivamente. 
 
5 – Para resolver isso faremos com que o ponteiro aponte para a posição do 
vetor que manipularemos, assim poderemos remover o delimitador de ponto e 
vírgula(“;”) e ao mesmo tempo manipular o vetor para separar as duas variáveis. 
 
 
Figura 9 - Exemplo de manipulação de vetores 
 
A segunda expressão, “ponteiro++;” , move a posição do vetor do ponteiro para 
a próxima posição. Seguindo o exemplo a seguir: 
 
Figura 10 - Exemplo da função strchr() com manipulação de vetor. 
 
 
A saída seria: 
 
Figura 10 - Exemplo de saída da função strchr() com manipulação de vetor. 
 
Podemos observar que conseguimos separar a primeira variável das demais, 
podendo inclusive alocar ela a outra variável, ou utilizá-la em outros comandos. 
Utilizando essa manipulação de vetores de uma cadeia de caracteres, e 
utilizando variáveis auxiliares, podemos ir “recortando” variável por variável. 
12 
Com uma solução para gravar os dados e fazer a leitura, bem como a 
separação deles, começaremos a trabalhar na lógica do programa, sendo a função de 
login, a primeira, que irá aparecer para o usuário. 
 
3. Login 
 
O sistema de login tem como fundamento, prevenir que pessoas não 
autorizadas possam acessar os dados dos sistemas, utilizando credenciais de acesso, 
além disso, normalmente usam-se duas cadeias de caracteres que precisam ser 
conferidas, e caso elas forem iguais aos caracteres dispostos no banco de dados, o 
acesso é liberado para uso do sistema. 
Em oportunidade diversa a isso, ou seja, caso as credenciais não confiram, a 
função se repetirá indefinidamente até as credenciais corretas sejam colocadas, 
impedindo assim o acesso não autorizado ao sistema. 
 Para garantir o funcionamento do sistema, podemos verificar no começo do 
sistema se o arquivo de senha existe, caso ele não exista, há a possibilidade de se 
criar um arquivo de senha, usando-se um dado inicial para uso, conforme apresentado 
na figura 1 anteriormente. 
 
13 
Figura 11 - Fluxograma função de login. 
 
Seguindo o passo a passo da função, primeiro precisamos abrir o arquivo que 
contém os dados da senha, feito isso, coletaremos os inputs do usuário com o usuário 
e senha dele e fazemos a primeira leitura do arquivo. 
Essa leitura irá retornar um valor. O valor poderão ser os dados previamente 
gravados no arquivo, ou serão um retorno de nulo informando que o fim do arquivo 
chegou. Caso retorne o fim do arquivo, será fechado a conexão com arquivo, e iniciara 
um novo ciclo do processo. 
 Caso a função retorne com valores de usuário e senha, passará para o próximo 
passo que irá comparar os dados digitados pelo usuário com os dados coletados no 
arquivo. Se a comparação for bem-sucedida a função acaba e o laço de repetição 
termina. Liberando assim o acesso ao resto do sistema, consegunido a entrada no 
sistema, uma nova leitura será feita no arquivo, coletando novos dados para 
comparação, até que o arquivo termine ou ache dados equivalentes ao digitado. 
Todo o conceito da função de login aproveita a possibilidade de um loop infinito 
para impedir que o programa siga para as próximas etapas do código, impedindo 
acesso ao conteúdo do programa. 
Exemplo do funcionamento do login: 
 
Figura 12 - Exemplo login com sucesso. 
 
 
 
 
 
14 
 
Figura 13 - Exemplo falha de login. 
Após conseguir entrar no sistema com usuário e senha, é liberado o acesso ao 
menu principal, que dará opção ao usuário usufruir das ferramentas do sistema. 
 
4. Menu Principal 
 
O funcionamento básico será: escrever na tela do console as opções seguidas 
de números, e após isso a escuta do input do usuário com a opção desejada do menu, 
a qual irá chamar a respectiva função selecionada. 
 Ao final da função, irá se repetir o ciclo até a opção de fechar o sistema seja 
selecionada, dando uma saída do sistema. 
Todo o funcionamento estará dentro de um laço de repetição que irá se manter, 
dando apenas uma saída, e após todo retorno de função retornará para a repetição 
que apresentará a tela novamente, e uma nova escolha a ser feito pelo usuário. 
Segue abaixo um fluxograma da lógica descrita. 
15 
 
Figura 14 - Fluxograma Menu Principal. 
 
Figura 15 - Tela de menu principal. 
 
 
5. Cadastros de dados 
 
Tanto a função de realizar o cadastro do paciente quanto o cadastro de senha 
seguem um processo simples: 
1 - Abre-se o arquivo a ser usado como repositório. 
2 - Coleta os inputs do usuário. 
3 - Armazena os inputs em variável local. 
16 
4 - Exporta os dados das variáveis para o arquivo. 
5 - Fecha o arquivo. 
Segue abaixo a lógica de funcionamento dos cadastros: 
 
 
Figura 16 - Fluxograma lógica cadastrol. 
 
 
17 
 
Figura 17 - Fluxograma lógica de cadastro de senha. 
Segue abaixo exemplo da estrutura de dados para o cadastro de pacientes: 
 
 
Figura 18 - Estrutura de dados Registro. 
18 
 
Na imagem nota-se que existem duas estrutursa de dados, uma chamada 
endereco e outra chamada registro. 
A estrutura endereco auxilia na organização dos dados do endereço do 
paciente e facilita na escrita do código. 
 E a estrutura de nome registro é o que será usada para conter os dados do 
paciente para otimizar a escrita do código e na gravação dos dados. 
No caso da senha, também tem uma estrutura de dados: 
 
Figura 19 - Estrutura de dados senha. 
. 
 
6. Função checaidade() 
 
Essa função foi criada para identificar se o cadastro realizado possui os dados 
de uma pessoa de risco, ou seja, se ele possui alguma comorbidade ou se tem idade 
maior que 65 anos. 
A lógica utilizada é a seguinte: 
 
1 - Soma-se a data do diagnóstico, multiplicando o ano do diagnóstico por 365, 
o mês do diagnóstico por 30, e o dia do diagnóstico por 1. Esse valor é subtraído pelo 
valor da soma da data do nascimento, que é dado pela multiplicação do ano do 
nascimento por 365, do mês do nascimento por 30 e do dia do nascimento por 1. 
 
2 - O valor da operação anterior é realizado a divisão por 356, que será um 
valor aproximado da idade do paciente. 
 
3 - Usando o resto da divisão do valor da idade, pode-se chegar aos meses, 
dividindo o resto por 30, e o resto dos meses seria os dias, estipulando o tempo de 
vida total do paciente. 
19 
Com um valor da idade do paciente, checa-se se ele é do grupo de risco ou 
não, e caso esteja, se faz necessário exportar o arquivo com os dados do cliente. 
 
Todos esses dados serão apontados na varável do tipo registro. 
Segue abaixo fluxograma da lógica da função. 
 
 
 
 
 
Figura 20 - Fluxograma função checaidade(). 
Caso o paciente possua idade acima dos 65 ou uma comorbidade, os dados 
serão exportados para um arquivo Risco.txt, segue exemplo: 
 
20 
 
 
7. Função imprime 
 
Essa função serve para a printar os registros gravados no arquivo de cadastro 
de paciente, na tela do console. Um exemplo da tela: 
 
 
Temos a opções de ler uma linha do arquivo por vez, e também de separar as 
variáveis com as delimitações, o objetivo dessa função é ler uma linha por vez, separar 
as variáveis e aloca-las em uma variável auxiliar, depois disso, escrever na tela do 
console imprimindo os dados. 
 Podemos notar que a formatação é mais detalhada. Isso se dá pelo fato do 
processo tratado anteriormente. Segue abaixo fluxograma com a lógica do processo:Figura 21 - Fluxograma função imprime. 
21 
8. Método de desenvolvimento 
 
No decorrer dos anos os métodos ágeis de desenvolvimento ganharam 
destaque e importância, não só pela sua capacidade de desenvolvimento mais direto 
e próximo ao usuário, mas também pela versatilidade, sendo um deles bastante 
utilizado o método Scrum. 
O método Scrum consiste em dividir ciclos de atividades com objetivos 
definidos e um prazo de entrega, após o término do ciclo, é avaliado os objetivos 
completados, e o desenvolvimento do ciclo, tentando ajustar o próximo ciclo de forma 
a ser mais eficiente. 
Traçando os objetivos iniciais, fica mais fácil de se observar a conclusão de 
resultados, e em que momento do projeto estamos em determinado momento, 
estipulando um tempo para a produção do projeto, e avaliando após o término do 
tempo as dificuldades no processo, a identificação de pontos fortes e fracos é mais 
palpável, além de conseguir manter um controle sobre o processo total, facilitando o 
planejamento futuro e a entrega com uma boa qualidade. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22 
9. Conclusão 
 
O projeto é um protótipo de interface, além disso é bem explicativo e de fácil 
usabilidade. Atendo ao escopo do cliente e tem um bom funcionamento. 
O sistema possui um sistema de login que irá validar os dados digitados, 
conforme objetivo do projeto, e em adição ao proposto, um sistema de cadastro dando 
a opção de cadastrar novos logins e senhas. 
Elencamos a metodologia de desenvolvimento utilizada e o objetivo final que 
era o de executar um projeto multidisciplinar foi alcançado. 
Com isso concluo que todos os objetivos apresentados no Manual do PIM IV, 
foram alcançados conforme as soluções apresentadas a esse projeto. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23 
REFERÊNCIAS 
 
 
VETORAZZO, Adriana.de. S. Engenharia de Software. [Digite o Local da Editora]: 
Grupo A, 2018. 9788595026780. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788595026780/. Acesso em: 28 
out. 2021. 
 
LUÍS, DAMAS,. Linguagem C, 10ª edição. [Digite o Local da Editora]: Grupo GEN, 
2006. 9788521632474. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788521632474/. Acesso em: 29 
out. 2021. 
 
PEREIRA, Silvio.do. L. Estruturas de Dados em C - Uma Abordagem Didática. 
[Digite o Local da Editora]: Editora Saraiva, 2016. 9788536517254. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788536517254/. Acesso em: 28 
out. 2021. 
 
COHN, Mike. Desenvolvimento de Software com Scrum. [Digite o Local da Editora]: 
Grupo A, 2011. 9788577808199. Disponível em: 
https://integrada.minhabiblioteca.com.br/#/books/9788577808199/. Acesso em: 28 
out. 2021.

Continue navegando