Exercicio casa de espetaculo

Ae pessoal, ultimo exercicio q tenho q fazer!!! N sei nem como começar… o_O
Se puderem ajudar ae, valeuu!

Faça um programa em Java para gerenciar um sistema de reservas de mesas em uma casa de espetáculo. A casa possui 40
mesas de 6 lugares cada. Um cliente fornece o número da mesa e a quantidade de lugares desejada. O sistema deverá
informar se foi possível realizar a reserva e atualizar a reserva. Se não for possível, emitir uma mensagem.
O programa termina quando o usuário digitar 0 (zero) para uma mesa ou quando todos os 240 lugares estiverem ocupados.

Olá, seria bom começar criando as classes Mesa e Casa.
Na classe Mesa crie um vetor de 6 posições booleano, e na classe Casa crie um vetor de 40 posições de Mesa,
o método mais problemático provavelmente será o de fazer reserva dentro da classe Casa.

Você pode começar assim por exemplo:

public class Mesa {

	private boolean[] lugares;
	
	public Mesa()
	{
		lugares = new boolean[6];
	}
}

//outros métodos...

E para a classe Casa:

public class Casa {

	private Mesa[] mesas;
	
	public Casa()
	{
		mesas = new Mesa[40];
		for(int i = 0; i < mesas.length; i++)
		{
			mesas[i] = new Mesa();
		}
	}
}

//outros métodos...

Qualquer dúvida em relação aos métodos posta aí, eu tenho pronto o exercício aqui, mas a idéia é você fazer né…

[quote=C. Porto]Olá, seria bom começar criando as classes Mesa e Casa.
Na classe Mesa crie um vetor de 6 posições booleano, e na classe Casa crie um vetor de 40 posições de Mesa,
o método mais problemático provavelmente será o de fazer reserva dentro da classe Casa.

Você pode começar assim por exemplo:

public class Mesa {

	private boolean[] lugares;
	
	public Mesa()
	{
		lugares = new boolean[6];
	}
}

//outros métodos...

E para a classe Casa:

public class Casa {

	private Mesa[] mesas;
	
	public Casa()
	{
		mesas = new Mesa[40];
		for(int i = 0; i < mesas.length; i++)
		{
			mesas[i] = new Mesa();
		}
	}
}

//outros métodos...

Qualquer dúvida em relação aos métodos posta aí, eu tenho pronto o exercício aqui, mas a idéia é você fazer né…[/quote]

Entao… eu tenho um codigo pronto aque, mais creio que eh possivel fazer melhor… Ele esta muito grande…
Voce poderia mostrar o seu ?? para mim comparar… E tambem o que tenho possui comandos q n sei para q servem…

package Exercicios;
import javax.swing.*;
public class Exercicio4 {    
   int mesa1 = 6, mesa2 = 6 ,mesa3 = 6 ,mesa4 = 6,mesa5 = 6,mesa6 = 6,mesa7 = 6,mesa8 = 6 ,mesa9 = 6 ,mesa10 = 6;  
   int mesa11 = 6, mesa12 = 6 ,mesa13 = 6 ,mesa14 = 6,mesa15 = 6,mesa16 = 6,mesa17 = 6,mesa18 = 6 ,mesa19 = 6 ,mesa20 = 6;  
   int mesa21 = 6, mesa22 = 6 ,mesa23 = 6 ,mesa24 = 6,mesa25 = 6,mesa26 = 6,mesa27 = 6,mesa28 = 6 ,mesa29 = 6 ,mesa30 = 6;  
   int mesa31 = 6, mesa32 = 6 ,mesa33 = 6 ,mesa34 = 6,mesa35 = 6,mesa36 = 6,mesa37 = 6,mesa38 = 6 ,mesa39 = 6 ,mesa40 = 6;  
   static int mesa = 0;  
   int contLugares = 0; 
   
       public static void main (String args []){  
          Exercicio4 t = new Exercicio4();  
          boolean flag = false;  
          do{             
             mesa = Integer.parseInt(JOptionPane.showInputDialog("Digite a mesa para fazer a reserva"));  
             if(mesa == 0)  
                break;  
             int lugares = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade de lugares"));  
               
             t.reservaDeMesa(mesa, lugares);             
          }while(mesa != 0);            
       }          
       public void reservaDeMesa(int mesa, int lugares){  
          switch(mesa){  
                case 1:  
                   if(mesa1 >= lugares){  
                      mesa1 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 2:  
                   if(mesa2 >= lugares){  
                      mesa2 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
          }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 3:  
                   if(mesa3 >= lugares){  
                      mesa3 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 4:  
                   if(mesa4 >= lugares){  
                      mesa4 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 5:  
                   if(mesa5 >= lugares){  
                      mesa5 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 6:  
                   if(mesa6 >= lugares){  
                      mesa6 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 7:  
                   if(mesa7 >= lugares){  
                      mesa7 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 8:  
                   if(mesa8 >= lugares){  
                      mesa8 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 9:  
                   if(mesa9 >= lugares){  
                      mesa9 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");}  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;            
                case 10:  
                   if(mesa10 >= lugares){  
                      mesa10 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                  else  
                     System.out.println("Esta mesa não possui lugares suficientes!");  
                   break;  
                case 11:  
                   if(mesa11 >= lugares){  
                      mesa11 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                   }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                     break;  
                  case 12:  
                     if(mesa12 >= lugares){  
                        mesa12 = lugares;  
                        contLugares = lugares;  
                        System.out.println("Reserva efetuada com sucesso");  
                     }  
                   else  
                      System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 13:  
                      if(mesa13 >= lugares){  
                      mesa13 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 14:  
                      if(mesa14 >= lugares){  
                      mesa14 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 15:  
                      if(mesa15 >= lugares){  
                      mesa15 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 16:  
                      if(mesa6 >= lugares){  
                      mesa16 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 17:  
                      if(mesa17 >= lugares){  
                      mesa17 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 18:  
                      if(mesa18 >= lugares){  
                      mesa18 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 19:  
                      if(mesa19 >= lugares){  
                      mesa19 = lugares;  
                      contLugares = lugares;  
                      System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;            
                   case 20:  
                      if(mesa20 >= lugares){  
                         mesa20 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                      }  
                     else  
                           System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 21:  
                      if(mesa21 >= lugares){  
                         mesa21 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 22:  
                      if(mesa22 >= lugares){  
                         mesa22 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 23:  
                      if(mesa23 >= lugares){  
                         mesa23 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                      }  
                      else  
                         System.out.println("Esta mesa não possui lugares suficientes!");  
                      break;  
                   case 24:  
                         if(mesa24 >= lugares){  
                         mesa24 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 25:  
                         if(mesa25 >= lugares){  
                         mesa25 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 26:  
                         if(mesa26 >= lugares){  
                         mesa26 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 27:  
                         if(mesa27 >= lugares){  
                         mesa27 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 28:  
                         if(mesa28 >= lugares){  
                         mesa28 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 29:  
                         if(mesa29 >= lugares){  
                         mesa29 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;            
                      case 30:  
                         if(mesa30 >= lugares){  
                            mesa30 = lugares;  
                            contLugares = lugares;  
                            System.out.println("Reserva efetuada com sucesso");  
                         }  
                        else  
                              System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 31:  
                         if(mesa31 >= lugares){  
                         mesa31 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 32:  
                         if(mesa32 >= lugares){  
                         mesa32 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 33:  
                         if(mesa33 >= lugares){  
                         mesa33 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 34:  
                         if(mesa34 >= lugares){  
                         mesa34 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 35:  
                         if(mesa35 >= lugares){  
                         mesa35 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 36:  
                         if(mesa36 >= lugares){  
                         mesa36 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 37:  
                         if(mesa37 >= lugares){  
                         mesa37 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 38:  
                         if(mesa38 >= lugares){  
                         mesa38 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
                      case 39:  
                         if(mesa39 >= lugares){  
                         mesa39 = lugares;  
                         contLugares = lugares;  
                         System.out.println("Reserva efetuada com sucesso");  
                         }  
                         else  
                            System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;            
                      case 40:  
                         if(mesa40 >= lugares){  
                            mesa40 = lugares;  
                            contLugares = lugares;  
                            System.out.println("Reserva efetuada com sucesso");  
                         }  
                        else  
                              System.out.println("Esta mesa não possui lugares suficientes!");  
                         break;  
          }          
       }         
   }

Seu algoritmo funciona, mas realmente está muito grande e com muita repetição de código, também acredito que a ideia é criar algo mais orientado à objetos, não sei se você pode trabalhar com vetores mas seria bom em vez de ficar repetindo e inicializando variáveis para substituir o vetor.

Segue o código:

Classe Mesa(Representando uma Mesa):

public class Mesa {

	private boolean[] lugares; //vetor com os lugares da mesa
	
	public Mesa() //construtor inicializa a mesa com os lugares desocupados
	{
		lugares = new boolean[6];
	}
	
	public void setOcupado(int l)//seta um lugar da mesa como ocupado
	{
	  if(!lugares[l])
	  {
		lugares[l] = true;
		
	  } 
	}
	
	public int Length() //retorna o número de lugares da mesa
	{
		return lugares.length;
	}
	
	public int numeroDeReservas() //retorna o número de lugares reservados na mesa
	{
        int aux = 0;
		
		for(int i = 0; i < lugares.length; i++)
		{
			if(lugares[i])
			{
				aux++;
			}
		}
		
		return aux;
	}
	
	public boolean isFull() //retorna se a mesa está com todos os lugares ocupados
	{
		int aux = 0;
		
		for(int i = 0; i < lugares.length; i++)
		{
			if(lugares[i])
			{
				aux++;
			}
		}
		
		if(aux == lugares.length)
		{
			return true;
		}
		
		return false;
	}
	
	public boolean getOcupacao(int l) //verifica se um lugar está ocupado ou livre
	{
		return new Boolean(lugares[l]);
	}
	
	public String toString() //metodo toString() da classe
	{
		String form = "";
		for(int i = 0; i < lugares.length; i++)
		{
			form += "Lugar "+(i+1)+": "+((lugares[i])?  "ocupado" : "livre") + "\n";
		}
		
		return form;
	}
	
}

Classe Casa(Representando uma Casa de Espetáculos):

public class Casa {

	private Mesa[] mesas;//vetor com as mesas
	
	public Casa()// construtor, inicializa 40 mesas
	{
		mesas = new Mesa[40];
		for(int i = 0; i < mesas.length; i++)
		{
			mesas[i] = new Mesa();
		}
	}
	
	public boolean fazerReserva(int mesa, int lugares)//faz a reserva na mesa com o número de lugares especificado, retorna true se reservou ou false se não reservou
	{
	
	   if(mesa <= 0 || mesa > 40) //se o número da mesa estiver fora da escala de mesas retorna false
		   return false;
	   else if(lugares <= 0 || lugares > 6)// se o número de lugares desejados for menor ou igual a 0, ou mais que 6 em uma mesa, retorna false
		   return false;
		
	   Mesa m = mesas[mesa-1]; //pega a mesa desejada do vetor
	   
	   if(m.isFull())   //se ela estiver cheia não reserva
	   {
		   return false;
	   }
	   else
	   {
	   
	      int[] aux = new int[m.Length()]; //vetor auxiliar
	      for(int i = 0; i < aux.length; i++) //inicializa o vetor auxiliar com -1
	      {
	    	  aux[i] = -1;
	      }
	      int aux2 = 0; //variável auxiliar
	   
	      for(int i = 0; i < m.Length(); i++)
	      {
	    	 if(aux2 == lugares) //se variável auxiliar tem o mesmo número que lugares significa que a mesa tem o número de lugares desejados
	    	 {
	    		 break;
	    	 }
	    	 else
	    	 {	    	 
		        if(!m.getOcupacao(i))   //verifica se o lugar especificado está livre
		        {
			        aux[i] = i; //salva no vetor a posição da mesa 
			        aux2++;  //incrementa variável auxiliar
		        }
	         }
	      }
	   
	      if(lugares == aux2) //se o número de lugares for o mesmo que o número de cadeiras desocupadas, reserva
	      {
	    	  for(int i = 0; i < aux.length; i++) //percorre o vetor auxiliar
	    	  {
	    		  if(aux[i] != -1) //se o número que o vetor auxiliar possui for diferente de -1
	    		  {
	    			  m.setOcupado(aux[i]); //significa que o vetor possui a posição desejada na mesa, então reserva
	    		  }
	    	  }
	    	  
                   //após reservar os lugares, retorna true
	    	  return true;
	      }
	      
	      return false;  //se a mesa não dispor do número de lugares desejados não reserva
	   }
	}
	
	public String toString()//método toString() da classe
	{
		String form = "";
		
		for(int i = 0; i < mesas.length; i++)
		{
			form += "Mesa "+(i+1)+":"+"\n";
			form += mesas[i].toString();
		}
		
		return form;
	}
	
}

Classe App(Representando a classe Aplicação do programa):

import javax.swing.JOptionPane;

public class App {
	
	public static void main(String[] args)
	{
		Casa c = new Casa();
		
		int mesa = -1; //valor aleatório diferente de 0 para não encerrar o programa
		int lugares;
		
	    do
	    {
	    	try
	    	{
	    	  mesa = Integer.parseInt(JOptionPane.showInputDialog("Digite a mesa que desejas fazer a reserva:"));
	    	  if(mesa == 0)
	    	  {
	    		 JOptionPane.showMessageDialog(null, "Fim do Programa"); 
	    	     continue;
	    	  }
	    	  lugares = Integer.parseInt(JOptionPane.showInputDialog("Digite a quantidade de lugares desejados:"));
	    	
	          if(c.fazerReserva(mesa, lugares))
	    	  {
	    		 JOptionPane.showMessageDialog(null, "Mesa "+mesa+" com "+lugares+" lugares reservados.");
	    	  }
	    	  else
	    	  {
	    		 JOptionPane.showMessageDialog(null, "Não foi possível realizar a reserva.");
	    	  }
	          
	    	}catch(NumberFormatException nfex)
	    	{
	    		JOptionPane.showMessageDialog(null, "Você deve inserir números para reservar os lugares.");
	    	}
	    	
	    }while(mesa != 0);
	}
	
}

Na classe App segui o exemplo do exercício que você passou e utilizei JOptionPane, não sei se é isso que você precisa.
Obs.: Tem um método na classe Mesa que não foi utilizado, o numeroDeReservas() que retorna o número de reservas de uma mesa, mas acabei deixando ele ali.
Qualquer dúvida sobre o código ou problema posta aí.