atps - programação orientada a objetos.docx

Upload: jowleandro

Post on 02-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    1/54

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    2/54

    Alex Simplcio Costa

    Leandro Manes Carmo

    Atividade Prtica Supervisionada: Programao Orientada a Objetos

    Atividade pratica supervisionada

    apresentada ao curso superior de

    Tecnologia em Analise e

    Desenvolvimento de Sistemas daUniversidade Anhanguera Uniderp,

    como requisito para avaliao da

    disciplina Programao Orientada a

    Objetos.

    So Paulo Setembro de 2014

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    3/54

    SUMRIO

    Fundamentos de Consultas SQL ................................................................ 1

    DDL DATA DEFINITION LANGUAGE ..................................................... 2

    DCL DATA CONTROL LANGUAGE ........................................................ 3

    DTL DATA TRANSACTION LANGUAGE ................................................ 3

    Criao de Procedure ................................................................................. 5

    Procedure dinmica ..................................................................................... 6

    Usando comandos SQL nas STORED PROCEDURES ............................. 7

    Criao de Triggers ..................................................................................... 10

    CRIANDO TRIGGERS ................................................................................ 10

    TRANSFORMAO DE CONSULTAS SQL PARA LGEBRA ................. 13

    ESTIMANDO O CUSTO DE UM PLANO .................................................... 14

    ESTIMANDO TAMANHOS DOS RESULTADOS ....................................... 15LGEBRA RELACIONAL EQUIVALENTES ............................................... 16

    SELEES ................................................................................................. 17

    PROJEES .............................................................................................. 17

    PRODUTO CARTESIANOS E JUNES .................................................. 18

    ENUMERAO DE PLANOS ALTERNATIVOS DE CONSULTAS ........... 19

    CONSULTAS SOBRE UMA NICA RELAO ......................................... 19

    ESTIMATIVA DE CUSTO PARA PLANOS DE UMA NICA RELAO ... 20

    CONSULTAS SOBRE MLTIPLAS RELAES ....................................... 20

    ENUMERAO DE PLANOS DE PROFUNDIDADE ESQUERDA ........ 21

    ESTIMATIVA DE CUSTO PARA PLANOS DE MLTIPLAS RELAES . 22CONSULTAS ANINHADAS ........................................................................ 22

    MELHORANDO O DESEMPENHO DE UMA CONSULTA ANINHADA..... 23

    Gerncia de Transaes ............................................................................. 23

    Propriedades da Transao ........................................................................ 25

    Estados da Transao ................................................................................ 25

    Fundamentos de Banco de Dados Distribudos.......................................... 28

    Banco de Dados Homogneos e Heterogneos ........................................ 28

    Arquitetura Cliente/Servidor ........................................................................ 29

    Processamento Distribudo ......................................................................... 30

    Vantagens ................................................................................................... 31Fundamentos do Banco de Dados Distribudos.......................................... 34

    Comparao de SGBDs ............................................................................. 35

    Bibliografia ................................................................................................... 38

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    4/54

    1

    ETAPA 1

    Relatrio 1

    packageHotel;

    //importa bibliotecaimportjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Scanner;

    //inicia a classepublicclassDiaria {//define tipo de dados para as variaveis

    privateintDia_Entrada;privateintDia_Saida;privateintMes_Entrada;privateintMes_Saida;privateintHora_Entrada;privateintHora_Saida;privateintMinuto_Entrada;privateintMinuto_Saida;privateintAno_Entrada;privateintAno_Saida;privateintDiarias;

    @SuppressWarnings("resource")//inicia o programapublicstaticvoidmain(String[]args) throwsParseException

    {//carrega a classe

    Diaria D= newDiaria();

    Scanner ler= newScanner(System.in);//l dados de entrada da hospedagemSystem.out.println("Digite o dia da entrada");D.Dia_Entrada= ler.nextInt();System.out.println("Digite o Ms da entrada");D.Mes_Entrada= ler.nextInt();System.out.println("Digite o Ano da entrada");D.Ano_Entrada= ler.nextInt();System.out.println("Digite o Hora da entrada");D.Hora_Entrada= ler.nextInt();System.out.println("Digite o Minuto da entrada");

    D.Minuto_Entrada= ler.nextInt();

    //l dados de saida da hospedagemSystem.out.println("Digite o dia da sada");D.Dia_Saida= ler.nextInt();

    System.out.println("Digite o Ms da sada");D.Mes_Saida= ler.nextInt();

    System.out.println("Digite o Ano da sada");D.Ano_Saida= ler.nextInt();

    System.out.println("Digite o Hora da sada");D.Hora_Saida= ler.nextInt();

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    5/54

    2

    System.out.println("Digite o Minuto da sada");D.Minuto_Saida= ler.nextInt();

    // Formata a data e insere os dados nas variaveisSimpleDateFormat format= new

    SimpleDateFormat("yy/MM/dd HH:mm:ss");String datainicio= D.Ano_Entrada+ "/"+

    D.Mes_Entrada+ "/"+ D.Dia_Entrada+ " 12:01:00";String datafim= D.Ano_Saida+ "/"+ D.Mes_Saida+

    "/"+ D.Dia_Saida+ " "+ D.Hora_Saida+":"+ D.Minuto_Saida+ ":00";

    // converte para datajava.sql.Date data= new

    java.sql.Date(format.parse(datainicio).getTime());java.sql.Date data_fim= new

    java.sql.Date(format.parse(datafim).getTime());

    //calcula quantidades de diariasD.Diarias= (int)( (data_fim.getTime() -

    data.getTime()) / (1000 * 60 * 60 * 24) );//imprime o extrato do cliente

    System.out.println("========================================");System.out.println("Locatrio:");System.out.println("Data e horrio de entrada:"+

    D.Dia_Entrada+ "/"+ D.Mes_Entrada+ "/"+ D.Ano_Entrada+ " "+D.Hora_Entrada+":"+ D.Minuto_Entrada);

    System.out.println("Data e horrio de sada:"+ D.Dia_Saida+

    "/"+ D.Mes_Saida+ "/"+ D.Ano_Saida+ " "+ D.Hora_Saida+":"+D.Minuto_Saida);

    System.out.println("Nmero de dirias:"+ (D.Diarias+ 1));System.out.println("Total devido:"+ (D.Diarias+ 1));

    System.out.println("========================================");//fim do programa

    }

    }

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    6/54

    3

    ETAPA 2

    Relatrio 2

    packageHotel;

    importjava.util.Scanner;

    publicclassCalculos {

    privateString nome_Hospede; //ira armazanar o nome do hospede

    privateintminuto_Entada, minuto_Saida, hora_Entrada, hora_Saida;//variaveis do tipo inteiro

    privateintdia_Entrada, dia_Saida, mes_Entrada, mes_Saida, ano_Entrada,ano_Saida;

    privateintnum_diarias; //ira armazenar a quantidade de diarias entre asdatas

    privatestaticdoublevalor_Diaria; //variaveis do tipo double estatica

    publicvoidgravaNome(String nome) {

    this.nome_Hospede= nome; //registra o nome do hospede

    }

    publicString retornaNome() {

    returnnome_Hospede; //retorna o nome do hospede

    }

    publicstaticvoidgravaValorDiaria(String valor) {

    valor_Diaria= Double.parseDouble(valor); //registra valor da diaria

    }

    publicdoubleretornaValorDiaria() {

    returnvalor_Diaria; //retorna valor da diaria

    }

    publicvoidgravaHoraEntrada(String hora) {

    String[] hms= hora.split(":"); //le a hora em formato

    this.hora_Entrada= Integer.parseInt(hms[0]); //texto e converte os

    this.minuto_Entada= Integer.parseInt(hms[1]); //numeros para inteiro

    }

    publicintretornaHoraEntrada() {

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    7/54

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    8/54

    5

    }

    publicvoidgravaDataSaida(String data) {

    String[] hms= data.split("/");

    this.dia_Saida= Integer.parseInt(hms[0]); //le a data em formato

    this.mes_Saida= Integer.parseInt(hms[1]); //texto e converte os

    this.ano_Saida= Integer.parseInt(hms[2]); //numeros para inteiro

    }

    publicintretornaDiaSaida() {

    returndia_Saida; //retorna o dia da saida

    }

    publicintretornaMesSaida() {

    returnmes_Saida; //retorna o mes da saida

    }

    publicintretornaAnoSaida() {

    returnano_Saida; //retorna o ano da saida

    }

    publicintretornaNumeroDiarias() {

    inttemp;

    if(mes_Entrada== mes_Saida) { //faz o calculo, caso seja o mesmo mes na

    this.num_diarias= dia_Saida- dia_Entrada; //entrada e saida, ele

    if(hora_Saida>= 12 && minuto_Saida> 0) //diminui o dia de saida

    {

    this.num_diarias+= 1; // menos o dia de entrada, e se for maior

    }

    } //que 12 horas, encrementa um dia a mais

    elseif(mes_Entrada< mes_Saida) { //se mes de entrada for menor que o desaida

    if(mes_Entrada== 1 || mes_Entrada== 3 || mes_Entrada== 5 || mes_Entrada== 7 || mes_Entrada== 8

    || mes_Entrada== 10 || mes_Entrada== 12) { //verifica se os meses sao de 31dias

    temp= 31 - dia_Entrada; //caso seja, ele diminui 31 do mes de entrada

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    9/54

    6

    this.num_diarias= temp+ dia_Saida; //e soma com os do proximo mes

    if(hora_Saida>= 12 && minuto_Saida> 0) {

    this.num_diarias+= 1;

    }

    } elseif(mes_Entrada== 4 || mes_Entrada== 6 || mes_Entrada== 9 ||mes_Entrada== 11) {

    temp= 30 - dia_Entrada; //verifica se o mes 30 dias, caso seja

    this.num_diarias= temp+ dia_Saida; //faz o mesmo calculo de cima, mas sendoagora

    if(hora_Saida>= 12 && minuto_Saida> 0) //com 30 dias

    {

    this.num_diarias+= 1;

    }

    } elseif(mes_Entrada== 2) { //caso seja o mes de fevereiro com 28 dias

    temp= 28 - dia_Entrada;

    this.num_diarias= temp+ dia_Saida;

    if(hora_Saida>= 12 && minuto_Saida> 0) {

    this.num_diarias+= 1;

    }

    }

    }

    returnnum_diarias; //retorna a quantidade de diarias

    }

    publicdoubleretornaTotalDebito() {

    returnnum_diarias* valor_Diaria; //multiplica o valor da diaria

    //vezes o numero de diaris e retorna

    } //o total ao cliente pagar

    publicstaticvoidmain(String[] args) {

    Scanner p= newScanner(System.in); //inicializa System.ini para ler dados doteclado

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    10/54

    7

    Calculos[] dados= newCalculos[6]; //inicializa classe Calculos

    Calculos.gravaValorDiaria("89.90"); //inicializa com valor padrao da diaria

    boolean[] qSaida= newboolean[6]; //variavel boleana para controle dosquartos

    boolean[] qEntrada= newboolean[6];

    intnum, n= 0;

    for(intx= 0; x< 6; x++) {

    qEntrada[x] = true; // inicializa vetor como true.

    qSaida[x] = false; // inicializa vetor como false.

    }

    do{

    System.out.println("1 - Registrar entrada em quarto");

    System.out.println("2 - Registrar sada do quarto");

    System.out.println("3 - Atualizar o valor da diria");

    System.out.println("0 - Sair");

    num= Integer.parseInt(p.nextLine());

    if(num== 1) {

    System.out.println("Escolha um dos quarto");

    System.out.println("(1)- Quarto1 (2)- Quarto2 (3)- Quarto3 (4)- Quarto4 (5)-Quarto5");

    n= Integer.parseInt(p.nextLine()); //variavel n recebe o numero do quarto

    if(qEntrada[n]) { //se quarto estiver vazio executa rotina senao retornamenu

    System.out.println("Nome locatrio: ");

    dados[n] = newCalculos(); //inicializa variavel n

    dados[n].gravaNome(p.nextLine()); //grava o nome

    System.out.println("Data da entrada: ");

    dados[n].gravaDataEntrada(p.nextLine()); //grava a data de entrada em string

    System.out.println("Hora da entrada: ");

    dados[n].gravaHoraEntrada(p.nextLine()); //grava hora de entrada em string

    qEntrada[n] = false; //muda o quarto para cheio, indisponivel

    qSaida[n] = true; //libera o quarto para saida

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    11/54

    8

    } else{

    System.out.println("Quarto cheio!");

    }

    } elseif(num== 2) {

    System.out.println("Escolha um dos quarto");

    System.out.println("(1)- Quarto1 (2)- Quarto2 (3)- Quarto3 (4)- Quarto4 (5)-Quarto5");

    n= Integer.parseInt(p.nextLine());

    if(qSaida[n]) { //se quarto estiver cheio executa rotina

    System.out.println("Data da sada: ");

    dados[n].gravaDataSaida(p.nextLine()); //grava data de saida

    System.out.println("Hora da sada: ");

    dados[n].gravaHoraSaida(p.nextLine()); //grava hora da saida

    //imprime os dados do locatario

    System.out.println("================================================");

    System.out.println("Nome locatrio: "+ dados[n].retornaNome());

    System.out.println("Data e horario de entrada: "+dados[n].retornaDiaEntrada() + "/"+ dados[n].retornaMesEntrada() + "/"

    + dados[n].retornaAnoEntrada() + " "+ dados[n].retornaHoraEntrada() + ":"+dados[n].retornaMinutoEntrada());

    System.out.println("Data e horario de Saida: "+ dados[n].retornaDiaSaida() +"/"+ dados[n].retornaMesSaida() + "/"

    + dados[n].retornaAnoSaida() + " "+ dados[n].retornaHoraSaida() + ":"+dados[n].retornaMinutoSaida());

    System.out.println("Numero de Diarias: "+ dados[n].retornaNumeroDiarias());

    System.out.println("Total devido: "+ dados[n].retornaTotalDebito());

    System.out.println("================================================");

    qSaida[n] = false; //torna o quarto vazio

    } else{

    System.out.println("Quarto Vazio!");

    }

    } elseif(num== 3) {

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    12/54

    9

    //o hotel pode gravar um novo valor para a diaria

    System.out.println("Novo valor da diria: ");

    Calculos.gravaValorDiaria(p.nextLine());

    }

    } while(num!= 0);

    }

    }

    ETAPA 3

    Relatrio 3

    packagepousada_3;publicclassPousada {

    privateintdiaentrada;privateintmesentrada;privateintanoentrada;privateintdiasaida;privateintmessaida;privateintanosaida;privateinthoraentrada;privateintminentrada;privateinthorasaida;privateintminsaida;privateString locatario;privateintnumdepessoas;privatedoublevalor_diaria=50;privateintquarto;privateinttipo;privateintcamaextra;publicPousada(){

    }publicPousada (intquarto, intnumdepessoas){

    this.quarto=quarto;this.numdepessoas=numdepessoas;

    }

    publicintgetDiaentrada() {returndiaentrada;

    }publicvoidsetDiaentrada(intdiaentrada) {

    this.diaentrada = diaentrada;}

    publicintgetMesentrada() {returnmesentrada;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    13/54

    10

    }publicvoidsetMesentrada(intmesentrada) {

    this.mesentrada = mesentrada;}publicintgetAnoentrada() {

    returnanoentrada;}

    publicvoidsetAnoentrada(intanoentrada) {this.anoentrada = anoentrada;

    }publicintgetDiasaida() {

    returndiasaida;}publicvoidsetDiasaida(intdiasaida) {

    this.diasaida = diasaida;}publicintgetMessaida() {

    returnmessaida;}

    publicvoidsetMessaida(intmessaida) {this.messaida = messaida;}publicintgetAnosaida() {

    returnanosaida;}publicvoidsetAnosaida(intanosaida) {

    this.anosaida = anosaida;}publicintgetHoraentrada() {

    returnhoraentrada;}publicvoidsetHoraentrada(inthoraentrada) {

    this.horaentrada = horaentrada;}publicintgetMinentrada() {

    returnminentrada;}publicvoidsetMinentrada(intminentrada) {

    this.minentrada = minentrada;}publicintgetHorasaida() {

    returnhorasaida;}publicvoidsetHorasaida(inthorasaida) {

    this.horasaida = horasaida;

    }publicintgetMinsaida() {

    returnminsaida;}publicvoidsetMinsaida(intminsaida) {

    this.minsaida = minsaida;}publicString getLocatario() {

    returnlocatario;}publicvoidsetLocatario(String locatario) {

    this.locatario = locatario;}publicintgetNumdepessoas() {

    returnnumdepessoas;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    14/54

    11

    }publicvoidsetNumdepessoas(intnumdepessoas) {

    this.numdepessoas = numdepessoas;}publicdoublegetValor_diaria() {

    returnvalor_diaria;}

    publicvoidsetValor_diaria(doublevalor_diaria) {this.valor_diaria = valor_diaria;

    }publicintgetQuarto() {

    returnquarto;}publicvoidsetQuarto(intquarto) {

    this.quarto = quarto;}publicintgetTipo() {

    returntipo;}

    publicvoidsetTipo(inttipo) {this.tipo = tipo;}publicintgetCamaextra() {

    returncamaextra;}publicvoidsetCamaextra(intcamaextra) {

    this.camaextra = camaextra;}

    }packagepousada_3;importjava.text.SimpleDateFormat;importjava.util.Calendar;

    publicclassQuarto extendsPousada {publicQuarto(){ }publicQuarto(intquarto, intnumdepessoas){

    super(quarto,numdepessoas);}publicString calcQuarto(){

    Calendar c = Calendar.getInstance();c.set(getAnoentrada(), getMesentrada(), getDiaentrada(),

    getHoraentrada(), getMinentrada());Calendar c2 = Calendar.getInstance();

    c2.set(getAnosaida(), getMessaida(), getDiasaida(), getHorasaida(),getMinsaida());

    SimpleDateFormat sdf1 = newSimpleDateFormat("dd/MM/yyyy hh:mm");intdias1 = c.get(Calendar.DAY_OF_YEAR);intdias2 = c2.get(Calendar.DAY_OF_YEAR);longdiferenca = c2.getTimeInMillis() - c.getTimeInMillis(); //em

    milisegundos um diainttempoDia = 1000*60*60*24;longdiarias = diferenca/tempoDia;if(c.get(Calendar.HOUR_OF_DAY) < 12) {

    diarias++;}if(c2.get(Calendar.HOUR_OF_DAY) > 12) {

    diarias++;}

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    15/54

    12

    return"\nLocatrio: "+ getLocatario() +

    "\nData e horrio de entrada:"+ (sdf1.format(c.getTime()))+"\nData e horrio de sada:"+ (sdf1.format(c2.getTime()))+"\nNmero de dirias: "+ diarias +"\nTotal devido: R$ "+ ((diarias * getValor_diaria()) *

    getNumdepessoas());

    }}packagepousada_3;importjava.text.SimpleDateFormat;importjava.util.Calendar;publicclassChale extendsPousada{

    publicChale (){}publicChale(intquarto, intnumdepessoas){

    super(quarto,numdepessoas);

    }publicString calcAluguel(){Calendar c = Calendar.getInstance();

    c.set(getAnoentrada(), getMesentrada(), getDiaentrada(),getHoraentrada(), getMinentrada());

    Calendar c2 = Calendar.getInstance();c2.set(getAnosaida(), getMessaida(), getDiasaida(), getHorasaida(),

    getMinsaida());SimpleDateFormat sdf1 = newSimpleDateFormat("dd/MM/yyyy hh:mm");intdias1 = c.get(Calendar.DAY_OF_YEAR);intdias2 = c2.get(Calendar.DAY_OF_YEAR);longdiferenca = c2.getTimeInMillis() - c.getTimeInMillis(); //em

    milisegundos um diainttempoDia = 1000*60*60*24;longdiarias = diferenca/tempoDia;if(c.get(Calendar.HOUR_OF_DAY) < 12) {

    diarias++;}if(c2.get(Calendar.HOUR_OF_DAY) > 12) {

    diarias++;}return

    "\nLocatrio: "+ getLocatario() +"\nData e horrio de entrada:"+ (sdf1.format(c.getTime()))+"\nData e horrio de sada:"+ (sdf1.format(c2.getTime()))+

    "\nNmero de dirias: "+ diarias +"\nValor de Camas Extras: R$"+(((((getValor_diaria() * 1.2))

    * 0.1)*(getCamaextra()))*diarias)+"\nTotal devido: R$ "+ ((((diarias * getValor_diaria())*1.2)

    * getNumdepessoas())+(((((getValor_diaria() * 1.2)) *0.1)*(getCamaextra()))*diarias));

    }}

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    16/54

    13

    ETAPA 4

    Relatrio 4

    package Hotel;

    import java.util.InputMismatchException;

    import java.util.Scanner;

    /**

    *

    * @author MSI

    */

    public class Diaria {

    public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    int qtd_Diaria = 0;

    float vlr_Pg = 0;

    int[] cont_Qto = new int[60];

    int opc_Qto = 0;

    int cd;

    int cd2;

    int cd4;

    String[] nome_loc = new String[60];

    int cd3;

    float vl_Diaria = 0;

    int i;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    17/54

    14

    int a;

    int b;

    int n_qrto = 0;

    int opc;

    int opcao = 0;

    int qrto_Banheira = 0;

    float vlr_Acr;

    int[][] qrto = new int[60][10];

    // Digitando o valor da diria

    try {

    System.out.println("Informe o valor da Diaria a ser cobrada: ");

    vl_Diaria = sc.nextFloat();

    } catch (InputMismatchException ime) {

    System.out

    .println(" Digite um valor vlida para

    executar esta operao.");

    System.out.println("Reinicie o Programa.");

    System.out.println("Obrigado!");

    }

    opc = 1;

    while (opc != 4) {

    cd = 1;

    cd4 = 1;

    cd3 = 1;

    cd2 = 1;

    try {

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    18/54

    15

    System.out.println("********** Locao de Quartos

    **********");

    System.out.println("");

    System.out.println("1. Registrar entrada no quarto");

    System.out.println("2. Registrar saida do quarto");

    System.out.println("3. Atualizar o valor da diria");

    System.out.println("4. Sair");

    System.out.println("****************************************");

    opc = sc.nextInt();

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto,

    digite novamente o valor!!");

    System.out.println("ERRO: O programa ser

    finalizado!!");

    System.out.println("Obrigado!!");

    opc = 4;

    cd = 0;

    }

    switch (opc) {

    case 1:

    while (cd4 == 1) {

    try {

    System.out.println("Escolha a

    opo de estadia: ");

    System.out.println("1. Quarto / 2.

    Chale");

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    19/54

    16

    opcao = sc.nextInt();

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = 1;

    cd3 = 2;

    }

    if (opcao == 1) {

    try {

    System.out

    .println("Deseja alugar quarto com banheira?");

    System.out.println("1.Sim / 2.No");

    qrto_Banheira =

    sc.nextInt();

    } catch (InputMismatchException

    ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    20/54

    17

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = 1;

    cd3 = 2;

    }

    if (opcao == 1 && qrto_Banheira

    == 1) {

    aluguel mostraValor =

    new aluguel();

    mostraValor.mostra_Valor(opcao, qrto_Banheira,

    vl_Diaria);

    cd2 = 1;

    while (cd2 == 1 &&

    opcao == 1 && qrto_Banheira == 1) {

    try {

    System.out

    .println("Em qual qaurto deseja hopedar-se?");

    b =

    0;

    while (b >= 0 && b

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    21/54

    18

    System.out.println("Quarto:"

    + (b + 1)

    + " - Quarto Disponivel");

    } else {

    System.out.println("Quarto:"

    + (b + 1)

    + " - Quarto Indisponivel");

    }

    b++;

    }

    opc_Qto = sc.nextInt() - 1;

    if

    (opc_Qto >= 0 && opc_Qto

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    22/54

    19

    System.out

    .println("Digite o nome do locatrio: ");

    nome_loc[i] = sc.next();

    for (a = 0; a

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    23/54

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    24/54

    21

    } catch

    (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4

    = -1;

    opc

    = 1;

    cd3

    = 2;

    cd2

    = -1;

    }

    cd2 = -1;

    }

    }

    if (opcao == 1 && qrto_Banheira

    == 2) {

    aluguel mostraValor =

    new aluguel();

    mostraValor.mostra_Valor(opcao, qrto_Banheira,

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    25/54

    22

    vl_Diaria);

    try {

    cd2 = 1;

    while (cd2 ==

    1 && opcao == 1

    && qrto_Banheira == 2) {

    System.out

    .println("Em qual qaurto deseja hopedar-se?");

    b =

    25;

    while (b >= 25 && b

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    26/54

    23

    }

    b++;

    }

    opc_Qto = sc.nextInt() - 1;

    if

    (opc_Qto >= 25 && opc_Qto

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    27/54

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    28/54

    25

    .println("ERRO: Valor incorreto, digite novamente o

    valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = 1;

    cd3 = 2;

    }

    }

    cd2

    = -1;

    }

    } catch

    (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    29/54

    26

    cd4 = -1;

    opc = 1;

    cd3 = 2;

    }

    } else {

    if (opc_Qto < 0 ||

    opc_Qto > 50) {

    System.out.println("Quarto invlido!");

    } else {

    System.out

    .println("Chal invlido ou ocupado!");

    }

    }

    try {

    System.out.println("\nAdicionar nova entrada?");

    System.out.println("1.SIM ou 2.NO");

    cd2 = sc.nextInt();

    } catch (InputMismatchExceptionime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    30/54

    27

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = 1;

    cd3 = 2;

    }

    cd4 = cd2;

    opcao = 3;

    }

    cd3 = 15;

    opc = 2;

    cd = 15;

    if (opcao == 2) {

    aluguel mostraValor = new

    aluguel();

    mostraValor.mostra_Valor(opcao,

    qrto_Banheira,

    vl_Diaria);

    cd2 = 1;

    while (cd2 == 1 && opcao == 2) {

    try {

    System.out.println("Qual o quarto desejado?");

    b = 50;

    while (b

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    31/54

    28

    System.out.println("Quarto:" + (b + 1)

    + " - Quarto Disponivel");

    }

    else {

    System.out.println("Quarto:" + (b + 1)

    + " - Quarto Indisponivel");

    }

    b++;

    }

    opc_Qto =

    sc.nextInt() - 1;

    if (opc_Qto

    >= 50 && opc_Qto

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    32/54

    29

    for (a = 0; a

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    33/54

    30

    }

    }

    }

    catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = -1;

    cd3 = 2;

    cd2 = 10;

    }

    } else {

    System.out

    .println("Chal Invlido ou Ocupado!!");

    }

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    34/54

    31

    try {

    System.out

    .println("\nDeseja inserir nova entrada?");

    System.out.println("1.SIM ou 2.NO");

    cd2

    = sc.nextInt();

    cd3

    = 15;

    } catch

    (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4

    = -1;

    opc

    = -1;

    cd

    = 2;

    }

    cd4 = cd2;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    35/54

    32

    opcao = 3;

    } catch

    (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd4 = -1;

    opc = -1;

    cd3 = 2;

    cd2 = 10;

    }

    }

    cd3 = 15;

    opc = 2;

    cd = 15;

    }

    }

    case 2:

    while (cd3 == 1) {

    try {

    System.out.println("\nInserir sada

    para qual quarto?");

    n_qrto = sc.nextInt();

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    36/54

    33

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

    System.out.println("Obrigado!!");

    cd3 = 2;

    opc = -1;

    }

    n_qrto = n_qrto - 1;

    if (n_qrto >= 0 && n_qrto < 60) {

    try {

    for (i = n_qrto; i ==

    n_qrto; i++) {

    if (cont_Qto[i]

    > 0) {

    for

    (a = 0; a

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    37/54

    34

    qrto[i][a] = sc.nextInt();

    a++;

    qrto[i][a] = sc.nextInt();

    a++;

    qrto[i][a] = sc.nextInt();

    a++;

    System.out

    .println("\nInformar o horrio de sada da

    hospede: hh:mm");

    qrto[i][a] = sc.nextInt();

    a++;

    qrto[i][a] = sc.nextInt();

    }

    }

    cd3 = 2;

    cd = 15;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    38/54

    35

    if (n_qrto >= 0 && n_qrto < 25) {

    for (i = n_qrto; i == n_qrto; i++) {

    System.out

    .println("Tipo: Quarto");

    System.out

    .println("Data e horario de entrada: "

    + qrto[i][0]

    + "/"

    + qrto[i][1]

    + "/"

    + qrto[i][2]

    + " s "

    + qrto[i][3]

    + ":"

    + qrto[i][4]);

    System.out

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    39/54

    36

    .println("Data e horario de entrada: "

    + qrto[i][5]

    + "/"

    + qrto[i][6]

    + "/"

    + qrto[i][7]

    + " s "

    + qrto[i][8]

    + ":"

    + qrto[i][9]);

    aluguel diariasTot = new aluguel();

    qtd_Diaria = diariasTot

    .quant_Diarias(

    qrto[i][0],

    qrto[i][1],

    qrto[i][2],

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    40/54

    37

    qrto[i][3],

    qrto[i][4],

    qrto[i][5],

    qrto[i][6],

    qrto[i][7],

    qrto[i][8],

    qrto[i][9]);

    System.out

    .println("Nmero de dirias: "

    + qtd_Diaria);

    aluguel valorTot = new aluguel();

    vlr_Pg = valorTot

    .calcula_Valor(

    qtd_Diaria,

    vl_Diaria,

    n_qrto);

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    41/54

    38

    System.out

    .println("Total devido: "

    + vlr_Pg);

    cont_Qto[i] = 0;

    cd3 = 2;

    }

    cd3 = 2;

    cd = 15;

    }

    if (n_qrto >= 50 && n_qrto < 60) {

    for (i = n_qrto; i == n_qrto; i++) {

    System.out

    .println("Tipo: Chal");

    System.out

    .println("Locatrio: "

    + nome_loc[i]);

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    42/54

    39

    System.out

    .println("Data e horrio de entrada: "

    + qrto[i][0]

    + "/"

    + qrto[i][1]

    + "/"

    + qrto[i][2]

    + " s "

    + qrto[i][3]

    + ":"

    + qrto[i][4]);

    System.out

    .println("Data e horrio de entrada: "

    + qrto[i][5]

    + "/"

    + qrto[i][6]

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    43/54

    40

    + "/"

    + qrto[i][7]

    + " s "

    + qrto[i][8]

    + ":"

    + qrto[i][9]);

    aluguel diarias_Total = new aluguel();

    qtd_Diaria = diarias_Total

    .quant_Diarias(

    qrto[i][0],

    qrto[i][1],

    qrto[i][2],

    qrto[i][3],

    qrto[i][4],

    qrto[i][5],

    qrto[i][6],

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    44/54

    41

    qrto[i][7],

    qrto[i][8],

    qrto[i][9]);

    System.out

    .println("Nmero de dirias: "

    + qtd_Diaria);

    aluguel valor_Total = new aluguel();

    vlr_Pg = valor_Total

    .calcula_Valor(

    qtd_Diaria,

    vl_Diaria,

    n_qrto);

    vlr_Acr = (vlr_Pg * 20) / 100;

    vlr_Pg = vlr_Pg + vlr_Acr;

    System.out

    .println("Total devido: R$"

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    45/54

    42

    + vlr_Pg);

    cont_Qto[i] = 0;

    cd3 = 2;

    }

    cd3 = 2;

    cd = 15;

    }

    if (n_qrto >= 25 && n_qrto < 50) {

    for (i = n_qrto; i == n_qrto; i++) {

    System.out

    .println("Tipo: Chal");

    System.out

    .println("Locatrio: "

    + nome_loc[i]);

    System.out

    .println("Data e horrio de entrada: "

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    46/54

    43

    + qrto[i][0]

    + "/"

    + qrto[i][1]

    + "/"

    + qrto[i][2]

    + " s "

    + qrto[i][3]

    + ":"

    + qrto[i][4]);

    System.out

    .println("Data e horrio de entrada: "

    + qrto[i][5]

    + "/"

    + qrto[i][6]

    + "/"

    + qrto[i][7]

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    47/54

    44

    + " s "

    + qrto[i][8]

    + ":"

    + qrto[i][9]);

    aluguel diarias_Total = new aluguel();

    qtd_Diaria = diarias_Total

    .quant_Diarias(

    qrto[i][0],

    qrto[i][1],

    qrto[i][2],

    qrto[i][3],

    qrto[i][4],

    qrto[i][5],

    qrto[i][6],

    qrto[i][7],

    qrto[i][8],

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    48/54

    45

    qrto[i][9]);

    System.out

    .println("Nmero de dirias: "

    + qtd_Diaria);

    aluguel valor_Total = new aluguel();

    vlr_Pg = valor_Total

    .calcula_Valor(

    qtd_Diaria,

    vl_Diaria,

    n_qrto);

    vlr_Acr = (vlr_Pg * 18) / 100;

    vlr_Pg = vlr_Pg + vlr_Acr;

    System.out

    .println("Total devido: R$"

    + vlr_Pg);

    cont_Qto[i] = 0;

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    49/54

    46

    cd3 = 2;

    }

    cd3 = 2;

    cd = 15;

    }

    }

    } else {

    System.out

    .println("Entrada nao registrada para este quarto!!");

    cd3

    = 2;

    }

    cd = 15;

    }

    } catch (InputMismatchException

    ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out

    .println("ERRO: O programa ser finalizado!!");

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    50/54

    47

    System.out.println("Obrigado!!");

    cd3 = 2;

    opc = -1;

    }

    } else {

    System.out.println("Quarto

    invlido!!");

    }

    try {

    System.out.println("\nDeseja

    inserir nova sada?");

    System.out.println("1.SIM ou

    2.NO");

    cd3 = sc.nextInt();

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    System.out.println("Repita a

    operao desejada!!");

    cd3 = 2;

    opc = -1;

    }

    cd = 15;

    }

    case 3:

    while (cd == 1) {

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    51/54

    48

    try {

    System.out

    .println("Digite o valor da diria a ser cobrado: ");

    float n_Valor = sc.nextInt();

    if (n_Valor > 0) {

    vl_Diaria = n_Valor;

    } else {

    System.out

    .println("ERRO: Valor incorreto! Digite valor maior que 0!");

    }

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    cd = 0;

    }

    try {

    System.out.println("Atualizar valor

    da diria?");

    System.out.println("1. Sim");

    System.out.println("2. No");

    cd = sc.nextInt();

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    52/54

    49

    cd = 0;

    }

    }

    case 4:

    break;

    default:

    while (cd == 1) {

    try {

    System.out.println("Entre com um

    valor vlido!!");

    System.out.println(" ");

    System.out.println("Deseja fazer

    outra operacao?");

    System.out.println("1. Sim");

    System.out.println("2. No");

    cd = sc.nextInt();// Recebendo

    opo do usurio

    } catch (InputMismatchException ime) {

    System.out

    .println("ERRO: Valor incorreto, digite novamente o valor!!");

    cd = 0;

    }

    }

    }

    }

    }

    }

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    53/54

    50

    class aluguel {

    int quant_Diarias(int diaE, int mesE, int anoE, int hrE, int minE,

    int diaS, int mesS, int anoS, int hrS, int minS) {

    int[] cont_Mes = new int[60];

    int[] cont_Ano = new int[60];

    int Mes = 0;

    int Ano = 0;

    int a = diaS - diaE;// alterar onde estiver x

    int cont = 0;

    int cont_Dia = 0;

    // Calculando diferena entre ano de entrada e saida

    if (anoE < anoS) {

    Ano = anoS - anoE;

    Ano = Ano * 365;

    cont_Dia = cont_Dia + Ano;

    }

    // Calculando diferena entre mes de entrada e saida

    if (mesS > mesE) {

    Mes = mesS - mesE;

    Mes = Mes * 30;

    cont_Dia = cont_Dia + Mes;

    }

    // Contando numero de diarias

    for (cont = 0; cont 12) && (minE >= 0)) || ((hrS > 12) && (minS >= 0))) {

  • 8/10/2019 ATPS - Programao Orientada a Objetos.docx

    54/54

    cont_Dia++;

    }

    }

    return cont_Dia;

    }

    // Calculando total que ser pago

    float calcula_Valor(float n_Diaria, float valor_Dia, int i) {

    float vTotal = 0;

    vTotal = n_Diaria * valor_Dia;

    return vTotal;

    }

    void mostra_Valor(int opcao, int qrto_Banheira, float vl_Diaria) {

    }

    }