Ajuda no código!

8 respostas
R

Pessoa eu tenho essa questão:

Faça um Programa para controlar o acesso de pessoas a um restaurante. O restaurante possui uma capacidade de 40 vagas, que não poderá ser ultrapassada. O controle se dará através de códigos, conforme a tabela: 0-FIM 1-ENTRA UMA PESSOA (escrever: ?Entrou?)42 2-SAI UMA PESSOA (escrever: ?Saiu?) 3-MOSTRAR QUANTOS LUGARES ESTÃO DISPONÍVEIS 4-MOSTRAR O TOTAL DE PESSOAS QUE ENTRARAM 5-MOSTRAR O TOTAL DE PESSOAS QUE SAÍRAM Outro código escrever: ?Código Inválido?

O meu código está pela metade e está assim :

import java.util.Scanner;
public class Exercíco2 {
	public static void main(String [] args){
		
		int opcao;
		int vagas=0, entra=0, sai=0;
		int TotalEntra, TotalSai, TotalVagas;
		
		System.out.println("0-FIM");
		System.out.println("1-ENTRADA DE PESSOA");
		System.out.println("2-SAIDA DE PESSOA");
		System.out.println("3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS");
		System.out.println("4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM");
		System.out.println("5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM");
		System.out.println("\ninforma a opção desejada: ");
		Scanner sc = new Scanner(System.in);
		opcao = sc.nextInt();
		 
		
		switch (opcao) {
		case 1:
			System.out.println("Quantas pessoas estão entrando?");
			entra = sc.nextInt();
			
			System.out.print("Entrou " + entra + " pessoas!" );
			break;
		case 2:
			System.out.println("Quantas pessoas estão saindo?");
			sai = sc.nextInt();
			
			System.out.print("Saiu " + sai + " pessoas!");
			break;
		case 3:
			vagas = entra - sai;
			System.out.println("A quantidade de vagas disponíveis é: " + vagas);
			break;
			
		}
		return;
	}
		
}
Está faltando muito coisa eu sei, mais não estou acertando como dar retorno antes do switch e como só finalizar o programa apenas quando informar o "0"

8 Respostas

CristianPalmaSola10
<blockquote>

int opcao = -1;

int vagas=0, entra=0, sai=0;

int TotalEntra, TotalSai, TotalVagas;
while (opcao != 0) {

System.out.println(0-FIM);

System.out.println(1-ENTRADA DE PESSOA);

System.out.println(2-SAIDA DE PESSOA);

System.out.println(3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS);

System.out.println(4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM);

System.out.println(5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM);

System.out.println("\ninforma a opção desejada: ");

Scanner sc = new Scanner(System.in);

opcao = sc.nextInt();
switch (opcao) {  
    case 1:  
        System.out.println("Quantas pessoas estão entrando?");  
        entra = sc.nextInt();  
          
        System.out.print("Entrou " + entra + " pessoas!" );  
        break;  
    case 2:  
        System.out.println("Quantas pessoas estão saindo?");  
        sai = sc.nextInt();  
          
        System.out.print("Saiu " + sai + " pessoas!");  
        break;  
    case 3:  
        vagas = entra - sai;  
        System.out.println("A quantidade de vagas disponíveis é: " + vagas);  
        break;  
    default:
        System.out.println("opção invalida");
    }

}

veja se de resolve

R

Cristian,
Mais eu fazendo isso o programa ainda continua finalizando!

O código tem que se de acordo com a questão em cima!

E eu não estou conseguindo realizar por conta disso toda vez que eu escolho umas das opções e informo o que ela precisa, ao programa executar e ele finaliza e zera as informações!

CristianPalmaSola10

meu nome é "Cristian" mais atenção na proxima

int opcao = -1;
		int totalPessoas = 0;

		while (opcao != 0) {
			System.out.println(&quot;0-FIM&quot;);
			System.out.println(&quot;1-ENTRADA DE PESSOA&quot;);
			System.out.println(&quot;2-SAIDA DE PESSOA&quot;);
			System.out.println(&quot;3-MOSTRAR QUANTIDADE DE VAGAS DISPONIVEIS&quot;);
			System.out
					.println(&quot;4-MOSTRAR A QUANTIDADE DE PESSOAS QUE ENTRARAM&quot;);
			System.out.println(&quot;5-MOSTRAR A QUANTIDADE DE PESSOA QUE SAIRAM&quot;);
			System.out.println(&quot;\ninforma a opção desejada: &quot;);
			Scanner sc = new Scanner(System.in);
			opcao = sc.nextInt();
			
			int qt = 0;

			switch (opcao) {
			case 1:
				System.out.println(&quot;Quantas pessoas estão entrando?&quot;);
				qt = sc.nextInt();
				
				totalPessoas += qt;

				if (totalPessoas &gt; 40) {
					System.out.println(&quot;Não é possivel a entrada de &quot; + qt + &quot; pessoas agora, &quot; + (totalPessoas - 40) + 
							&quot; pessoas teram que esperar o mesmo número de pessoas sair para que elas entrem.&quot;);
					
					totalPessoas -= qt;
				} else {
					System.out.println(&quot;Entrou &quot; + qt + &quot; pessoas!&quot;);
				}
				
				break;
			case 2:
				System.out.println(&quot;Quantas pessoas estão saindo?&quot;);
				qt = sc.nextInt();
				totalPessoas -= qt;
				System.out.print(&quot;Saiu &quot; + qt + &quot; pessoas!&quot;);
				break;
			case 3:
				System.out.println(&quot;A quantidade de vagas disponíveis é: &quot;
						+ (40 - totalPessoas));
				break;
			default:
				System.out.println(&quot;opção invalida&quot;);
			}
		}
R

Muito obrigado Cristian!
o que faz ele ficar voltando sempre no código das opções é break; ou o default: ?

michetti

O que faz voltar no menu de opções é o porque a variavel opção é diferente e 0…

Isto dentro de um while… o while tem a função de executar uma sequência de comandos enquanto a condição entre parenteres for verdade.

ErickRAR

O [color=darkblue]break [/color] é para quando entrar em um dos cases, não ter que percorrer os outros.
O [color=darkblue]default[/color] é caso não entre em nenhum dos cases, faça aquilo por default.

O que faz ficar voltando é o [color=darkblue]while[/color].

while (opcao != 0) { //Enquanto a opção digitada for diferente de 0 ...

R

michetti:
O que faz voltar no menu de opções é o porque a variavel opção é diferente e 0…

Isto dentro de um while… o while tem a função de executar uma sequência de comandos enquanto a condição entre parenteres for verdade.

Muito obrigado!
Isso clareou bem e matou definitivamente a minha duvida!

R

ErickRAR:
O [color=darkblue]break [/color] é para quando entrar em um dos cases, não ter que percorrer os outros.
O [color=darkblue]default[/color] é caso não entre em nenhum dos cases, faça aquilo por default.

O que faz ficar voltando é o [color=darkblue]while[/color].

while (opcao != 0) { //Enquanto a opção digitada for diferente de 0 ...

Muito obrigado pela explicação Erick!

Criado 27 de fevereiro de 2014
Ultima resposta 27 de fev. de 2014
Respostas 8
Participantes 4