Buscar

PIM II - ADS - 2020

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 125 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 125 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 125 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

Universidade Paulista
Projeto Integrado Multidisciplinar
Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
Desenvolvimento de um software de controle para uma pequena rede
clínica médica.
Orientadora: Walkiria
Coordenadora: Walkiria
Campus Goiânia/GO
2020
Universidade Paulista
Projeto Integrado Multidisciplinar
Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas
Alunos:
Adriana Valentim e Silva RA: N6662B5
Igor Lourenço de Oliveira RA: N635134
Lorena Lopes Castro RA: F214281
Lucas Rayleno Freitas de Souza RA: N554860
Campus Goiânia/GO
2020
Resumo
O Projeto Integrado Multidisciplinar tem o seu objetivo de desenvolver um
programa que permite a uma pequena rede de clínicas para realizar as demandas
do controle do paciente. Isso os traz as aplicações de sistemas em linguagem em C,
do modo console, para armazenar os dados em arquivo texto para a contabilização.
Essa unidade de rede de clínicas necessita desenvolver um programa para o
gerenciamento e o controle do negócio focado nos atendimentos aos clientes. A
empresa não tem condições para os grandes investimentos em infraestrutura, como
os softwares de valores caros, por isso, optaram um sistema de linguagem C para
ter o controle nas unidades. Isso inclui o desenvolvimento de algoritmos, respectivos
fluxogramas, ferramentas computacionais para o desenvolvimento, diagramas de
fluxo de software, uso da matemática em programas para computadores, debbugar o
código e investigar o funcionamento, formatar o trabalho em equipe e em execução
de projetos. E envolvendo matérias estudadas como: Linguagem e Técnicas De
Programação, Engenharia de Software, Fundamentos Redes de Dados e
Comunicação, Matemática para computação, Ética e Legislação Profissional e por
última Metodologia Científica.
Palavras-chave: Desenvolvimento de um software de controle, Linguagem e
Técnicas de programação, Engenharia de Software.
ABSTRACT
The Integrated Multidisciplinary Project aims to develop a program that allows
a small network of clinics to carry out the demands of patient control. This brings
them the applications of systems in C language, in the console mode, to store the
data in text files for accounting.This unit of network of clinics needs to develop a
program for the management and control of the business focused on customer
satisfaction. The company is unable to make major investments in infrastructure,
like expensive software, so they opted for a C language system to control the units.
This includes developing algorithms,respective flowcharts,computational tools for
development, software flow diagrams, use of mathematics in computer
programs,debug the code and investigate how it works,format team work and project
execution. And involving subjects studied such as: Language and Programming
Techniques, Software Engineering, Fundamentals Data and Communication
Networks, Mathematics for computing, Ethics and Professional Legislation and finally
Scientific Methodology.
Key words: Development of control software, Language and
programming techniques, Software Engineering.
SUMÁRIO
1.0 INTRODUÇÃO 1
2.0 ÉTICA E LEGISLAÇÃO PROFISSIONAL 2
2.1 Art. 6º: Direitos básicos do consumidor 3
3.0 METODOLOGIA CIENTÍFICA 4
3.1 O que é Metodologia Científica? 5
3.2 Pesquisa qualitativa 7
3.3 Pesquisa quantitativa 9
4.0 FECHAMENTO DE CAIXA DIÁRIO 11
5.0 ENGENHARIA DE SOFTWARE 12
5.1 Software Utilizado 13
6.0 DESENVOLVIMENTO DO SISTEMA 15
6.1 Acesso a ferramenta como moderador 15
7.0 FLUXOGRAMA DO SISTEMA 16
7.1 Inclusão de cadastro do usuário 17
7.2 Cadastro de pacientes 18
7.3 Cadastro de agendamentos clínicos 19
7.4 Consulta de cadastros gerais 20
7.5 Consulta de agendamentos 21
7.6 Registro de reclamações, sugestões ou elogios 22
7.7 Consultar uma reclamação, sugestão ou elogio 23
7.8 Registro de chamado para a equipe de TI 24
7.9 Consulta de chamados para o TI 25
7.10 Relatório de desempenho diário das equipes 26
7.11 Alterar senha de usuário 27
7.12 Exclusão de usuário 28
8.0 CÓDIGO DO PROGRAMA 31
9.0 REDE DE DADOS 114
Conclusão 115
Referências 116
1.0 Introdução
O PIM (Projeto Integrado Multidisciplinar) tem a sua função de abranger os
conhecimentos dotados no propósito de interligar as suas determinadas tarefas como
as disciplinas utilizáveis são: Linguagem e Técnicas De Programação, Engenharia de
Software um, Fundamentos Redes Dados e Comunicação, e Matemática para
Computação. Portanto, é para desenvolvê-los os algoritmos, fluxogramas, diagramas,
utilização de ferramentas computacionais e o uso de matemática. E as duas últimas
matérias de Ética e Legislação Profissional e a Metodologia Científica são as
especificações de requisitos de qualidade a serem cumpridos por um material e
serviço para facilitar as necessidades e as expectativas do cliente e do usuário.
Resumo de uma determinada história
Uma pequena rede de clínicas médica contém três unidades entre si. Elas
estão localizadas no centro de uma cidade do Brasil, e a rede clínica opta a
desenvolver um sistema para o seu gerenciamento, e o controle dos seus pacientes
e o negócio para terem êxito nos atendimentos dos seus clientes. Para isso, a
empresa precisa de um sistema em uma linguagem em C do modo console; e
aplicando-se o uso de armazenamentos de dados em arquivos textos. Entretanto,
como a empresa não possui um capital maior para realizar grandes investimentos
em infraestrutura como, por exemplo, uma demanda de softwares caros. Porém, a
Clínica Médica visa desenvolver um determinado programa que se encaixe nas suas
possibilidades e consiga ter melhor desempenho e aprimoramento a evolução
tecnológica.
2.0 ÉTICA E LEGISLAÇÃO PROFISSIONAL
O Código de Defesa do Consumidor (CDC) e os contratos de planos de saúde
A empresa destacou em sua clínica sobre o Código do Consumidor (CDC),
em que se dar o direito para o consumidor, sobre os contratos de seus planos que
podem cobrar um valor altíssimo fora da sua condição. Então é necessário, a
empresa avaliar os contratos para que não cobrem o valor fora da condição
financeira.
Como é fato público e notório, as operadoras de planos de saúde lideram o
ranking de reclamações dos consumidores (Idec) no Brasil, o que, em tese, não
deveria ocorrer, caso as empresas seguissem as normas dispostas no Código de
Defesa do Consumidor (CDC), conforme será abaixo demonstrado. Primeiramente,
cumpre esclarecer que o CDC é um compilado de normas que visa à proteção dos
direitos do consumidor, disciplinando as relações e responsabilidades entre o
fornecedor e o consumidor final.
Neste sentido, importante ressaltar que está pacificado no C. Superior Tribunal
de Justiça, através da Súmula 469, a plena aplicabilidade do Código de Defesa do
Consumidor aos contratos de Plano de Saúde, o qual estabelece normas de
proteção e defesa do consumidor, de ordem pública e interesse social. Dentre as
normas protetivas, insta destacar os direitos básicos do segurado, com amparo legal
no art. 6º do CDC, que, dentre outros, veda a modificação das cláusulas contratuais
que estabeleçam prestações desproporcionais ou que as tornem excessivamente
onerosas aos consumidores, conforme ora se transcreve:
2.1 Art. 6º: Direitos básicos do consumidor
- A proteção da vida, saúde e segurança contra os riscos provocados por
práticas no fornecimento de produtos e serviços considerados perigosos ou
nocivos;
- A educação e divulgação sobre o consumo adequado dos produtos e 
serviços, asseguradas a liberdade de escolha e a igualdade nas contratações;
- A informação adequada e clara sobre os diferentes produtos e serviços, com
especificação correta de quantidade, características, composição, qualidade,
tributos incidentes e preço, bem como sobre os riscos que apresentem;
- A proteção contra a publicidadeenganosa e abusiva, métodos comerciais
coercitivos ou desleais, bem como contra práticas e cláusulas abusivas ou
impostas no fornecimento de produtos e serviços;
- A modificação das cláusulas contratuais que estabeleçam prestações
desproporcionais ou sua revisão em razão de fatos supervenientes que as
tornem excessivamente onerosas;
- A efetiva prevenção e reparação de danos patrimoniais e morais, individuais,
coletivos e difusos;
- O acesso aos órgãos judiciários e administrativos com vistas à prevenção ou
reparação de danos patrimoniais e morais, individuais, coletivos ou difusos 
assegurados a proteção Jurídica, administrativa e técnica aos necessitados;
- A facilitação da defesa de seus direitos, inclusive com a inversão do ônus da
prova, a seu favor, no processo civil, quando, a critério do juiz, for verossímil a
alegação ou quando for ele hipossuficiente, segundo as regras ordinárias de
experiências;
- A adequada e eficaz prestação dos serviços públicos em geral.”
Infelizmente, esta não é a realidade brasileira, sendo cada vez maior o descaso com
que os segurados são tratados pelas operadoras dos planos de saúde, que, muitas
vezes, inserem cláusula abusivas em seus contratos, incorrendo em total violação
aos direitos básicos do consumidor e às normas protetivas instituídas pelo CDC.
É imperioso ressaltar que, além dos direitos supracitados, o art. 51 do CDC
dispõe acerca da nulidade das cláusulas contratuais relativas ao fornecimento de
produtos e serviços, que estabeleça obrigações consideradas abusivas, colocando o
consumidor em desvantagem exagerada, ou seja, incompatíveis com a boa-fé ou a
equidade, por exemplo, a inserção de reajuste traduzido em valor exorbitante ou até
mesmo a recusa injustificada na cobertura de determinada assistência ou
procedimento prescrito pelo médico.
Por fim, tem-se notadamente a situação de vulnerabilidade que se encontra o
consumidor, a qual merecidamente cingiu-se de proteção especial, devendo o
segurado exigir o cumprimento de seus direitos, e, se necessário, procurar um
advogado de sua confiança, a fim de buscar a tutela do Estado, através da 
propositura de ação própria, caso se sinta lesado por atitudes abusivas e
ilegais da seguradora contratada.
3.0 Metodologia Científica
A empresa também aplica a Metodologia Científica que esteja de acordo com
a Associação Brasileira das Normas Técnicas (ABNT), em que vêm incluídos na
Metodologia os seus métodos, teorias e hipóteses de um assunto para especificar o
seu trabalho a ser executado, a primeiramente deve ser analisado para que o projeto
vá adiante de seu argumento, se concretize. Pois, o assunto é sobre “O Código de
Defesa do Consumidor (CDC)”, tendo uma função para que evite os abusos de
contratos de planos de saúde.
3.1 O que é Metodologia Científica?
Metodologia Científica é o estudo dos métodos que devem ser seguidos, em
ordem cronológica, para que um pesquisador realize um trabalho acadêmico bem
estruturado e de qualidade. E, para que você entenda melhor, vamos pensar um
pouco de um exemplo de um processo de construção civil. Quando um engenheiro
civil vai construir uma casa ele precisa seguir uma série de etapas para que a
construção se torne segura. Para isso é preciso que ele siga alguns passos, como:
projeto da casa, fundação, vedação, cobertura, esquadrias e revestimento. Porém,
não é possível que a fundação da casa seja feita se o engenheiro não estiver com o
projeto da construção em mãos, até porque não tem como levantar as paredes se a
casa não possuir estrutura. E assim também funciona a elaboração de textos
acadêmicos. Para que o mesmo seja elaborado, é preciso que você siga uma série
de etapas chamadas de Metodologia Científica. Antes de entender essas etapas que
constituem a Metodologia Científica, vamos ver quais são os tipos de pesquisas que
devem ser feitos conforme o objetivo do seu trabalho.
Tipos de pesquisa: A Metodologia Científica pode ser dividida em 2 tipos de
pesquisa: pesquisa qualitativa e pesquisa quantitativa, e a escolha de cada um
desses métodos vai depender do tema que será abordado no projeto de pesquisa.
3.2 Pesquisa qualitativa
A pesquisa qualitativa é o estudo dos hábitos de uma determinada população.
Este tipo de pesquisa da metodologia científica é mais subjetivo, visto que todas as
análises são feitas por meio de interpretações de aspectos não mensuráveis, como:
comportamentos, sensações, pensamentos e sentimentos.
3.3 Pesquisa quantitativa
Como o próprio nome faz alusão, a pesquisa quantitativa leva em
consideração tudo o que pode ser medido, ou seja, os resultados que podem ser
gerados através de pesquisas estatísticas.
Fundamentação teórica
Quando o cliente escolhe onde e como quer que seja feita a sua casa, a
equipe de construção irá fazer um levantamento de todo o material disponível no
mercado para satisfazer o desejo do cliente. No trabalho de conclusão de curso,
você também vai precisar fazer um levantamento de todo o material que irá
sustentar o seu problema de pesquisa. Dessa forma,é necessário que você faça um
capítulo explicando todos os conceitos que serão abordados para que sua pesquisa
seja estruturada conforme a metodologia científica. Lembre-se de fazer a sua
fundamentação teórica com base em livros ou revistas científicas, pois nem sempre
às fontes citadas na internet são confiáveis. Elabore um método de trabalho.Agora,
chegou o momento de organizar a equipe de construção para entregar o projeto
dentro do prazo. Mas como isso será feito? Os operários da obra farão hora extra?
Qual será o turno de trabalho? Para que o seu trabalho de conclusão de curso tenha
um resultado de qualidade, é preciso que você organize as etapas do seu projeto e
pense em qual é o melhor caminho para resolver o problema que você escolheu,
parte essencial da metodologia científica. O orientador do seu trabalho será o
engenheiro civil deste projeto. Ele irá te auxiliar em como construir um plano de
trabalho eficiente, por isso, não se esqueça de escolher um bom professor para esse
cargo.
Coleta de dados
Nesta parte do projeto, você precisa investigar o seu problema e, de acordo
com o tipo de pesquisa da metodologia científica escolhido, é possível saber qual 
será o método de coleta de dados. As principais formas de coletar esses dados
são através da observação, do uso de questionários ou por meio de
entrevistas.Observação: este tipo de coleta é muito utilizado nas áreas de ciências
sociais e biológicas, visto que é preciso analisar como algo, seja um animal, uma
planta ou um ser humano, se desenvolve com o passar do tempo ou o
comportamento de uma pessoa perante uma determinada situação.
Questionário
O questionário é utilizado para levantar informações a cerca de um
determinado grupo de pessoas. Ele é muito usado quando se deseja saber
informações mais objetivas como crenças religiosas ou preferências políticas. Além
disso, este método de coleta de dados pode ter perguntas abertas ou fechadas.
Entrevista
A entrevista tem um caráter mais pessoal que o questionário. Como não deixa
de ser uma conversa entre duas pessoas, nela é possível observar a reação do
indivíduo frente a determinados questionamentos. Este tipo de coleta é muito
utilizado no meio de ciências sociais. Como: “Análise e interpretação de dados”.
Após a realização da coleta de dados, é preciso analisar e interpretar todos os
resultados obtidos na sua pesquisa. Este estudo deve ser bem detalhado para que o
seu trabalho final tenha uma conclusão satisfatória. E, assim como a casa só pode
receber acabamento depois que a cobertura e as paredes tenham sido construídas,
é necessário que você apresente todos os dados coletados e depois explique os
resultados obtidos. Uma dica fundamental para esta parte do seu projeto é voltar a
mencionar os seus objetivos gerais e específicos,a fim de que fique claro se o
resultado da sua pesquisa teve ou não os objetivos alcançados.
4.0 FECHAMENTO DE CAIXA DIÁRIO
Exemplo 1: Abertura do caixa = N
Recebimentos em espécie = X
Vendas realizadas em cartões crédito = Y 
Vendas realizadas em cartões de débito = D 
Cheques = A
Troco dos recebimentos em espécie = w 
Despesas eventuais = C
Valor total recebido, sem contar com o valor de abertura do caixa = 
Q X + Y +D + A - C - W = R$ Q
Levando em consideração os ganhos a longo prazo no caso de cartões crédito,
cheques sem contar com juros
Exemplo 2:
Abertura do caixa = 250,00 Recebimentos em espécie = 2500,00
Vendas realizadas em cartões crédito = 1500,00 
Vendas realizadas em cartões de débito = 3000,00 
Cheques = 1200,00
Troco dos recebimentos em espécie = 500,00 Despesas
eventuais = 200,00
2500,00 + 1500,00 + 3000,00 + 1200,00 – 500,00 – 200,00 = R$ 7500,00
5.0 ENGENHARIA DE SOFTWARE
Em suma, é uma disciplina de engenharia que se ocupa de todos os aspectos
da produção de software, desde os estágios iniciais de especificação do sistema até a
manutenção desse sistema, após sua entrada em produção a meta principal da
Engenharia de Software é desenvolver sistemas de software com boa relação custo-
benefício. 
De acordo com Pressman:
“A Engenharia de Software ocorre como consequência de um processo
chamado Engenharia de Sistemas. Em vez de se concentrar somente no
software, a engenharia de sistemas focaliza diversos elementos, analisando,
projetando, e os organizando em um sistema que pode ser um produto, um
serviço ou uma tecnologia para transformação da informação ou controle”. 
5.1 Software utilizado
Sigs: Estudo dos sistemas de informação nas empresas e na administração; dando
suporte ao nível gerencial por meio de relatórios, processos correntes e históricos por 
meio de acesso online orientados a eventos internos, apoiando o planejamento, o
controle e a decisão; dependem dos aplicativos TPS para aquisição de dados,
resumindo e apresentando operações e dados básicos. 
6.0 DESENVOLVIMENTO DO SISTEMA
Manual do usuário
-Nesta parte está contidas todas as informações possíveis para que não haja
dificuldade para utilizar o Software.
Acesso a ferramenta como administrador:
LOGIN: ADMIN | admin
SENHA: 1234
6.1 Acesso a ferramenta como moderador:
Para logar como moderador do sistema é necessário criar um usuário estando
logado como administrador. É importante lembrar que somente o ADMIN pode criar ou
excluir um usuário do sistema. O login de usuário se dá pela sigla da equipe a qual o
colaborador pertence, sendo elas | “CE”, “CO” e “CT”| e pelos 4 últimos dígitos do CPF
cadastrado.
EX: CPF CADASTRADO: | 12345678900 |
SIGLA DA EQUIPE: | CO |
O LOGIN SERÁ | CO8900 | 
Senha será o CPF cadastrado | 12345678900 |.
Recomenda-se trocar a senha padrão do moderador no ato de LOGIN da ferramenta
utilizando o comando B0 no menu iniciar para evitar fraudes de matrículas e outros.
Abaixo segue algumas dicas para serem usadas durante o uso:
1. O software consiste em uma ferramenta básica com um menu um tanto interativo,
para utilizar este menu é necessário informar a solicitação de destino e esta solicitação
possui
2 dígitos (Caracteres/Numéricos) que geralmente se encontram a esquerda. Ex: “A1”
corresponderá a uma solicitação para cadastro de usuário.
3. O software foi desenvolvido com o intuito de facilitar seu manuseio, ou seja, o
usuário nunca precisará digitar algo a não ser pedido. 
4. Sempre que houver alternativas com múltiplas escolhas em uma determinada
solicitação, o usuário deverá utilizar números para escolher a alternativa
correspondente ao que precisará executar no sistema . Ex: Ao escolher o sexo será
apresentada a alternativa feminino e masculino onde ‘0’ representa FEMININO e ‘1’
representa MASCULINO. (0 - MASCULINO / 1 - FEMININO)
5. Evite utilizar acentuação/cedilhas e outros caracteres especiais que possam
comprometer as informações que estão sendo coletadas durante o cadastro.
6. Ao entrar com valores numéricos que possuem valores após o ponto flutuante pode-
se usar a vírgula para separar os valores normalmente. Ex: R$ 150,75 | 140123,30.
7.0 Fluxograma do Sistema
O fluxograma inicial é um demonstrativo completo do CGI (Central de gerenciamento
interno) de forma que seja possível entender seu funcionamento.
O CGI foi projetado no intuito de facilitar seu manuseio e apresentar conforto ao
usuário com uma interface amigável. As opções de tratamento variam de “A1” ao “DG”
e são autoexplicativas. Ao lado a projeção da interface do menu inicial.
7.1 Inclusão de cadastro do usuário
A forma de cadastro é simples e ágil podendo ser concluída em poucos
minutos. O usuário somente precisará digitar múltiplas informações em ocasiões 
específicas como endereço, nome e identificações, pois o sistema conta com
validações que auxiliam na criação do cadastro.
7.2 Cadastro de pacientes
A tela de cadastro assim como as demais possuem a área de revisão do
cadastro onde o usuário pode cancelar a solicitação ou finalizar o cadastro com as
informações preenchidas.
Os blocos são validados a cada nova inserção de informações para certificar-se
de que não há espaços vazios ou com informações incorretas.
7.3 Cadastro de agendamentos clínicos
O software conta com atendimento inteligente que identifica se o paciente
possui convênio médico com a clínica para a aplicação de descontos especiais, além
de possui validações que certificam a assertividade das informações cadastradas.
7.4 Consulta de cadastros gerais
Um paciente e/ou funcionário somente poderão ser consultados caso existam na base
de cadastros gerais.
O sistema retornará uma mensagem informativa em caso de erro na busca do
CPF informado.
7.5
Consulta de agendamentos
No ato da abertura de um agendamento é gerado um número de chamado o
qual deve ser anotado para consultar as informações do atendimento em data
posterior.
O médico responsável pelo atendimento pode dar baixa no agendamento assim
como um funcionário que possui credencial de moderador ou administrador. Após a
baixa sistêmica a ordem de serviço poderá ser consulta na aba de agendamentos em
histórico.
7.6 Registro de reclamações, sugestões ou elogios
Somente um administrador ou moderador poderá realizar o registro e é
necessário que o CPF solicitante seja válido. 
Uma ordem de serviço é gerada ao final do procedimento para que seja
possível consultá-la posteriormente.
7.7 Consultar uma reclamação, sugestão ou elogio
Ao consultar uma ordem de serviço o usuário deve informar a modalidade da
consulta seguidamente do número de agendamento
7.8 Registro de chamado para a equipe de TI
Qualquer usuário poderá realizar a abertura de um chamado para a equipe de
TI, pois se trata de uma solicitação prioritária e importante para o bom funcionamento
da clinica.
Um número de chamado é gerado ao final da solicitação e poderá ser utilizado
para acompanhar o andamento da solicitação. 
7.9 Consulta de chamados para o TI
Para consultar um chamado interno é necessário apresentar uma OS de
chamado e somente um moderador ou admin pode realizar uma consulta de chamado.
O mesmo deve estar pendente de tratamento, caso não encontrado poderá ser
pesquisado na aba de agendamentos em histórico.
7.10 Relatório de desempenho diário das equipes
O relatório é gerado na área de trabalho local do usuário que solicitou o
procedimento pelo sistema.
A aba de relatórios está destinada à amostra diária dos resultados obtidos por
todas as filiais e pode ser gerado a qualquer momento por um administrador ou
moderador, mas recomenda-se gerar o relatório somente ao final do dia.
7.11 Alterar senha de usuário
A senha de usuário por padrão é o CPFde origem e deve ser alterada no ato de
login no sistema utilizando o comando B0.
7.12 Exclusão de usuário
Para o cadastro de um moderador é necessário estar logado no sistema com a
conta administradora e somente o admin poderá realizar a exclusão de um usuário do
sistema.
Após a exclusão não há como reverter o processo, o usuário é excluído
permanentemente.
8.0 CÓDIGO DO PROGRAMA
#include <stdio.h> // Biblioteca para usar os comandos de entrada e saida
#include <stdlib.h> // Biblioteca padrão e possui a função de (alocação de memoria),
controle de processos, conversões e outras.
#include <string.h> // Biblioteca para utilizar e manipular strings
#include <time.h> // Biblioteca de datas e horários
#include <stdbool.h> // Biblioteca para utilizar retornos booleanos
#include <locale.h> // Biblioteca para usar a linguagem local incluindo acentos.
#include <windows.h> // Biblioteca para usar funcionalidades especificas do windows
#include <conio.h>
#include <ctype.h>
// Função que fará a concatenação das informaçõs e adicionara no bloco de notas
para a criação de uma OS.
void concatena_string(char tipasta[35], char titratados[45], char OS[15], char
categoria[25], char id[7], char informe[25], char detalhar[255]);
//Funcao para incluir a data e hora nas solicitações / agendamentos
void incluirdatahora(char cm[50]);
//Funcao para limpar o buffer do teclado
void lb(void);
// Função para realizar a leitura de uma senha.
char** lersenha(char senha[9]);
// Funcao cria senha e login padrao
void createloginsenha(char creatediretlogin[50], char creatediretsenha[50],char
loginass[60], char cpf[12]);
// Funcao para apresentar uma linha formatada
void lform();
// funcao para Validar usuario admin
bool validarAdmin(char login[11], char senha[16]);
// funcao para Criar login do usuario
int criarnumusuario(long long num);
// Funcao para confirmação de cadastro
void confirmacadastro(char nomePs[35], char nomeMa[35], char idade[3], char sex[10],
char cpf[12], char endereco[35], char telcont[12], char ctps[12], char dipl[10], char
convenio[12]);
// Funcao para validar um TELEFONE de contato
bool validaTEL(long long valor);
// Funcao para validar um CPF
bool validaCPF(long long cpf_entrada);
// Funcao de pausar a tela
void pause();
// Funcao de limpar tela
void limpatela();
// Funcao de gear numero aleatorio
int gerarOS();
// Funcao que le as informacoes no bloco de texto.
bool leitura(char ler[70]);
// Funcao para cadastro de informacos basicas do usuario/paciente
char cadastrar(char initcadastro[70], char nome[40], char idadeString[5], char sexo[15],
char endereco[40], char cpf[16], char telcont[20]);
int main(void){
 //Cria as pastas do sistema e realiza o processo de ocultação das mesmas.
 system("mode 15,1 && color 15 & title TELA DE LOGIN"); // Muda o tamanho do
terminal para 15 colunas e 1 linha e a cor para fundo azul e letras roxas
 system("msg * AGUARDE! INICIALIZANDO TAREFAS..."); // Mostra uma POP-UP
com uma mensagem para o usuario.
 system("mkdir sugerir-reclamar-elogiar\\ELOGIO\\");
 system("mkdir sugerir-reclamar-elogiar\\RECLAMACAO\\");
 system("mkdir sugerir-reclamar-elogiar\\SUGESTAO\\ & attrib -h sugerir-reclamar-
elogiar");
 system("mkdir funcionarios\\ & attrib -h funcionarios"); // Cria a pasta de funcionarios
 system("mkdir pacientes\\ & attrib -h pacientes"); // Cria a pasta de pacientes
 system("mkdir system-moderadores\\logins\\ & attrib -h system-moderadores"); //
Cria a pasta de logins para moderadores do sistema
 system("mkdir agendamentos\\concluidos\\ & attrib -h agendamentos"); // Cria a
pasta de agendamentos e agendamentos concluidos
 system("mkdir ti-sistemas\\tratados\\ & attrib -h ti-sistemas"); // Cria a pasta de ti e
sistemas
 system("mkdir relatorios\\ & attrib -h relatorios"); // Cria a pasta de relatorios
 moduser: // ponto de salto para modificar o usuario / trocar login
 system("mode 30,6 && color 07"); // Seta o tamanho do terminal para 30 colunas
e 6 linhas e a cor do terminal para o padrão
 struct tm *dataloc; //ponteiro para struct que armazena data e hora
 time_t segundos; //variável do tipo time_t para armazenar o tempo em segundos
 time(&segundos); //obtendo o tempo em segundos
 dataloc = localtime(&segundos); //Para converter de segundos para o tempo local
utilizamos a função localtime
 time(&segundos); //obtendo o tempo em segundos
 dataloc = localtime(&segundos);
 limpatela(); // Limpa a tela para o usuário
 setlocale(LC_ALL,""); // código para setar os acentos no programa
 /*O login será a sigla de 2 digitos da clinica e os 4 ultimos digitos do CPF do
colaborador
 Senha provisória é o CPF do usuario até que seja realizada a devida alteração.*/
 //Variaveis globais de login
 bool admin = false, moderador = false, trocar_senha_padrao = false; // declaracao
de variavel do tipo booleano
 char identificacao_menu[7] = "", caminhologin[65] = "system-moderadores\\
logins\\", caminhosenha[75] = "system-moderadores\\logins\\"; // Declaração de
variavel global
 char verificarsenhapadrao[65] = "system-moderadores\\logins\\";
 int cc; // Declaração de variavel contadora do tipo inteiro
 for(cc = 0; cc < 3; cc++){ // Entrará em um loop infinito até que uma das opções
de login sejam atendidas.
 char login[7] ,log[7] = "", auxlog[60] = "", auxsen[60] = "", senha[9] = ""; //
Declaração de variavel local
 printf("\n LOGIN -> "); // Informa ao usuario para digitar o login
 scanf("%s", &log); // Leitura da string login temporaria
 strcpy(login, log); // copia os dados da variavel de login temporaria para a
variavel de login
 printf(" --------------------------"); // Separador
 printf("\n SENHA -> "); // Informa ao usuario para digitar a senha
 lersenha(senha); // Faz a leitura da senha
 lb(); // Limpa o buffer do teclado.
 // Concatenação de string login
 strcat(auxlog, caminhologin); // Adiciona o caminho da pasta de login para a
variavel auxiliar do login
 strcat(auxlog, login); // Adiciona o login na variavel auxiliar do login
 strcat(auxlog, "\\"); // Adiciona o login na variavel auxiliar do login
 strcat(auxlog, login); // Adiciona o login na variavel auxiliar do login
 strcat(auxlog, ".txt"); // Adiciona a extensão .txt
 // Concatenação de string senha
 strcat(auxsen, caminhosenha); // Adiciona o caminho da pasta de senha para a
variavel auxiliar de senha
 strcat(auxsen, login); // Adiciona a senha na variavel auxiliar da senha para
criar um novo diretório
 strcat(auxsen, "\\"); // Acrescenta a barra correspondente a separação de
diretórios na variavel auxliar da senha
 strcat(auxsen, senha); // Adiciona a senha na variavel auxiliar da senha para
criar um novo arquivo de senha
 strcat(auxsen, "\\"); // Acrescenta a barra correspondente a separação de
diretórios na variavel auxliar da senha
 strcat(auxsen, senha); // Adiciona a senha na variavel auxiliar da senha para
criar um novo arquivo de senha
 strcat(auxsen, ".txt"); // Adiciona a extensão .txt
 // BLOCO CONDICIONAL de Verificação de adminstração do sistema.
 if(strcmp(senha, "1234") == 0 && (strcmp(login, "ADMIN") == 0 || strcmp(login,
"admin") == 0)){ // Compara se o as informações digitadas são válidas, caso seja o
usuario é reconhecido como admin
 admin = true; // Atribuição de valor booleano verdadeiro a variavel admin
 strcat(identificacao_menu, login); // Concatena o login para mostar no menu
inicial
 break; // Encerra o looping
 }else if(validarAdmin(auxlog,auxsen) == true){ // Verifica se o usuario é um
usuario válido para liberar acesso ao uso da ferramenta
 moderador = true; // Atribuição de valor booleano verdadeiro a variavel
usuario
 strcat(identificacao_menu, login); // Concatena o login para mostar no menu
inicial
 // Concatenação de verificação da senha padrao
 strcat(verificarsenhapadrao, login);
 strcat(verificarsenhapadrao, "\\");
 strcat(verificarsenhapadrao, senha);
 strcat(verificarsenhapadrao, "\\");
 strcat(verificarsenhapadrao, "true.txt");
 break; // Encerra o looping
 }else{ // Se nenhum das alternativas anteriores for válida, uma mensagem de
erro será exibida para o usuario.
 system("msg * USUARIO OU SENHA INVALIDOS. TENTE NOVAMENTE!");
// Apresenta uma POP UP com uma mensagem para o usuario
 limpatela();
 }
 // CONDICAO DE CONTROLE DE LOGIN
 if(cc == 2){ // Caso o usuario atinja 3 tentavias de login, o sistema fará
autodeslog.
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SAINDO DO
SISTEMA..."); // Apresenta uma POP UP com uma mensagem para o usuario
 exit(0); // Encerra o programa
 }
 }
 iniciar: // Ponto de salto do GOTO
 limpatela(); // Limpa a tela do usuario
 // DECLARACAO DE VARIAVEIS DE USO GERAL
 FILE *file; // Declaracao de variavel do tipo FILE
 int contador = 0, confirma, idade, aux, os, numos; //Declaracao de variavel de uso
geral do tipo inteiro
 // DECLARAÇÃO DE VARIAVEIS DE USO GERAL DO TIPO CHAR
 char ext[5] = ".txt", sigla[3] = "", sg[3] = "", rlos[15] = "", consultarOS[50] = "",
digitoOS[25] = "", auxiliarOS[53] = "", OS[15] = "";
 char cadastro[55] = "", telefonecontato[15] = "", resultadobusca, numconvenio[11]
= "", categoria[11] = "", resenha[255] = "";
 char sexo[10] = "", endereco[60] = "", ctps[11] = "", idadeString[3] = "", cpf[12] = "",
nome[40] = "", data[11] = "", hora[9] = "";
 char login[60] = "", senha[60] = "", auxsenha[60] = "", auxlogin[60] = "",
cadastroOS[53] = "", consultaficha[50] = "", baixaOS[40] = "";
 char criapastalogin[50] = "mkdir system-moderadores\\logins\\",
criapastasenha[50] = "mkdir system-moderadores\\logins\\",
caminho_recl_sugs_elo[62] = "sugerir-reclamar-elogiar\\";
 char resp[3] = ""; // Declaração de variavel do tipo char para controle de respostas
 char *eptr; //Declaracao de variavel ponteiro tipo char
 long long recebecpf, recebetel; //Declaracao de variavel long long(inteiro)
 system("mode 122,62 & title CENTRAL ADMINSTRATIVA"); // Modulariza o
tamanho da tela para 122 colunas por 62 linhas.
 //Verifica se o usuario já realizou a troca da senha padrao
 file = fopen(verificarsenhapadrao, "r");
 if((admin == false && moderador == true) && file != NULL){
 trocar_senha_padrao = true;
 fclose(file);
 system("msg * A CENTRAL DE SEGURANCA DA INFORMACAO ADVERTE.
PARA A SUA SEGURANCA SERA NECESSARIO REALIZAR A TROCA DA SENHA
PADRAO UTILIZANDO O COMANDO B0!");
 }else{
 fclose(file);
 trocar_senha_padrao = false;
 }
 // MENU INICIAL QUE APARECERA PARA O USUARIO APOS A EXECUCAO
DO SOFWARE
 printf("\n ***********************
HOJE É [%d/%d/%d]\n", dataloc->tm_mday, dataloc->tm_mon+1, dataloc-
>tm_year+1900);
 printf(" _______________________________________________*
*________________________________________________\n");
 printf(" _______________________________________________> ABA
PRINCIPAL <________________________________________________\n");
 printf(" *
* \n");
 printf(" ***********************
\n");
 printf("\n
****************************************************************************** \n");
 printf(" * * LOG
ON \n");
 printf(" * -- BEM VINDO A CENTRAL DE GERENCIAMENTO
INTERNO -- * ____________ \n");
 printf(" *
* \n");
 printf("
****************************************************************************** [ %s ] \n\n",
identificacao_menu);
 printf("
_____________________________________________________________________
_________________________________________________\n\n");
 printf(" PARA PROSSEGUIR DIGITE A SIGLA DE 2 DIGITOS
CORRESPONDENTE A SUA SOLICITACAO \n");
 printf("
_____________________________________________________________________
_________________________________________________\n\n");
 printf("
***************************************************************************************************
*******************\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A1 - CADASTRAR UM NOVO FUNCIONARIO/MEDICO AD
- GERAR RELATORIO DE DESEMPENHO DIARIO NA TELA *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A2 - CADASTRAR UM NOVO PACIENTE AE -
EXPORTAR RELATORIO DE DESEMPENHO PARA O EXCEL *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A3 - CADASTAR UMA ORDEM DE AGENDAMENTO
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A4 - CONSULTAR O CADASTRO DE UM MEDICO/FUNCIONARIO
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A5 - CONSULTAR O CADASTRO DE UM PACIENTE
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A6 - CONSULTAR UM AGENDAMENTO PENDENTE
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A7 - CONSULTAR AGENDAMENTO EM HISTORICO
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A8 - REGISTRAR RECLAMACAO/SUGESTAO/ELOGIO
*\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * A9 - CONSULTAR RECLAMACAO/SUGESTAO/ELOGIO
DG - DANGER ZONE / DELETAR UM USUARIO DO SISTEMA *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * AA - REGISTRAR UM CHAMADO INTERNO - TI B1 -
LOGAR COM UM NOVO USUARIO *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * AB -CONSULTAR UM CHAMADO INTERNO - TI B0 -
TROCAR SENHA DE USUARIO *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf(" * AC - CONSULTAR UM CHAMADO INTERNO EM HISTORICO - TI
A0 - PARA SAIR DO SISTEMA -> -> -> -> -> [SAIDA] *\n");
 printf(" *
------------------------------------------------------------------------------------------------------------------
*\n");
 printf("
***************************************************************************************************
*******************\n\n");
 printf(" RESPOSTA --> ");
 scanf("%s", &resp);
 lb(); // Limpa o buffer do teclado
 //BLOCO CONDICIONAL DO MENU INICIAL
 if(strcmp(resp, "A1") == 0 || strcmp(resp, "a1") == 0){
limpatela(); // Limpa a tela
char diploma[15] = "";
if (admin == false){ // O usuario só poderá criar um novo cadastro
de funcionário se houver permissão de administrador.
 system(" msg * VOCE NAO POSSUI PRIVILEGIOS DE ADMINSTRADOR
PARA EXECUTAR ESTA FUNCAO.");
 goto iniciar; // Direciona o usuario para tela inicial.
}
printf("\n
***************************************************************************************************
*********************");
printf("\n * CADASTRO DE
FUNCIONARIOS E MEDICOS *");
printf("\n
***************************************************************************************************
*********************\n\n");
 // validação de idade para cadastro
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 //Entrada de dados do usuario.
 printf("\n ENTRE COM A IDADE DO
COLABORADOR....................................: ");
 scanf("%s", &idadeString);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 idade = atoi(idadeString); // Converte uma string para um inteiro.
 if (idade < 21 || idade > 65){ // Valida a idade do usuario
 // Entrada de dados do usuario
 printf("\n ESTE COLABORADOR NAO POSSUI IDADE QUE SE
ENCONTRE NO PADRAO DE CADASTRO DE FUNCIONARIOS!\n");
 lform(); // Linha formatada
 printf("\n PARA CANCELAR DIGITE 0 OU 1 PARA CONTINUAR: ");
 scanf("%d", &confirma);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(confirma == 0){ // Verifica se o usuario digitou 0 para cancelar a
solicitação
 goto iniciar; // Direciona o usuario para o menu iniciar
 }else{
 continue;
 }
 }else{
 break; // Encerra o looping
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 // Bloco cadastro com entrada de dados do usuario
 
 printf("\n ENTRE COM O NOME DO COLABORADOR.....................................:
");
 scanf("%[^\n]", &nome); // Faz a leitura da string
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 printf("\n ESCOLHA O SEXO DO COLABORADOR [0 - MASCULINO / 1 -
FEMININO]........: ");
 scanf("%d", &aux);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(aux == 1){ // Validar um sexo padrão.
 strcat(sexo, "FEMININO");
 break; // Encerra o looping
 }else if(aux == 0){ // Validar um sexo padrão.
 strcat(sexo, "MASCULINO");
 break; // Encerra o looping
 }else{ // Validar retorna um erro caso a opção escolhida não seja 1 ou 0.
 printf("\n ALTERNATIVA INVALIDA. TENTE NOVAMENTE!\n");
 lform(); // Linha formatada
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 // Validar a entrada de um CPF
 printf("\n ENTRE COM O CPF DO
COLABORADOR......................................: ");
 scanf("%s", &cpf);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 recebecpf = strtoll(cpf, &eptr, 10); // Converte uma string em um numero
inteiro do tipo long long
 // CONCATENACAO DE STRINGS
 strcat(cadastro, "funcionarios\\"); // Concatena a pasta de funcionarios na
variavel cadastro
 strcat(cadastro, cpf); // Concatena o cpf no cadastro
 strcat(cadastro, ext); // Concatena o cpf com a extensão txt no cadastro;
 file = fopen(cadastro, "r"); // Abre um arquivo de texto em modo leitura
 if(file != NULL){ // Verifica se o colaborador já está cadastrado.
 system("msg * COLABORADOR JA CADASTRADO NO BANCO DE
FUNCIONARIOS. CADASTRO CANCELADO PELO SISTEMA."); // Apresenta uma
POP UP com uma mensagem para o usuario
 fclose(file); // Fecha o arquivo de texto caso tenha sido aberto.
 goto iniciar; // Direciona o usuario para a tela de cadastros.
 }
 fclose(file); // Fecha o arquivo de texto caso tenha sido aberto.
 if(validaCPF(recebecpf) == false){
 printf("\n CPF INVALIDO. TENTE NOVAMENTE!\n");
 lform(); // Linha formatada
 }else{ // Se o CPF for válido será declarada uma variavel temporaria para
receber um determinado valor
 for(contador = 0; contador < 3; contador++){
 printf("\n EQUIPES DISPONIVEIS PARA
SELECAO....................................: [0 - CT] [1 - CE] [2 - CO]\n");
 lform(); // Linha formatada
 printf("\n INFORME A QUAL EQUIPE PERTENCERA O
COLABORADOR......................: ");
 scanf("%d", &aux);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(aux == 0 || aux == 1 || aux == 2){
 break; // Encerra a repetição
 }else{
 system("msg * UTILIZE UMA OPCAO VALIDA. TENTE 1, 2 OU 3!");
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS.
SOLICITACAO CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP
informativa na tela do usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 if(aux == 0){strcat(sigla, "CT");
 }else if(aux == 1){
 strcat(sigla, "CE");
 }else{
 strcat(sigla, "CO");
 }
 char temp[10] = ""; // Declaração de variavel temporaria
 aux = criarnumusuario(recebecpf); // a variavel auxiliar recebera o numero
de usuario de acordo com o CPF digitado
 itoa(aux, temp, 10); // Converte o valor inteiro para string
 strcat(auxlogin, sigla); // Concatena a sigla da empresa a variavel de login
 strcat(auxlogin, temp); // Concatena o valor da variavel temporaria para
criar um login de usuario
 break; // encerra o looping
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }// ENCERRAMENTO DA ESTRUTURA DE REPETICAO
 printf("\n DIGITE O ENDERECO DE LOCALIZACAO DO
COLABORADOR.....................: ");
 scanf("%[^\n]", &endereco);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 // Validar a entrada de um telefone de contato
 printf("\n INFORME O TELEFONE DE CONTATO COM O DDD(SEM
ESPACOS E SEM O ZERO)...: ");
 scanf("%s", &telefonecontato);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 recebetel = strtoll(telefonecontato, &eptr, 10); // Converte uma string em um
numero inteiro do tipo long long
 if(validaTEL(recebetel) == false){
 printf("\n TELEFONE INCORRETO, FAVOR TENTAR NOVAMENTE!\
n");
 lform(); // Linha formatada
 }else{
 break; // Encerra o looping
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 } // ENCERRAMENTO DA ESTRUTURA DE REPETICAO
 printf("\n INFORME O ID - CARTEIRA DE TRABALHO.................................:
");
 scanf("%s", &ctps);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 printf("\n TIPOS DE COLABORADOR DISPONIVELS....................................:
[0 - FUNCIONARIO] - [1 - MEDICO]\n");
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){
 printf("\n INFORME O TIPO DO COLABORADOR.......................................:
");
 scanf("%d", &aux);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(aux == 0 || aux == 1){
 break;
 }else{
 system("msg * OPCAO INVALIDA. TENTE DIGITAR 0 OU 1!");
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 if(aux == 1){
 printf("\n ID DO CERTIFICADO DE MEDICINA.......................................: ");
 scanf("%s", &diploma);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 confirmacadastro(nome, "N/A", idadeString, sexo, cpf, endereco,
telefonecontato, ctps, diploma, "N/A"); // Mostra na tela as informações do cadastro
para que o usuario posssa confirma-las.
 printf("\n DESEJA FINALIZAR O CADASTRO DO COLABORADOR? [0 -
NÃO / 1 - SIM].....: ");
 scanf("%d", &confirma);
 lb(); // Limpa o buffer do teclado
 if(confirma == 0){
 system("msg * CADASTRO CANCELADO PELO USUARIO"); //
Apresenta uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial
 
 }
 cadastrar(cadastro, nome, idadeString, sexo, endereco, cpf,
telefonecontato); //Acrescentando informaçoes basicas de cadastro no arquivo de texto
utilizando a funcao cadastrar.
 //Acrescebtabdi demais informações
 file = fopen(cadastro, "a"); // Abre o arquivo de texto
 fputs("\n CARTEIRA DE TRABALHO.............: ", file);
 fputs(ctps, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n CERTIFICACAO DIPLOMA MEDICO......: ", file);
 fputs(diploma, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n LOGIN CORPORATIVO................: ", file);
 fputs(auxlogin, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n TIPO.............................: MEDICO", file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fclose(file); // Fecha o arquivo
 createloginsenha(criapastalogin, criapastasenha, auxlogin, cpf); // Cria o
login e senha do usuario que foi cadastrado
 system("msg * MEDICO CADASTRADO COM SUCESSO!\n"); // Apresenta
uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela de de inicio.
 
 }else if(aux == 0){
 // Revisão de informações no cadastro.
 confirmacadastro(nome,"N/A",idadeString,sexo,cpf,endereco,telefonecontato
,ctps,"N/A","N/A"); // Chama a função para apresentar as informações na tela para o
usuario
 printf("\n DESEJA FINALIZAR O CADASTRO DO COLABORADOR? [0 -
NÃO / 1 - SIM].....: ");
 scanf("%d", &confirma);
 lform(); // Linha formatada
 if(confirma == 0){
 system("msg * CADASTRO CANCELADO PELO USUARIO."); //
Apresenta uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial.
 }
 //Acrescentando informaçoes basicas de cadastro no arquivo de texto
utilizando a funcao cadastrar.
 cadastrar(cadastro, nome, idadeString, sexo, endereco, cpf,
telefonecontato);
 //Acrescentando demais informacoes no cadastro.
 file = fopen(cadastro, "a");
 fputs("\n CARTEIRA DE TRABALHO.............: ", file);
 fputs(ctps, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n LOGIN CORPORATIVO................: ", file);
 fputs(auxlogin, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",file);
 fputs("\n TIPO.............................: FUNCIONARIO", file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fclose(file); // Fecha o arquivo de texto
 createloginsenha(criapastalogin, criapastasenha, auxlogin, cpf); // Cria o
login e a senha do usuario que foi cadastrado
 file = fopen(verificarsenhapadrao, "w"); // Abre o arquivo de texto e Cria o
verificador da senha padrao
 fclose(file); // Fecha o arquivo de texto
 system("msg * COLABORADOR CADASTRADO COM SUCESSO!"); //
Apresenta uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial.
 }
 }else if(strcmp(resp, "A2") == 0 || strcmp(resp, "a2") == 0){
 limpatela(); // Limpa a tela
 char criapastapaciente[42] = "mkdir pacientes\\", nomemae[40] = "";
 printf("\n
***************************************************************************************************
*********************");
printf("\n * CADASTRO DE
PACIENTES *");
printf("\n
***************************************************************************************************
*********************\n\n");
 if (admin == false && moderador == false){
 system("msg * VOCE NAO POSSUI PRIVILEGIOS DE ADMINSTRADOR
PARA EXECUTAR ESTA FUNCAO."); // Apresenta uma POP UP com uma mensagem
para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial
}
//Entrada de dados do usuario.
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 printf("\n ENTRE COM A IDADE DO PACIENTE....................................: ");
 scanf("%d", &idade);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 itoa(idade, idadeString, 10); // Converter um inteiro para string
 if(idade < 0 && idade >= 150){
 printf("\n IDADE INVALIDA. TENTE NOVAMENTE.\n");
 }else{
 break;
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
}
 // Bloco cadastro com entrada de dados do usuario
 printf("\n ENTRE COM O NOME DO PACIENTE.....................................: ");
 scanf("%[^\n]", &nome);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 printf("\n ENTRE COM O NOME DA MAE DO PACIENTE..............................:
");
 scanf("%[^\n]", &nomemae);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 printf("\n POSSUI PLANO DE SAUDE(CONVENIO MEDICO)? [0 - NÃO / 1
- SIM]......: ");
 scanf("%d", &aux);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(aux == 1){
 printf("\n IDENTIFICACAO - CARTAO CONVENIO..................................:
");
 scanf("%[^\n]", &numconvenio);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 break;
 }else if(aux == 0){
 strcat(numconvenio, "N/A");
 break;
 }else{
 printf("\n ALTERNATVA INVALIDA. TENTE NOVAMENTE!\n");
 lform(); // Linha formatada
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 
 }
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 // Validar um sexo padrão.
 printf("\n INFORME O SEXO DO PACIENTE [0 - MASCULINO / 1 -
FEMININO]........: ");
 scanf("%d", &aux);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 if(aux == 1){
 strcat(sexo, "FEMININO");
 break;
 }else if(aux == 0){
 strcat(sexo, "MASCULINO");
 break;
 }else{
 printf("\n ALTERNATIVA INVALIDA. TENTE NOVAMENTE!\n");
 lform(); // Linha formatada
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 // Validar a entrada de um CPF
 printf("\n ENTRE COM O CPF DO PACIENTE......................................: ");
 scanf("%s", &cpf);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 recebecpf = strtoll(cpf, &eptr, 10);
 if(validaCPF(recebecpf) == false){
 printf("\n CPF INVALIDO TENTE NOVAMENTE!");
 lform(); // Linha formatada
 }else{
 break;
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuario para o menu iniciar;
 }
 }
 printf("\n DIGITE O ENDERECO DE LOCALIZACAO DO
PACIENTE.....................: ");
 scanf("%[^\n]", &endereco);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 // Validar a entrada de um telefone de contato
 printf("\n INFORME O TELEFONE DE CONTATO COM O DDD(SEM
ESPACOS E SEM O ZERO): ");
 scanf("%s", &telefonecontato);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 recebetel = strtoll(telefonecontato, &eptr, 10); // Convete uma string em um
numero inteiro do tipo long long
 if(validaTEL(recebetel) == false){
 printf("\n TELEFONE INCORRETO, FAVOR TENTAR NOVAMENTE.\n");
 lform(); // Linha formatada
 }else{
 break;
 }
 if(contador == 2){
 system("msg * NUMERO DE TENTATIVAS ESGOTADAS. SOLICITACAO
CANCELADA PELO SISTEMA!"); // Apresenta uma POP-UP informativa na tela do
usuario.
 goto iniciar; // Direciona o usuariopara o menu iniciar;
 }
 }
 // Revisão de informações no cadastro.
 confirmacadastro(nome,nomemae,idadeString,sexo,cpf,endereco,telefoneconta
to,ctps,"N/A",numconvenio);
 printf("\n DESEJA FINALIZAR O CADASTRO DO PACIENTE? [0 - NÃO / 1 -
SIM].....: ");
 scanf("%d", &confirma);
 lform(); // Linha formatada
 if(confirma == 0){
 system("msg * CADASTRO CANCELADO PELO USUARIO"); // Apresenta
uma POP UP com uma mensagem para o usuario
 goto iniciar;
 }
 strcat(criapastapaciente, cpf);// CRIANDO CAMINHO DA PASTA COM
INFORMACOES DO PACIENTE
 system(criapastapaciente); // CRIA A PASTA COM AS INFORMACOES DO
PACIENTE;
 if(strcmp(numconvenio, "N/A") == 1){ // Se O cliente possuir um convênio
médico, este será guardado no "banco de dados"
 char temporario[60] = "pacientes\\"; // Concatena a pasta de destino para
acrescentar as informações ao bloco de texto
 strcat(temporario, cpf); // Concaten o CPF do cliente
 strcat(temporario, "\\true"); // Concatena o separador de diretorios
 strcat(temporario, ext); // Concatena a extensão .txt
 file = fopen(temporario, "a"); // abre o arquivo de texto em modo de
escrita(cria o arquivo)
 fclose(file); // Fecha o arquivo de texto.
 }
 //Acrescentando demais informacoes no cadastro.
 strcat(cadastro, "pacientes\\");
 strcat(cadastro, cpf); // Concatena o cpf no cadastro
 strcat(cadastro, "\\"); // Concatena o separador de diretorios
 strcat(cadastro, cpf); // Concatena o cpf no cadastro
 strcat(cadastro, ext); // Concatena o cpf com a extensão txt no cadastro;
 file = fopen(cadastro, "r"); // Abre um arquivo de texto em modo leitura
 if(file != NULL){ // Verifica se o colaborador já está cadastrado.
 system("msg * ESTE PACIENTE JA CONSTA CADASTRADO NO BANCO
DE CADASTROS. CADASTRO CANCELADO PELO SISTEMA!."); // Apresenta uma
POP UP com uma mensagem para o usuario
 fclose(file); // Fecha o arquivo de texto caso tenha sido aberto.
 goto iniciar; // Direciona o usuario para a tela de cadastros.
 }
 fclose(file);// Fecha o arquivo de texto aberto.
 cadastrar(cadastro, nome, idadeString, sexo, endereco, cpf,
telefonecontato); //Acrescentando informaçoes basicas de cadastro no arquivo de texto
com a função cadastrar.
 //Acrescentando demais informacoes no cadastro.
 file = fopen(cadastro, "a");
 fputs("\n NOME DA MAE......................: ", file);
 fputs(nomemae, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n CARTAO DE CONVENIO...............: ", file);
 fputs(numconvenio, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n TIPO.............................: PACIENTE", file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fclose(file); // Fecha o arquivo
 system("msg * PACIENTE CADASTRADO COM SUCESSO!"); // Apresenta
uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para tela de inicio
 }else if(strcmp(resp, "A3") == 0 || strcmp(resp, "a3") == 0){
 char sdia[3] = "", smes[3] = "", sano[5] = "";
 int idia, imes, iano;
 if(admin == false && moderador == false){
 system("msg * VOCE NAO POSSUI PRIVILEGIOS PARA EXECUTAR
ESSA FUNCAO!"); // Apresenta uma popup na tela do usuario
 goto iniciar; // Direciona o usuario para a tela inicial
 }
 limpatela(); // Limpa a tela
 float valorconsulta;
 char verificaconv[35] = "pacientes\\", verificapaciente[45] = "pacientes\\",
svalorconsulta[10] = "";
 printf("\n
***************************************************************************************************
*********************");
printf("\n * CADASTRO DE
AGENDAMENTOS *");
printf("\n
***************************************************************************************************
*********************\n\n");
 // Entrada de dados do usuario
 printf("\n ENTRE COM O CPF DO PACIENTE......................................: ");
 scanf("%s", &cpf);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 // CONCATENACAO DE STRINGS
 strcat(verificapaciente, cpf); // Concatena o CPF
 strcat(verificapaciente, "\\"); // Concatena o separador de diretorios
 strcat(verificapaciente, cpf); // Concatena o cpf no cadastro
 strcat(verificapaciente, ext); // Concatena o cpf com a extensão txt no cadastro;
 strcat(verificaconv, cpf); // Concatena o cpf na variavel de verificar convenio
 strcat(verificaconv, "\\true.txt"); // Concatena o separador de diretorios
 // Valida se o paciente já está cadastrado no sistema.
 if(file = fopen(verificapaciente, "r")){ // abre o arquivo de texto e verifica se o
paciente já está cadastrado
 fclose(file); // Fecha o arquivo de texto
 }else{ // Se a afirmação inicial for falsa significa que o paciente não está
cadastrado.
 system("msg * PACIENTE NAO LOCALIZADO! FAVOR CADASTRA-LO
PRIMEIRAMENTE."); // Apresenta uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial
 }
 // ENTRADA DE DADOS DO USUARIO
 printf("\n INFORME O NOME DO MEDICO QUE FARA O
ATENDIMENTO..................: ");
 scanf("%[^\n]", &nome);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 printf("\n ENTRE COM A DATA DO AGENDAMENTO.\n");
 lform(); // Linha formatada
 printf("\n DIA..............................................................: ");
 scanf("%d", &idia);
 while(idia <= 0 || idia > 31){
 lb(); // Limpa o buffer do teclado
 system("msg * DIA INVALIDO, FAVOR DIGITAR UM DIA VALIDO!");
 printf("\n DIA..............................................................: ");
 scanf("%d", &idia);
 }
 lb(); // Limpa o buffer do teclado
 printf("\n MES..............................................................: ");
 scanf("%d", &imes);
 while(imes <= 0 || imes > 12){
 lb(); // Limpa o buffer do teclado
 system("msg * MES INVALIDO, FAVOR DIGITAR UM DIA VALIDO!");
 printf("\n MES..............................................................: ");
 scanf("%d", &imes);
 }
 lb(); // Limpa o buffer do teclado
 printf("\n ANO..............................................................: ");
 scanf("%d", &iano);
 while(iano < (dataloc->tm_year+1900) || iano > (dataloc->tm_year+1901)){
 lb(); // Limpa o buffer do teclado
 if(iano < (dataloc->tm_year+1900)){
 system("msg * O ANO INFORMADO NAO PODE SER REGISTRADO,
POIS NAO PODE-SE AGENDAR ALGO PARA O PASSADO.");}else if(iano > (dataloc->tm_year+1901)){
 system("msg * O ANO INFORMADO NAO PODE SER REGISTRADO,
POIS ESTA LONGE DE OCORRER. TENTE DIGITAR UM ANO MAIS RECENTE!");
 }
 printf("\n ANO..............................................................: ");
 scanf("%d", &iano);
 }
 lb(); // Limpa o buffer do teclado
 // PROCESSO DE CONVERSAO DOS NUMEROS DE INTEIRO PARA
STRING
 itoa(idia, sdia, 10);
 itoa(imes, smes, 10);
 itoa(iano, sano, 10);
 //PROCESSO DE CONCATENACAO DE STRINGS
 strcat(data, sdia);
 strcat(data, "/");
 strcat(data, smes);
 strcat(data, "/");
 strcat(data, sano);
 lform(); // Linha formatada
 printf("\n HORARIO DE AGENDAMENTO(FORMATO
23:59:59).........................: ");
 scanf("%s", &hora);
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 printf("\n VALOR A SER PAGO(FORMATO R$00.00)................................:
R$");
 scanf("%f", &valorconsulta);
 // VERIFICAÇÃO DO ARQUIVO
 if(file = fopen(verificaconv, "r")){
 fclose(file);
 system("msg * ESTE PACIENTE POSSUI CONVENIO MEDICO, O VALOR
SERA REAJUSTADO AUTOMATICAMENTE.");
 valorconsulta = valorconsulta - (valorconsulta * 60 / 100);
 }
 sprintf(svalorconsulta, "%.2f", valorconsulta); // converte um valor float para
uma string
 lb(); // Limpa o buffer do teclado
 lform(); // Linha formatada
 printf("\n -- CONFIRMACAO DE CADASTRO -- ");
 lform(); // Linha formatada
 printf("\n MEDICO QUE ATENDERA O PACIENTE..............: %s", nome);
 lform(); // Linha formatada
 printf("\n DATA/HORA DO AGENDAMENTO....................: %s AS %s", data,
hora);
 lform(); // Linha formatada
 printf("\n VALOR TOTAL A SER PAGO......................: R$%.2f",
valorconsulta);
 lform(); // Linha formatada
 printf("\n\n\n AS INFORMACOES ESTAO CORRETAS? [0 - CANCELAR / 1 -
CONCLUIR]: ");
 scanf("%d", &confirma);
 lform(); // Linha formatada
 for(contador = 0; contador < 3; contador++){ // inicia um looping com 3
tentativas para acertividade do que for solicitado.
 if(confirma == 0){
 system("msg * PEDIDO CANCELADO PELO USUARIO!"); // Apresenta
uma POP UP com uma mensagem para o usuario
 goto iniciar; // Direciona o usuario para a tela inicial
 }else if(confirma == 1){
 numos = gerarOS(); // Funcao para gerar a ordem de servico
 printf("\n ORDEM DE SERVICO DO AGENDAMENTO.................: %d\n",
numos); // informa o numero da ordem de serviço para o usuario
 lform(); // Linha formatada
 itoa(numos, OS, 10); // Converte inteiro para string
 //PROCESSO DE CONCATENACAO DE STRINGS
 strcat(auxiliarOS, "agendamentos\\concluidos\\"); // Concatena o caminho
da pasta onde sera armazenado a OS na varaivel auxiliaros
 strcat(cadastroOS, "agendamentos\\"); // Concatena a pasta de
armazenameto da OS
 strcat(cadastroOS, "AG"); // Concatena a pasta de armazenamento da
OS.
 strcat(cadastroOS, OS); // Concatena o numero da OS na variavel de
cadastro
 strcat(cadastroOS, ext); // Concatena a extensao .txt na variavel de
cadastrar a os
 strcat(auxiliarOS, "AG"); // Concatena a pasta de armazenamento da OS.
 strcat(auxiliarOS, OS); // Concatena o numero da ordem de servico na
variavel auxiliaros
 strcat(auxiliarOS, ext); // Concatena a extensão .txt na variavel auxiliaros
 file = fopen(cadastroOS, "a"); // Abre o arquivo de texto.
 // Acrescentando informações no bloco de texto
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n AGENDAMENTO ABERTO POR......................: ", file);
 fputs(identificacao_menu, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n MEDICO QUE FARA O ATENDIMENTO...............: ", file);
 fputs(nome, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n CPF DO PACIENTE.............................: ", file);
 fputs(cpf, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n VALOR A SER PAGO............................: R$", file);
 fputs(svalorconsulta, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n PREVISAO DA CONCLUSAO DO AGENDAMENTO........: ",
file);
 fputs(data, file);
 fputs(" - ", file);
 fputs(hora, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n ORDEM DE SERVICO............................: AG", file);
 fputs(OS, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fclose(file); // Fecha o arquivo de texto
 //Abre arquivo de texto auxiliar.
 file = fopen(auxiliarOS, "a");
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n AGENDAMENTO ABERTO POR......................: ", file);
 fputs(identificacao_menu, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n MEDICO QUE FARA O ATENDIMENTO...............: ", file);
 fputs(nome, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n CPF DO PACIENTE.............................: ", file);
 fputs(cpf, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n VALOR A SER PAGO............................: R$", file);
 fputs(svalorconsulta, file);
 fputs("\n
------------------------------------------------------------------------------------------------------------------",
file);
 fputs("\n PREVISAO DA CONCLUSAO DO AGENDAMENTO........: ",
file);
 fputs(data, file);
 fputs(" - ", file);
 fputs(hora, file);

Continue navegando