Prévia do material em texto
TRABALHO DE PROGRAMAÇÃO ORIENTADA A OBJETOS I
Nome: Juliana Tavares
Curso: Sistema de Informações
CAMPUS: Tijuca
Objetivo:
Desenvolvimento de projeto de aplicação com uso de vetores de objetos com tratamento de exceções
O uso de vetores e matrizes de objetos pode facilitar muito o desenvolvimento de determinados projetos, facilitando o desenvolvimento, diminuindo a complexidade e favorecendo a manutenção do sistema.
Dadas as classes a seguir, crie uma superclasse para atender às necessidades das subclasses, com todas as funcionalidades comuns às classes similares. Crie também uma aplicação que gere, por meio de um vetor único com dez objetos de cada tipo, utilizando sempre o construtor vazio. Utilize o tratamento de exceções para proteger a aplicação contra possíveis entradas de dados inválida com os métodos da classe Scanner.
Classes:
Classe
Atributos
Métodos
Aviao
Prefixo : Texto
CapacidadeTanque : inteiro
NumeroPassageiros : inteiro
Preco : real
DataRevisao : Texto
· Acesso (setters e getters).
· Construtores: pelo menos dois métodos construtores.
· imprimir(): exibe os dados do objeto.
. entrada(): realiza a entrada de dados pelo teclado
· reajustarPreco(percentual : real): reajusta o preço do avião, alterando o valor do atributo de acordo com o percentual passado como parâmetro.
Navio
Nome : Texto
CapacidadeTanque : inteiro
NumeroPassageiros : inteiro
NumeroTripulantes : inteiro
Preco : real
DataLancamento : Texto
· Acesso (setters e getters).
· Construtores: pelo menos cinco métodos construtores.
· imprimir(): exibe os dados do objeto.
· entrada(): realiza a entrada de dados pelo teclado
· passageirosPorTripulantes(): retorna a divisão do número de passageiros pelo número de tripulantes. Os valores usados nesse método são atributos, por isso não precisam ser passados como parâmetros.
Observações:
1. A superclasse deverá possuir dois métodos construtores também.
2. Apenas atributos com o mesmo nome e do mesmo tipo podem ser considerados similares para a herança.
3. Os atributos devem ser protegidos contra acesso direto.
Monte o diagrama de hierarquia das classes e defina onde ficará cada atributo após a aplicação do conceito de herança. Após a determinação da hierarquia, desenvolva separadamente as classes (incluindo a classe de aplicação). O projeto deve então ser documentado em um arquivo do Word e postado no ambiente de avaliação.
Desenvolvimento:
-SuperClasse/Classe Raiz
package ava2poo;
import java.util.Scanner;
public class superClasse (
/lAtributos
private int capacidadedetanque;
private int numeropassageiros;
private float preco;
Scanner sc = new Scanner(System.in);
/IMetodos
/IMetodos-set
public void setcapacidadeTanque(int ct) (
this.capacidadedetanque = ct;
)
public void setnumeroPassageiros(int np) (
this.numeropassageiros = np;
)
public void setpreco(float p) (
this.preco = p;
) /|Metodos-get
public int getcapacidadeTanque() (
return this.capacidadedetanque;
)
public int getnumeroPassageiros() (
return this.numeropassageiros;
)
public float getpreco() (
return this.preco;
)
public void EntradaCapacidadeTanque() (
System.out.print("Capacidade do tanque: ");
setcapacidadeTanque(Integer.parselnt(sc.nextLine()));
)
public void EntradanumeroPassageiros() (
System.out.print("Numero de Passageiros: ");
setnumeroPassageiros(Integer.parselnt(sc.nextLine()));
) public void EntradaPreco() (
System.out.print("Preço: ");
setpreco(Float.parseFloat(sc.nextLine()));
)
public void Cadastrar() (
EntradaCapacidadeTanque();
EntradanumeroPassageiros();
EntradaPreco();
)
public void Imprimir() (
System.out.print("Capacidade do tanque: " + getcapacidadeTanque() + "n");
System.out.print("NumeroPassageiros: " + getnumeroPassageiros() + "n");
System.out.print("Preço: " + getpreco() + "n");
)
Classe Avião/filha
package ava2poo;
import java.util.Scanner;
public class aviao extends superClasse (
/lAtributos
private String prefixo;
private String datarevisao;
/IMetodos
/IMetodos-set
public void setprefixo(String p) (
this.prefixo = p;
)
public void setdataRevisao(String d) (
this.datarevisao = d;
) /|Metodos-get
public String getprefixo() (
return this.prefixo;
) public String getdataRevisao() (
return this.datarevisao;
public void reajustapreco() (
String reajustar;
String teste = "s";
float reajuste;
System.out.printin("Deseja reajustar o preço? digite s para continuar");
reajustar = sc.nextLine();
if (teste.equals(reajustar)) (
System.out.print("Digite o valor percentual para ajustar o preço, exemplo 20 para
20% de reajuste: ");
reajuste = Float.parseFloat(sc.nextLine());
System.out.print("Preço Reajustado: " + (getpreco() * ((reajuste / 100) + 1)) +"
nº); )
j
public void EntradaPrefixo() (
System.out.print("Digite o prefixo: ");
setprefixo(sc.nextLine());
j
public void EntradadataRevisao() (
System.out.print("Digite a data de Revisão: ");
setdataRevisao(sc.nextLine());
j
public void Cadastrar() (
super.Cadastrar();
EntradadadataRevisao();
EntradaPrefixo();
j
public void Imprimir() (
super.Imprimir();
getprefixo();
getdataRevisao();
reajustapreco();
) ) Classe Navio/Filha
package ava2poo;
import java.util.Scanner;
public class navio extends superClasse (
/lAtributos
private String nome;
private int numerotripulantes;
private String datalancamento;
/IMetodo
/IMetodos-set
public void setnome(String no) (
this.nome = no;
)
public void setnumeroTripulantes(int nt) (
this.numerotripulantes = nt;
public void setdataLancamento(String d) (
this.datalancamento = d;
)
/|Metodos-get
public String getnome() (
return this.nome;
)
public int getnumeroTripulantes() (
return this.numerotripulantes;
) public String getdataLancamento() (
return this.datalancamento;
)
public void passageirosportripulante() (
int passag = getnumeroPassageiros();
int tripu = getnumeroTripulantes();
float razao = (passag / tripu);
if (passag >= tripu ) (
System.out.printin("numero de passageiros x tripulantes = " + razao );
kelse (
System.out.printin("numero de tripulantes é maior do que o de passageiros ");
) )
public void EntradaNumerodeTripulantes() (
System.out.print("Numero de Tripulantes: ");
setnumeroTripulantes(Integer.parselnt(sc.nextLine()));
)
public void Cadastrar() (
Scanner sc = new Scanner(System.in);
super.Cadastrar();
EntradaNumerodeTripulantes();
)
public void Imprimir() (
super.Imprimir();
System.out.print("Numero de Tripulantes: " + getnumeroTripulantes() + "n");
passageirosportripulante();
) )
Classe de Aplicação
package ava2poo;
public class aplicacao (
public static void main(Stringl] args) (
aviao vetAviao[] = new aviao[10]; //recriar como vetores
for (int i = O; i < vetAviao.length; i++) (
vetAviao[i] = new aviao();
System.out.printin("------ Insira os Dados do " + (i+ 1) + "º Avião --—— 5;
vetAviaoi].Cadastrar();
System.out.printin("------ Listagem dos Dados do " + (i+ 1) + "º Avião ---—- 5;
vetAviaofi].Imprimir();
)
navio vetNavio[] = new navio[10]; //recriar como vetores
System.out.printin("------ Dados do Navio ------ 5;
for (int i = O; i < vetNavio.length; i++) (
vetNavio[i] = new navio();
System.out.printin("------ Insira os Dados do " + (i+ 1) + "º Navio --—-—- 5;
vetNavioli].Cadastrar();
System.out.printin("------ Listagem dos Dados do " + (i+ 1) +"º Navio --—— 5:
vetNavio[i].Imprimir();
) ) ) Apresentação dos resultados dos testes realizados
com o projeto.
run:
==———— Insira os Dados do 1º Avião ------
Capacidade do tanque: 300
Numero de Passageiros: 500
Preço: 500
Digite a data de Revisão: 21/12/2020
Digite o prefixo: HH123
==———— Listagem dos Dados do 1º Avião ----—-
Capacidade do tanque: 300
NumeroPassageiros: 500
Preço: 500.0
Deseja reajustar o preço? digite s para continuar
==———— Insira os Dados do 2º Avião ------
Capacidade do tanque: 600
Numero de Passageiros: 800
Preço: 100
Digite a data de Revisão: 11/11/2011
Digite o prefixo: TT1000
==———— Listagem dos Dados do 2ºAvião ------
Capacidade do tanque: 600
NumeroPassageiros: 800
Preço: 100.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
120
Preço Reajustado: 220.0
==———— Insira os Dados do 3º Avião ------
Capacidade do tanque: 600
Numero de Passageiros: 2
Preço: 1000
Digite a data de Revisão: 01/01/2099
Digite o prefixo: GG33
==———— Listagem dos Dados do 3º Avião ----—-
Capacidade do tanque: 600
NumeroPassageiros: 2
Preço: 1000.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
1
Preço Reajustado: 1010.0
==———— Insira os Dados do 4º Avião ------
Capacidade do tanque: 500
Numero de Passageiros: 300
Preço: 100
Digite a data de Revisão: 01/01/2020
Digite o prefixo: 11200
==———— Listagem dos Dados do 4º Avião ------
Capacidade do tanque: 500
NumeroPassageiros: 300
Preço: 100.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
20
Preço Reajustado: 120.00001
==———— Insira os Dados do 5º Avião ------
Capacidade do tanque: 300
Numero de Passageiros: 2
Preço: 20
Digite a data de Revisão: 01/01/3000
Digite o prefixo: YY222
==———— Listagem dos Dados do 5º Avião ----—-
Capacidade do tanque: 300
NumeroPassageiros: 2
Preço: 20.0
Deseja reajustar o preço? digite s para continuar
==———— Insira os Dados do 6º Avião ------
Capacidade do tanque: 333
Numero de Passageiros: 222
Preço: 200
Digite a data de Revisão: 01/01/2111
Digite o prefixo: FFVII
==———— Listagem dos Dados do 6º Avião ------
Capacidade do tanque: 333
NumeroPassageiros: 222
Preço: 200.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
30
Preço Reajustado: 260.0
==———— Insira os Dados do 7º Avião ------
Capacidade do tanque: 500
Numero de Passageiros: 133
Preço: 600
Digite a data de Revisão: 01/01/1500
Digite o prefixo: PAC22
==———— Listagem dos Dados do 7º Avião ----—-
Capacidade do tanque: 500
NumeroPassageiros: 133
Preço: 600.0
Deseja reajustar o preço? digite s para continuar
==———— Insira os Dados do 8º Avião ------
Capacidade do tanque: 123
Numero de Passageiros: 321
Preço: 900
Digite a data de Revisão: 21/01/2020
Digite o prefixo: PP222
==———— Listagem dos Dados do 8º Avião ------
Capacidade do tanque: 123
NumeroPassageiros: 321
Preço: 900.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
10
Preço Reajustado: 990.0
==———— Insira os Dados do 9º Avião ------
Capacidade do tanque: 300
Numero de Passageiros: 323
Preço: 600
Digite a data de Revisão: 01/01/2022
Digite o prefixo: LL111
==———— Listagem dos Dados do 9º Avião ------
Capacidade do tanque: 300
NumeroPassageiros: 323
Preço: 600.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
30
Preço Reajustado: 780.0
==———— Insira os Dados do 10º Avião ------
Capacidade do tanque: 777
Numero de Passageiros: 444
Preço: 700
Digite a data de Revisão: 01/01/3000
Digite o prefixo: UU321
==———— Listagem dos Dados do 10º Avião -----
Capacidade do tanque: 777
NumeroPassageiros: 444
Preço: 700.0
Deseja reajustar o preço? digite s para continuar
s
Digite o valor percentual para ajustar o preço, exemplo 20 para 20% de reajuste:
50
Preço Reajustado: 1050.0
===——— Dados do Navio ------
==———— Insira os Dados do 1º Navio ------
Capacidade do tanque: 300
Numero de Passageiros: 10
Preço: 500
Numero de Tripulantes: 2
=-mmmm Listagem dos Dados do 1º Navio ------
Capacidade do tanque: 300
NumeroPassageiros: 10
Preço: 500.0
Numero de Tripulantes: 2
numero de passageiros x tripulantes = 5.0
==———— Insira os Dados do 2º Navio ------
Capacidade do tanque: 600
Numero de Passageiros: 200
Preço: 666
Numero de Tripulantes: 3
===——— Listagem dos Dados do 2º Navio ------
Capacidade do tanque: 600
NumeroPassageiros: 200
Preço: 666.0
Numero de Tripulantes: 3
numero de passageiros x tripulantes = 66.0
==———— Insira os Dados do 3º Navio ------
Capacidade do tanque: 600
Numero de Passageiros: 1000
Preço: 664
Numero de Tripulantes: 500
===——— Listagem dos Dados do 3º Navio ------
Capacidade do tanque: 600
NumeroPassageiros: 1000
Preço: 664.0
Numero de Tripulantes: 500
numero de passageiros x tripulantes = 2.0
==———— Insira os Dados do 4º Navio ------
Capacidade do tanque: 700
Numero de Passageiros: 500
Preço: 456
Numero de Tripulantes: 200
===——— Listagem dos Dados do 4º Navio ------
Capacidade do tanque: 700
NumeroPassageiros: 500
Preço: 456.0
Numero de Tripulantes: 200
numero de passageiros x tripulantes = 2.0
==———— Insira os Dados do 5º Navio ------
Capacidade do tanque: 600
Numero de Passageiros: 300
Preço: 777
Numero de Tripulantes: 300
===——— Listagem dos Dados do 5º Navio ------
Capacidade do tanque: 600
NumeroPassageiros: 300
Preço: 777.0
Numero de Tripulantes: 300
numero de passageiros x tripulantes = 1.0
==———— Insira os Dados do 6º Navio ------
Capacidade do tanque: 200
Numero de Passageiros: 555
Preço: 987
Numero de Tripulantes: 1999
===——— Listagem dos Dados do 6º Navio ------
Capacidade do tanque: 200
NumeroPassageiros: 555
Preço: 987.0
Numero de Tripulantes: 1999
numero de tripulantes é maior do que o de passageiros
==———— Insira os Dados do 7º Navio ------
Capacidade do tanque: 300
Numero de Passageiros: 200
Preço: 20
Numero de Tripulantes: 10
===——— Listagem dos Dados do 7º Navio ------
Capacidade do tanque: 300
NumeroPassageiros: 200
Preço: 20.0
Numero de Tripulantes: 10
numero de passageiros x tripulantes = 20.0
==———— Insira os Dados do 8º Navio ------
Capacidade do tanque: 500
Numero de Passageiros: 300
Preço: 999
Numero de Tripulantes: 200
===——— Listagem dos Dados do 8º Navio ------
Capacidade do tanque: 500
NumeroPassageiros: 300
Preço: 999.0
Numero de Tripulantes: 200
numero de passageiros x tripulantes = 1.0
==———— Insira os Dados do 9º Navio ------
Capacidade do tanque: 3000
Numero de Passageiros: 4000
Preço: 500
Numero de Tripulantes: 200
===——— Listagem dos Dados do 9º Navio ------
Capacidade do tanque: 3000
NumeroPassageiros: 4000
Preço: 500.0
Numero de Tripulantes: 200
numero de passageiros x tripulantes = 20.0
==———— Insira os Dados do 10º Navio ------
Capacidade do tanque: 300
Numero de Passageiros: 400
Preço: 506
Numero de Tripulantes: 200
===——— Listagem dos Dados do 10º Navio ------
Capacidade do tanque: 300
NumeroPassageiros: 400
Preço: 506.0
Numero de Tripulantes: 200
Numero de passageiros x tripulantes = 2.0
CONTRUÍDO COM SUCESSO ( tempo total: 10 minutos e 12 segundos)
BIBLIOGRAFIA:
CURSO: Java COMPLETO Programação Orientada a Objetos +Projetos | Udemy