. Para ver todos os 900000 documentos, por favor, carregue um novo documento.
Ol StainerSilva
Trabalhos e Monografias
Gerador de Citao
Mais
Free analytics tag audit Trust your data with a review from a world class team of experts. LimaConsulting.com/FreeAudit Oferea PagSeguro APIs diversas e fcil integrao. Integre PagSeguro sua loja. pagseguro.uol.com.br Certificados Boa Vista e-CPF, e-CNPJ e Outros Certificados Digitais. Compre j e Evite Filas! BoaVistaServicos.com.br/Certificado Download de Livro Grtis Os Melhores Livros Esto no iba. Download Gratuito. Baixe e Leia! iba.com.br/Download_Livros_Gratis
Pgina Inicial
Atps Poo
Enviado por jmslip, marco 2013 | 8 Pginas (1943 Palavras) | 39 Consultas| | |
DESAFIO O Ministrio do Turismo tem incentivado os brasileiros a conhecer melhor o Brasil, exibindo imagens de cenrios de exuberante beleza. Um desses cenrios Mara BA, que uma regio peninsular, reduto de Mata Atlntica preservado. Mara possui piscinas naturais, recifes de coral, mares interiores, manguezais, cachoeiras, trilhas ecolgicas e diversas praias. Prevendo o aumento de turistas em Mara, e sendo uma cidade pequena, alguns moradores resolveram alugar os quartos vagos de suas residncias. 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 locatrio, data e horrio de entrada do hspede, data e horrio de sada do hspede, nmero de pessoas e valor da diria. As dirias iniciam e terminam sempre s 12h.
Os exemplos a seguir descrevem o nmero de dirias calculado a partir das datas e horrios de entrada e sada. Entrada: 12/07/2011 13h42min Sada: 15/07/2011 11h50min Nmero de dirias: 3 Entrada: 12/07/2011 17h00min Sada: 15/07/2011 16h50min Nmero de dirias: 4 Objetivo do Desafio Desenvolver um Sistema de Informao para controle de hospedagem. ETAPA 1 (tempo para realizao: 5 horas)
Atps Poo
Ver Todos
PASSOS
Passo 1 (Aluno) Ler atentamente os conceitos introdutrios a linguagem Java e definio 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 informaes de data e horrio de entrada e sada separadas, ou seja, um campo inteiro para o dia de entrada, um campo inteiro para o ms de entrada, um campo inteiro para o ano de entrada, um campo inteiro para o horrio de entrada etc.). Esta classe deve conter mtodos para calcular o nmero de dirias e o valor a ser pago pelo locatrio. 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: CST em Anlise e Desenvolvimento de Sistemas 4 Srie Programao Orientada a Objetos Cristiane Yae Mi Imamura Pg. 4 de 8 ======================================== Locatrio: Data e horrio de entrada: Data e horrio de sada: Nmero de dirias: Total devido: ========================================
AluguelQuarto.java
package backend;
import java.util.GregorianCalendar;
public class AluguelQuarto { //Atributos private String nome; private String dataStringEntrada, dataStringSaida; private String horaStringEntrada, horaStringSaida; private int horaEntrada, horaSaida, minEntrada, minSaida; private int diaEntrada, diaSaida, mesEntrada, mesSaida, anoEntrada, anoSaida; private int totalDias; private double valorDiaria; private GregorianCalendar dataEntrada = new GregorianCalendar(); private GregorianCalendar dataSaida = new GregorianCalendar();
/** * Mtodo de obteno do nome do locatrio * @return nome do locatrio */ public String getNome() { return nome; } //Fim getNome
/** * Mtodo de obteno da data de entrada no formato String * @return string data de entrada
Tw eetar
/** * Mtodo de obteno da data de sada no formato String * @return string data de Saida */ public String getDataSaida() { return dataStringSaida; } //Fim getDataSaida
/** * Mtodo de obteno da hora de entrada no formato String * @return string hora de entrada */ public String getHoraEntrada() { return horaStringEntrada; } //Fim getHoraEntrada
/** * Mtodo de obteno da hora de sada no formato String * @return string hora de sada */ public String getHoraSaida() { return horaStringSaida; } //Fim getHoraSaida
/** * Mtodo de obteno de nmero de dirias * @return totalDiarias */ public int getNumDiarias() {
/** * Mtodo de obteno do total devido * @return valorDiaria */ public double getValorDiaria() { return valorDiaria; } //Fim getValorDiaria
/** * Este mtodo seta o valor do atributo nome * @param locatario no nulo e no vazio */ public void setNome(String locatario) { if(locatario != null && !locatario.trim().equals("")) nome = locatario; } //Fim setNome
/** * Este mtodo seta o valor do atributo dataStringEntrada e dataEntrada * 1- Atributo dataStringEntrada preenchido com a string data * 2- Converso em int e separao da data em dia, mes e ano * 3- Converso dos dados para o formato Calendar * @param data no nulo e no vazio * @return true ou false */ public boolean setDataEntrada(String data) { if(data != null && !data.trim().equals("")) { dataStringEntrada = data; diaEntrada = Integer.parseInt(data.trim().substring(0,2)); mesEntrada = Integer.parseInt(data.trim().substring(3,5)); anoEntrada = Integer.parseInt(data.trim().substring(6,10));
dataEntrada.set(GregorianCalendar.DATE, diaEntrada); dataEntrada.set(GregorianCalendar.MONTH, mesEntrada); dataEntrada.set(GregorianCalendar.YEAR, anoEntrada); dataEntrada.getTime(); return true; } else return false; } //Fim setDataEntrada
/** * Este mtodo seta o valor do atributo dataStringSaida e dataSaida * 1- Atributo dataStringSaida recebe string de data * 2- Converso em int e separao da data em dia, mes e ano
* 2- Converso em int e separao da data em dia, mes e ano * 3- Converso dos dados para o formato Calendar * @param data no nulo e no vazio * @return true || false * obs: Vlida se a data de sada menor que a data de entrada. */ public boolean setDataSaida(String data) { if(data != null && !data.trim().equals("")) { dataStringSaida = data; diaSaida = Integer.parseInt(data.trim().substring(0,2)); mesSaida = Integer.parseInt(data.trim().substring(3,5)); anoSaida = Integer.parseInt(data.trim().substring(6,10));
dataSaida.set(GregorianCalendar.DATE, diaSaida); dataSaida.set(GregorianCalendar.MONTH, mesSaida); dataSaida.set(GregorianCalendar.YEAR, anoSaida); dataSaida.getTime(); } else return false;
if (anoSaida < anoEntrada) { return false; } else if (mesSaida < mesEntrada) { return false; } else if (diaSaida < diaEntrada) { return false; } else return true; } //Fim setDataSaida
/** * Este mtodo seta o valor dos atributos horaStringEntrada, horaEntrada e minEntrada * 1- Atributo horaStringEntrada recebe string de hora * 2- Converso em int para preenchimento dos atributos horaEntrada e minEntrada * @param hora no nulo e no vazio * @return true || false */ public boolean setHoraEntrada(String hora) { if(hora != null && !hora.trim().equals("")) {
horaStringEntrada = hora;
/** * Este mtodo seta o valor dos atributos horaStringSaida, horaSaida e minSaida * 1- Atributo horaStringSaida recebe string de hora * 2- Converso em int para preenchimento dos atributos horaSaida e minSaida * @param hora no nulo e no vazio * @return treu || false * Obs: Vlida se o horrio de sada digitado menor que horrio de entrada */ public boolean setHoraSaida(String hora) { if(hora != null && !hora.trim().equals("")) { horaStringSaida = hora;
if (diaEntrada == diaSaida && mesEntrada == mesSaida && anoEntrada == anoSaida) { if (horaSaida < horaEntrada) return false; else if (horaSaida == horaEntrada && minSaida < minEntrada) return false; else return true; } else return true; } //Fim setHoraSaida
/** * Este mtodo calcula a quantidade de dias de hospedagem * 1- Verifica se hospedagem iniciou antes de 12h. Se sim, h1 recebe 1. * 2- Verifica se hospedagem finalizou depois de 12h. Se sim, h2 recebe 2. * 3- Converte dataEntrada e dataSaida em milissegundos
* 3- Converte dataEntrada e dataSaida em milissegundos * 4- Armazena o valor convertido da quantidade de dias de hospegagem em inteiro no atributo totalDias */ public void setNumDiarias() { int h1 = 0, h2 = 0; if(horaEntrada < 12) h1 = 1; if(horaSaida >= 12) h2 = 1;
long cIn = dataEntrada.getTimeInMillis(); long cOut = dataSaida.getTimeInMillis(); totalDias = (int) ((cOut - cIn) / (24*60*60*1000) + h1 + h2); } //Fim calcNumDiarias
/** * Mtodo para clculo da diria da hospedagem * this.valorDiaria recebe o resultado da multiplicao do totalDias e valorDiaria * @param valorDiaria definido pelo usurio */ public void setValorDiaria(double valorDiaria) { this.valorDiaria = (totalDias * valorDiaria); } //Fim setValorDiaria } //Fim Classe
Principal.java
package frontend;
public class Principal { public static void main(String[] args) { //Atributos int menu; int ocupado = 0; Scanner scan = new Scanner(System.in); AluguelQuarto objAluguel = new AluguelQuarto();
//Menu do { System.out.println("Bem-vindo ao sistema de hospedagem!"); System.out.println("==============================="); System.out.println("1- Check-in."); System.out.println("2- Check-out."); System.out.println("--"); System.out.println("0- Sair."); System.out.println("==============================="); System.out.print("Escolha uma opo: ");
System.out.print("Escolha uma opo: "); menu = scan.nextInt(); scan.nextLine(); //Limpa o buffer System.out.println(); //Quebra de linha
switch(menu) { case 1: if(ocupado == 0) { System.out.print("Nome do locatrio: "); objAluguel.setNome(scan.nextLine()); System.out.print("Data no formato \"dd/mm/yyyy\": "); if (objAluguel.setDataEntrada(scan.nextLine()) == false) { System.out.println("Erro! Data invlida!"); System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; }//Fim if System.out.print("Horrio no formato \"hh:mm\": "); if (objAluguel.setHoraEntrada(scan.nextLine()) == false) { System.out.println("Erro! Horrio invlido!"); System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim if ocupado = 1; System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim if else { System.out.println("Erro! Quarto ocupado!"); System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim else case 2: if(ocupado == 1) { System.out.print("Data no formato \"dd/mm/yyyy\": "); if (objAluguel.setDataSaida(scan.nextLine()) == false) { System.out.println("Erro! Data invlida!"); System.out.print("Tecle ENTER para continuar...");
scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim if System.out.print("Horrio no formato \"hh:mm\": "); if (objAluguel.setHoraSaida(scan.nextLine()) == false) { System.out.println("Erro! Horrio invlido!"); System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim if objAluguel.setNumDiarias(); System.out.print("Valor da diria: "); objAluguel.setValorDiaria(scan.nextDouble()); scan.nextLine(); //Limpa buffer System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha;
//Recibo System.out.println("============================================"); System.out.println("Locatrio: "+ objAluguel.getNome()); System.out.println("Data e horrio de entrada: "+ objAluguel.getDataEntrada() +" s "+ objAluguel.getHoraEntrada()); System.out.println("Data e horrio de sada: "+ objAluguel.getDataSaida() +" s "+ objAluguel.getHoraSaida()); System.out.println("Nmero de dirias: "+ objAluguel.getNumDiarias()); System.out.println("Total devido: R$ "+ objAluguel.getValorDiaria()); System.out.println("============================================"); ocupado = 0; System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim if else { System.out.println("Erro! Quarto desocupado!"); System.out.print("Tecle ENTER para continuar..."); scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; break; } //Fim else case 0: System.out.println("Saindo do aplicativo..."); break; default: System.out.println("Opo invlida! Favor escolher uma opo entre 0 e 2."); System.out.println("Tecle ENTER para continuar..."); scan.nextLine();
scan.nextLine(); System.out.println("\n\n\n\n\n\n\n\n\n"); //Quebra de linha; } //Fim switch }while(menu != 0); scan.close(); //Finaliza scan } //Fim main } //Fim Classe
Resultados:
Bem-vindo ao sistema de hospedagem! =============================== 1- Check-in. 2- Check-out. -0- Sair. =============================== Escolha uma opo: 1
Nome do locatrio: Fulano de tal Data no formato "dd/mm/yyyy": 20/03/2013 Horrio no formato "hh:mm": 11:35
Bem-vindo ao sistema de hospedagem! =============================== 1- Check-in. 2- Check-out. -0- Sair. =============================== Escolha uma opo: 2
Data no formato "dd/mm/yyyy": 25/03/2013 Horrio no formato "hh:mm": 18:20 Valor da diria: 60,00
============================================ Locatrio: Fulano de tal Data e horrio de entrada: 20/03/2013 s 11:35 Data e horrio de sada: 25/03/2013 s 18:20 Nmero de dirias: 7 Total devido: R$ 420.0 ============================================ Tecle ENTER para continuar...
Resultados Erros:
Bem-vindo ao sistema de hospedagem! =============================== 1- Check-in. 2- Check-out. -0- Sair. =============================== Escolha uma opo: 5
Opo invlida! Favor escolher uma opo entre 0 e 2. Tecle ENTER para continuar...
Bem-vindo ao sistema de hospedagem! =============================== 1- Check-in. 2- Check-out. -0- Sair. =============================== Escolha uma opo: 1
Comentar...
Comentar
Nossos Produtos
Trabalhos e Monografias Gerador de Citao
Sobre Ns
Sobre Trabalhos Feitos Ajuda Contate-nos
Siga-nos
Facebook Twitter Google+ RSS
2013 TrabalhosFeitos.com
Legal
Mapa do Site
Divulgar