Galera tenho a seguinte atividade a fazer mas não sei como faço:
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 mesmo 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.
Outro passo
Considerar as classes desenvolvidas, 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é selecionada não esteja ocupado, deve ser apresentado um erro e voltar ao menu.
Hotelaria.java
package hotelaria;
/**
*
* @author André Luiz
*/
public class Hotelaria {
private String Nome_Hospede;
private int Dia_Entrada;
private int Dia_Saida;
private int Mes_Entrada;
private int Mes_Saida;
private int Hora_Entrada;
private int Hora_Saida;
private int Minuto_Entrada;
private int Minuto_Saida;
private int Ano_Entrada;
private int Ano_Saida;
private static int Valor_Diaria;
private int Soma_Mes;
private int Soma_Tudo;
private int Inicio_Ano = 1;
private int Final_Ano = 12;
/**
* Contrutor da Classe
*/
public Hotelaria (String Hospede,int D_Entrada, int M_Entrada,
int A_Entrada, int H_Entrada, int Mi_Entrada)
{
setNome_Hospede(Hospede);
setDia_Entrada(D_Entrada);
setMes_Entrada(M_Entrada);
setAno_Entrada(A_Entrada);
setHora_Entrada(H_Entrada);
setMinuto_Entrada(Mi_Entrada);
}
/**
* Captura de dados que o usário informa
* @param set(s)
*/
private void setNome_Hospede(String Hospede) {
this.Nome_Hospede = Hospede;
}
private void setDia_Entrada(int D_Entrada) {
this.Dia_Entrada = D_Entrada;
}
public void setDia_Saida(int D_Saida) {
this.Dia_Saida = D_Saida;
}
private void setMes_Entrada(int M_Entrada){
this.Mes_Entrada = M_Entrada;
}
public void setMes_Saida(int M_Saida){
this.Mes_Saida = M_Saida;
}
private void setHora_Entrada(int H_Entrada) {
this.Hora_Entrada = H_Entrada;
}
public void setHora_Saida(int H_Saida) {
this.Hora_Saida = H_Saida;
}
private void setMinuto_Entrada(int Mi_Entrada) {
this.Minuto_Entrada = Mi_Entrada;
}
public void setMinuto_Saida(int Mi_Saida) {
this.Minuto_Saida = Mi_Saida;
}
private void setAno_Entrada(int A_Entrada) {
this.Ano_Entrada = A_Entrada;
}
public void setAno_Saida(int A_Saida) {
this.Ano_Saida = A_Saida;
}
public static void setValor_Diaria(int V_Diaria) {
Hotelaria.Valor_Diaria = V_Diaria;
}
/**
* Retorna dados que o usário informa
* @param get(s)
*/
public String getNome_Hospede() {
return this.Nome_Hospede;
}
public int getDia_Entrada() {
return this.Dia_Entrada;
}
public int getDia_Saida() {
return this.Dia_Saida;
}
public int getMes_Entrada(){
return this.Mes_Entrada;
}
public int getMes_Saida(){
return this.Mes_Saida;
}
public int getHora_Entrada() {
return this.Hora_Entrada;
}
public int getHora_Saida() {
return this.Hora_Saida;
}
public int getMinuto_Entrada() {
return this.Minuto_Entrada;
}
public int getMinuto_Saida() {
return this.Minuto_Saida;
}
public int getAno_Entrada() {
return this.Ano_Entrada;
}
public int getAno_Saida() {
return this.Ano_Saida;
}
public static int getValor_Diaria() {
return Valor_Diaria;
}
public int getDiaria_Hora() {
int Contar_Diaria = 0;
// Calcular Diaria Entrando 12:00 em ponto
if (Hora_Entrada == 12 & Minuto_Entrada == 0) {
Contar_Diaria++; // 1
} else {
// Entrada antes de 12:00
if (Hora_Entrada < 12) {
Contar_Diaria++;
}
}
// Calcular Diaria Saindo 12:00 em ponto
if (Hora_Saida == 12 & Minuto_Saida == 0) {
Contar_Diaria++; // 1
} else {
// Saida depois de 12:00
if (Hora_Saida > 12) {
Contar_Diaria++;
}
}
return Contar_Diaria;
}
public int getDiaria_Mes() {
// Declaração de Variaveis
int aux_soma = 0;
int soma;
int i = Mes_Entrada + 1;
int Mes_E = Mes_Entrada;
int Soma_Mes_Entrada;
// Switch Para Escolher o Mês de Entrada
switch(Mes_E) {
case 2:
Mes_E = 28;
break;
case 4:
case 6:
case 9:
case 11:
Mes_E = 30;
break;
default:
Mes_E = 31;
break;
}
Soma_Mes_Entrada = Mes_E - Dia_Entrada;
if(Mes_Entrada != Mes_Saida && Ano_Entrada == Ano_Saida) {
while(i < Mes_Saida) {
// Switch Para Calcular Diferença entre Meses
switch(i) {
case 2:
soma = 28;
break;
case 4:
case 6:
case 9:
case 11:
soma = 30;
break;
default:
soma = 31;
break;
}
aux_soma = aux_soma + soma;
i++;
}
return Soma_Mes = (Soma_Mes_Entrada + Dia_Saida
+ aux_soma);
} else {
if(Ano_Entrada != Ano_Saida) {
int M_Entrada = Mes_Entrada + 1;
int M_Saida = Mes_Saida - 1;
int S_Entrada = 0;
int S_Saida = 0;
int soma_s;
int soma_e;
while(Inicio_Ano <= M_Saida) {
switch(Inicio_Ano) {
case 2:
soma_s = 28;
break;
case 4:
case 6:
case 9:
case 11:
soma_s = 30;
break;
default:
soma_s = 31;
break;
}
S_Saida = S_Saida + soma_s;
Inicio_Ano++;
}
while(M_Entrada <= Final_Ano) {
switch(M_Entrada) {
case 2:
soma_e = 28;
break;
case 4:
case 6:
case 9:
case 11:
soma_e = 30;
break;
default:
soma_e = 31;
break;
}
S_Entrada = S_Entrada + soma_e;
M_Entrada++;
}
Soma_Mes=(S_Entrada + S_Saida)+
(Soma_Mes_Entrada + Dia_Saida);
}
if(Ano_Saida - Ano_Entrada == 2) {
Soma_Mes = (Soma_Mes + 365);
} else {
if(Ano_Saida - Ano_Entrada > 2) {
int Ano_S = Ano_Saida;
int Ano_E = Ano_Entrada;
int Ano = ((Ano_S - Ano_E) - 2) * 365;
Soma_Mes = Ano + Soma_Mes;
}
}
}
return Soma_Mes;
}
/**
* Metodo para Calcular Quantidade de Diarias
*
*/
public int getCalcular_Diaria() {
// Diaria Entrada e Saida no
//(Mesmo dia e Mesmo mês e Mesmo Ano) (0001)
if(Dia_Entrada == Dia_Saida && Mes_Entrada == Mes_Saida &&
Ano_Entrada == Ano_Saida) {
return Soma_Tudo = 1;
} else {
// Calcular Diaria no Mesmo Mes (0002)
if (Dia_Entrada != Dia_Saida && Mes_Entrada == Mes_Saida &&
Ano_Entrada == Ano_Saida) {
return Soma_Tudo = (getDia_Saida()-getDia_Entrada())
+ getDiaria_Hora();
} else {
// Calcular Diaria Mes Diferente e Ano Igual (0003)
if (Mes_Entrada != Mes_Saida && Ano_Entrada == Ano_Saida) {
return Soma_Tudo = getDiaria_Mes()
+ getDiaria_Hora();
} else {
// Calcular Diaria de Ano Diferente
if(Ano_Entrada != Ano_Saida) {
return Soma_Tudo = getDiaria_Mes()
+ getDiaria_Hora();
}
}
}
}
return Soma_Tudo;
}
/**
* Mutiplica a Quantidade de Diarias(Soma_Mes_Dia)
* pelo Valor_Diaria = 123,00
*
*/
public int getPagar() {
return Soma_Tudo * Valor_Diaria;
}
/**
* Saida de Dados
*/
public String ImprimeComprovante() {
String inf =
"=========================Comprovante========================= "
+ "\n" +
"Locatário: " + getNome_Hospede() + "\n" +
"Data e Horário de Entrada: " + getDia_Entrada() + "/"
+ getMes_Entrada() + "/" + getAno_Entrada() + " - " + getHora_Entrada() +
":" + getMinuto_Entrada() + "\n" +
"Data e Horário de Saída: " + getDia_Saida() + "/" + getMes_Saida() +
"/" + getAno_Saida() + " - " + getHora_Saida() + ":" + getMinuto_Saida() +
"\n" +
"Número de Diaria(s): " + getCalcular_Diaria() + " Diarias." + "\n" +
"Total Devido: R$ " + getPagar() + "\n" +
"======================Fim do Comprovante===================== "
+ "\n";
return inf;
}
}
Principal.java
package hotelaria;
import java.util.Scanner;
/**
*
* @author André Luiz
*/
public class Principal {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
/*
* Ponteiros
*/
Scanner input = new Scanner(System.in);
Hotelaria hotel = null;
/*
* Variavel Local
*/
int V_Diaria;
/**
* Valor da Diaria
*/
System.out.println("Informe o Valor da Diaria:");
V_Diaria = input.nextInt();
Hotelaria.setValor_Diaria(V_Diaria);
/**
* Menu
*/
int Menu = 0;
while(Menu != 4) {
System.out.println(">>>>>>>>>>>>>>>>>>> MENU <<<<<<<<<<<<<<<<<<<");
System.out.println("Digite 1 - Para registrar entrada em quarto.");
System.out.println("Digite 2 - Para registrar saída do quarto.");
System.out.println("Digite 3 - Para atualizar o valor da diária");
System.out.println("Digite 4 - Para sair");
System.out.println();
Menu = input.nextInt();
switch(Menu) {
case 1:
if(hotel == null){
/**
* Entrada
*/
System.out.print("Entra com o mone do Hospede:");
String Hosp = input.next();
System.out.print("Dia de Entrada:");
int d_entrada = input.nextInt();
System.out.print("Mês de Entrada:");
int m_entrada = input.nextInt();
System.out.print("Ano de Entrada:");
int a_entrada = input.nextInt();
System.out.print("Hora de Entrada:");
int h_entrada = input.nextInt();
System.out.print("Minuto de Entrada:");
int mi_entrada = input.nextInt();
Hotelaria registro = new Hotelaria (
Hosp, d_entrada, m_entrada, a_entrada,
h_entrada, mi_entrada);
hotel = registro;
} else {
System.out.println("Quarto Ocupado");
}
break;
case 2:
if(hotel != null){
/**
* Saida
*/
System.out.println("Dia de Saida:");
int d_saida = input.nextInt();
hotel.setDia_Saida(d_saida);
System.out.println("Mês de Saida:");
int m_saida = input.nextInt();
hotel.setMes_Saida(m_saida);
System.out.println("Ano de Saida:");
int a_saida = input.nextInt();
hotel.setAno_Saida(a_saida);
System.out.println("Hora de Saida:");
int h_saida = input.nextInt();
hotel.setHora_Saida(h_saida);
System.out.println("Minuto de Saida:");
int mi_saida = input.nextInt();
hotel.setMinuto_Saida(mi_saida);
System.out.println(hotel.ImprimeComprovante());
} else {
System.out.println("Quarto Vazio");
}
break;
case 3:
System.out.println("Informe o novo valor da diária: ");
V_Diaria = input.nextInt();
Hotelaria.setValor_Diaria(V_Diaria);
System.out.println("Valor Atual da Diaria: R$ " + Hotelaria.getValor_Diaria());
break;
case 4:
Menu = 4;
break;
default:
System.out.println("Opção inválida");
}
}
}
}
Qualquer ajuda é bem vinda, desde de já agradeço
- HaroNism likes this