Você está na página 1de 2

ATIVIDADE PRÁTICA SUPERVISIONADA

Programação Orientada a Objetos (5,0 PONTOS)


PROFESSORA SIMONE DE ABREU

TRABALHOS COPIADOS OU SIMILARES SERÃO ZERADOS !!!

Problema: METEOROS NA FAZENDA


Em noites sem nuvens pode-se muitas vezes observar pontos brilhantes no céu que se deslocam
com grande velocidade, e em poucos segundos desaparecem de vista: são as chamadas estrelas
cadentes, ou meteoros. Meteoros são na verdade partículas de poeira de pequenas dimensões
que, ao penetrar na atmosfera terrestre, queimam-se rapidamente (normalmente a uma altura
entre 60 e 120 quilômetros). Se os meteoros são suficientemente grandes, podem não se
queimar completamente na atmosfera e dessa forma atingem a superfície terrestre: nesse caso
são chamados de meteoritos.
Zé Felício é um fazendeiro que adora astronomia e descobriu um portal na Internet que
fornece uma lista das posições onde caíram meteoritos. Com base nessa lista, e conhecendo a
localização de sua fazenda, Zé Felício deseja saber quantos meteoritos caíram dentro de sua
propriedade. Ele precisa de sua ajuda para escrever um programa de computador que faça essa
verificação automaticamente.
Para ajudar o Zé Felício e outros fazendeiros, você deverá implementar uma solução
Orientada a Objetos para o problema. Todas as classes de dados devem possuir Atributos,
Construtores, Getters/Setters e demais métodos que forem necessários.

Construir as seguintes classes:


• Classe Coordenada: classe que representa uma coordenada no plano cartesiano.
Atributos: eixo x e eixo y do tipo inteiro.
Métodos: imprimir() – método que retorna uma string com todos os dados da
classe.

• Classe Meteoro: classe que representa a coordenada de um meteoro. A classe Meteoro


“tem uma” Coordeanda.
Atributo: coordenada do meteoro do tipo Coordenada.
Métodos: imprimir() – método que retorna uma string com todos os dados da
classe.

• Classe Fazenda: classe que representa uma fazenda com seus limites e contém também
uma lista de meteoros que caíram em um determinado dia. Fazenda “tem uma” ou mais
coordenadas. Fazenda “tem uma” lista de Meteoros.
Atributos: nome do tipo string, coordenada do canto superior esquerdo,
coordenada do canto inferior direito e lista de meteoros.
Métodos:
calcularMeteorosCaiuDentro() – método que retorna um inteiro com a
quantidade de meteoros que caiu dentro da fazenda.
imprimir() – método que retorna uma string com todos os dados da classe.
Inclusive a lista de meteoros.

As linhas que delimitam a fazenda são paralelas aos eixos cartesianos. Sua tarefa é escrever um
programa que determine quantos meteoros caíram dentro da fazenda (incluindo meteoros que
caíram exatamente sobre as linhas que delimitam a fazenda).
Classe da Aplicação
A aplicação deve ler dados de um conjunto de fazendas. Não é necessário armazenar as fazendas
em uma lista. A cada fazenda, solicitar o nome, os limites e a lista de meteoros. Verificar quantos
meteoros caíram na fazenda e apresentar os dados da fazenda.

Exemplo de Entrada Exemplo de Saída


Fazenda: Primavera Apresentar todos os dados da fazenda ...
Coordenadas Canto Superior Esquerdo: 2 4
Coordenadas Canto Inferior Direito: 5 1 1 meteoro caiu na Fazenda
Lista das coordenadas de cada meteoro:
Meteoro 1: 1 2
Meteoro 2: 3 3
Fazenda: Quedas Ranchão Apresentar todos os dados da fazenda ...
Coordenadas Canto Superior Esquerdo: 2 4
Coordenadas Canto Inferior Direito: 3 2 2 meteoros caíram na Fazenda
Lista das coordenadas de cada meteoro:
Meteoro 1: 1 1
Meteoro 2: 2 2
Meteoro 3: 3 3

A aplicação deve ser uma GUI (Graphical User Interface) em Java. Além dos componentes visto
em aula, cada equipe pode pesquisar e utilizar outros componentes que achar necessário.

A aplicação deve validar as entradas de dados e realizar os tratamentos de exceção necessários.


Nenhum valor inválido deve ser permitido! Em nenhum momento o programa deve ter sua
execução interrompida por uma entrada de dados errada.

A aplicação deve ter mensagens claras para o usuário e deve informar todos os status de erros,
validação, etc ao usuário.

Restrições

• O nome da fazenda não pode ser vazio.


• As coordenadas da fazenda não podem ter valores zero ou negativos.
• As coordenadas de cada meteoro não podem ter valores zero ou negativos.
• A aplicação deve permitir limpar os campos, após o cadastro de uma
fazenda/meteoros e exibição dos resultados para uma nova utilização.

Entregáveis
O trabalho deve ser desenvolvido em equipes de no mínimo 3 e no máximo 5 alunos.
Cada grupo deve realizar a entrega do projeto compactado, no formato ZIP, pelo Blackboard.
No dia da entrega da APS será realizada uma entrevista com TODOS os integrantes de cada
grupo. Portanto, alunos que faltarem não obterão a nota da APS.

Critérios de Avaliação
Cada grupo terá o seu trabalho avaliado utilizando os seguintes critérios:
• Correto uso dos conceitos de Orientação a Objetos na criação das classes de dados e da
aplicação;
• Correta implementação e funcionamento do programa;
• Legibilidade (comentários e organização);
• Nomeação adequada de variáveis/métodos/classes – uso correto do padrão CamelCase.