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) {
}
}
Top Related