Escola Técnica de Brasília Linguagem Técnica de Programação I Professora Lucélia PROJETO FINAL DA DISCIPLINA 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 Arial tamanho 12, cor preta. Espaçamento de 1,5 entre linhas. Com capa, contendo: Nome da Unidade de Ensino, Curso e Disciplina. Nome e matrícula de cada participante. Título da atividade. Nome da professora da disciplina. Cidade e data da entrega. TRABALHO Devido aos grandes acontecimentos que estão prestes a acontecer no Brasil, Copa do Mundo 2014 e Olimpíadas - 2016, 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 é Pirenópolis – GO, que é uma região muito frequentada pelos habitantes de Brasília. Pirenópolis possui um clima típico de serra: frio e úmido. Possui diversas cachoeiras e trilhas ecológicas. Prevendo o aumento de turistas em Pirenópolis, 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. 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/2011 13h42min Saída: 15/07/2011 11h50min Número de diárias: 3 Entrada: 12/07/2011 17h00min Saída: 15/07/2011 16h50min Número de diárias: 4 Objetivo do Trabalho Desenvolver um Sistema de Informação para controle de hospedagem. ETAPA 1 (tempo para realização: 5 horas) Conhecimentos envolvidos: 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. Escola Técnica de Brasília Linguagem Técnica de Programação I Professora Lucélia PASSOS Passo 1 (Aluno) Ler atentamente os conceitos introdutórios a linguagem Java e definição de classes e objetos no site da professora 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). 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, desenvolver um programa capaz de ler do teclado os dados de um aluguel do quarto e imprimir 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: ======================================== ETAPA 2 (tempo para realização: 5 horas) Conhecimentos envolvidos: 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. Escola Técnica de Brasília Linguagem Técnica de Programação I Professora Lucélia 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 desenvolver o método apropriado para inicializar os valores desses atributos quando uma instância da classe for criada. Passo 2 (Equipe) Utilizar a classe modificada no Passo 1 desta etapa e fazer 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 4 seja selecionada e encerre a execução do programa. ETAPA 3 (tempo para realização: 5 horas) Conhecimentos envolvidos: 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. Para realizá-la é importante seguir os passos descritos. Escola Técnica de Brasília Linguagem Técnica de Programação I Professora Lucélia PASSOS Passo 1 (Aluno) Ler atentamente os conceitos referentes à herança e polimorfismo no site da professora 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 Pirenópolis 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. Passo 3 (Equipe) Entregar à professora: 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). (Caso o projeto seja construído no NetBeans, a pasta do projeto já contém todos esses arquivos) 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.