a) Pretende-se que qualquer objecto-instância da classe Aluno seja criado com um nome: acrescente à
classe Aluno um construtor que inicialize o atributo nome com o argumento que lhe for passado e que
inicialize todos os outros atributos com valores nulos (0 para números e “” para strings). O protótipo
será:
Aluno(string nom);
Implemente também um outro construtor que inicialize todos os atributos com os valores fornecidos
como argumento, excepto media, e que terá o seguinte protótipo:
Aluno(string nom, string curs, int numer);
Isto constitui um exemplo de sobrecarga de funções!
b) Um aluno, durante o tempo de estudante, poderá mudar de curso e número algumas vezes, mas nunca
de nome, e a sua média também poderá sofrer alterações. Escreva os membros-função que permitam
efectuar as atribuições ou alterações permitidas (e.g. setCurso(string cur)) e escreva também
as restantes funções de acesso típicas (e.g. int getMedia()).
c) Implemente o membro função
void imprimirAluno(ostream & os);
que imprime na stream de saída os, que poderá ser um ficheiro ou o ecrã, as informações de um
determinado aluno, obedecendo ao seguinte formato:
<nome> | <curso> | <numero> | <media>
Nota: exemplo de utilização
Aluno al(“Alberto Mateus”); al.imprimirAluno(cout);
d) Implemente o membro-função
string sigla();
que retorna a sigla de um determinado aluno, formada pelas iniciais do seu nome; por ex., o aluno
Pedro Antunes Rocha terá a sigla “PAR”.