Você está na página 1de 30

UNIVERSIDADE VEIGA DE ALMEIDA

Entrega da Avaliação - POO [AVA 2]

PROGRAMAÇÃO ORIENTADA A OBJETO

Prof.: CARLOS AUGUSTO SICSU AYRES DO NASCIMENTO


2

Rio de Janeiro
2019

Disciplina: PROGRAMAÇÃO ORIENTADA A OBJETO

Prof.: CARLOS AUGUSTO SICSU AYRES DO NASCIMENTO

Membros do grupo:

Charles Wilson Silva Baptista 20181302220


Daniel Francisco Alves Feliciano 20182300254
Michele Siqueira da Silva 20182300964
Tiago Moreira da Silva 20191302802
3

Sumá rio
Introdução..................................................................................................................................4
Conteúdo...................................................................................................................................5
Documentação do projeto com o gráfico hierárquico das classes..................................5
Codificação de todas as classes e aplicação....................................................................6
Programa Principal “Aplicação”......................................................................................6
Super Classe “Transporte”...............................................................................................7
Sub Classe “Navio”.........................................................................................................11
Sub Classe “Aviao”.........................................................................................................16
Resultados dos testes realizados com o projeto.............................................................18
Conclusão do trabalho...........................................................................................................30
Bibliografia...............................................................................................................................31
4

Introdução

Este trabalho visa demonstrar o uso de vetores e matrizes de objetos


facilitando o desenvolvimento do projeto, diminuindo assim a complexidade e
favorecendo a manutenção do sistema. A utilização da SuperClasse
"Transporte" atende às necessidades das SubClasses "Avião e Navio", com
todas as funcionalidades comuns às classes similares.
5

Conteúdo

Documentação do projeto com o gráfico hierárquico das classes

Transporte

Aviao Navio
6

Codificação de todas as classes e aplicação

Programa Principal “Aplicação”

package aplicacao; import


java.util.Scanner; import
transporte.*;

public class Aplicacao {

public static void main(String[] args) {

Aviao a[] = new Aviao[10];


Navio n[] = new Navio[10];

System.out.println("\n----- Aviões ----\n");


for (int i=0; i<a.length; i++) {
a[i] = new Aviao();
Scanner scan = new Scanner(System.in);

try{
System.out.print("\nPercentual: ");
Double percentual = scan.nextDouble();
a[i].entrada();
a[i].reajustarPreco(percentual);
a[i].imprimir();

}catch(Exception e){
7

System.out.print("Tipo Inválido. Atribuição Automática de Valor Default de


4% ");
Double percentual = 4.0;
a[i].entrada();
a[i].reajustarPreco(percentual);
a[i].imprimir();
}
Aviao av01 = new Aviao();
av01.cadastrar(100, 50, 4250, "Grub", "01/01/1985");
av01.imprimir();
}

System.out.println("\n----- Navios ----\n");


for (int i=0; i<n.length; i++) {
n[i] = new Navio();
n[i].entrada();
n[i].imprimir();
System.out.println("Imprimindo a Relação passageiros por Tripulantes: " +
n[i].passageirosPorTripulantes());
}
nav01.cadastrar(500, 150, 400f, "Grub", "25/04", 10);
nav01.imprimir();
}
}

Super Classe “Transporte”

package transporte;
import java.util.Scanner;
public class Transporte {
8

protected int capacidadeTanque, numeroPassageiros;


protected double preco;

public int getCapacidadeTanque() {


return capacidadeTanque;
}

public void setCapacidadeTanque(int capacidadeTanque) {


this.capacidadeTanque = capacidadeTanque;
}

public int getNumeroPassageiros() {


return numeroPassageiros;
}

public void setNumeroPassageiros(int numeroPassageiros) {


this.numeroPassageiros = numeroPassageiros;

public double getPreco() {


return preco;
}

public void setPreco(double preco) {


this.preco = preco;
}

public Transporte() {
}
9

public Transporte(int capacidadeTanque) {


this.capacidadeTanque = capacidadeTanque;
}

public Transporte(int capacidadeTanque, int numeroPassageiros) {


this.capacidadeTanque = capacidadeTanque;
this.numeroPassageiros = numeroPassageiros;
}

public Transporte(double preco) {


this.preco = preco;
}

public Transporte(int capacidadeTanque, int numeroPassageiros, double


preco) {
this.capacidadeTanque = capacidadeTanque;
this.numeroPassageiros = numeroPassageiros;
this.preco = preco;
}

public void cadastrar (int capacidadeTanque, int numeroPassageiros, double


preco) {
setCapacidadeTanque(capacidadeTanque);
setNumeroPassageiros(numeroPassageiros);
setPreco(preco);
}

public void imprimir() {


System.out.println();
System.out.println("Capacidade do Tanque: " +getCapacidadeTanque());
System.out.println("Número de passageiros: " +getNumeroPassageiros());
10

System.out.println("Preco: " +getPreco());


}

int indice = 0;
public void entrada () {
Scanner scan = new Scanner(System.in);
while(indice == 0){
try {
System.out.print("\n\nDigite a capacidade do tanque: ");

setCapacidadeTanque(scan.nextInt());
indice = 1;
}catch(Exception e){
System.out.print("Valor Incorreto...." +e +"\n");
entrada();

}
}
while(indice == 1){
try{
System.out.print("Digite o número de passageiros: ");
setNumeroPassageiros(scan.nextInt());
indice = 2;

}catch(Exception e){
System.out.print("Valor de passageiros invalidos " +e + "\n");

indice = 1;

entrada();
11

}
}
while(indice == 2){

try{
System.out.print("Digite o preço: ");
setPreco(scan.nextDouble());
indice = 3;
}catch(Exception e){
System.out.print("Valor de Preço " +e + "\n");
// System.out.print("Digite o número de passageiros: ");
indice = 2;
entrada();
}
}
}
}

Sub Classe “Navio”

package transporte;

import java.util.Scanner;

public class Navio extends Transporte {

private String nome, dataLancamento;


private int numeroTripulantes;

public String getNome() {


return nome;
12

public void setNome(String nome) {


this.nome = nome;
}

public String getDataLancamento() {


return dataLancamento;
}

public void setDataLancamento(String dataLancamento) {


this.dataLancamento = dataLancamento;
}

public int getNumeroTripulantes() {


return numeroTripulantes;
}

public void setNumeroTripulantes(int numeroTripulantes) {


this.numeroTripulantes = numeroTripulantes;
}

public void cadastrar (int capacidadeTanque, int numeroPassageiros, double


preco, String nome, String dataLancamento, int numeroTripulantes) {
super.cadastrar(capacidadeTanque,numeroPassageiros,preco);
setNome(nome);
setDataLancamento(dataLancamento);

setNumeroTripulantes(numeroTripulantes);

public Navio() {
13

public Navio(String nome) {


this.nome = nome;
}

public Navio(String nome, String dataLancamento) {


this.nome = nome;
this.dataLancamento = dataLancamento;
}

public Navio(String nome, String dataLancamento, int numeroTripulantes) {


this.nome = nome;
this.dataLancamento = dataLancamento;
this.numeroTripulantes = numeroTripulantes;
}

public Navio(String nome, String dataLancamento, int numeroTripulantes, int


capacidadeTanque, int numeroPassageiros, double preco) {
super(capacidadeTanque, numeroPassageiros, preco);
this.nome = nome;
this.dataLancamento = dataLancamento;
this.numeroTripulantes = numeroTripulantes;
}
@Override
public void imprimir (){
super.imprimir();
System.out.println("Nome: " +getNome());
System.out.println("Data Lançamento: " +getDataLancamento());
System.out.println("Número de Tripulantes: " +getNumeroTripulantes());
14

@Override
public void entrada(){
Scanner scan = new Scanner(System.in);

super.entrada();
while(indice == 3){
try{
System.out.print("Digite o Nome:");
setNome(scan.nextLine());
indice = 4;
}catch(Exception e){
System.out.print("Nome Invalidos " +e + "\n");
indice = 3;
entrada();
}
}
while(indice == 4){

try{
System.out.print("Digite a Data de Lançamento: ");
setDataLancamento(scan.nextLine());
indice = 5;
}catch(Exception e){
System.out.print("Data Invalida " +e + "\n");

indice = 4;

entrada();
15

}
}while(indice == 5){

try{
System.out.print("Digite o número de tripulantes: ");
setNumeroTripulantes(scan.nextInt());
if(this.getNumeroTripulantes()>0){
indice = 0;

}else{
System.out.print("Valor menor que 1 (um) de Tripulantes \n");
indice = 5;
this.entrada();
}

}catch(Exception e){
System.out.print("Valor de Tripulantes Invalidos " +e + "\n");
indice = 5;
this.entrada();
}

}
}
public float passageirosPorTripulantes(){
return getNumeroPassageiros()/getNumeroTripulantes();

}
}

Sub Classe “Aviao”


16

package transporte;
import java.util.Scanner;

public class Aviao extends Transporte {

private String prefixo, dataRevisao;

public String getPrefixo() {


return prefixo;
}

public void setPrefixo(String prefixo) {


this.prefixo = prefixo;
}

public String getDataRevisao() {


return dataRevisao;
}

public void setDataRevisao(String dataRevisao) {


this.dataRevisao = dataRevisao;
}

public Aviao() {
}

public Aviao(String prefixo) {

this.prefixo = prefixo;

}
17

public Aviao(String prefixo, String dataRevisao) {


this.prefixo = prefixo;
this.dataRevisao = dataRevisao;
}

public Aviao(double preco) {


super(preco);
}

public Aviao(int capacidadeTanque, int numeroPassageiros, double preco) {


super(capacidadeTanque, numeroPassageiros, preco);
}

public void cadastrar (int capacidadeTanque, int numeroPassageiros,


double preco, String prefixo, String dataRevisao) {
super.cadastrar(capacidadeTanque,numeroPassageiros,preco);
setPrefixo(prefixo);
setDataRevisao(dataRevisao);
}

@Override
public void imprimir (){
super.imprimir();
System.out.println("Prefixo: " +getPrefixo());
System.out.println("Data da revisão: " +getDataRevisao());
}

@Override
public void entrada(){
Scanner scan = new Scanner(System.in);
18

super.entrada();

System.out.print("Digite o Prefixo: ");


setPrefixo(scan.nextLine());
System.out.print("Digite a Data da Revisão: ");
setDataRevisao(scan.nextLine());

}
public void reajustarPreco(double percentual) {
setPreco( getPreco() + (getPreco() * (percentual/100)));
}

Resultados dos testes realizados com o projeto

run:

----- Aviões ----

Defina o Percentual: 20

Digite a capacidade do tanque: 100


Digite o número de passageiros: 200
Digite o preço: 250
Digite o Prefixo: Sabiah
19

Digite a Data da Revisão: 09/08/2022

Capacidade do Tanque: 100


Número de passageiros: 200
Preco: 300.0
Prefixo: Sabiah
Data da revisão: 09/08/2022

Defina o Percentual: 30

Digite a capacidade do tanque: 500


Digite o número de passageiros: 6
Digite o preço: 100
Digite o Prefixo: Canario
Digite a Data da Revisão: 01/01/2023

Capacidade do Tanque: 500


Número de passageiros: 6
Preco: 130.0
Prefixo: Canario
Data da revisão: 01/01/2023

Defina o Percentual: 45

Digite a capacidade do tanque: 150


Digite o número de passageiros: 100
Digite o preço: 120
20

Digite o Prefixo: Arara


Digite a Data da Revisão: 12/10/2022

Capacidade do Tanque: 150


Número de passageiros: 100
Preco: 217.5
Prefixo: Arara
Data da revisão: 12/10/2022

Defina o Percentual: 80

Digite a capacidade do tanque: 400


Digite o número de passageiros: 96
Digite o preço: 299
Digite o Prefixo: Pato
Digite a Data da Revisão: 15/11/2021

Capacidade do Tanque: 400


Número de passageiros: 96
Preco: 538.2
Prefixo: Pato
Data da revisão: 15/11/2021

Defina o Percentual: 55

Digite a capacidade do tanque: 300


21

Digite o número de passageiros: 120


Digite o preço: 150
Digite o Prefixo: Tucano
Digite a Data da Revisão: 18/01/2023

Capacidade do Tanque: 300


Número de passageiros: 120
Preco: 232.5
Prefixo: Tucano
Data da revisão: 18/01/2023

Defina o Percentual: 300

Digite a capacidade do tanque: 600


Digite o número de passageiros: 400
Digite o preço: 85.2
Digite o Prefixo: Gaviao
Digite a Data da Revisão: 22/02/2021

Capacidade do Tanque: 600


Número de passageiros: 400
Preco: 341.6
Prefixo: Gaviao
Data da revisão: 22/02/2021

Defina o Percentual: 75

Digite a capacidade do tanque: 100


22

Digite o número de passageiros: 3


Digite o preço: 90
Digite o Prefixo: Papagaio
Digite a Data da Revisão: 20/06/2023

Capacidade do Tanque: 100


Número de passageiros: 3
Preco: 157.5
Prefixo: Papagaio
Data da revisão: 20/06/2023

Defina o Percentual: 15

Digite a capacidade do tanque: 80


Digite o número de passageiros: 30
Digite o preço: 30
Digite o Prefixo: Tiziu
Digite a Data da Revisão: 01/01/2025

Capacidade do Tanque: 80
Número de passageiros: 30
Preco: 34.5
Prefixo: Tiziu
Data da revisão: 01/01/2025

Defina o Percentual: 50

Digite a capacidade do tanque: 300


23

Digite o número de passageiros: 122


Digite o preço: 800
Digite o Prefixo: Pavao
Digite a Data da Revisão: 27/12/2027

Capacidade do Tanque: 300


Número de passageiros: 122
Preco: 1200.0
Prefixo: Pavao
Data da revisão: 12/12/2025

Defina o Percentual: 90

Digite a capacidade do tanque: 100


Digite o número de passageiros: 100
Digite o preço: 100
Digite o Prefixo: Cardeal
Digite a Data da Revisão: 05/05/2029

Capacidade do Tanque: 100


Número de passageiros: 100
Preco: 190.0
Prefixo: Cardeal
Data da revisão: 05/05/2029

----- Navios ----


24

Digite a capacidade do tanque: 500


Digite o número de passageiros: 50
Digite o preço: 10
Digite o Nome: BAHIA
Digite a Data de Lançamento: 01/01/2020
Digite o número de tripulantes: 10

Capacidade do Tanque: 500


Número de passageiros: 50
Preco: 10.0
Nome: BAHIA
Data Lançamento: 01/01/2020
Número de Tripulantes: 10
Imprimindo a Relação passageiros por Tripulantes: 5.0

Digite a capacidade do tanque: 800


Digite o número de passageiros: 100
Digite o preço: 399
Digite o Nome: VITORIA
Digite a Data de Lançamento: 28/03/2020
Digite o número de tripulantes: 2

Capacidade do Tanque: 800


Número de passageiros: 100
Preco: 399.0
25

Nome: VITORIA
Data Lançamento: 28/03/2020
Número de Tripulantes: 2
Imprimindo a Relação passageiros por Tripulantes: 50.0

Digite a capacidade do tanque: 200


Digite o número de passageiros: 40
Digite o preço: 400
Digite o Nome: JACUIPENSE
Digite a Data de Lançamento: 24/08/2021
Digite o número de tripulantes: 4

Capacidade do Tanque: 200


Número de passageiros: 40
Preco: 400.0
Nome: JACUIPENSE
Data Lançamento: 24/08/2021
Número de Tripulantes: 4
Imprimindo a Relação passageiros por Tripulantes: 10.0

Digite a capacidade do tanque: 640


Digite o número de passageiros: 250
Digite o preço: 40
Digite o Nome: ALAGOINHAS
Digite a Data de Lançamento: 28/02/2022
Digite o número de tripulantes: 5

Capacidade do Tanque: 640


Número de passageiros: 250
26

Preco: 40.0
Nome: ALAGOINHAS
Data Lançamento: 28/02/2022
Número de Tripulantes: 5
Imprimindo a Relação passageiros por Tripulantes: 25.0

Digite a capacidade do tanque: 1000


Digite o número de passageiros: 10
Digite o preço: 120
Digite o Nome: SPORT
Digite a Data de Lançamento: 21/01/2021
Digite o número de tripulantes: 10

Capacidade do Tanque: 1000


Número de passageiros: 10
Preco: 120.0
Nome: SPORT
Data Lançamento: 21/01/2021
Número de Tripulantes: 10
Imprimindo a Relação passageiros por Tripulantes: 1.0

Digite a capacidade do tanque: 500


Digite o número de passageiros: 77
Digite o preço: 400
Digite o Nome: FORTALEZA
Digite a Data de Lançamento: 01/01/2023
Digite o número de tripulantes: 7

Capacidade do Tanque: 500


27

Número de passageiros: 77
Preco: 400.0
Nome: FORTALEZA
Data Lançamento: 01/01/2023
Número de Tripulantes: 7
Imprimindo a Relação passageiros por Tripulantes: 11.0

Digite a capacidade do tanque: 4500


Digite o número de passageiros: 180
Digite o preço: 500
Digite o Nome: CRB
Digite a Data de Lançamento: 24/06/2022
Digite o número de tripulantes: 36

Capacidade do Tanque: 4500


Número de passageiros: 180
Preco: 500.0
Nome: CRB
Data Lançamento: 24/06/2022
Número de Tripulantes: 36
Imprimindo a Relação passageiros por Tripulantes: 5.0

Digite a capacidade do tanque: 750


Digite o número de passageiros: 15
Digite o preço: 90
Digite o Nome: GLOBO
Digite a Data de Lançamento: 09/04/2023
Digite o número de tripulantes: 5
28

Capacidade do Tanque: 750


Número de passageiros: 15
Preco: 90.0
Nome: GLOBO
Data Lançamento: 09/04/2023
Número de Tripulantes: 5
Imprimindo a Relação passageiros por Tripulantes: 3.0

Digite a capacidade do tanque: 200


Digite o número de passageiros: 600
Digite o preço: 299
Digite o Nome: CEARA
Digite a Data de Lançamento: 07/07/2027
Digite o número de tripulantes: 40

Capacidade do Tanque: 200


Número de passageiros: 600
Preco: 299.0
Nome: CEARA
Data Lançamento: 07/07/2027
Número de Tripulantes: 40
Imprimindo a Relação passageiros por Tripulantes: 15.0

Digite a capacidade do tanque: 85000


Digite o número de passageiros: 2000
Digite o preço: 1500
Digite o Nome: CSA
Digite a Data de Lançamento: 22/03/2022
Digite o número de tripulantes: 500
29

Capacidade do Tanque: 85000


Número de passageiros: 2000
Preco: 1500.0
Nome: CSA
Data Lançamento: 22/03/2022
Número de Tripulantes: 500
Imprimindo a Relação passageiros por Tripulantes: 4.0

Conclusão do trabalho

Este trabalho demonstrou na prática os conceitos de Herança, um dos


pilares de Programação Orientada a Objetos, determinando a hierarquia de
classes e abordando o uso Vetores e Matrizes para o uso de construtores no
instanciamento dos objetos. O conceito de tratamento de exceções também foi
introduzido para identificar e tratar as exceções, para que o programa continue
sendo executado sem erros.
30

Bibliografia

https://www.youtube.com/watch?
v=_PZldwo0vVo&list=PLHz_AreHm4dkqe2aR0tQK74m8SFe aGsY&index=20
http://ead.uva.br/filemanager/file/documentos/EBOOK/POO1_ebook.pdf

Você também pode gostar