Tópicos

  • Uso de excepções e colecções
  • O exercício de C++ deve ser entregue, em papel, na aula prática da semana de 2014/11/02 - ex07cpp.pdf

    Exercício 1: Caderneta e Cromos

    Considere uma caderneta de cromos. Os cromos têm um nome e uma imagem. Não é necessário modelar a imagem, considere a imagem como sendo uma instância da seguinte classe:

    class Image { /* conteúdo omitido */ }

    A caderneta guarda os cromos pela ordem natural dos nomes e não permite guardar cromos repetidos. É possível adicionar cromos a uma caderneta (método add) e é possível remover um cromo se for indicado o seu nome (método remove). Duas cadernetas dizem-se iguais (equals) se tiverem o mesmo número de cromos (independentemente das características dos cromos individuais). É possível obter uma lista ordenada (por nome) contendo os cromos de uma caderneta (método getAll).

    Modele e implemente as classes dos cromos (Card) e da caderneta (Album) (utilize classes do pacote de colecções do Java).

    [ resolução (para um problema semelhante): procurar resolver antes de consultar ]

    Exercício 2: 1001 Noites (Arabian Nights)

    Considere o enunciado da Aula Prática 04 ("Arabian Nights"), considerando-se as seguintes alterações:

    Os métodos grantWish não retornam qualquer valor ( void ), mas lançam excepções (especializações de SomethingWrongWithGenieException):

    • NoMoreWishesException (no caso de um FriendlyGenie já ter realizado todos os desejos);
    • BadMoodException (no caso de um GrumpyGenie já ter realizado o primeiro desejo);
    • OopsException (lançada sempre que um RecyclableDemon realiza um desejo); e
    • TiredOhSoTiredException (no caso de um RecyclableDemon já ter sido reciclado).