Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE VEIGA DE ALMEIDA
Entrega da Avaliação – POO I [AVA 2]
FILIPE GONÇALVES ISQUIERDO– 20191302246
PROGRAMAÇÃO ORIENTADA A OBJETO I
Prof.: MARCO AURELIO NOVAES ESTEVES
Rio de Janeiro 2020.3
 
 Trabalho apresentado no curso 
Superior em Sistemas de Informação da 
Universidade Veiga de Almeida, como requisito 
para obtenção do certificado de
PROGRAMAÇÃO ORIENTADA A OBJETOS I
 Professor Orientador: MARCO AURELIO NOVAES ESTEVES 
10
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	19
Conclusão do trabalho	29
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.
Conteúdo
Documentação do projeto com o gráfico hierárquico das classes
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){
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 {
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() {
}
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()); 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();
}
}
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;
}
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() {
}
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());
}
@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();
}
}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”
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;
}
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);
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: 15
Digite a capacidade do tanque: 1500 Digite o número de passageiros: 250 Digite o preço: 25
Digite o Prefixo: iguacu
Digite a Data da Revisão: 12/04/2021
Capacidade do Tanque: 1500 Número de passageiros: 250 Preco: 28.75
Prefixo: iguacu
Data da revisão: 12/04/2021 
Defina o Percentual: 20
Digite a capacidade do tanque: 500 Digite o número de passageiros: 0 Digite o preço: 50,45
Digite o Prefixo: Vxien
Digite a Data da Revisão: 05/05/2020
Capacidade do Tanque: 500 Número de passageiros: 0 Preco: 60.540000000000006
Prefixo: Vxien
Data da revisão: 05/05/2020
Defina o Percentual: 50
Digite a capacidade do tanque: 46 Digite o número de passageiros: 100 Digite o preço: 120
Digite o Prefixo: GUi
Digite a Data da Revisão: 06/12/2019
Capacidade do Tanque: 46 Número de passageiros: 100 Preco: 180.0
Prefixo: GUi
Data da revisão: 06/12/2019 
Defina o Percentual: 100
Digite a capacidade do tanque: 60 Digite o número de passageiros: 48 Digite o preço: 49
Digite o Prefixo: FAUNA
Digite a Data da Revisão: 09/08/2022
Capacidade do Tanque: 60 Número de passageiros: 48 Preco: 98.0
Prefixo: FAUNA
Data da revisão: 09/08/2022
Defina o Percentual: 79
Digite a capacidade do tanque: 12 Digite o número de passageiros: 90 Digite o preço: 100
Digite o Prefixo: BrZi
Digite a Data da Revisão: 02/02/2023
Capacidade do Tanque: 12 Número de passageiros: 90 Preco: 179.0
Prefixo: BrZi
Data da revisão: 02/02/2023 
Defina o Percentual: 80
Digite a capacidade do tanque: 78 Digite o número de passageiros: 120 Digite o preço: 28,75
Digite o Prefixo: DUdl
Digite a Data da Revisão: 07/11/2020
Capacidade do Tanque: 78 Número de passageiros: 120 Preco: 51.75
Prefixo: DUdl
Data da revisão: 07/11/2020
Defina o Percentual: 95
Digite a capacidade do tanque: 150 Digite o número de passageiros: 0 Digite o preço: 90
Digite o Prefixo: Horo
Digite a Data da Revisão: 30/07/2020
Capacidade do Tanque: 150 Número de passageiros: 0 Preco: 175.5
Prefixo: Horo
Data da revisão: 30/07/2020 
Defina o Percentual: 25
Digite a capacidade do tanque: 40 Digite o número de passageiros: 10 Digite o preço: 0,50
Digite o Prefixo: Ale
Digite a Data da Revisão: 30/02/2030
Capacidade do Tanque: 40 Número de passageiros: 10 Preco: 0.625
Prefixo: Ale
Data da revisão: 30/02/2030
Defina o Percentual: 36
Digite a capacidade do tanque: 800 Digite o número de passageiros: 64 Digite o preço: 1500
Digite o Prefixo: Prog
Digite a Data da Revisão: 12/12/2025
Capacidade do Tanque: 800 Número de passageiros: 64 Preco: 2040.0
Prefixo: Prog
Data da revisão: 12/12/2025
 Defina o Percentual: 100
Digite a capacidade do tanque: 560 Digite o número de passageiros: 10 Digite o preço: 81
Digite o Prefixo: Prtss
Digite a Data da Revisão: 25/07/2020
Capacidade do Tanque: 560 Número de passageiros: 10 Preco: 162.0
Prefixo: Prtss
Data da revisão: 25/07/2020
	----- Navios ----
Digite a capacidade do tanque: 500 Digite o número de passageiros: 50 Digite o preço: 45
Digite o Nome: BRASIL
Digite a Data de Lançamento: 12/12/2019 Digite o número de tripulantes: 10
Capacidade do Tanque: 500 Número de passageiros: 10 Preco: 45.0
Nome: BRASIL
Data Lançamento: 12/12/2019 Número de Tripulantes: 50
Imprimindo a Relação passageiros por Tripulantes: 5.0
Digite a capacidade do tanque: 10000 Digite o número de passageiros: 10 Digite o preço: 250
Digite o Nome: AVI200
Digite a Data de Lançamento: 01/02/2020 Digite o número de tripulantes: 4
Capacidade do Tanque: 10000 Número de passageiros: 10 Preco: 250.0
Nome: AVI200
Data Lançamento: 01/02/2020 Número de Tripulantes: 4
Imprimindo a Relação passageiros por Tripulantes: 2.0
Digite a capacidade do tanque: 780 Digite o número de passageiros: 100 Digite o preço: 400
Digite o Nome: BRZAV1
Digite a Data de Lançamento: 02/03/2019 Digite o número de tripulantes: 10
Capacidade do Tanque: 780 Número de passageiros: 100 Preco: 400.0
Nome: BRZAV1
Data Lançamento: 02/03/2019 Número de Tripulantes: 10
Imprimindo a Relação passageiros por Tripulantes: 10.0
Digite a capacidade do tanque: 900 Digite o número de passageiros: 40 Digite o preço: 2,50
Digite o Nome: VAREJO
Digite a Data de Lançamento: 25/11/2019 Digite o número de tripulantes: 6 Capacidade do Tanque: 900
Número de passageiros: 40 Preco: 2.5
Nome: VAREJO
Data Lançamento: 25/11/2019 Número de Tripulantes: 6
Imprimindo a Relação passageiros por Tripulantes: 6.0
Digite a capacidade do tanque: 82000 Digite o número de passageiros: 300 Digite o preço: 45
Digite o Nome: BOTAFOGO
Digite a Data de Lançamento: 01/01/2021 Digite o número de tripulantes: 12
Capacidade do Tanque: 82000 Número de passageiros: 300 Preco: 45.0
Nome: BOTAFOGO
Data Lançamento: 01/01/2021 Número de Tripulantes: 12
Imprimindo a Relação passageiros por Tripulantes: 25.0
Digite a capacidade do tanque: 40000 Digite o número de passageiros: 60 Digite o preço: 21
Digite o Nome: TRUST
Digite a Data de Lançamento: 07/07/2020 Digite o número de tripulantes: 8 Capacidade do Tanque: 40000
Número de passageiros: 60 Preco: 21.0
Nome: TRUST
Data Lançamento: 07/07/2020 Número de Tripulantes: 8
Imprimindo a Relação passageiros por Tripulantes: 7.0
Digite a capacidade do tanque: 965000 Digite o número de passageiros: 9 Digite o preço: 800
Digite o Nome: PRESIDENTE
Digite a Data de Lançamento: 21/05/2021 Digite o número de tripulantes: 3
Capacidade do Tanque: 965000 Número de passageiros: 9 Preco: 800.0
Nome: PRESIDENTE
Data Lançamento: 21/05/2021 Número de Tripulantes: 3
Imprimindo a Relação passageiros por Tripulantes: 3.0
Digite a capacidade do tanque: 50 Digite o número de passageiros: 2 Digite o preço: 4
Digite o Nome: BASICO
Digite a Data de Lançamento: 27/01/2021 Digite o número de tripulantes: 1 Capacidade do Tanque: 50
Número de passageiros: 2 Preco: 4.0
Nome: BASICO
Data Lançamento: 27/01/2021 Número de Tripulantes: 1
Imprimindo a Relação passageiros por Tripulantes: 2.0
Digite a capacidade do tanque: 700 Digite o número de passageiros: 30 Digite o preço: 250
Digite o Nome: POO
Digite a Data de Lançamento: 03/03/2021 Digite o número de tripulantes: 3
Capacidade do Tanque: 700 Número de passageiros: 30 Preco: 250.0
Nome: POO
Data Lançamento: 03/03/2021 Número de Tripulantes: 3
Imprimindo a Relação passageiros por Tripulantes: 10.0
Digite a capacidade do tanque: 150000 Digite o número de passageiros: 200 Digite o preço: 150
Digite o Nome: GUGA
Digite a Data de Lançamento: 15/07/2020 Digite o número de tripulantes: 10 Capacidade do Tanque: 150000
Número de passageiros: 200 Preco: 150.0
Nome: GUGA
Data Lançamento: 15/07/2020 Número de Tripulantes: 10
Imprimindo a Relação passageiros por Tripulantes: 20.0 
CONSTRUÍDO COM SUCESSO (tempo total: 15 minutos 52 segundos)
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 hierarquiade 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.

Mais conteúdos dessa disciplina