Olá pessoal sou iniciante em Java e gostaria de sugestões para resolver este algorítimo. Grato desde já!

Escreva um programa que apresente um menu permitindo ao usuário
realizar a (1) Internação ou (2)Alta de pacientes de um hospital (Nome do Paciente e Quarto).
É importante saber que cada quarto permite a internação, simultânea de apenas 2 pacientes e,
ao todo, a ala possui 5 quartos. Lembre-se sempre de verificar, no caso de internação, se o
quarto possui vaga disponível e, ao realizar o processo de alta, liberar a vaga no quarto. O sistema
encerra quando o usuário informar a opção (3) Sair do menu principal.

Meu código ta assim se alguém puder me ajudar

Scanner entrada = new Scanner(System.in);

    String  nomePaciente;
    String  quartos = " ";
    int     opcaoMenu, numQuarto = 5;
  
    
    do{
        
        System.out.print("--------------------------------------------------\n");
        System.out.print("                     CONVÊNIO                     \n");
        System.out.print("--------------------------------------------------\n");
    
        System.out.print("1. INTERNAÇÃO \n");
        System.out.print("2. ALTA \n");
        System.out.print("3. SAIR \n");
    
        System.out.print("DIGITE UMA OPÇÃO ");
        opcaoMenu = entrada.nextInt();
        
    }while(opcaoMenu != 1 && opcaoMenu != 2);
    
    switch(opcaoMenu)
    {
        case 1:
            
            System.out.println("--------------------------------------------\n");
            System.out.print("                INTERNAÇÃO                    \n");
            System.out.println("--------------------------------------------\n");
            
            System.out.print("PACIENTE: ");
            nomePaciente = entrada.nextLine();
            
            System.out.print("QUARTO..: ");
            numQuarto = entrada.nextInt();
          
            
            if(quartos != " ")
            {
                
                System.out.print("QUARTO OCUPADO! ");  
            }
            
            else
            {
                System.out.print("INTERNAÇÃO REALIZADA COM ÊXITO. ");
                
            } break;
            
                
        case 2:
            
            System.out.println("--------------------------------------------\n");
            System.out.print("                  ALTA                        \n");
            System.out.println("--------------------------------------------\n");
            
            System.out.print("PACIENTE: ");
            nomePaciente = entrada.nextLine();
            
            System.out.print("QUARTO..: ");
            numQuarto = entrada.nextInt();
            
            if(quartos == " ") 
            {
                System.out.print("QUARTO LIBERADO! \n");
                
                
            }break;


    }   
    
}

}

Boa noite, qual a sua dificuldade?

1 curtida

Acho que seria assim, mas o calculo dos quartos ainda está com problema

Avalie e veja se é o que precisa. Não testei tudo, mas acredito que te atenda boa parte de seu problema.

Alguns testes que aconselho:

  • Preencha todas as posições do vetor
  • Teste como nomes repetidos
  • remova e insira repetidas vezes na mesma posição

import java.util.Scanner;

public class Principal {

private static Scanner entrada;

public static void main(String[] args) {

	// Variaveis individuais para receber as entradas digitadas
	String nomePaciente;
	int opcaoMenu, numQuarto, contPacientes=0;

	// Vetores para armazenar as lista de pacientes
	// A cada duas posições do vetor correspondem a um quarto
	String listaPacientes[] = new String[10];
	
	// Vetor para armazenar a o quarto em que o paciente foi internado
	int listaQuartos[] = new int[5];	

	entrada = new Scanner(System.in);

	do {

		System.out.println("--------------------------------------------------");
		System.out.println("                     CONVÊNIO                     ");
		System.out.println("--------------------------------------------------");

		System.out.println("1. INTERNAÇÃO");
		System.out.println("2. ALTA");
		System.out.println("3. SAIR");

		System.out.print("DIGITE UMA OPÇÃO ");
		opcaoMenu = entrada.nextInt();

		switch (opcaoMenu) {
		case 1:

			System.out.println("--------------------------------------------");
			System.out.println("                INTERNAÇÃO                  ");
			System.out.println("--------------------------------------------");

			// Listar a quantidade de vagas por quarto
			for (int i = 0; i < listaQuartos.length; i++) {
				System.out.println("Quarto [ "+(i+1)+" ] possui "+listaQuartos[i]+" internado(s)");
			}
			
			System.out.print("DIGITE O NOME DO PACIENTE: ");
			nomePaciente = entrada.next();

			do {
				System.out.print("DIGITE O QUARTO DA INTERNAÇÃO [0 - 4]: ");
				// Os números dos quartos variam de 0 até 4 que correspondem as posições do vetor
				numQuarto = entrada.nextInt();
			} while (numQuarto < 0 || numQuarto > 4);

			// Quarto possui vaga
			if (listaQuartos[numQuarto] != 2) {
				System.out.println("Internando o paciente [ "+nomePaciente+" ] no quarto [ "+numQuarto+" ]");
				// Guardando o nome do paciente
				System.out.println("Valor contador quarto "+listaQuartos[numQuarto]);
				listaPacientes[contPacientes] = nomePaciente;
				contPacientes = contPacientes +1;
				// Incrementando a quantidade de pacientes naquele quarto
				listaQuartos[numQuarto] = listaQuartos[numQuarto] + 1;
			}
			else {
				System.out.println("NÃO EXISTE VAGA PARA INTERNAR O PACIENTE NO QUARTO "+numQuarto+" !");
			}
			break;

		case 2:

			System.out.println("--------------------------------------------");
			System.out.println("                  ALTA                      ");
			System.out.println("--------------------------------------------");

			// Mostrar o pacientes e os quartos em que estão internados
			for (int i = 0; i < listaPacientes.length; i++) {
				if(listaPacientes[i] != null) {
					System.out.println("Paciente [ "+listaPacientes[i] +" ]");
				}
			}
			
			// Solicitando o nome do paciente que terá alta
			System.out.print("QUAL PACIENTE TERÁ ALTA ?");
			nomePaciente = entrada.next();
			
			// Validando se o paciente existe
			for (int i = 0; i < listaPacientes.length; i++) {
				if(nomePaciente.equalsIgnoreCase(listaPacientes[i])) {
					System.out.println("Realizando alta do paciente [ "+listaPacientes[i]+" ]\n");
					listaPacientes[i] = null;
					contPacientes = contPacientes -1;
					System.out.println("Quarto [ "+listaQuartos[i/2]+" ] liberado !");
					listaQuartos[i/2] = listaQuartos[i/2] - 1;
				}
			}

			break;
		}
	} while (opcaoMenu != 3);
}

}

1 curtida

gpd38 Muito obrigado pelo apoio me ajudou MUITO!!

De nada @Deimont

Precisando de algo, não deixe de perguntar aqui no fórum. Sua dúvida pode ajudar muitas outras pessoas e sua solução também.

Quando finalizar, não deixe de nos mostrar como ficou.

1 curtida