S
UPERVISIONADAS
CST em Análise e Desenvolvimento de Sistemas
4ª. Série
Programação Orientada a Objetos
A atividade prática supervisionada (ATPS) é um procedimento metodológico de ensino-aprendizagem desenvolvido por meio de um conjunto de etapas programadas e supervisionadas e que tem por objetivos:
Favorecer a aprendizagem.
Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e eficaz.
Promover o estudo, a convivência e o trabalho em grupo.
Desenvolver os estudos independentes, sistemáticos e o autoaprendizado. Oferecer diferentes ambientes de aprendizagem.
Auxiliar no desenvolvimento das competências requeridas pelas Diretrizes Curriculares Nacionais dos Cursos de Graduação.
Promover a aplicação da teoria e conceitos para a solução de problemas práticos relativos à profissão.
Direcionar o estudante para a busca do raciocínio crítico e a emancipação intelectual.
Para atingir estes objetivos a ATPS propõe um desafio e indica os passos a serem percorridos ao longo do semestre para a sua solução.
A sua participação nesta proposta é essencial para que adquira as competências e habilidades requeridas na sua atuação profissional.
Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional.
AUTORIA: Cristiane Yae Mi Imamura
COMPETÊNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio, você terá desenvolvido as competências e habilidades que constam, nas Diretrizes Curriculares Nacionais, descritas a seguir.
Desenvolver algoritmos e programas. Tomar decisões e saber implementá-las.
Participação
Esta atividade será, em parte, desenvolvida individualmente pelo aluno e, em parte, pelo grupo. Para tanto, os alunos deverão:
Organizar-se, previamente, em equipes de participantes conforme orientação do
professor.
Entregar seus nomes, RAs e e-mails ao professor da disciplina. Observar, no decorrer das etapas, as indicações: Aluno e Equipe.
Padronização
O material escrito solicitado nesta atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padrão:
Em papel branco, formato A4.
Com margens esquerda e superior de 3cm, direita e inferior de 2cm. Fonte Times New Roman tamanho 12, cor preta.
Espaçamento de 1,5 entre linhas.
Se houver citações com mais de três linhas, devem ser em fonte tamanho 10, com
um recuo de 4cm da margem esquerda e espaçamento simples entre linhas.
Com capa, contendo:
Nome de sua Unidade de Ensino, Curso e Disciplina. Nome e RA de cada participante.
Título da atividade.
Nome do professor da disciplina.
Cidade e data da entrega, apresentação ou publicação.
DESAFIO
O Ministério do Turismo tem incentivado os brasileiros a conhecer melhor o Brasil, exibindo imagens de cenários de exuberante beleza. Um desses cenários é Maraú – BA, que é uma região peninsular, reduto de Mata Atlântica preservado. Maraú possui piscinas naturais, recifes de coral, mares interiores, manguezais, cachoeiras, trilhas ecológicas e diversas praias.
Prevendo o aumento de turistas em Maraú, e sendo uma cidade pequena, alguns moradores resolveram alugar os quartos vagos de suas residências. Cada um desses moradores precisa de um sistema que possa controlar o aluguel dos quartos, no qual devem ser registrados os seguintes dados: nome do locatário, data e horário de entrada do hóspede, data e horário de saída do hóspede, número de pessoas e valor da diária. As diárias iniciam e terminam sempre às 12h.
1 Consulte o Manual para Elaboração de Trabalhos Acadêmicos. Unianhanguera. Disponível em:
Os exemplos a seguir descrevem o número de diárias calculado a partir das datas e horários de entrada e saída.
Entrada: 12/07/2012 13h42min Saída: 15/07/2012 11h50min Número de diárias: 3 Entrada: 12/07/2012 17h00min Saída: 15/07/2012 16h50min Número de diárias: 4
Objetivo do Desafio
Desenvolver um Sistema de Informação para controle de hospedagem.
ETAPA 1 (tempo para realização: 5 horas)
Aula-tema: Conceitos de orientação a objetos: classes e objetos; atributos e
comportamentos. Definição da tecnologia Java e estrutura da linguagem. Implementação de classes e instanciação de objetos.
Esta atividade é importante para que você compreenda os conceitos básicos da programação orientada a objetos, por meio da análise de requisitos do problema, identificação das características e comportamento que devem ser contemplados por uma classe, e manipulação de objeto.
Para realizá-la é importante seguir os passos descritos.
PASSOS
Passo 1 (Aluno)
Ler atentamente os conceitos introdutórios a linguagem Java e definição de classes e objetos no livro texto da disciplina.
Passo 2 (Equipe)
Fazer uma classe para representar o aluguel de um quarto (dica: armazene as informações de data e horário de entrada e saída separadas, ou seja, um campo inteiro para o dia de entrada, um campo inteiro para o mês de entrada, um campo inteiro para o ano de entrada, um campo inteiro para o horário de entrada etc.). Esta classe deve conter métodos para calcular o número de diárias e o valor a ser pago pelo locatário.
Passo 3 (Equipe)
Utilizar a classe desenvolvida no Passo 2 desta etapa e desenvolva um programa capaz de ler do teclado os dados de um aluguel do quarto e imprima o recibo com o seguinte formato:
======================================== Locatário:
Data e horário de entrada: Data e horário de saída: Número de diárias: Total devido:
======================================== Passo 4 (Equipe)
Entregar ao professor da disciplina:
Uma mídia contendo o código fonte comentado do programa, ou seja, os arquivos com extensão java que se referem às classes desenvolvidas no Passo 2 e no Passo 3. Além disso, nesta mídia também deve constar para cada arquivo com extensão java, o seu respectivo arquivo de bytecode (com extensão class).
Um documento impresso com o nome de Relatório 1 constituído de capa, um exemplo de entrada e saída de dados e o código fonte comentado.
Instrução: verificar com o professor da disciplina o tipo de mídia (CD, e-mail etc.) a ser entregue.
ETAPA 2 (tempo para realização: 5 horas)
Aula-tema: Implementação de atributos e métodos. Definição e implementação de
métodos e atributos estáticos. Definição de Usabilidade, Encapsulamento e Acessibilidade. Implementação de Modificadores de acesso (Acessibilidade). Definição de construtores e implementação.
Esta atividade é importante para que você construa um programa menos suscetível a erros, tornando obrigatória a inicialização dos atributos de um objeto, bem como delegando aos métodos de uma classe a responsabilidade exclusiva de manipular os atributos e outros métodos declarados na classe em que se encontram. Além disso, esta atividade permite que você compreenda que certos atributos podem ser compartilhados entre todas as instâncias de uma classe e que é possível definir métodos que não precisam de instâncias para que sejam executados.
Para realizá-la é importante seguir os passos descritos.
PASSOS
Passo 1 (Equipe)
Ler o texto e fazer as atividades a seguir.
Como as hospitalidades e quartos oferecidos aos turistas têm o mesmo padrão, os moradores decidiram estabelecer o mesmo valor de diária. Sabendo-se disso, modifiquem o programa da etapa anterior para que o atributo referente ao valor da diária seja compartilhado entre todas as instâncias da classe que representa o aluguel de um quarto.
A sua classe deve conter um método que permita alterar o valor da diária. Além disso, encapsular os atributos e desenvolvam o método apropriado para inicializar os valores dos mesmos quando uma instância da classe for criada.
Passo 2 (Equipe)
Utilizar a classe modificada no Passo 1 desta etapa e façam um programa que leia primeiramente o valor de diária estabelecido por todos os moradores. Após isso, o programa deve oferecer um menu com as seguintes opções:
1. Registrar entrada em quarto. 2. Registrar saída do quarto. 3. Atualizar o valor da diária. 4. Sair.
A opção 1 deve ler do teclado o nome do locatário, a data e horário de entrada. Caso o quarto já esteja ocupado, o sistema deve apresentar um erro e retornar para o menu sem efetuar qualquer mudança.
A opção 2 deve ler do teclado o horário de saída e imprimir o recibo com o mesmo formato solicitado na etapa anterior. Caso o quarto não esteja ocupado, o sistema deve apresentar um erro e retornar para o menu sem efetuar qualquer mudança.
A opção 3 deve ler o novo valor de diária estabelecido pelos moradores. O valor deve ser maior que zero.
As opções 1, 2 e 3 podem ser realizadas diversas vezes até que a opção 0 seja selecionada e encerre a execução do programa.
Passo 3 (Equipe)
Entregar ao professor da disciplina:
Uma mídia contendo o código fonte comentado do programa (com extensão java) e os respectivos bytecodes (com extensão class), referentes às classes desenvolvidas no Passo 1 e no Passo 2 desta etapa.
Um documento impresso com o nome de Relatório 2 constituído de capa e o código fonte comentado.
Instrução: verificar com o professor da disciplina o tipo de mídia (CD, e-mail etc.) a ser entregue.
ETAPA 3 (tempo para realização: 5 horas)
Aula-tema: Definição de relacionamento entre classes (Associação e Herança).
Implementação de herança. Implementação de associação. Definição de polimorfismo e implementação.
Esta atividade é importante para que você compreenda como pode ser estabelecido o relacionamento entre classes e como estes relacionamentos podem contribuir na elaboração e manutenção de programas com reuso de código e na diminuição da ocorrência de erros.
PASSOS
Passo 1 (Aluno)
Ler atentamente os conceitos referentes à herança e polimorfismo no livro texto da disciplina. Passo 2 (Equipe)
Ler o texto e fazer as atividades a seguir.
Com o aumento no fluxo de turistas a associação de moradores de Maraú decidiu construir uma pousada com 50 quartos (numerados de 1 a 50) e 10 chalés (numerados de 51 a 60). O aluguel dos quartos tem o mesmo esquema de cobrança definido nas etapas anteriores, já o aluguel dos chalés tem um custo da tarifa 20% maior que o dos quartos e permite que sejam incluídas camas extras. Cada cama extra tem o custo de 10% do valor de uma diária.
Modificar o programa feito na etapa anterior para criar uma classe que represente o aluguel de um chalé que tem os mesmos dados dos quartos e, além destes, armazena o número de camas extras solicitadas.
Criar uma classe para representar a pousada e nela defina um único vetor capaz de armazenar as instancias das acomodações que estejam ocupadas.
Passo 3 (Equipe)
Considerar as classes desenvolvidas no Passo 2 desta etapa, alterem o programa para que ao ser selecionada a opção 1 do menu, o sistema solicite o tipo de acomodação, se é um chalé ou se é um quarto normal.
O sistema deve verificar se existe alguma acomodação livre do tipo especificado e apresentar na tela o número da acomodação. Caso não exista acomodação disponível do tipo selecionado, o sistema deve apresentar um erro e voltar ao menu. A leitura dos dados deverá ser feita de acordo com o tipo de acomodação requisitada.
A opção 2 deve receber o número da ocupação a ser liberada, efetuar a cobrança imprimindo o recibo. Caso o quarto ou chalé selecionado não esteja ocupado, deve ser apresentado um erro e voltar ao menu.
Passo 4 (Equipe)
Entregar ao professor da disciplina:
Uma mídia contendo o código fonte comentado do programa (com extensão java) e os respectivos bytecodes (com extensão class). O código fonte deve incluir todas as classes necessárias para o desenvolvimento do Passo 2 e Passo 3 desta etapa.
Um documento impresso com o nome de Relatório 3 constituído de capa e o código fonte comentado.
Instrução: verificar com o professor da disciplina o tipo de mídia (CD, e-mail etc.) a ser entregue.
ETAPA 4 (tempo para realização: 5 horas)
Aula-tema: Definição de classes Abstratas e implementação. Definição de exceções e
implementação. Coleções em Java: Vector, ArrayList, LinkedList e implementação. Esta atividade é importante para que você entenda que é possível criar classes que contenham métodos que deverão ser implementados por sub-classes e que este mecanismo viabiliza a facilidade na manutenção de um programa. Além disso, espera-se que você possa compreender como sinalizar e tratar as condições que geram inconsistência na execução do programa e que possa utilizar as implementações de estruturas de dados que a linguagem Java oferece.
Para realizá-la é importante seguir os passos descritos.
PASSOS
Passo 1 (Aluno)
Ler atentamente os conceitos sobre tratamento de exceções e coleções no livro texto da disciplina.
Passo 2 (Equipe)
Ler o texto e fazer as atividades a seguir.
Com os lucros gerados, a pousada foi remodelada, de tal forma que metade dos quartos passou a ter banheira. Entretanto, o lucro não era suficiente para promover reformas nos chalés.
Os quartos que possuem banheira têm tarifa 18% superior aos que não possuem e são numerados de 1 a 25.
Sabendo-se disso, alterem o programa da etapa anterior, criando uma classe Aluguel que será a mais genérica e da qual as outras classes devem descender. Esta classe deve ter um método abstrato que deve retornar o valor a ser cobrado pelas diárias.
Passo 3 (Equipe)
Alterar a classe que representa a Pousada substituindo o vetor que armazena as acomodações ocupadas por uma coleção e façam as adequações necessárias nos métodos que esta classe possui. Entre outros métodos, esta classe deve ter um que recebe o número de um quarto e retorna o valor a ser cobrado pelas diárias e, se o quarto não estiver ocupado, propaga uma exceção para sinalizar quando a cobrança é indevida.
Seu programa deve oferecer o menu com as mesmas opções da etapa anterior, no entanto, na opção 1 se o tipo de acomodação escolhida for um quarto, deve ser lido se a preferência é por quarto com banheira ou não. A disponibilidade de quartos com o requisito escolhido deve ser verificada e, caso não haja o da preferência do cliente, uma notificação deve ser dada e deve ser retornado ao menu.
Passo 4 (Equipe)
Uma mídia contendo o código fonte comentado do programa (com extensão java) e os respectivos bytecodes (com extensão class). O código fonte deve incluir todas as classes necessárias para o desenvolvimento do Passo 2 e Passo 3 desta etapa.
Um documento impresso com o nome de Relatório 4 constituído de capa e o código fonte comentado.
Instrução: verificar com o professor da disciplina o tipo de mídia (CD, e-mail etc.) a ser entregue.
Livro Texto da Disciplina
SANTOS, Rafael. Introdução à Programação Orientada a Objetos usando Java: PLT. 1ª ed. Rio de Janeiro: Elsevier, 2008.