Baixe o app para aproveitar ainda mais
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
Compartilhar