Você está na página 1de 9

Programação em C/C++

Exercícios sobre CLASSES em C++


1. Crie uma classe para representar uma pessoa, com os
atributos privados de nome, idade e altura. Crie os
métodos públicos  necessários para sets e gets e também
um métodos para imprimir os dados de uma pessoa. 

2. Crie uma classe Agenda que armazena 10 pessoas e seja


capaz de operações como:

class Agenda{
    Pessoa Povo[10];
public:
void armazenaPessoa(string nome, int
idade, float altura);
void removePessoa(string nome);
int buscaPessoa(string nome); //
informa em que posição da agenda está a
pessoa
void imprimePovo(); // imprime todos os
dados de todas as pessoas da agenda
void imprimePessoa(int i); // imprime
os dados da pessoa que está na posição
'i' da agenda
};

int main()
{
        Agenda A;
// faça aqui o teste da agenda.
       
}

3. Crie uma classe denominada Elevador para


armazenar as informações de um elevador dentro de
um prédio. 
A classe deve armazenar o andar atual (0=térreo),
total de andares no prédio, excluindo o térreo,
capacidade do elevador, e quantas pessoas estão
presentes nele.
 
A classe deve também disponibilizar os seguintes
métodos:
 inicializa: que deve receber como parâmetros: a
capacidade do elevador e o total de andares no prédio
(os elevadores sempre começam no térreo e vazios);
 entra: para acrescentar uma pessoa no elevador (só
deve acrescentar se ainda houver espaço);
 sai: para remover uma pessoa do elevador (só deve
remover se houver alguém dentro dele);
 sobe: para subir um andar (não deve subir se já
estiver no último andar);
 desce: para descer um andar (não deve descer se já
estiver no térreo);
 get....: métodos para obter cada um dos os dados
armazenados. 
4. Crie uma classe em C++ chamada Relogio para
armazenar um horário, composto por hora, minuto e
segundo. A classe deve representar esses componentes de
horário e deve apresentar os métodos descritos a seguir:
 um método chamado setHora, que deve receber o
horário desejado por parâmetro (hora, minuto e
segundo);
 um método chamado getHora para retornar o horário
atual, através de 3 variáveis passadas por referência;
 um método para avançar o horário para o próximo
segundo (lembre-se de atualizar o minuto e a hora,
quando for o caso). 

5. Definir uma classe que represente um círculo.

Esta classe deve possuir métodos Privados para:


a. calcular a área do círculo;
b. calcular a distância entre os centros de 2 círculos;
c. calcular a circunferência do círculo.
E métodos Públicos para:
a. definir o raio do círculo, dado um número real;
b. aumentar o raio do círculo, dado um percentual de
aumento;
c. definir o centro do círculo, dada uma posição (X,Y);
d. imprimir o valor do raio;
e. imprimir o centro do círculo.
f. imprimir a área do círculo.
Criar um programa principal para testar a classe.
6.  Implemente uma televisão. A televisão tem um
controle de volume do som e um controle de seleção de
canal.
 O controle de volume permite aumentar ou diminuir a
potência do volume de som em uma unidade de cada
vez.
 O controle de canal também permite aumentar e
diminuir o número do canal em uma unidade, porém,
também possibilita trocar para um canal indicado.
 Também devem existir métodos para consultar o
valor do volume de som e o canal selecionado.
No programa principal, crie uma televisão e troque de
canal algumas vezes. Aumente um pouco o volume, e
exiba o valor de ambos os atributos.

7. Implemente um condicionador de ar. O condicionador


possui 10 potências diferentes. Cada unidade da potência
do condicionador diminui a temperatura do ambiente em
1.8oC. A variação que o condicionador consegue causar
está no intervalo [0oC - 18oC], ou seja, zero graus de
variação quando desligado e dezoito graus de variação
quando ligado na potência máxima.

Através de um sensor, o condicionador é informado da


temperatura externa. Dada essa temperatura e a potência
selecionada, o condicionador calcula e retorna a
temperatura do ambiente.

No programa principal, crie dois condicionadores. Informe


duas temperaturas externas diferentes para cada um (ex:
25oC e 31o), ajuste o segundo em potência máxima (10) e
o primeiro em potência média (5). Finalmente, exiba a
temperatura resultante de cada ambiente.

8. Implemente um carro. O tanque de combustível do


carro armazena no máximo 50 litros de gasolina. O carro
consome 15 km/litro. Deve ser possível:
 Abastecer o carro com uma certa quantidade de
gasolina;
 Mover o carro em uma determinada distância
(medida em km);
 Retornar a quantidade de combustível e a distância
total percorrida.
No programa principal, crie 2 carros. Abasteça 20 litros no
primeiro e 30 litros no segundo. Desloque o primeiro em
200 km e o segundo em 400 km. Exiba na tela a distância
percorrida e o total de combustível restante para cada um.

9. Definir uma classe que represente uma lista de inteiros.

Esta classe deve armazenar os dados em um vetor de


inteiros de tamanho 10.
Deve existir um vetor auxiliar de que indique, na posição
Vaux[i], qual o próximo elemento da lista após o elemento
que está na posição 'i'.

Na figura abaixo, considere que a lista inicia na posição 3.


No vetor auxiliar, o valor -1 indica que a posição
correspondente no vetor 'dados' está vazia. Por sua vez, o
valor -2 indica que a posição correspondente no vetor
'dados' é o último elemento da lista.
Índice 0 1 2 3 4 5 6 7 8 9 10
VAZI VAZI VAZI VAZI VAZI VAZI
Dados 10 1 O
9
O
11 34
O O O O
Vetor
Auxiliar(próxim 5 6 -1 0 -1 1 -2 -1 -1 -1 -1
o)

Ao ser impressa, esta lista deve apresentar os seguintes


valores: 9, 10, 11, 1, 34.

A classe de deve ter métodos para:


 Inserção: este método deve inserir um dado (int)
na lista, após o último dado inserido. Este método
deve retornar 1 quando conseguir inserir e 0 quando
não houver mais espaço na lista. Internamente, a
inserção deve ser feita no primeiro espaço livre do
vetor de dados;
 Remoção: Remover um elemento da lista dado seu
valor. Este método deve retornar 1 quando conseguir
remover e 0 quando o dado não existir na lista;
 Impressão: Imprime os dados na lista na ordem que
foram inseridos.
void
ListaEncadeadaComVetor::imprimeLista()
{
int pos = inicio;
cout << "Lista: ";
cout << "Inicio: " << pos << endl;
for(int i=0; i< TAM; i++)
{
cout << Dados[pos] << "(" << pos << ")";
pos = Aux[pos];
if (pos == -2)
break;
else cout << ", ";
}
cout << endl;

Sugestão para definição da classe:


#include <iostream>
using namespace std;

const int TAM = 10;

class ListaEncadeadaComVetor{
int inicio;
int Dados[TAM];
int Aux[TAM];

int achaPosUltimo();// Este método faz a busca


do último a partir dos
// dados da lista e não a partir do
vetor auxiliar
 int achaPosLivre(); // Este método faz a busca
de um espaço lvre
// a partir do vetor auxiliar
public:
ListaEncadeadaComVetor ();
int insereDado(int D);
int removeDado(int D);
void imprimeLista();
};

10. Implemente um Veículo. O veículo é composto por


várias partes: um motor, um tanque de combustível e 4
pneus.
O funcionamento do veículo depende das suas partes, da
seguinte forma:
 Motor
o Possui uma potência (em hp), uma taxa fixa de
consumo (em km/litro) e um tanque de
combustível (ver abaixo).
o Possui um comando para avançar uma
determinada quantidade de km. Se a pressão de
mais de um pneu (ver abaixo) estiver abaixo de
20 lb, o consumo do veículo aumenta em 30%.
Se não houver combustível suficiente, o veículo
avança até o tanque esvaziar.
 Tanque de Combustível
o Possui uma determinada capacidade e
quantidade atual de combustível (ambos em
litros).
o Pode ser abastecido com uma certa quantidade
de combustível, limitado à sua capacidade
máxima.
 Pneu
o Cada pneu possui uma determina pressão (em
lb).
o Pode ser calibrado com determinada pressão
informada (positiva ou negativa, sendo somada à
atual).
Implemente as classes acima, usando composição quando
necessário. Modularize o código e crie um Makefile para
compilar o projeto (ou use o Code::Blocks).
Lembre-se de implementar gets e sets necessários, bem
como construtores adequados.
No programa principal, faça as seguintes operações:
 Instancie um veículo cujo motor tem 71 hp, consumo
de 12 km/litro, tanque com capacidade para 50 litros,
pneus dianteiros com 27 lb e traseiros com 23 lb.
 Abasteça o tanque com 30 litros.
 Exiba na tela as informações sobre cada componente
do veículo.
 Avance 300 km.
 Reduza a pressão do pneu traseiro esquerdo para 17
lb.
 Avance 100 km.
 Reduza a pressão do pneu dianteiro direito para 18 lb.
 Abasteça mais 10 litros.
 Avance 200 km.
A cada operação de movimento, mostre na tela a distância
percorrida e a quantidade de combustível restante.

FIM.

Você também pode gostar