·

Análise de Sistemas ·

Linguagens de Programação

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Olá estudante O nosso código está quase pronto mas poderia ficar mais robusto considerando o que aprendemos até o momento em Programação Orientada a Objetos Por isso vamos incluir métodos para testar o nosso código e ainda para usar classes abstratas O que devo desenvolver 1 Todos os requisitos das semanas anteriores 2 Converter a classe financiamento para uma classe abstrata a Mover todos os métodos comuns para essa classe b Fazer com que as subclasses concretas casa apartamento e terreno implementem os métodos definidos por essa classe 3 Para as três subclasses de financiamento incluir novos atributos específicos a cada uma das subclasses a Casa i Incluir um atributo para o tamanho da área construída e outro atributo para o tamanho do terreno b Apartamento i Incluir um atributo para o número de vagas da garagem e outro atributo para o número do andar c Terreno i Incluir um atributo para o tipo de zona exemplo residencial ou comercial 4 Modificar o método main para que você consiga cadastrar os diferentes financiamentos considerando esses novos atributos Bons estudos ATIVIDADE PROJETO DA DISCIPLINA Olá estudante A temática do nosso projeto da disciplina será um Sistema de Simulação de Financiamento de imóveis para um banco Este sistema demonstra conceitos de Programação Orientada a Objetos e Java Além disso ajuda a abstrair conceitos da vida real para sistemas o tipo de desafio que é comum termos no mercado de trabalho Este sistema será desenvolvido incrementalmente durante a disciplina Portanto as funcionalidades descritas a seguir não serão implementadas ainda esta semana mas sim aos poucos e ao decorrer da disciplina conforme as orientações semanais Dessa forma veja a seguir um panorama geral das funcionalidades necessárias para o desenvolvimento completo da aplicação que terá sua entrega final da Semana 08 da disciplina Funcionalidades obrigatórias À medida em que avançarmos na disciplina daremos mais detalhes de cada um dos itens Fique sempre à vontade para tirar as suas dúvidas pelo Fale com a Gente ou nos demais meios de comunicação 1 O sistema usará conceitos de Programação Orientada a Objetos como por exemplo Classes a Objetos b Métodos c Atributos d Polimorfismo e Heranças f g Classes abstratas 2 O sistema será desenvolvido em Java Outras linguagens de programação não são permitidas 3 O sistema simulará financiamentos de Casas a Terrenos b Apartamentos c 4 O sistema utilizará variáveis para o cálculo do financiamento como Duração do financiamento em meses a Valor do imóvel b Taxa de juros anual c 5 O sistema utilizará tratamento de exceções 6 O sistema deverá ser desenvolvido individualmente Não é permitido que uma estudante utilize trechos de código em sua parcialidade ou totalidade que não foram desenvolvidos por si próprioa a O projeto semana a semana O projeto se chama Sistema de Simulação de Financiamentos e abaixo você acompanhará o que será aprendido em cada semana e como você deve aplicar este conhecimento em seu projeto Semana 1 Temas Conceitos básicos de Java IDEs Objetivo Criar algoritmos simples em Java com entrada processamento e saída de dados usando IDEs Atividade diagnóstica Ambientação na disciplina Semana 2 Temas Conceitos básicos de Programação Orientada a Objetos Objetivo Criar algoritmos simples usando técnicas de Programação Orientada a Objetos Atividade formativa Início do desenvolvimento do projeto com entrada e saída de dados classes e objetos Semana 3 Temas Encapsulamento Objetivo Criar algoritmos que façam uso de modificadores de acesso e pacotes packages Atividade formativa Adaptação do projeto para a inclusão de pacotes e modificadores de acesso Semana 4 Entrega da atividade somativa 1 avaliativa Tema Ligação entre objetos Objetivo Utilizar listas para a manipulação de múltiplos objetos Atividade somativa 1 Entregar como atividade somativa a primeira versão do projeto contendo todos os itens desenvolvidos Além disso os dados de financiamento deverão usar listas Semana 5 Temas Heranças entre classes Objetivo Criar algoritmos que tenham relações hierárquicas entre classes Atividade formativa Implementar subclasses de Financiamento Implementar polimorfismo no projeto Semana 6 Tema Classes abstratas Objetivo Criar scripts de maneira modular visando uma codificação mais organizada e focando no reaproveitamento de código Atividade formativa Ajustar o projeto para que a classe responsável pelos financiamentos seja uma classe abstrata Incluir atributos próprios para as subclasses dos financiamentos Semana 7 Tema Tratamento de exceção Objetivo Criar scripts com possibilidade de escrita de dados permanente em disco bem como o tratamento de exceções e erros Atividade formativa Implementar o tratamento de exceções nas classes Implementar novos tipos de exceções Semana 8 Entrega da atividade somativa 2 avaliativa Tema Persistência de dados Objetivo Revisar temáticas vistas nas semanas anteriores Atividade somativa 2 Entregar como atividade somativa a segunda versão do projeto Além das funcionalidades das semanas anteriores será necessário incluir a funcionalidade de leitura e escrita de arquivos de texto além da leitura e escrita de dados serializados Bons estudos ATIVIDADE FORMATIVA Início do projeto da disciplina Olá estudante Conforme as orientações iniciais o projeto envolve a criação de um sistema de simulação de financiamentos imobiliários de um grande banco Este tipo de sistema envolverá os conceitos de Java e de programação orientada a objetos que aprenderemos durante esta disciplina Entendo que você está dando os seus primeiros passos em Java mas que já passou pela disciplina de Raciocínio Computacional Portanto já entende os conceitos básicos de programação Portanto vamos nos focar nos conceitos que aprendemos durante a Semana 1 para desenvolver esta primeira parte do código beleza Este projeto será iterativo Isto significa que o que você construirá na Semana 2 servirá como base para a Semana 3 O que você construirá na Semana 3 servirá como base para a Semana 4 e assim sucessivamente Vamos lá Este projeto é individual e deverá ser desenvolvido em Java Lembrese plágio em qualquer momento do trabalho é sujeito à anulação da nota O que devo desenvolver Veja a seguir um fluxo detalhado do funcionamento desejado para esta atividade 1 Crie a estrutura do seu projeto contendo as seguintes classes Você poderá usar outros nomes se quiser Financiamento a InterfaceUsuario b Main c 2 Veja a explicação do que cada uma dessas classes fará Classe Financiamento a i Esta classe representará um financiamento ii Ela deve conter três atributos valorImovel double prazoFinanciamento int e taxaJurosAnual double iii Deve conter pelo menos três métodos um construtor para inicializar esses atributos um método para calcular o pagamento mensal e outro método para calcular o total do pagamento iv As fórmulas para calcular o pagamento mensal e total do pagamento serão 1 Pagamento mensal valor do imóvel prazo do financiamento 1 taxa anual 12 2 Total do pagamento pagamento mensal prazo do financiamento b Classe InterfaceUsuario i Esta classe é responsável por lidar com a entrada de dados do usuário Estes dados podem ser recebidos via entrada do usuário usando o Scanner ii Métodos 1 Pedir ao usuário o valor do imóvel Ela deve conter um método o qual pede ao usuário para que digite o valor do imóvel e retorne o valor digitado pelo usuário 2 Pedir ao usuário o prazo do financiamento Ela deve conter um método o qual pede ao usuário para que digite o prazo do financiamento em anos e retorne o valor digitado pelo usuário 3 Pedir ao usuário a taxa de juros Ela deve conter um método o qual pede ao usuário para que digite a taxa de juros anual e retorne o valor digitado pelo usuário c Classe Main i Esta é a classe principal do programa ii Ela deve conter o método main onde o fluxo principal do programa será implementado 1 Dentro do método main você deve usar os métodos da classe InterfaceUsuario para ler os dados do financiamento 2 Após ler os dados do financiamento instancie um objeto do tipo Financiamento para criar este financiamento Informações adicionais Você deverá desenvolver todo o projeto em Java Temos algumas sugestões a partir da nossa experiência que possam ser úteis para você 1 Faça os exercícios da unidade de estudos criamos exercícios de fixação em cada unidade de estudos para você Estes exercícios são em sua maioria baseados em casos reais e te ajudam a experimentar e aprender sobre os conteúdos propostos Estes exercícios também o preparam para as nossas atividades logo esperamos que você não tenha dificuldades com as atividades propostas se você fizer os exercícios com atenção antes 2 Não deixe acumular as coisas pensamos em um projeto em que você possa aprender e interagir de uma forma constante mas suave Caso sinta alguma dificuldade conte conosco no Fale com a Gente e nos demais meios de comunicação 3 Se deu erro pare e resolva não implemente mais coisas no código tente entender o que aconteceu e resolva os erros antes de avançar Tente ler as mensagens e procure entender o seu significado Há uma vasta documentação nos mecanismos de busca na internet contendo uma explicação detalhada para todos os erros 4 Pergunte e interaja outros colegas também podem ter a mesma dúvida de você Participe das sessões de TiraDúvidas e converse conosco sempre que se sentir travadoa Conte com a gente Explore efetivamente os canais de comunicação e participe das nossas webconferências Bons estudos ATIVIDADE FORMATIVA Packages e modificadores de acesso Daremos continuidade ao nosso sistema de simulação de financiamentos imobiliários de um grande banco Neste momento adaptaremos o código da atividade anterior para que contenha conceitos de pacotes e modificadores de acesso Lembramos que este projeto é iterativo Portanto usaremos como base o que você já desenvolveu na semana anterior E vale lembrar mais uma vez este projeto é individual em todas as suas fases e deve ser desenvolvido em Java As regras do curso em relação a prazos locais de entrega e plágio também se aplicam a este trabalho O que devo desenvolver Veja a seguir um fluxo detalhado do funcionamento desejado para esta atividade 1 Todos os requisitos da semana anterior 2 Reorganize as classes que você criou em pacotes packages de acordo com a estrutura seguinte Fique à vontade para modificar o nome dos packages a Packages i modelo 1 Classe a Financiamento ii util 1 Classe a InterfaceUsuario iii main 1 Classe a Main 3 Faça as seguintes mudanças quanto ao nível de acesso a Classe Financiamento no pacote modelo i Todos os atributos devem ser privados ii Todos os métodos devem ser públicos iii Inclua um getter para cada um dos atributos privados iv Crie um método público para mostrar na tela uma mensagem contendo os dados do financiamento como o valor total do financiamento e o valor do imóvel b Classe InterfaceUsuario no pacote util i Ajuste os métodos de entrada de dados valor do imóvel prazo de financiamento e taxa de juros para que usem estruturas condicionais como ifelse ou switch dentro dos seus métodos para verificar se as entradas fornecidas pelo usuário são válidas ii Aceite somente valores positivos para o valor do imóvel prazo do financiamento e taxa de juros anual iii Use estruturas de repetição como do dowhile ou for Se algum dos valores for inválido o programa deve informar ao usuário sobre o erro e solicitar que ele insira novamente os dados Informações adicionais 1 Teste por valores inválidos o que acontecer com o seu código se alimentamos um valor do imóvel negativo uma taxa de juros muito alta como 100000000 por ano ou um prazo de financiamento negativo 2 Organize uma classe por arquivo isto pode ser muito útil para testar e organizar o seu código Também faça uso de comentários para que você mesmo saiba o que cada parte do código deve fazer 3 Faça os exercícios os exercícios e exemplos de cada unidade dão a base necessária para fazer essas atividades Não se esqueça de resolvêlos caso esteja sentindo dificuldades Bons estudos ATIVIDADE SOMATIVA 1 Múltiplos financiamentos Olá estudante O nosso sistema de financiamento já possui algumas funcionalidades básicas conseguimos criar um financiamento e estamos garantindo que ele somente tenha valores válidos Agora é o momento de testarmos vários financiamentos ao mesmo tempo O que desenvolver 1 Todos os requisitos das semanas anteriores 2 No método main adicione quatro financiamentos em um ArrayList Cada financiamento será um objeto instanciado da classe financiamento 3 Após adicionar todos os financiamentos mostre na tela o valor total de todos os imóveis e o valor total de todos os financiamentos a Exemplo i Financiamento 1 valor do imóvel R 200000 valor do financiamento R 220000 ii Financiamento 2 valor do imóvel R 300000 valor do financiamento R 380000 iii Financiamento 3 valor do imóvel R 150000 valor do financiamento R 155000 iv Financiamento 4 valor do imóvel R 250000 valor do financiamento R 275000Total de todos os imóveis R 900000 total de todos os financiamentos R 1030000 Informações adicionais 1 Não deixe para a última hora Temos mais sucesso quando organizamos os estudos de forma que fazemos as atividades da semana dentro da semana proposta Assim não ficamos acumulados com atividades e conseguimos aprender adequadamente 2 É melhor entregar parcialmente do que não entregar todo desenvolvimento conta para a sua nota Portanto caso esteja sentindo dificuldades procure ao menos entregar parcialmente o que fez Por outro lado lembrese de que a figura do professortutor existe para lhe ajudar sempre não se sinta sozinho Afinal o papel do professortutor é justamente o de lhe apoiar em seus estudos resolver as suas dúvidas e ajudar em sua progressão na disciplina 3 Você deverá entregar todos os arquivos deste projeto Java em um único arquivo de extensão zip Bons estudos ATIVIDADE FORMATIVA Subclasses Um banco geralmente faz tipos diferentes de financiamento Casas apartamentos e terrenos possuem características diferentes e naturalmente regras diferentes Agora será a hora de colocar tais regras em nosso projeto O que devo desenvolver 1 Todos os requisitos das semanas anteriores 2 Crie três subclasses para Financiamento a Casa i O banco inclui um valor do seguro obrigatório do financiamento para cada casa financiada Portanto inclua um valor adicional de R 80 para cada parcela ii Este valor de R 80 deve ser adicionado depois de ter calculado o valor de cada parcela com os juros Ou seja este valor adicional não substitui os juros mas é uma taxa extra b Apartamento i De acordo com as regras do banco todos os financiamentos de apartamentos deverão usar um sistema de amortização chamado PRICE Este sistema já é usado por vários bancos ii Por isso substitua a equação do cálculo do pagamento mensal para apartamentos A nova fórmula deverá ser 1 Vamos calcular primeiro a taxa mensal Ela é 2 Vamos calcular o valor em meses do financiamento Ela é 3 A nova fórmula será c Terreno i Financiar terrenos possui um risco de inadimplência maior por parte dos compradores ii Por isso cada parcela precisa ter um acréscimo de 2 sobre o seu valor com os juros já incluídos previamente 3 No método main substitua os quatro financiamentos de financiamento por dois financiamentos de casa dois financiamentos de apartamento e um de terreno a Todos os financiamentos deverão permanecer em um único ArrayList b Digitar todas as informações a cada teste é chato Somente peça os dados do usuário para um financiamento c Para os demais financiamentos você poderá informar os dados diretamente no código dentro do seu método main d Mantenha ainda o texto que mostra a soma dos valores dos imóveis e a soma dos valores dos financiamentos Vamos ver um exemplo para que você possa entender melhor o enunciado comparar e testar o seu código 1 Imóvel de R 50000000 10 de juros 10 anos a Financiamento lógica da semana 2 i 500000 1012 1 010 12 4201388 b Nova lógica para casa i Financiamento 80 4281388 c Nova lógica para apartamento i 500000 10101210121010121012 1 6607537 d Nova lógica para terreno i Financiamento 102 4285416 Bons estudos ATIVIDADE FORMATIVA Tratamento de exceções Olá estudante Fizemos alguns tratamentos usando ifelse Mas e se usássemos tratamentos de exceções para melhorar a qualidade do código O que devo desenvolver 1 Todos os requisitos das semanas anteriores 2 Na classe InterfaceUsuario modifique os métodos que criou para que tenham tratamento de exceções para lidar com situações como por exemplo entrada de dados inválidos a Isso significa que os seus métodos deverão ter trycatch ou trycatchfinally 3 Na classe casa crie uma exceção do tipo DescontoMaiorDoQueJurosException quando o valor do desconto dado for maior do que o valor dos juros da mensalidade a Isso significa que esta classe deverá usar o throw Além disso você terá de criar o DescontoMaiorDoQueJurosException segundo os exemplos da semana Bons estudos ATIVIDADE SOMATIVA 2 Leitura e escrita em arquivos Olá estudante O nosso sistema está quase pronto Uma simulação de financiamento é algo importante e que impacta na vida das pessoas Logo é importante que as pessoas possam acessar os dados do financiamento mesmo depois de terem fechado o programa da simulação O que você deve desenvolver Todos os requisitos das semanas anteriores 1 Salvar em um arquivo de texto os dados de cada financiamento Cada linha do arquivo deve conter o valor do imóvel o valor do financiamento a taxa de juros o prazo de financiamento e os atributos específicos da classe especializada exemplo o andar do apartamento caso seja um financiamento de apartamento ou a área construída para uma casa Depois leia novamente esses mesmos dados para comprovar que foram salvos corretamente 2 Salve um arquivo contendo os dados serializados dos financiamentos Isto é salve um arquivo contendo o ArrayList de financiamentos que você criou no método main Depois leia novamente esses mesmos dados para comprovar que foram salvos corretamente 3 Bons estudos