folha 4 resoluçao

#include <iostream>
#include <sstream> //para poder utilizar o istringstream

using namespace std;

class Aluno{
private:
string nome;
string curso;
int number;
int media;

public:
//alinea a)
Aluno(string nom){ //pode ser feito desta maneira
nome = nom;
curso = "";
number = 0;
media = 0;
}

Aluno(string nom, string cur, int num); //ou desta com a definicao da funcao mais tarde

//alinea b)
int getMedia();
int getNumber();
string getNome();
string getCurso();
void setCurso(string cur);
void setNumber(int num);
void setMedia(int med);

//alinea c)
void imprimirAluno(ostream & os);

//alinea d)
string sigla();

}; //atencao ao ponto e virgula
//alinea a)
Aluno::Aluno(string nom, string cur, int num){ //Definicao da funcao declarada acima
nome = nom;
curso = cur;
number = num;
media = 0;
}
//alinea b)
int Aluno::getMedia(){
return media;
}

int Aluno::getNumber(){
return number;
}

string Aluno::getNome(){
return nome;
}

string Aluno::getCurso(){
return curso;
}

void Aluno::setCurso(string cur){
curso = cur;
}

void Aluno::setNumber(int num){
number = num;
}

void Aluno::setMedia(int med){
media = med;
}
//alinea c)
void Aluno::imprimirAluno(ostream & os){
cout << nome << " | " << curso << " | " << number << " | " << media << endl;
}

//alinea d)
string Aluno::sigla(){
string nm = nome, nm2;
string sigla;

//ha outras maneiras de fazer isto. esta e a que me parece mais imediata para mim mas aconselho-vos a procurarem alternativas :)
istringstream iss(nm, istringstream::in);
while(!iss.eof()) {
iss >> nm2;
sigla.push_back(nm2[0]);

nm2.clear();
}
return sigla;
}

int main(){
//testa a)
Aluno a1 = Aluno("pedro antunes rocha");
Aluno a2 = Aluno("maria jose rodrigues santos", "mieic", 123);

//testa b)
cout << a1.getNome() << "\t" << a1.getCurso() << "\t" << a1.getNumber() << "\t" << a1.getMedia() << endl;
cout << a2.getNome() << "\t" << a2.getCurso() << "\t" << a2.getNumber() << "\t" << a2.getMedia() << endl;

a1.setNumber(145);
a1.setCurso("MIEEC");
a1.setMedia(12);

cout << "apos as alteracoes:\n";

//cout << a1.getNome() << "\t" << a1.getCurso() << "\t" << a1.getNumber() << "\t" << a1.getMedia() << endl;

//testa c)
a1.imprimirAluno(cout);

//testa a d)
cout << a1.sigla() << endl << a2.sigla() << endl;

return 0;
}
Topic archived. No new replies allowed.