Buscar

Trabalho PROJETO INTEGRADO MULTIDISCIPLINAR IV

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
 
UNIVERSIDADE PAULISTA - UNIP EaD 
Projeto Integrado Multidisciplinar 
Curso Superior de Tecnologia 
 
 
 
 
 
 
 
Gabriel Cardoso Da Silva - 0594517 
 
 
 
 
 
 
 
Sistema em C para cadastrar pacientes 
diagnosticados com covid-19 
 
 
 
 
 
 
 
 
 
 
 
 
Belo Horizonte 
2021 
 
2 
 
Gabriel Cardoso Da Silva - 0594517 
 
 
 
 
 
 
 
 
Sistema em C para cadastrar pacientes 
diagnosticados com covid-19 
 
 
 
 
 
 
 
Projeto Integrado Multidisciplinar para 
obtenção do título de graduação em 
(Análise e Desenvolvimento de Sistemas) 
apresentado à Universidade Paulista – UNIP EaD. 
Orientador(a): Marcelo Santos. 
 
 
 
 
 
 
 
 
 
Belo Horizonte 
2021 
3 
 
RESUMO 
 
 
A pandemia global estimulou uma demanda por inovação médica e muitas empresas 
começaram a investir no desenvolvimento de softwares de saúde. Países ao redor do mundo 
exigem tecnologia e equipamentos para combater o vírus: testes, máscaras respiratórias, 
equipamentos de proteção, ventiladores, desfibriladores e muito mais. À medida que 
aprendemos mais sobre a doença, vemos as tecnologias digitais de saúde cada vez mais sendo 
adotadas neste contexto. 
Como o novo coronavírus infecta um número exponencial de pessoas, os métodos 
convencionais de rastreamento para identificar aqueles que foram diagnosticados com o vírus 
e limitar a transmissão não são suficientes. É por isso que governos em todo o mundo têm 
recorrido ao uso de tecnologia para esse fim. Ao rastrear os usuários, as autoridades são capazes 
de identificar os indivíduos que foram contaminados e, posteriormente, alertar aqueles que 
podem estar próximos de alguém com covid-19. 
 
Palavras-chave: Vírus, Corona, Pandemia, Projeto, Cadastro. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
 
ABSTRACT 
 
A global pandemic stimulates a demand for medical innovation and many companies set out to 
invest in the development of healthcare software. Countries around the world technology and 
equipment to fight the virus: testicles, respiratory masks, protective equipment, ventilators, 
defibrillators and more. As we learn more about the disease, we see digital health technologies 
increasingly being adopted in this context. 
The global pandemic has spurred a demand for medical innovation and many companies have 
started to invest in the development of healthcare software. Countries around the world require 
technology and equipment to fight the virus: tests, respiratory masks, protective equipment, 
ventilators, defibrillators and more. As we learn more about the disease, we see digital health 
technologies increasingly being adopted in this context. 
Because the new coronavirus infects an exponential number of people, conventional screening 
methods to identify those who have been diagnosed with the virus and limit transmission are 
not enough. That is why governments around the world have resorted to using technology for 
this purpose. By tracking users, authorities are able to identify individuals who have been 
infected and subsequently alert those who may be close to someone with covid-19. 
Keywords: Virus, Corona, Pandemic, Project, Registration. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5 
 
SUMÁRIO 
 
1. INTRODUÇÃO .................................................................................................................. 6 
2. DESENVOLVIMENTO ................................................................................................... 7 
3. MANUAL DO USUÁRIO ............................................................................................. 8 
4. COMPILAR O PROGRAMA ...................................................................................... 11 
5. CÓDIGO FONTE ............................................................................................................. 14 
7. CONCLUSÃO .................................................................................................................... 26 
REFERÊNCIAS .............................................................................................................. 27 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6 
 
1. INTRODUÇÃO 
 
A pandemia global estimulou uma demanda por inovação médica e muitas empresas 
começaram a investir no desenvolvimento de softwares de saúde. Para atender com excelência 
os requisitos de escalabilidade e segurança do projeto, vários aspectos deverão ser considerados, 
os quais são requisitos para a elaboração deste projeto. Um projeto para atender as requisições 
do cadastramento de pacientes e quais serão os protocolos utilizados visando a segurança da 
informação. A infraestrutura deverá ser escalável, possibilitando o crescimento do sistema de 
dados em metas de expansão definidas pela necessidade futura. Sendo a topologia física a ser 
escolhida a mais adequada a atender futuras demandas do cadastramento. Neste trabalho será 
abordada a metodologia utilizada para a proposta da implantação deste sistema de dados e o 
critério para a coleta de informações, atendendo de maneira satisfatória os requisitos funcionais 
requeridos. O objetivo primário do projeto será desenvolver um sistema em C (utilizando o 
Code::Blocks) que será utilizado pelos hospitais para cadastrar os pacientes que forem 
diagnosticados com Covid-19 e carecem de acompanhamento e monitoramento. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
2. DESENVOLVIMENTO 
 
O desenvolvimento foi feito segundo os requerimentos passados pelos hospitais para cadastrar 
os pacientes que forem diagnosticados com covid-19 e carecem de um acompanhamento e 
monitoramento. Ao receber o diagnóstico positivo os profissionais da saúde devem realizar o 
login no sistema (informando o usuário e a senha) e informar os dados pessoais do paciente, 
como Nome, CPF, Telefone, Endereço (Rua, Número, Bairro, Cidade, Estado e CEP), Data de 
Nascimento e E mail, data do diagnóstico e informar alguma comorbidade do paciente 
(diabetes, obesidade, hipertensão, tuberculose, outros) que serão salvos em um Arquivo (a 
principal vantagem de um arquivo é que as informações armazenadas podem ser consultadas a 
qualquer momento).Após o cadastro, o sistema deverá calcular a idade e verificar se o paciente 
possui alguma comorbidade e se pertence ao grupo de risco (maiores de 65 anos). Caso o 
paciente pertença ao grupo de risco o sistema deverá salvar em um arquivo de texto o CEP e a 
idade do paciente para que essa informação possa ser enviada para a central da Secretaria da 
Saúde da cidade. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8 
 
3. MANUAL DO USUÁRIO 
 
O programa em seu estado atual não necessita instalação complexa, apenas copie os arquivos 
para uma pasta de fácil acesso para uso e para mandar o arquivo dos pacientes em risco 
(risco.txt) com comorbidades para a secretaria de saúde. Caso não exista, crie um novo arquivo 
de texto vazio com o nome de “pacientes.txt” (sem aspas” na pasta do executável “covid19.exe” 
ou o programa retornará erro ao iniciar. O programa é bastante auto-explicativo em seu uso, 
com o cadastro perguntando passo a passo a próxima informação. Quanto à comorbidade, se 
não houver comorbidade então deve-se deixar em branco e o mesmo não irá computar como 
paciente de risco, caso tenho alguma deve-se digitar qual, e o mesmo será adicionado ao arquivo 
risco.txt para ser enviado mais tarde. 
 
Telas do programa: 
 
Figura 1: Ao iniciar a primeira tela é a de login. Na tela: login e senha padrão. 
 
9 
 
 
Figura 2: Tela de Menu com 4 opções. 
Menu simples com 4 opção de interação, Cadastro, Remoção, Listagem e para saída do programa. 
 
Figura 3: Opção 1 tela de cadastro. Na tela: exemplode cadastro 
10 
 
Ao cadastrar um paciente, o programa testará automaticamente se o mesmo é maior de 65 anos 
ou se possui comorbidade e salvará o CEP, idade e qual a comorbidade em um arquivo separado 
(risco.txt) para ser enviado à secretaria de saúde. Todos os pacientes cadastrados, com todos os 
dados são salvos em pacientes.txt e são carregados para a memória automaticamente ao abrir o 
programa. 
 
Figura 4: Opção 3, Mostrar a lista de pacientes. Na tela: Paciente cadastrado de exemplo, para 
conferência se o paciente já está cadastrado. 
 
 
Figura 5: Opção 2, tela para descadastrar, apaga o paciente selecionado, caso contenha erros no 
cadastro ou outro motivo pertinente, o mesmo também é removido do arquivo “pacientes.txt” 
 
11 
 
 
Figura 6: Opção 0, Sair do Programa. 
 
3. COMPILAR O PROGRAMA 
 
O código fonte em C (covid19.cpp) deve ser aberto no CodeBlocks (usando o menu File -> 
Open e navegando até onde está salvo o arquivo covid19.cpp para abertura). 
 
12 
 
Primeiramente deverá ser alterada a senha padrão (user, 1234) no local apropriado com o 
comentário indicando. 
 
 
 
Para compilar o programa basta ir ao menu ”Build” e clicar na engrenagem amarela Build, não 
retornando nenhum erro é só rodar o programa em “Build-> Run”. 
 
 
 
 
 
 
 
13 
 
Depois de compilado não é necessário usar o CodeBlocks e o programa pode ser rodado na 
pasta em que o código fonte se encontra pelo arquivo executável “covid19.exe” 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14 
 
4. CÓDIGO FONTE 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <time.h> 
 
#define MAX_PACIENTES 1000 //numero máximo de pacientes 
 
typedef enum { 
 TELA_SAIR=-1, 
 TELA_PRINCIPAL, //0 
 TELA_CADASTRAR, //1 
 TELA_DESCADASTRAR,//2 TELA_LISTAR_TODOS,//3 
} Telas; 
 
typedef struct 
{ 
 char separador1[8], nome[32];//nome completo 
 char telefone[14], endereco[50], cidade[30], estado[20], cpf[14]; 
 char cep[12], email[32], comorbidade[30], separador[8]; 
 int idade,dia,mes,ano,diaD,mesD,anoD; 
} Covid; 
 
typedef struct 
{ 
 Telas menu; 
 int totalCovids; 
 Covid pacientes[MAX_PACIENTES]; 
 } CovidPacientes; 
 
int main (void) 
{ 
 int aA, mA, dA; 
15 
 
 char usr[]="user",usuario[20]; //alterar o user para o usuário desejado 
 int senhaL, senha=1234; //alterar o número 1234 para a senha escolhida 
 
//senha --------------------------------------- 
//verificar senha, "hard coded" 
while ( (strcmp(usr,usuario)!=0) || (senha!=senhaL)) 
{ 
 printf("\tDigite o usuario: \n"); 
 fflush(stdin); 
 gets(usuario); 
 
 printf("\tDigite a senha: \n"); 
 fflush(stdin); 
 scanf("%d", &senhaL); 
 system("cls"); //limpa a tela para WINDOWS ou DOS - Talvez não funcione em LINUX! 
} 
//--------------------------------------------- 
 
CovidPacientes cadastro; 
//zera todos os bytes de cadastro 
memset(&cadastro, 0x0, sizeof(cadastro)); 
 
//menu do cadastro 
cadastro.menu = TELA_PRINCIPAL; 
 
//abre o pacientes.txt para leitura, pacientes.txt deve ser criado caso não exista antes de abrir o 
cadastro 
FILE * memoria = fopen("pacientes.txt", "r"); 
FILE * risco; 
if (memoria == NULL) 
{ 
 printf("Erro ao abrir arquivo de memoria de pacientes. \nVoce deve criar o arquivo 'pacientes.txt' 
vazio antes da primeira execucao\n"); 
 return 1; 
} 
16 
 
//lê todos os pacientes 
size_t lidos = fread(cadastro.pacientes, sizeof(Covid), MAX_PACIENTES, memoria); 
printf("Lidos %zd pacientes\n", lidos); 
//faz totalCovids conter a quantidade de pacientes lidos 
cadastro.totalCovids = (int)lidos; 
fclose(memoria); 
 
//pegar data atual----------------------------- 
 time_t mytime; 
 mytime = time(NULL); 
 struct tm tm = *localtime(&mytime); 
 aA=tm.tm_year+1900; //funções "tm" referentes ao time.h 
 mA=tm.tm_mon+1; //ano, mes e dia ATUAL 
 dA=tm.tm_mday; 
 printf("Data: %d/%d/%d\n", dA, mA, aA); 
//--------------------------------------------- 
 
//início 
 while (cadastro.menu != TELA_SAIR) 
{ 
 switch (cadastro.menu) 
 { 
 case TELA_PRINCIPAL: 
 { 
 printf("-------------------------------------\n"); 
 printf("\tCADASTRO COVID 19:\n"); 
 printf("-------------------------------------\n"); 
 int opcao = -1; 
 do 
 { 
 printf("Escolha uma opcao:\n"); 
 printf("\tDigite 1 para cadastrar paciente\n"); 
 printf("\tDigite 2 para remover paciente\n"); 
 printf("\tDigite 3 para listar todos os pacientes\n"); 
 printf("\tDigite 0 para sair do programa\n"); 
17 
 
 scanf("%d", &opcao); 
//NOTA: sei que este código não é adequado mas é que é dificil encontrar 
//uma boa solução para o problema de lixo no buffer em C 
//Limpa o buffer para evitar problemas 
 int c = 0; 
 while ((c = getchar()) != '\n' && c != EOF) { } 
 } while (opcao < 0 || opcao > 3);//se for menor que zero é invalido e maior que 3 está fora do intervalo 
 
 if (opcao == 0) 
 cadastro.menu = TELA_SAIR; 
 
 if (opcao == 1) 
 { 
 //vai para tela de cadastrar paciente 
 
cadastro.menu = TELA_CADASTRAR; 
//verifica se tem muitos pacientes 
if (cadastro.totalCovids >= MAX_PACIENTES) 
{ 
printf("\tCadastro esta lotado, nao e possivel adicionar novos pacientes\n"); 
//volta para tela principal 
cadastro.menu = TELA_PRINCIPAL; 
} 
} 
if (opcao == 2) 
{ 
cadastro.menu = TELA_DESCADASTRAR; 
//se NÃO tem nenhum paciente listado 
if (cadastro.totalCovids == 0) 
{ 
printf("\tNao ha nenhum paciente cadastrado para remover\n"); 
cadastro.menu = TELA_PRINCIPAL; 
} 
} 
if (opcao == 3) 
18 
 
{ 
cadastro.menu = TELA_LISTAR_TODOS; 
if (cadastro.totalCovids == 0) 
{ 
printf("\tCadastro nao tem nenhum paciente para listar\n"); 
//volta para tela principal 
cadastro.menu = TELA_PRINCIPAL; 
} 
} 
} 
break; 
//----------------------------------------------------------------------------------------------------------------------
---- 
------ 
case TELA_CADASTRAR: 
{ 
printf("-------------------------------------\n"); 
printf("\tTELA DE CADASTRO:\n"); 
printf("-------------------------------------\n"); 
Covid novo; 
char opcao = 's'; 
do 
{ 
//zera os bytes de novo 
memset(&novo, 0x0, sizeof(novo)); 
strcpy(novo.separador1, "---\n"); //separador prar o arquivo de texto ficar mais 
apresentável 
printf("Digite um novo nome para o paciente: \n"); 
//lê uma string da entrada padrão 
fflush(stdin); //função que limpa o teclado pra não ter algum erro na hora de digitar 
fgets(novo.nome, 32, stdin); 
//removendo o \n do final 
int id = 0; 
while (novo.nome[id] != '\0' && novo.nome[id] != '\n') 
id++; 
19 
 
novo.nome[id] = '\0'; 
novo.nome[31] = '\n'; //pra dar nova linha apenas no fim da string e ficar melhor no 
arquivo de texto 
printf("Digite um novo telefone para o paciente:\n"); 
fflush(stdin); 
fgets(novo.telefone, 14, stdin); 
id = 0; 
while (novo.telefone[id] != '\0' && novo.telefone[id] != '\n') 
id++; 
novo.telefone[id] = '\0'; 
novo.telefone[13] = '\n'; 
printf("Digite um novo endereco para o paciente: \n"); 
fflush(stdin); 
fgets(novo.endereco, 50, stdin); 
id = 0; 
while (novo.endereco[id] != '\0' && novo.endereco[id] != '\n') 
id++; 
novo.endereco[id] = '\0'; 
novo.endereco[49] = '\n'; 
printf("Digite um novo cidade para o paciente: \n"); 
fflush(stdin); 
fgets(novo.cidade, 30, stdin); 
id = 0; 
while (novo.cidade[id] != '\0' && novo.cidade[id] != '\n') 
id++; 
novo.cidade[id] = '\0'; 
novo.cidade[29] = '\n'; 
printf("Digite um novo estado para o paciente (sigla): \n"); 
fflush(stdin); 
fgets(novo.estado, 20, stdin); 
id = 0; 
while (novo.estado[id] != '\0' && novo.estado[id] != '\n') 
id++; 
novo.estado[id] = '\0'; 
novo.estado[19] = '\n'; 
20 
 
printf("Digite um novo cpf para o paciente: \n"); 
fflush(stdin); 
fgets(novo.cpf, 14, stdin); 
id = 0; 
while (novo.cpf[id] != '\0' && novo.cpf[id] != '\n') 
id++; 
novo.cpf[id] = '\0';novo.cpf[13] = '\n'; 
printf("Digite um novo cep para o paciente: \n"); 
fflush(stdin); 
fgets(novo.cep, 12, stdin); 
id = 0; 
while (novo.cep[id] != '\0' && novo.cep[id] != '\n') 
id++; 
novo.cep[id] = '\0'; 
novo.cep[11] = '\n'; 
printf("Digite um novo email para o paciente: \n"); 
fflush(stdin); 
fgets(novo.email, 32, stdin); 
id = 0; 
while (novo.email[id] != '\0' && novo.email[id] != '\n') 
id++; 
novo.email[id] = '\0'; 
novo.email[31] = '\n'; 
printf("Digite um novo comorbidade para o paciente (deixe vazio se não tiver): \n"); 
fflush(stdin); 
fgets(novo.comorbidade, 30, stdin); 
id = 0; 
while (novo.comorbidade[id] != '\0' && novo.comorbidade[id] != '\n') 
id++; 
novo.comorbidade[id] = '\0'; 
//--------------------------------------------- 
printf("Digite dia nascimento: \n"); 
//lê um valor da entrada 
fflush(stdin); 
21 
 
scanf("%d", &novo.dia); 
printf("Digite mes nascimento: \n"); 
fflush(stdin); 
scanf("%d", &novo.mes); 
printf("Digite ano nascimento: \n"); 
fflush(stdin); 
scanf("%d", &novo.ano); 
printf("Digite dia do diagnostico: \n"); 
fflush(stdin); 
scanf("%d", &novo.diaD); 
printf("Digite mes do diagnostico: \n"); 
fflush(stdin); 
scanf("%d", &novo.mesD); 
printf("Digite mes do diagnostico: \n"); 
fflush(stdin); 
scanf("%d", &novo.anoD); 
strcpy(novo.separador, "\n--"); //para melhorar formatação no arquivo de texto 
//------------------------------------------ 
//calcular idade em anos simples 
if (novo.mes<=mA && novo.dia <= dA) //testa pra ver se o mês de nascimento é 
igual ou menor que o mes atual, e o dia... se for menor já fez aniversário 
{novo.idade=aA-novo.ano; } //cada senão abaixo contempla as outras 
possibilidades como mes maior ou dia maior que o atual onde não fez aniversário 
else if (novo.mes>=mA && novo.dia > dA) 
{novo.idade=aA-novo.ano-1; } 
else if (novo.mes>=mA && novo.dia <= dA) 
{novo.idade=aA-novo.ano-1; } 
else if (novo.mes<=mA && novo.dia > dA) 
{novo.idade=aA-novo.ano; } 
printf(" IDADE: %d ANOS\n", novo.idade); 
//------------------------------------------- 
printf("Tem certeza que quer adicionar este paciente? [s/n]\n"); 
opcao = getchar(); 
//Limpa o buffer para evitar problemas 
int c = 0; 
22 
 
while ((c = getchar()) != '\n' && c != EOF) { } 
} while (opcao == 'n' || opcao == 'N'); 
//agora adiciona no final o paciente 
cadastro.pacientes[cadastro.totalCovids] = novo; 
cadastro.totalCovids++; 
//abre pacientes.txt para escrita 
memoria = fopen("pacientes.txt", "w+"); 
if (memoria == NULL) 
{ 
printf("erro ao abrir pacientes.txt\n"); 
return 0; 
} 
//salva os pacientes 
size_t salvos = fwrite(cadastro.pacientes, sizeof(Covid), cadastro.totalCovids, 
memoria); 
if (salvos != (size_t)cadastro.totalCovids) 
{ 
printf("Erro ao salvar pacientes na memoria pacientes.txt\n"); 
return 1; 
} 
fclose(memoria); 
// teste se é maior de 65 e salva também no arquivo de risco e testa se tem qualquer 
comorbidade e salva no arquivo de risco mesmo se for menos de 65 
risco=fopen("risco.txt","a"); 
if (novo.idade>=65 || novo.comorbidade[strlen(novo.comorbidade)-1] != '\0') 
{ 
fprintf(risco,"%s ",novo.cep); 
fprintf(risco,"%d ",novo.idade); 
fprintf(risco,"%s\n\n",novo.comorbidade); 
printf("Adicionado ao arquivo risco.txt para enviar para secretaria de saude\n"); 
} 
fclose(risco); 
//volta para tela principal 
cadastro.menu = TELA_PRINCIPAL; 
} 
23 
 
break; 
//----------------------------------------------------------------------------------------------------------------------
---- 
------ 
case TELA_DESCADASTRAR: 
{ 
printf("-------------------------------------\n"); 
printf("\tTELA PARA DESCADASTRAR:\n"); 
printf("-------------------------------------\n"); 
int i; 
for (i = 0; i < cadastro.totalCovids; i++) 
{ 
printf("Covid %d\n", i); //mostra algumas infoormações para confirmar o descadastro 
printf("\tNome: %s\n", cadastro.pacientes[i].nome); 
printf("\tTelefone: %s\n", cadastro.pacientes[i].telefone); 
printf("\tEndereco: %s\n", cadastro.pacientes[i].endereco); 
printf("----------------------------------------------------\n"); 
} 
int indice = -1; 
do 
{ 
printf("Digite um indice de paciente para descadastrar: de 0 ate %d\n", 
cadastro.totalCovids-1); 
fflush(stdin); 
scanf("%d", &indice); 
//Limpa o buffer para evitar problemas 
int c = 0; 
while ((c = getchar()) != '\n' && c != EOF) { } 
} while (indice < 0 || indice >= cadastro.totalCovids); 
//copia todos os pacientes da frente do paciente de indice e remove indice 
for (i = indice; i < cadastro.totalCovids - 1; i++) 
cadastro.pacientes[i] = cadastro.pacientes[i + 1]; 
//remove um paciente (o de indice foi removido acima) 
cadastro.totalCovids--; 
//para salvar os pacientes que foram modificados (mesmo código dali da outra tela) 
24 
 
memoria = fopen("pacientes.txt", "w+"); 
if (memoria == NULL) 
{ 
printf("Erro ao abrir pacientes.txt\n"); 
return 0; 
} 
//salva os pacientes 
size_t salvos = fwrite(cadastro.pacientes, sizeof(Covid), cadastro.totalCovids, 
memoria); 
if (salvos != (size_t)cadastro.totalCovids) 
{ 
printf("Erro ao salvar pacientes na memoria pacientes.txt\n"); 
return 1; 
} 
fclose(memoria); 
//volta para tela principal 
cadastro.menu = TELA_PRINCIPAL; 
} 
break; 
//--------------------------------------------------------------------------------------------------------- 
case TELA_LISTAR_TODOS: 
{ 
printf("-------------------------------------\n"); 
printf("\tLISTANDO PACIENTES:\n"); 
printf("-------------------------------------\n"); 
int i; 
for (i = 0; i < cadastro.totalCovids; i++) 
{ 
printf("Covid %d\n", i); 
printf("\tNome: %s\n", cadastro.pacientes[i].nome); 
printf("\tTelefone: %s\n", cadastro.pacientes[i].telefone); 
printf("\tEndereco: %s\n", cadastro.pacientes[i].endereco); 
printf("\tCidade: %s\n", cadastro.pacientes[i].cidade); 
printf("\tEstado: %s\n", cadastro.pacientes[i].estado); 
printf("\tCpf: %s\n", cadastro.pacientes[i].cpf); 
25 
 
printf("\tCep: %s\n", cadastro.pacientes[i].cep); 
printf("\tEmail: %s\n", cadastro.pacientes[i].email); 
printf("\tComorbidades: %s\n", cadastro.pacientes[i].comorbidade); 
printf("\tIdade: %d/%d/%d\n", cadastro.pacientes[i].dia, cadastro.pacientes[i].mes, 
cadastro.pacientes[i].ano); 
printf("\tData diagnostico: %d/%d/%d\n", cadastro.pacientes[i].diaD, 
cadastro.pacientes[i].mesD, cadastro.pacientes[i].anoD); 
printf("----------------------------------------------------\n"); 
} 
//volta para tela principal 
cadastro.menu = TELA_PRINCIPAL; 
} 
break; 
default: 
cadastro.menu = TELA_PRINCIPAL; 
break; 
} 
} 
return 0; 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26 
 
5. CONCLUSÃO 
 
Com as tecnologias mais modernas e sistemas de programas modernos, o programa pode rodar 
em qualquer computador com DOS ou Windows em qualquer versão suportada o projeto 
dispõem de velocidade em sua aquisição de informação e sua montagem assim entregando no 
menor prazo possível uma vez que o coronavirus pode ser letal em pouco tempo. 
 
O projeto em si tem o aparato de segurança tanto na camada de software como em sua estrutura 
física tendo apenas pessoas habilitadas com acesso ao mesmo nos hospitais contemplando de 
segurança contra vazamento. O projeto base se faz satisfatório para o pedido inicial e se faz 
possível de atualização e expansão se necessário após alteração de código relevante quando 
necessário. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27 
 
REFERÊNCIAS 
 
C++ FAQ < http://www.parashift.com/c++-faq-lite/> Acessado em 15/11/2020 
 
DAMAS, Luís; Linguagem C. tradução João Araújo Ribeiro, Orlando Bernardo. Filho. - 10.ed. 
- Rio de Janeiro : LTC, 2007. 
 
JOYANES, LUIS AGUILAR; Programação em C++ - 2ª Ed. – Amgh, 2008. 
 
ECKEL, Bruce. C++, Guia do Usuário. Makron Books, 1991.

Outros materiais