Documente Academic
Documente Profesional
Documente Cultură
PARTE I
Uma locadora ldica especializada em livros e lbuns de msica raros, ou seja, mais antigos do que
um determinado ano de referncia. A locadora tambm mantm uma lista de associados, e permite que
novos scios se registem, desde que tenham mais do que 18 anos. Complete a implementao da
aplicao de acordo com o que pedido:
b) Implemente para a classe Locadora a sobrecarga do operador +=, que adiciona um novo scio
locadora. A classe Socio dever ser implementada de acordo. Apenas scios com idade superior a
18 anos se podem registar na locadora. No caso de tentativas de registos de pessoas mais novas, a
aplicao dever lanar uma excepo do tipo MenorDeIdade, com a idade da pessoa.
e) Implemente a funo template int buscarElemento(const vector<T>&, const T&), que retorna a
posio relativa de um elemento T num dado vector, ou -1 caso no o encontre. Implemente, na
classe Locadora, o membro-funo int idadeSocio(string nome), que utiliza a funo template
buscarElemento para encontrar um elemento na lista de scios com um dado nome, e retorna a
idade do mesmo.
Nota: poder ser necessrio actualizar o ficheiro de teste para o tratamento adequado de excepes.
1/3
Mestrado Integrado em Engenharia Informtica e Computao
PARTE II
A responder, em comentrio, no fim do ficheiro locadoraTeste.cpp
A) A classe Assoc puramente abstracta, pois est definida para dois tipos genricos de dados.
B) A declarao do tipo Assoc< float, vector<string > > gerar um erro de
compilao.
C) O mtodo Assoc<string, int>::reverse() retorna um tipo de dados abstracto.
D) A classe Assoc<int,int> no pode ser declarada pois os tipos C1 e C2 tm de ser
diferentes.
E) Nenhuma das anteriores.
class Medicamento {
string nomeComercial;
int prazoValidade; //em meses
public:
Medicamento(string nome, int prazo) {
if (prazo < 0 || prazo > 96) throw PrazoInvalido(prazo);
prazoValidade = prazo;
nomeComercial = nome;
}
void imprime() {cout << nomeComercial << :: << prazoValidade
<< endl;}
};
A) Podem ser construdos objectos da classe Medicamento com nome comercial nulo e prazo de
validade inferior a 96 meses.
B) No construtor da classe Medicamento a primeira linha e a segunda deveriam estar trocadas.
C) Se um medicamento tiver prazo de validade superior a 96 meses construdo o objecto ao
mesmo tempo que emitido um aviso.
D) O uso do throw est incorrecto; deveria ser utilizado try.
E) Nenhuma das anteriores.
2/3
Mestrado Integrado em Engenharia Informtica e Computao
3/3