a) Complete a estrutura acima e implemente um construtor padrão, sem argumentos, que inicializa todos
os atributos com os valores “”, para nomee curso, e 0, para numero e media. Implemente também
um construtor que inicializa todos os atributos com valores fornecidos como argumento, excepto media,
que terá o seguinte protótipo:
Aluno(string umNome, string umCurso, int umNumero);
public:
Aluno()
{ nome = curso = ""; numero = media = 0; };
Aluno(string umNome, string umCurso, int umNumero)
{ nome = umNome; curso = umCurso; numero = umNumero; media = 0; };
};//Aluno
b) Considere que 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. Implemente os membros-
função adequados para este efeito, ou seja, escrita e leitura, apenas escrita ou apenas leitura, consoante o
tipo de acesso que se deseje dar a cada membro-dado.
string getNome() const { return nome; };
string getCurso() const { return curso; };
int getNumero() const { return numero; };
int getMedia() const { return media; };
void setDados(string umCurso, int umNumero, int umaMedia)
{ curso = umCurso; numero = umNumero; media = umaMedia; };
void setDados(string umCurso, int umNumero)
{ curso = umCurso; numero = umNumero; media = 0; };
void setDados(int umaMedia)
{ media = umaMedia; };
};//Aluno
c) Implemente o membro função
string sigla();
que retorna a sigla de um determinado aluno, formada pelas iniciais do seu nome; p. ex., o aluno Pedro
Álvares Cabralterá a sigla “PAC”.
que imprime na stream de saída indicada, que poderá ser um ficheiro ou o ecrã, p. ex., as informações de
um determinado aluno, obedecendo ao seguinte formato:
<número> <nome> <média>
void Aluno::imprimirAluno(ostream &os)
{
os <<"\t"<< nome <<" | "<< curso <<" | "<< numero <<" | "<< media << endl;
}//imprimirAluno()
int main()
{
ofstream file;
Aluno a2("Carlos Carvalho", "Ciclismo", 125);
cout << "Lista de alunos: (nome | curso | numero | media)" << endl;
a2.imprimirAluno(cout);
cout << endl;
file.open(FICH);
if (file)
a2.imprimirAluno(file);
else
{
cerr << "\nErro na abertura do fich " << FICH << endl;
return 1;
}
file.close();
return 0;
} // acrescentar umas merdas no ficheiro