Aula Prática 8 - tipos estruturados de informação, Ficheiros e Exceções

Os objetivos desta aula são os seguintes: continuar a exercitar a utilização de tipos estruturados de informação, leitura e escrita de ficheiros e utilização de exceções. Após a realização da aula, o estudante deverá:

  • ficar mais familiarizado com a noção de tuplo, lista e dicionário
  • saber ler e escrever num ficheiro de texto
  • saber lidar com exceções
  • saber introduzir pré-condições

1. Considerando o exercício da agenda telefónica da aula passada, adicione opções para ler e escrever o conteúdo da agenda num ficheiro.

Uma agenda é composta por contactos telefónicos, em que cada contacto telefónico tem os atributos nome, telefone, email principal (opcional). Deverá definir a classe de objetos Agenda deve permitir todas as operações seguintes.

  1. Adicionar um contacto à agenda
  2. Listar os contactos existentes
  3. ...
  4. ...
  5. ...
  6. ...
  7. Escrever a lista telefónica para um ficheiro (gravar)
  8. Ler a lista telefónica de um ficheiro (ler)

Escreva um programa que apresenta o menu anterior ao utilizador e, consoante a sua escolha faz a operação correspondente. O programa termina quando o utilizador introduzir a opção 0.

Caso o ficheiro de leitura não exista, deve informar o utilizador.

2. Pretende-se desenvolver um programa que permita gerir uma fila de espera de uma repartição pública.

O funcionamento que se pretende para a repartição é o seguinte:

  • Quando um utente entra na repartição, é-lhe pedido o seu número do bilhete de identidade. Este número é depois dado pelo funcionário que opera o sistema ao programa a desenvolver para inserção na fila de espera. Para isso o funcionário selecciona a opção apropriada do programa;
  • Quando a (única) cabina de atendimento fica livre, o operador do sistema selecciona no programa a opção de retirar o número do bilhete de identidade do utente há mais tempo à espera, sendo esse número mostrado ao operador (que depois o anuncia) e retirado da fila de espera gerida pelo programa;
  • O operador pode também simplesmente ver qual o número do bilhete de identidade do próximo utente a ser atendido, sem para isso precisar de o retirar da fila de espera. Para tal deve seleccionar no programa uma opção apropriada;
  • Podem estar à espera na sala um máximo de 12 (por exemplo) utentes. Se entrar o 13º utente, o programa deve-se recusar a inseri-lo na fila de espera.

Desenvolva a classe fila de espera de modo a que o funcionamento acima seja possível. Na construção de um objeto deste tipo deve ser fornecido ao construtor o número máximo de pessoas admitido.

In [ ]: