Prévia do material em texto
1 UNIVERSIDADE FEDERAL DE OURO PRETO INSTITUTO DE CIÊNCIAS EXATAS E BIOLÓGICAS DEPARTAMENTO DE COMPUTAÇÃO BCC702 – PROGRAMAÇÃO DE COMPUTADORES II 7a Aula prática de BCC702 – Programação Orientada a Objetos Polimorfismo O polimorfismo é crucial para a programação orientada a objetos. O termo polimorfismo é usado para descrever o processo pelo qual diferentes implementações de uma função podem ser acessadas usando o mesmo nome. O polimorfismo em C++ é obtido com classes derivadas e funções virtuais. 1- Uma empresa de ônibus deseja informatizar seu sistema e registrar seus passageiros em cada viagem. Os passageiros podem ser de três tipos: regulares, que pagam a taxa inteira da viagem; estudantes, que pagam metade da taxa; e aposentados, que não pagam passagem. Dos passageiros regulares deseja-se armazenar apenas o nome. Dos estudantes deseja-se armazenar o nome e o RA (registro acadêmico). Dos aposentados deseja-se armazenar o nome e o RG. A seguir é apresentado um diagrama de classes do sistema. 2 Na classe Passageiro e nas suas classes derivadas são implementados, além das funções construtoras e dos métodos gets e sets para seus atributos, os métodos: � calcPaga(taxa: double): Que recebe como parâmetro o preço da passagem cobrada no ônibus e retorna quanto o passageiro irá pagar conforme o seu tipo específico; � imprimir(): Que imprime os atributos de um passageiro conforme o seu tipo específico; Além de registrar os passageiros, o sistema deve permitir a realização de algumas operações (implementadas na classe Onibus), como: � imprimirPassageiros(): Gera relatório com todos os passageiros registrados no ônibus; � calcTotalArrecadado(): Retorna o valor total arrecadado com aquele ônibus; � addPassageiro(p: *Passageiro): Inclui passageiro passado como parâmetro no ônibus. 2- Teste as classes implementadas fazendo um menu com as seguintes opções: 1. Cadastrar nome do motorista; 2. Cadastrar valor da passagem; 3. Cadastrar passageiro; 4. Mostrar todos passageiros; 5. Mostrar total arrecadado; 6. Sair.