Ajuda exercicio basico em java(Simulador de hotel)

11 respostas
J

bom pessoal, sou novo em java, 2 meses apenas, sou novo no forum
10 min. apenas :smiley:
bom mas vamos ao que interessa
precisei fazer um exercicio onde simularia um hotel
com 20 quartos
e precisava cadastrar o hospede
remover
e listar

simplesmente isso
blz… foi feito e funciona que eh uma maravilha

mas eu gostaria de implementar esse exercicio
quando eu cadastrar um novo hospede gostaria de cadastrar tb, o nome, sobrenome e a idade.

Meu professor me informou sobre criar classe e instanciar um objeto

public static class Cliente{   
  
  
private String nome;   
private String sobrenome;}  
public static class Cliente{


private String nome;
private String sobrenome;}

blz fiz isso
agora
como eu atribuo valores para essas variaveis que estao dentro da classe cliente
no meu metodo principal?

valew gente… e desculpa alguma coisa se coloquei o codigo errado e tals

11 Respostas

nel

Oi!

Sempre que postar algum código, utilize das tags code, caso contrário, há aqueles que nem vão terminar de ler o seu tópico:)
Está utilizando Swing? Se sim, depende, podes usar um JTextField, senão, a classe Scanner.

Há muitos exemplos de Swing para entrada de dados, assim como a utilização da classe Scanner.
Abraços!

JonaTHANNM

nel:
Oi!

Sempre que postar algum código, utilize das tags code, caso contrário, há aqueles que nem vão terminar de ler o seu tópico:)
Está utilizando Swing? Se sim, depende, podes usar um JTextField, senão, a classe Scanner.

Há muitos exemplos de Swing para entrada de dados, assim como a utilização da classe Scanner.
Abraços!

verifique de que maneira vc vai utilizar, como citado acima, tente fazer, e depois poste as dúvidas…
=]

J

blz gente, ahn seguinte, no meu programa utilizo o scanner
ainda nao vimos o swing

atualmente no meu programa eu criei um vetor (quartos[20])
o usuario escolhe a opcao (cadastra, remove, lista e sai)
verifica se o quarto na posicao i esta vazio ou nao
e remove ou cadastra
basicamente…

agora atraves do scanner eu quero criar essa classe cliente com as variaveis nome sobrenome e inteiro
tambem com 20 posicoes, e qdo o usuario escolher a opcao cadastrar
eu peço prele digitar tb o nome , sobrenome e a idade, armazenando essas variaveis em nome sobrenome e idade(da classe cliente)

heheh
axo q deve ser isso q eu kis dize

JonaTHANNM

vc vai ter que fazer um laço de repetição por exemplo com uma opção sair, que quando selecionada vc sai do programa. Tera que criar um ClienteVO por exemplo, para ser armazenado o nome, sobrenome etc. Depois vc pode criar uma Lista de ClienteVO, e assim que ele for pedindo para adicionar, vc instancia um clienteVO e preenche ele com os dados que irão sendo digitados…

tente fazer um básico, depois poste o código e tire suas dúvidas

J

blz
olha meu programa hj como ele esta
e ja esta funcionando

import java.util.Scanner; // IMPORTANDO O SCANNER PARA ENTRADA DE DADOS
public class Hotel 
	{

		public static class Cliente
		{
			private String nome;
			private boolean disponivel;
			
		}
	
	
		public static void main(String args[]) 
		{
			Cliente hotel[];
			hotel = new Cliente[20];
			for (int i = 0; i<20; i++)
			{
				hotel[i] = new Cliente();
			}
			Scanner input = new Scanner(System.in);
			int i,v, opc;
			int quartos[] = new int[20];
			
			
			
			
			do // laco de repeticao até o usuario escolher a opcao sair 
			{
				
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("**********-----------HOTEL JAVA----------***********");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("");// tela inicial de boas vindas
				System.out.println("---------------------------------------------------------------");// tela inicial de boas vindas
				System.out.println("");
				System.out.println("");
				System.out.println("---------------------------------------------------------------");
				System.out.println("1- CADASTRAR");
				System.out.println("2- REMOVER");
				System.out.println("3- REMOVER TODOS");
				System.out.println("4- IMPRIMIR");
				System.out.println("---------------------------------------------------------------"); 
				System.out.println("5- Sair");
				System.out.println("---------------------------------------------------------------");
				System.out.println("");
				System.out.println("Escolha a operacao desejada:");
				opc = input.nextInt();
				
				
				switch(opc)
				{
					
				case 1: // opcao de cadastro de usuario
					System.out.println("Escolha o quarto");
					i= input.nextInt();
					if (i <20){
						
						if (quartos[i]== 0) // caso o quarto esteja desocupado ... 
						{
														
							System.out.printf("Hospede registrado com sucesso no quarto %d\n", i); // cadastro efetuado com sucesso
							quartos[i]= 1; // quarto esta agora ocupado
							
						}else
						{
							System.out.println("Quarto Ocupado!"); // caso quarto ja esteja ocupado informe o usuario disso
						}
					}else{
						System.out.println("Quarto Inexistente");
					}
					break;
				case 2:
					System.out.println("Escolha o quarto"); // removendo usuario de um quarto
					i= input.nextInt();
					if (quartos[i]== 0)// se o quarto estiver vazio
					{
						System.out.printf("Quarto %d encontra-se vazio no momento!\n", i); // informe que o quarto ja esta vazio e nao tem ninguem para ser removido
												
					}else // senao
					{
						System.out.println("Hóspede removido do quarto com sucesso!"); // remova o hospedo do quarto
						quartos[i]= 0; // quarto agora esta vazio
					}
					break;
				case 3:
					System.out.println("Todos hóspedes removidos com sucesso"); // removendo toodos os hospedes de uma soh vez
					for(v=0;v<20;v++)
					{
						quartos[v]= 0; // todos os quartos agora estao vazios
					}
					break;
				case 4:
					System.out.println("Listagem de quartos!"); // exibindo uma lista de todos os quartos.. c
					for (i=0;i<quartos.length;i++)
					{
						if (quartos[i]==0) // verifica se esta vazio(o quarto)
						{ 
							System.out.printf("Quarto: %d: ----Livre\n",i);// exibie quarto vazio 
						}else
						{
							System.out.printf("Quarto: %d: ----Ocupado\n",i); // quarto ocupado 
						}
					}
					break;
				
				default:
					System.out.println("Opcao invalida"); // tratando uma excessao 
				}
				
				
				
			}while(opc!=5); // ate o usuario escolher a opcao 5 - sair
		}

}

o que acontece…
nesse programa… ele apenas verifica se o quarto esta vazio e cadastra alguem no quarto
se estiver ocupado remove

isso é o que foi pedido no exercicio(apenas isso)

mas agora eu gostaria de aprender como trabalhar com classes
entao eu gostaria de criar uma classe
tpw Hospede
e essa classe Hospede, teria 3 variaveis… (nome, sobrenome, e idade)

quando o usuario escolhesse a opcao 1 - cadastrar
ele faria a verificacao do quarto vazio(como ja esta fazendo)
mas solicitaria tambem que fosse digitado o nome, sobrenome e a idade

minha duvida eh
como criar essa classe(se ela seria no metodo principal ou fora)

e dentro da estrutura case
como eu armazenaria o nome digitado na variavel nome da classe Hospede

JonaTHANNM

ex de uma classe Cliente:

public class ClienteVO {
	
	private String nome;
	private String sobreNome;
	private int idade;
	
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getSobreNome() {
		return sobreNome;
	}
	public void setSobreNome(String sobreNome) {
		this.sobreNome = sobreNome;
	}
	public int getIdade() {
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}
	
}

no código, vc cria uma variável ex:

ClienteVO clienteVO = new ClienteVO();

depois seta valores dentro da variável:

clienteVO.setNome("João");
clienteVO.setSobreNome("da Silva");
clienteVO.setIdade(30);

e vc pode adicionar este cara em uma lista no lugar de um vetor, pq vc pode ter 1, 10 ou 1000 quartos (por exemplo)

List<ClienteVO> lista = new ArrayList<ClienteVO>();
lista.add(clienteVO);

agora vc vai preenchendo sua lista, com os valores que irão sendo digitados, e continua fazendo como vc estava…

J

caraio velho
valews msm por enquanto
vo tenta
mas agora eu entendi
:smiley:

J

velho
tentei
tentei
e olha ae o q saiu
primeiro criei a classe Hospede

public class Hospede
	{
		private String nome;
		private String sobrenome;
		private int idade;
		
		//-----------------------------------//
		public String getNome()
		{
			return nome;
		}
		public void setNome(String nome)
		{
			this.nome = nome;
		}
		public String getSobrenome()
		{
			return sobrenome;
		}
		public void setSobrenome(String sobrenome)
		{
			this.sobrenome = sobrenome;
		}
		public int getIdade()
		{
			return idade;
		}
		public void setIdade(int idade)
		{
			this.idade= idade;
		}
	}

agora joguei ela no meu metodo principal

import java.util.Scanner; // IMPORTANDO O SCANNER PARA ENTRADA DE DADOS



public class Hotel 
	{
	

		public static void main(String args[]) 
		{
			
			Hospede hospedes = new Hospede();
			
			
			
			
			Scanner input = new Scanner(System.in);
			int i,v, opc;
			int quartos[];
			quartos = new int[20];
			
			do // laco de repeticao até o usuario escolher a opcao sair 
			{
				
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("**********-----------HOTEL JAVA----------***********");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("***************************************************************");// tela inicial de boas vindas
				System.out.println("");// tela inicial de boas vindas
				System.out.println("---------------------------------------------------------------");// tela inicial de boas vindas
				System.out.println("");
				System.out.println("");
				System.out.println("---------------------------------------------------------------");
				System.out.println("1- CADASTRAR");
				System.out.println("2- REMOVER");
				System.out.println("3- REMOVER TODOS");
				System.out.println("4- IMPRIMIR");
				System.out.println("---------------------------------------------------------------"); 
				System.out.println("5- Sair");
				System.out.println("---------------------------------------------------------------");
				System.out.println("");
				System.out.println("Escolha a operacao desejada:");
				opc = input.nextInt();
				
				
				switch(opc)
				{
					
				case 1: // opcao de cadastro de usuario
					System.out.println("Escolha o quarto");
					i= input.nextInt();
					if (i<20)
					{
						
					
						if (quartos[i]== 0) // caso o quarto esteja desocupado ... 
						{
						
							System.out.println("Digite o Nome do Hospede:");
							hospedes.setNome(input.next());
							System.out.println("Digite o Sobrenome");
							hospedes.setSobrenome(input.next());
							
							
							System.out.printf("Hospede registrado com sucesso no quarto %d\n", i); // cadastro efetuado com sucesso
							quartos[i]= hospedes; // quarto esta agora ocupado
							
						}else
						{
							System.out.println("Quarto Ocupado!"); // caso quarto ja esteja ocupado informe o usuario disso
						}
					}else
					{
						System.out.println("Quarto inexistente");
					}
					break;
				case 2:
					System.out.println("Escolha o quarto"); // removendo usuario de um quarto
					i= input.nextInt();
					if (quartos[i]== 0)// se o quarto estiver vazio
					{
						System.out.printf("Quarto %d encontra-se vazio no momento!\n", i); // informe que o quarto ja esta vazio e nao tem ninguem para ser removido
												
					}else // senao
					{
						System.out.println("Hóspede removido do quarto com sucesso!"); // remova o hospedo do quarto
						quartos[i]= 0; // quarto agora esta vazio
					}
					break;
				case 3:
					System.out.println("Todos hóspedes removidos com sucesso"); // removendo toodos os hospedes de uma soh vez
					for(v=0;v<20;v++)
					{
						quartos[v]= 0; // todos os quartos agora estao vazios
					}
					break;
				case 4:
					System.out.println("Listagem de quartos!"); // exibindo uma lista de todos os quartos.. c
					for (i=0;i<quartos.length;i++)
					{
						if (quartos[i]==0) // verifica se esta vazio(o quarto)
						{ 
							System.out.printf("Quarto: %d: ----Livre\n",i);// exibie quarto vazio 
						}else
						{
							System.out.printf("Quarto: %d: ----Ocupado\n",i); // quarto ocupado 
						}
					}
					break;
				
				default:
					System.out.println("Opcao invalida"); // tratando uma excessao 
				}
				
				
				
			}while(opc!=5); // ate o usuario escolher a opcao 5 - sair
		}

}

MEU PROBLEMA
qdo eu tento joga o hospedes no quarto[i]
ele nao aceito e da erro no tipo da variavel hospedes(type mismatch)
to fazeno algo errado?
obvio que sim

soh queria sabe o q heheh

JonaTHANNM

tenta assim, utilize List para ficar mais fácil

List<Hospedes> lista = new ArrayList<Hospedes>();

e quando vc tiver preenchido o objeto, adicione-o na lista

lista.add(hospede);

tente assim

J

cara consegui arruma aquilo simplesmente mudando a declaracao de vetor
mas esse eskema de list eu nun tendi

ahuhuahuahuauh
mas de qualquer forma ja deu certo

obrigado msm
:smiley:

JonaTHANNM

da uma pesquisada sobre as List…
é muito interessante, e ajuda bastante !

Criado 31 de maio de 2011
Ultima resposta 31 de mai. de 2011
Respostas 11
Participantes 3