O laboratório LAB_SAÚDE deseja informatizar o atendimento a seus clientes. O diretor de tecnologia passou as seguintes especificações para a construção de um sistema:
- Cadastro de Pessoa Física (CPF)
- Nome completo
- Endereço
- Telefone
- Idade
- Os dados devem ser armazenados em arquivo.
2. Na entrada do laboratório há um funcionário que consulta o CPF do paciente. Caso o mesmo esteja cadastrado, é encaminhado para a fila de atendimento. Caso contrário, é feito o cadastramento de acordo com os dados acima e só depois é encaminhado para a fila de atendimento.
3. O paciente entra na fila de atendimento inicial obedecendo a prioridade de idade e tempo de espera na fila. A fila deve ser implementada usando a estrutura de dados fila contendo CPF do paciente, idade e tempo de espera, que deve ser iniciado com zero.
4. No atendimento inicial o atendente chama o próximo da fila e informa o número da sua mesa.Sempre deve ser chamado o paciente com maior prioridade.Deve ser definido um critério para que as pessoas mais novas possam ser atendidas mesmo havendo pessoas mais velhas a serem atendidas, por causa do tempo de permanência na fila. A cada nova chamada de um paciente, os demais devem ter seu tempo de permanência acrescido deuma unidade e deve ser reorganizada a fila de prioridades de acordo com os critérios definidos por vocês, devendo a fila estar ordenada por prioridade.
- sugestão para essa opção:
- façam a leitura de todos os pacientes na fila e coloquem seus dados em memória (vetores), acrescentando uma unidade no tempo de espera e recalculando a prioridade
- ordenem esses vetores por prioridade, mantendo a correspondência entre os dados e a prioridade
- esvaziem a fila, liberando todos os elementos da memória
- insiram os elementos com base na ordem dos dados do vetor