Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE VEIGA DE ALMEIDA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS VETORES DE OBJETOS COM TRATAMENTO DE EXCEÇÕES Rio de Janeiro 2022 PROGRAMAÇÃO ORIENTADA A OBJETO I PROFESSOR: MARCO AURÉLIO NOVAES ESTEVES ALUNO: MATEUS MUREB DE MATTOS FERNANDES MATRÍCULA: 20212302076 Rio de Janeiro 2022 INDÍCE 1. INTRODUÇÃO ........................................................................................................................ 4 2. CONTEÚDO ............................................................................................................................ 5 2.1. Diagrama de Classe ....................................................................................................... 5 2.2. Super Classe Veículos .................................................................................................... 5 2.3. Subclasse Avião ............................................................................................................. 7 2.4. Subclasse Navio ............................................................................................................. 9 2.5. Classe de Aplicação ..................................................................................................... 11 2.6. Resultados dos Testes ................................................................................................. 12 3. CONCLUSÃO ........................................................................................................................ 21 4. BIBLIOGRAFIA ...................................................................................................................... 22 1. INTRODUÇÃO Dadas as classes Avião e Navio, será criado uma superclasse que atenda suas necessidades, com todas as funcionalidades comuns à essas classes que são similares. Será criado também uma aplicação que gera, por meio de um vetor único com dez objetos de cada tipo, utilizando sempre o construtor vazio. Será utilizado 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. Será montado o diagrama de hierarquia das classes e definido onde ficará cada atributo após a aplicação do conceito de herança. Após a determinação da hierarquia, as classes serão desenvolvidas separadamente (incluindo a classe de aplicação). 2. CONTEÚDO 2.1. Diagrama de Classe 2.2. Super Classe Veículos package AVA2POO; import java.util.Scanner; public class veiculos { //Atributos private int capacidadedetanque; private int numeropassageiros; private float preco; Scanner sc = new Scanner(System.in); //Metodos //Setters public void setcapacidadeTanque(int ct) { this.capacidadedetanque = ct; } public void setnumeroPassageiros(int np) { this.numeropassageiros = np; } public void setpreco(float p) { this.preco = p; } //Getters 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.parseInt(sc.nextLine())); } public void EntradanumeroPassageiros() { System.out.print("Numero de Passageiros: "); setnumeroPassageiros(Integer.parseInt(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"); } } 2.3. Subclasse Avião package AVA2POO; import java.util.Scanner; public class aviao extends veiculos { //Atributos private String prefixo; private String datarevisao; //Metodos //Setters public void setprefixo(String p) { this.prefixo = p; } public void setdataRevisao(String d) { this.datarevisao = d; } //Getters public String getprefixo() { return this.prefixo; } public String getdataRevisao() { return this.datarevisao; } public void reajustapreco() { String reajustar; String teste = "s"; float reajuste; System.out.println("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"); } } public void EntradaPrefixo() { System.out.print("Digite o prefixo: "); setprefixo(sc.nextLine()); } public void EntradadataRevisao() { System.out.print("Digite a data de Revisão: "); setdataRevisao(sc.nextLine()); } public void Cadastrar() { super.Cadastrar(); EntradadadataRevisao(); EntradaPrefixo(); } public void Imprimir() { super.Imprimir(); getprefixo(); getdataRevisao(); reajustapreco(); } } 2.4. Subclasse Navio package AVA2POO; import java.util.Scanner; public class navio extends veiculos { //Atributos private String nome; private int numerotripulantes; private String datalancamento; //Metodos //Setters public void setnome(String no) { this.nome = no; } public void setnumeroTripulantes(int nt) { this.numerotripulantes = nt; } public void setdataLancamento(String d) { this.datalancamento = d; } //Getters 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.println("numero de passageiros x tripulantes = " + razao ); } else { System.out.println("numero de tripulantes é maior do que o de passageiros "); } } public void EntradaNumerodeTripulantes() { System.out.print("Numero de Tripulantes: "); setnumeroTripulantes(Integer.parseInt(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(); } } 2.5. Classe de Aplicação package ava2poo; public class aplicacao { public static void main(String[] args) { aviao vetAviao[] = new aviao[10]; //recriar como vetores for (int i = 0; i < vetAviao.length; i++) { vetAviao[i] = new aviao(); System.out.println("Insira os Dados do " + (i + 1) + "º Avião"); vetAviao[i].Cadastrar(); System.out.println("Listagem dos Dados do " + (i + 1) + "º Avião"); vetAviao[i].Imprimir(); } navio vetNavio[] = new navio[10]; //recriar como vetores System.out.println("Dados do Navio"); for (int i = 0; i < vetNavio.length; i++) { vetNavio[i] = new navio(); System.out.println("Insira os Dados do " + (i + 1) + "º Navio"); vetNavio[i].Cadastrar(); System.out.println("Listagem dos Dados do " + (i + 1) + "º Navio"); vetNavio[i].Imprimir(); } } } 2.6. Resultados dos Testes 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 Capacidadedo tanque: 300 NumeroPassageiros: 500 Preço: 500.0 Deseja reajustar o preço? digite s para continuar n 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: II200 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 n 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 n 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 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 3. CONCLUSÃO O uso de Superclasses e Subclasses de objetos pode facilitar muito o desenvolvimento de determinados projetos, diminuindo a complexidade e favorecendo a manutenção do sistema. Já que é muito mais simples fazer uma troca uma vez só do que ter que fazer para todos os objetos afetados. Também facilita a visualização e entendimento do programa. 4. BIBLIOGRAFIA E-book da disciplina - PROGRAMAÇÃO ORIENTADA A OBJETOS I Curso de Programação em Java - Bóson Treinamentos: https://www.youtube.com/playlist?list=PLucm8g_ezqNrQmqtO0qmew8sKXEEc aHvc https://www.youtube.com/playlist?list=PLucm8g_ezqNrQmqtO0qmew8sKXEEcaHvc https://www.youtube.com/playlist?list=PLucm8g_ezqNrQmqtO0qmew8sKXEEcaHvc
Compartilhar