Prévia do material em texto
UNIJORGE – CENTRO UNIVERSITARIO JORGE AMADO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Camaçari/Ba 2023 Alisson Pacheco do Nascimento Análise e Projeto de Sistemas de Informação I AVA2 – Desenvolvimento de projeto de aplicação com uso de vetores de objetos com tratamento de exceções. Trabalho de avaliação da matéria de análise e projetos de sistemas de informação 1, apresentado a Universidade Unijorge como requisito para avaliação em análise e desenvolvimento de sistemas -AVA 2 Professor: Leandro Sady Rodrigues SUMÁRIO INTRODUÇÃO Este trabalho tem como objetivo desenvolver habilidades de programação com Java, da disciplina de Programação de Objetos I AVA 2, utilizando o uso de vetores e matrizes de objetos para facilitar o desenvolvimento de determinados projetos, facilitar o desenvolvimento, reduzir a complexidade e favorecer a manutenção do sistema. Criação de uma subclasse para atender às necessidades das subclasses, com todas as funcionalidades comuns a classes semelhantes. Além disso, criar uma aplicação que controle, através de um único vetor com dez objetos de cada tipo, sempre utilizando um construtor vazio. Usando o processamento de inicialização para proteger o aplicativo de possíveis entradas de dados inválidos usando métodos da classe Scanner. 2 5 1 GRÁFICO HIERÁQUICO DAS CLASSES 6 2 CODIFICAÇÃO DAS CLASSES E APLICAÇÃO -SuperClasse/Classe Raiz package ava2poo; import java.util.Scanner; public class superClasse { //Atributos private int capacidadedetanque; private int numeropassageiros; private float preco; Scanner sc = new Scanner(System.in); //Metodos //Metodos-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.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"); } } Classe Avião/filha package ava2poo; import java.util.Scanner; public class aviao extends superClasse { //Atributos private String prefixo; private String datarevisao; //Metodos //Metodos-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.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(); } } Classe Navio/Filha package ava2poo; import java.util.Scanner; public class navio extends superClasse { //Atributos private String nome; private int numerotripulantes; private String datalancamento; //Metodo //Metodos-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.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() 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(); } } } 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 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 CONSTRUÍDO COM SUCESSO (tempo total: 10 minutos 12 segundos) Conclusão do Trabalho Ao longo deste trabalho, seguimos um processo rigoroso de análise e implementação, que culminou na criação de uma aplicação Java capaz de gerenciar objetos por meio de um vetor único. A hierarquia de classes que desenvolvemos permitiu-nos criar subclasses específicas para atender às necessidades individuais, ao mesmo tempo que aproveitamos todas as funcionalidades comuns das classes ‘’pai’’. O uso de construtores vazios e a aplicação de tratamento de exceções com métodos de classe Scanner foram elementos fundamentais para garantir a robustez e a segurança da aplicação, protegendo-a contra entradas de dados inválidos. O diagrama de hierarquia de classes UML, que elaboramos e implementamos no NetBeans, desempenhou um papel fundamental na visualização e compreensão da estrutura do projeto. Ele serviu como um guia valioso durante todo o processo de desenvolvimento, auxiliando na organização e na arquitetura do código. Este projeto também nos proporcionou a oportunidade de aplicar os conhecimentos teóricos em um contexto prático, consolidando nossa compreensão de princípios fundamentais de programação. Além disso, a ênfase na reutilização de código e na modularização nos permitiu criar uma aplicação flexível, que pode ser estendida e adaptada facilmente no futuro. Em conclusão, o desenvolvimento deste projeto de aplicação Java com o uso de vetores de objetos e tratamento de exceções foi uma experiência enriquecedora, que nos permitiu aprimorar nossas habilidades de programação e desenvolvimento de software. Espero que este trabalho tenha cumprido as expectativas e demonstrado a nossa capacidade de projetar e implementar aplicações orientadas a objetos eficazes e confiáveis. Referencias Ebook - Canvas. Disponível em: <https://unijorge.instructure.com/courses/34496/modules/items/466573>. Acesso em: 6 set. 2023. Aprofundamentos sobre vetores em Java. Disponível em: <https://www.devmedia.com.br/vetores-em-java/21449>. Tratamento de exceções : aprenda na prática : exemplo Java. Disponível em: <https://www.youtube.com/watch?v=AiIuJqJ0r8A>. Acesso em: 6 set. 2023.