Sera que alguém pode me ajudar a terminar esse trabalho estou ainda na etapa 2 e não estou conseguindo terminar, segue o que eu conseguir fazer:
Desde Ja Agradeço!
Etapa 2
package atps.etapa2;
import java.util.Scanner;
public class SistemaHospedagem {
Aluguel aluguel = null;
int dia, mes, ano, hora;
/**
* Método para criar o menu do usuário
*/
public void montarMenu(){
Scanner scan = new Scanner(System.in);
float vDiaria;
int opcao=0;
System.out.print("Informe o valor da diária: ");
vDiaria = scan.nextFloat();
Aluguel.setValorDiaria(vDiaria);
while(opcao != 4){
System.out.println("==============Menu==============");
System.out.println("1- Registrar entrada em quarto");
System.out.println("2- Registrar saída do quarto");
System.out.println("3- Atualizar o valor da diária");
System.out.println("4- Sair");
System.out.println("Escolha uma opção do menu: ");
opcao = scan.nextInt();
switch(opcao){
case 1:
if(aluguel == null){
registrarEntrada();
}else{
System.out.println("Desculpe, o quarto está ocupado!!");
}
break;
case 2:
if(aluguel != null){
registrarSaida();
}else{
System.out.println("O quarto não está ocupado!!!");
}
break;
case 3:
System.out.print("Informe o novo valor da diária: ");
vDiaria = scan.nextFloat();
Aluguel.setValorDiaria(vDiaria);
System.out.printf("Valor da diária atualizada para: R$%.2f", vDiaria);
break;
case 4:
opcao = 4;
break;
default:
System.out.println("Opção inválida!!!\n\n");
}
}
System.out.println("FIM DO PROGRAMA");
}
/**
* Registra a entrada do locatario no quarto
*/
public void registrarEntrada(){
Scanner scan = new Scanner(System.in);
String nome = null;
System.out.print("Informe o nome do locatário: ");
nome = scan.nextLine();
System.out.print("Informe a hora de entrada: ");
hora = scan.nextInt();
System.out.print("Informe o dia de entrada: ");
dia = scan.nextInt();
System.out.print("Informe o mes de entrada: ");
mes = scan.nextInt();
System.out.print("Informe o ano de entrada: ");
ano = scan.nextInt();
aluguel = new Aluguel(nome, dia, mes, ano, hora);
System.out.println("Entrada registrada com sucesso!!!");
}
/**
* Registra a saída do locatario
*/
public void registrarSaida(){
Scanner scan = new Scanner(System.in);
System.out.print("Informe a hora de saída: ");
hora = scan.nextInt();
aluguel.setHoraSaida(hora);
System.out.print("Informe o dia de saída: ");
dia = scan.nextInt();
aluguel.setDiaSaida(dia);
System.out.print("Informe o mes de saída: ");
mes = scan.nextInt();
aluguel.setMesSaida(mes);
System.out.print("Informe o ano de saída: ");
ano = scan.nextInt();
aluguel.setAnoSaida(ano);
aluguel.calcularNumeroDiarias();
aluguel.calcularValorPagamento();
System.out.println("Saída registrada com sucesso!!\n\n\n");
emitirRelatorio();
}
/**
* Mostra os dados de locação do quarto
*/
public void emitirRelatorio(){
System.out.println("====================Relatório=====================");
System.out.println("Locatário: " + aluguel.getLocatario());
System.out.println("Data e horário de entrada: " + aluguel.getDiaEntrada() + "/" +
aluguel.getMesEntrada() + "/" + aluguel.getAnoEntrada() + " " + aluguel.getHoraEntrada());
System.out.println("Data e horário de saída: " + aluguel.getDiaSaida() + "/" +
aluguel.getMesSaida() + "/" + aluguel.getAnoSaida() + " " + aluguel.getHoraSaida());
System.out.println("Número de diárias: " + aluguel.getQtdeDiarias());
System.out.printf("Total devido: %.2f\n", aluguel.getValorPagamento());
System.out.println("==================================================");
aluguel = null;
}
public static void main(String[] args) {
SistemaHospedagem sistema = new SistemaHospedagem();
sistema.montarMenu();
}
}
package atps.etapa2;
class Aluguel {
private String locatario;
private int diaEntrada;
private int mesEntrada;
private int anoEntrada;
private int horaEntrada;
private int diaSaida;
private int mesSaida;
private int anoSaida;
private int horaSaida;
private int qtdeDiarias;
private static double valorDiaria;
private double valorPagamento;
/**
* Construtor que inicializa o valor dos atributos
* @param locatario
* @param diaEntrada
* @param mesEntrada
* @param anoEntrada
* @param horaEntrada
*/
public Aluguel(String locatario, int diaEntrada, int mesEntrada,
int anoEntrada, int horaEntrada) {
super();
this.locatario = locatario;
this.diaEntrada = diaEntrada;
this.mesEntrada = mesEntrada;
this.anoEntrada = anoEntrada;
this.horaEntrada = horaEntrada;
}
/**
* Calcula a quantidade de dias de hospedagem
*/
public void calcularNumeroDiarias(){
int diarias = 0;
if(anoEntrada < anoSaida){
int difm = (12 - mesEntrada) + mesSaida - 1;
difm = (int) (difm * 30);
int difd = (30 - diaEntrada) + diaSaida;
diarias = difm + difd;
}else if(anoEntrada == anoSaida){
if(mesEntrada == mesSaida){
diarias = diarias + (diaSaida - diaEntrada);
}else if(mesEntrada < mesSaida){
diarias = diarias + ((mesSaida - mesEntrada - 1) * 30);
diarias = diarias + diaSaida + (30 - diaEntrada);
}
}
if(horaEntrada < 1200)
diarias++;
if(horaSaida > 1200)
diarias++;
qtdeDiarias = diarias;
}
/*
* Calcula o valor a ser pago pela hospedagem
*/
public void calcularValorPagamento(){
setValorPagamento(getQtdeDiarias() * getValorDiaria());
}
public String getLocatario() {
return locatario;
}
public void setLocatario(String locatario) {
this.locatario = locatario;
}
public int getDiaEntrada() {
return diaEntrada;
}
public void setDiaEntrada(int diaEntrada) {
this.diaEntrada = diaEntrada;
}
public int getMesEntrada() {
return mesEntrada;
}
public void setMesEntrada(int mesEntrada) {
this.mesEntrada = mesEntrada;
}
public int getAnoEntrada() {
return anoEntrada;
}
public void setAnoEntrada(int anoEntrada) {
this.anoEntrada = anoEntrada;
}
public int getHoraEntrada() {
return horaEntrada;
}
public void setHoraEntrada(int horaEntrada) {
this.horaEntrada = horaEntrada;
}
public int getDiaSaida() {
return diaSaida;
}
public void setDiaSaida(int diaSaida) {
this.diaSaida = diaSaida;
}
public int getMesSaida() {
return mesSaida;
}
public void setMesSaida(int mesSaida) {
this.mesSaida = mesSaida;
}
public int getAnoSaida() {
return anoSaida;
}
public void setAnoSaida(int anoSaida) {
this.anoSaida = anoSaida;
}
public int getHoraSaida() {
return horaSaida;
}
public void setHoraSaida(int horaSaida) {
this.horaSaida = horaSaida;
}
public int getQtdeDiarias() {
return qtdeDiarias;
}
public void setQtdeDiarias(int qtdeDiarias) {
this.qtdeDiarias = qtdeDiarias;
}
public static double getValorDiaria() {
return valorDiaria;
}
public static void setValorDiaria(double valorDiaria) {
Aluguel.valorDiaria = valorDiaria;
}
public double getValorPagamento() {
return valorPagamento;
}
public void setValorPagamento(double valorPagamento) {
this.valorPagamento = valorPagamento;
}
}
ETAPA № 2
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.
Tecnologia em Análise e Desenvolvimento de Sistemas? 4ª série? Programação Orientada a Objetos
Cristiane Yae Mi Imamura
Pág. 4 de 7
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
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, modifique 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,
encapsule os atributos e desenvolva o método apropriado para inicializar os valores dos
mesmos quando uma instância da classe for criada.
Passo 2
Com uso da classe modificada no Passo 1 desta etapa, faça um programa que leia
primeiramente o valor de diária estabelecido por todos os moradores. Após isso, seu
programa deve oferecer um menu com as seguintes opções:
- Registrar entrada em quarto.
- Registrar saída do quarto.
- Atualizar o valor da diária
- 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
Entregue 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 constituído de capa e o código fonte comentado.
Tecnologia em Análise e Desenvolvimento de Sistemas? 4ª série? Programação Orientada a Objetos
Cristiane Yae Mi Imamura
Pág. 5 de 7
Instrução: verifique com o professor da disciplina o tipo de mídia (CD, e-mail, etc.) a
ser entregue.
ETAPA № 3
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.
Para realizá-la é importante seguir os passos descritos.
PASSOS
Passo 1
Leia atentamente os conceitos referentes a herança e polimorfismo no livro texto da
disciplina.
Passo 2
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.
Modifique 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.
Crie 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
Considerando as classes desenvolvidas no Passo 2 desta etapa, altere 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.
Tecnologia em Análise e Desenvolvimento de Sistemas? 4ª série? Programação Orientada a Objetos
Cristiane Yae Mi Imamura
Pág. 6 de 7
Passo 4
Entregue 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 constituído de capa e o código fonte comentado.
Instrução: verifique com o professor da disciplina o tipo de mídia (CD, e-mail, etc.) a
ser entregue.