Você está na página 1de 6

Faculdade de Educação Tecnológica do Estado do Rio de Janeiro

Programação Orientada à Objetos e Algoritmos em C++

Prof. Emerson Lima

Exercícios

1. Faça o que se pede.

a) Defina uma classe Carta


b) Defina uma variável privada figura
c) Defina uma variável private naipe
d) Defina um método público getFigura que retorna o valor da variável privada
figura
e) Defina um método público setFigura que recebe como parâmetro uma
figura, atribui esse valor na variável privada figura e tem retorno void.
f) Defina um método público getNaipe que retorna o valor da variável private
naipe.
g) Defina um método público setNaipe que recebe como parâmetro um
naipe, atribui esse valor na variável privada naipe e tem retorno void.

#include <iostream>
using std::cout;

class carta { //a


private:
std::string figura; //b
std::string naipe; //c
public:
std::string getFigura() { //d
return figura;
}
void setFigura(std::string f){ //e
figura = f;
}
std::string getNaipe() { //f
return naipe;
}
void setNaipe(std::string n){ //g
naipe = n;
}
};
2. Faça o que se pede.

a) Defina uma classe Aluno.


b) Defina como atributos da classe: nome, e-mail, nota da av1, nota da av2, e nota
da av3. Esses atributos possuem métodos para leitura (getters) e para escrita
(setters).
c) Defina o seguinte método que deve retornar verdadeiro se a média da av1 com
a av2 é maior que 7,0, e falso caso contrário:

bool isAprovado();

d) Defina o seguinte método que retorna verdadeiro caso a média da av1 e da


av2 seja superior a 4,0:
bool podeFazerAV3();

e) Defina o seguinte método que retorna a nota final do aluno a partir da av1, av2
e av3. Leve em consideração se o aluno fez a av3 ou não:

float getNotaFinal();

f) Defina um método void salvar(std::string nome_do_arquivo) que salva as


informações do aluno (nome, e-mail, av1, av2 e av3) no arquivo de texto
nome_do_arquivo linha-a-linha: (Use um objeto std::ofstream)

Exemplo:
José da Silva
josesilva@gmail.com
7
7
8

g) Defina um método void ler(std::string nome_do_arquivo) que lê as


informações de um aluno (nome, e-mail, av1, av2 e av3) de um arquivo de texto
nome_do_arquivo (Use um objeto std::ifstream).

#include <iostream>
#include <fstream>
using std::cout;

class Aluno { //a


private: //b
std::string nome;
std::string e_mail;
float nota_da_av1;
float nota_da_av2;
float nota_da_av3;
public:

Aluno(){
std::string nome;
std::string e_mail;
nota_da_av1 = 0;
nota_da_av2 = 0;
nota_da_av3 = 0;
}
std::string get_nome() {
return nome;
}
void set_nome(std::string n) {
nome = n;
}
std::string get_mail() {
return e_mail;
}
void set_nome(std::string mail) {
e_mail = mail;
}
float get_n1() {
return nota_da_av1;
}
void set_n1(float av1) {
nota_da_av1 = av1;
}
float get_n2() {
return nota_da_av2;
}
void set_n2(float av2) {
nota_da_av2 = av2;
}
float get_n3() {
return nota_da_av3;
}
void set_n3(float av3) {
nota_da_av3 = av3;
}
bool isAprovado(float media){//c
float media = (av1 + av2)/2;
if (media > 7){
return true;
}
return false;
}
bool podeFazerAV3(float media, float fim){//d
float media = (av1 + av2)/2;
if ((media > 4) && (media <= 7)){
float fim = (media + av3)/2;
}
return false;
}
float getNotaFinal(){//e
if ((media > 7) || (media <= 4)){
return media;
}
else {
return fim;
}
}
};
main(){
Aluno a;
ofstream outfile;
ifstream outfile;
std::string nome_do_arquivo;
outfile.open("jose.doc");

void salvar(std::string nome_do_arquivo){//f


if (outfile.is_open() && outfile.good()){
a.jose('José da Silva','josesilva@gmail.com',7,7,8);
outfile << a.jose << "\n";
outfile.close();
}
}
void ler(std::string nome_do_arquivo){//g
if (outfile.is_open() && outfile.good()){
outfile >> nome_do_arquivo;
cout << "Nome: José da Silva" << "\n";
cout << "E_mail: josesilva@gmail.com" << "\n";
cout << "Av1: 7" << "\n";
cout << "Av2: 7" << "\n";
cout << "Av3: 8" << "\n";
outfile << a.jose << "\n";
outfile.close();
}
}
return 0;
}
3. Encapsule a variável saldo da conta bancária.

class conta_bancaria {
private:
float saldo;
public:

conta_bancaria() {
saldo = 0;
}

void saca(float valor) {


saldo -= valor;
}

void deposita(float valor) {


saldo += valor;
}
};

4. Crie uma classe elevador para que possa ser utilizada da seguinte maneira

class Pessoa {
float massa;// peso em kg
};

class Elevator {
Pessoa *p;// pessoas (use arranjo de ponteiros)
int max_pessoa;// limite de pessoas
float max_peso;// limite de peso

public:
Elevator(int max_pessoa, float max_peso);
void entra();
void sai();
void sobe();
void desce();
void andarAtual();
};
Elevator e(4, 240); // 4 pessoas ou 240kg
void entra{}
void sai{}
void sobe{}
void desce()
void andarAtual{}
Pessoa p1(60); // pessoa de 60kg
Pessoa p2(70); // pessoa de 70kg
Pessoa p3(120); // pessoa de 120kg
Pessoa p4(20); // criança de 20kg
Pessoa p5(90); // pessoa de 90kg;

e.entra(p1); // se estourar o limite de pessoa ou de peso a pessoa


não entra, não há erro, apenas a pessoa não entra.

e.sai(p3); // retira a pessoa do elevador (use nullptr)

e.sobe(p5); // sobe um andar


e.desce(p2); // desce um andar
e.andarAtual(p4); // retorna o andar atual.

Você também pode gostar