Menu Java via console

22/09/2016

0

Bom dia Turma do Devmedia.

Estou fazendo um menu simples em java via console (println), para um trabalho da faculdade. Porém encontrei alguns problemas, caso alguém possa me ajudar ficarei agradecido:

1) Meu menu vai ter a seguinte estrutura:

* Vai iniciar pedindo para a pessoa navegar (Do while)

Ola,digite
1 - Cadastros
2 - Relatórios
3 - Sair

Entrando no 1, ele tem que abrir duas opções:
.:.Cadastros.:.
1 - usuarios
2 - produtos
3 - sair

depois de sair, ou concluir os cadastros o menu principal deverá ser acionado automaticamente (terminei de cadastrar os usuarios, deve reabrir o menu de cadastros, posteriormente o menu principal)
Também tenho que controlar as exceções pertinentes (nao digitar letras em campos numericos e nao digitar numeros negativos).

Abaixo meu codigo:

//inicio do Scanner
Scanner leia = new Scanner(System.in);

//Variáveis diversas do sistema
int menu1 = 0;
int usuariosCadastrados = 0;
int produtosCadastrados = 0;
boolean valida;

//Pedir para o usuário definir a quantidade de usuários e Produtos a cadastrar
System.out.print("Digite a quantidade de Usuários do Sistema: ");
usuariosCadastrados = leia.nextInt();
System.out.print("Digite a quantidade de Produtos a serem cadastrados: ");
produtosCadastrados = leia.nextInt();

//Inicio dos vetores e matrizes
String[] nomeUsuario = new String[usuariosCadastrados];
Integer[] produtos = new Integer[produtosCadastrados];



//Inicio do menu

do {
System.out.println("Escolha uma opção a seguir:");
System.out.println("1 - Cadastro de Usuários");
System.out.println("2 - Cadastro de Produtos");
System.out.println("Ou digite 0 para encerrar o programa");

try {
menu1 = Integer.parseInt(leia.nextLine());
} catch (NumberFormatException e) {
System.out.println("Por favor, digite apenas números!");
}
if (menu1 < 0) {
System.out.println("O número deve ser positivo!");
}

if (menu1 == 1){


for (int i = 0; i < usuariosCadastrados; i++) {
System.out.print("Digite o nome do "+(i+1)+"º usuário: (Limite de cadastros: "+usuariosCadastrados+ " users)");
nomeUsuario[i] = leia.nextLine();
}


}
}while (menu1 != 0);
}
Cristiano Costa

Cristiano Costa

Responder

Posts

23/09/2016

Moderacao Devmedia

Olá Cristiano
Qual é a sua dúvida?
Responder

23/09/2016

Cristiano Costa

Não estou conseguindo navegar entre os menus...
Quando eu entro no primeiro menu e termino a ação, gostaria que o sistema voltasse para o menu anterior. Porém ele finaliza o programa.

Outra coisa, é que está iniciando caindo na try cath, sem ter digitado nada... creio que é um erro de lógica.
Responder

23/09/2016

Moderacao Devmedia

Olá, Cristiano beleza?

Segue o código do menu que você estava com dúvida.

do {
System.out.println("Escolha uma opção a seguir:");
System.out.println("1 - Cadastro de Usuários");
System.out.println("2 - Cadastro de Produtos");
System.out.println("3 - Digite 3 para encerrar o programa");

do {
System.out.println("Escolha uma opção a seguir:");
System.out.println("1 - Cadastro de Usuários");
System.out.println("2 - Cadastro de Produtos");
System.out.println("3 - Digite 3 para encerrar o programa");

try {
menu1 = Integer.parseInt(leia.nextLine());
} catch (NumberFormatException e) {
    menu1=0;
    System.out.println("\\n POR FAVOR, DIGITE APENAS NÚMEROS!!!!!\\n");

}
if (menu1 < 0) {
System.out.println("\\n O NÚMERO DEVE SER POSITIVO!");
}
if (1 == menu1){

   // IMPLEMENTAR A OPÇÃO 1 DO MENU

    System.out.println(" \\n DIGITE 0 PARA VOLTAR AO MENU OU 3 PARA ENCERRAR \\n");
    menu1 = Integer.parseInt(leia.nextLine());
}
}while (menu1 != 3 &&  menu1 !=1);
}



Espero que tenha ajudado.

Valeu Abraços.
Responder

23/09/2016

Moderacao Devmedia

Olá, Cristiano beleza?

Segue o código do menu que você estava com dúvida.

do {
System.out.println("Escolha uma opção a seguir:");
System.out.println("1 - Cadastro de Usuários");
System.out.println("2 - Cadastro de Produtos");
System.out.println("3 - Digite 3 para encerrar o programa");

do {
System.out.println("Escolha uma opção a seguir:");
System.out.println("1 - Cadastro de Usuários");
System.out.println("2 - Cadastro de Produtos");
System.out.println("3 - Digite 3 para encerrar o programa");

try {
menu1 = Integer.parseInt(leia.nextLine());
} catch (NumberFormatException e) {
    menu1=0;
    System.out.println("\\\\n POR FAVOR, DIGITE APENAS NÚMEROS!!!!!\\\\n");

}
if (menu1 < 0) {
System.out.println("\\\\n O NÚMERO DEVE SER POSITIVO!");
}
if (1 == menu1){

   // IMPLEMENTAR A OPÇÃO 1 DO MENU

    System.out.println(" \\\\n DIGITE 0 PARA VOLTAR AO MENU OU 3 PARA ENCERRAR \\\\n");
    menu1 = Integer.parseInt(leia.nextLine());
}
}while (menu1 != 3 &&  menu1 !=1);
}



Espero que tenha ajudado.

Valeu Abraços.
Responder

24/09/2016

Cristiano Costa

Bom dia Jefferson,

Muito obrigado pela ajuda, porém ainda estou com algumas duvidas:

Assistindo algumas aulas, fui aconselhado a colocar a variavel que vai verificar o menu (que chamei de menu1) como uma string por causa da implementação do Scanner (Sinceramente nao entedi o por que, mas da erro se nao fizer isso).
Dessa maneira quando meu codigo entra no:

try {
menu1 = Integer.parseInt(leia.nextLine());
} catch (NumberFormatException e) {
menu1=0;
System.out.println("\\\\n POR FAVOR, DIGITE APENAS NÚMEROS!!!!!\\\\n");

}
ele da um erro no recebimento =0 do menu1 (pq é =0, sendo que está verificando se a pessoa digitou letras?)

vou postar a seguir o meu codigo mais implementado para você ver:
Responder

24/09/2016

Cristiano Costa

public class teste {

	public static void main(String[] args) {
		// TODO Auto-generated method stub


		// Dados para fins de relatório
		String nomeEmpresa = "MC Soluções LTDA";
		String tipoAtividade = "Serviços de TI em geral";
		int cnpjEmpresa = 123456789;
		String enderecoEmpresa = "Rua coisa e tal, 123, Savassi, Belo Horizonte / MG";
		String nomeSocio1 = "Cristiano Soares da Costa";
		String nomeSocio2 = "Marcelo";

		// inicio do Scanner
		Scanner leia = new Scanner(System.in);

		// Variáveis diversas do sistema
		String menu1 = null;
		int usuariosCadastrados = 0;
		int produtosCadastrados = 0;
		int codigoProduto = 0;
		boolean valida;
		String texto;		
		
		// Pedir para o usuário definir a quantidade de usuários e Produtos a
		// cadastrar
		System.out.print("Digite a quantidade de Usuários do Sistema: ");
		usuariosCadastrados = leia.nextInt();
		System.out.print("Digite a quantidade de Produtos a serem cadastrados: ");
		produtosCadastrados = leia.nextInt();

		// Inicio dos vetores e matrizes
		String[] nomeUsuario = new String[usuariosCadastrados];
		Integer[] produtos = new Integer[produtosCadastrados];

		// Inicio do menu
			do {
				System.out.println("Escolha uma opção a seguir:");
				System.out.println("1 - Cadastro de Usuários");
				System.out.println("2 - Cadastro de Produtos");
				System.out.println("Ou digite 0 para encerrar o programa");
								
				try {
					menu1 = leia.nextLine().toString();
					} catch (NumberFormatException e) {
					    menu1 = 0;
					    System.out.println("\\\\n POR FAVOR, DIGITE APENAS NÚMEROS!!!!!\\\\n");
					 
					}
					if (Integer.parseInt(menu1) < 0) {
					System.out.println("\\\\n O NÚMERO DEVE SER POSITIVO!");
					}
					if (1 == Integer.parseInt(menu1)){
				
						switch (Integer.parseInt(menu1)) {
						case 1:
							for (int i = 0; i < usuariosCadastrados; i++) {
								System.out.print("Digite o nome do " + (i + 1) + "º usuário: (Limite de cadastros: "
										+ usuariosCadastrados + " users)");
								nomeUsuario[i] = leia.nextLine();
							}
							break;
							
						case 2:
							for (int i = 0; i < produtosCadastrados; i++) {
								System.out.print("Digite a Descrição do " + (i + 1) + "º produto: (Limite de cadastros: "
										+ produtosCadastrados + " produtos.)");
								produtos[i] = leia.nextInt();
								codigoProduto = i + 1;
								System.out.print("O código do produto cadastrado é: " + codigoProduto);
							}
							break;
						
							default:
								System.out.print("Favor digitar apenas numeros válidos!");
						}
							
					}
					
			
		} while (Integer.parseInt(menu1) != 0);
		
		
	}

}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar