Ajuda com um programa. não consigo resolver a dias

7 respostas
W

Boa tarde, possuo uma dúvida na qual venho tentando resolver a dias mais não consigo... segue o código:

import java.text.DecimalFormat;

import javax.swing.JOptionPane;
public class Trabalho06 {
    
       public String tamanho = JOptionPane.showInputDialog("BEM VINDO AO SISTEMA DE VENDA DE MATERIAL ESCOLAR\n\nDescobrimos que esse é seu primeiro acesso\n\n\n\n\n\nPrimeiro me informe quantos usuários deseja cadastrar?"); 
       public Integer num = new Integer(tamanho);  
       public int tam = num;
       public String[] cad_usuario = new String[tam];
       public String[] cad_senha = new String[tam];
       
       public int i;
       
   
    void menu() {
    String inicio = JOptionPane.showInputDialog("BEM VINDO AO SISTEMA DE VENDA DE MATERIAL ESCOLAR\n\nPor favor, selecione a opção desejada:\n\n1- Cadastro de login      ( Cadastrar o(s) "+cad_usuario.length+ " usuário(s) )\n2- Entrar no sistema      ( Boas Compras )\n3- Sair                                 ( Volte Sempre )\n\n");   
   int escolha = Integer.parseInt(inicio);
       
    switch (escolha) {
        case 1:
              cadastro_login();
        case 2:
              login();
        case 3: 
              break;
        default:
              JOptionPane.showMessageDialog(null,"Essa opção não existe");
            menu();
                         }
   }
       
    void cadastro_login() {
   for ( i = 0; i < cad_usuario.length;  i++) {
      cad_usuario[i] = JOptionPane.showInputDialog("SISTEMA DE VENDA DE MATERIAL ESCOLAR\n\nCadastro de Login\n\n\n\n\nDigite seu novo nome de usuário: ");
      System.out.println("Usuário cadastrado: \n"+cad_usuario[i]);
    if (cad_usuario[i].equals("")) {
         JOptionPane.showMessageDialog(null,"Digite algum nome de usuário "); 
         cadastro_login();
                       
                               }
     
      else { 
                        
           } 
    
       cad_senha[i] = JOptionPane.showInputDialog("Crie sua senha: ");
         System.out.println(cad_senha[i]);
       
    if (cad_senha[i].equals("")) {
         JOptionPane.showMessageDialog(null,"Digite alguma senha válida "); 
         cadastro_login();
                       
                               }
     
      else { 
                        
           } 
        
        
        
    JOptionPane.showMessageDialog(null,"Parabéns seu novo usuário foi criado com sucesso!");
    
     
    
    }
    
     login();
    }
        
    void login() {
        for (i=0 ; i < cad_usuario.length; i++){
        
            String login = JOptionPane.showInputDialog("SISTEMA DE VENDA DE MATERIAL ESCOLAR\n\nInforme seu login: ");
        
    if (login.equals(cad_usuario[i])) { 
        senha(); 
                        
                               } 
    else if 
        (!login.equals(cad_usuario[i])){
        JOptionPane.showMessageDialog(null,"Nome de usuário inválido ou inexistente");
        login();
    }
                    else { 
                                              
                         }
    
}
    
    }

    void senha() {
        for (i=0 ; i < cad_senha.length; i++) {
           
            String password = JOptionPane.showInputDialog("Informe sua senha: ");
          
    if (password.equals(cad_senha[i])) { 
        JOptionPane.showMessageDialog(null,"Seja bem vindo você está logado com o usuário '"+cad_usuario[i]+"'.");
        produtos(); 
                                
                                }
    else if
         (!password.equals(cad_senha[i])){ 
         JOptionPane.showMessageDialog(null,"Senha inválida");
         senha();
    }  
                    else { 
                                                
                         }
    

        }
    }
    
    void produtos() {
    String produtos = JOptionPane.showInputDialog("O que deseja comprar?"+
     "\n\n1. Caderno universitário 200 fls capa dura ------------------  R$ 6,40" +
     "\n2. Lápis evolution BIC -----------------------------------------------  R$ 0,40" +
     "\n3. Caneta esferográfica azul --------------------------------------  R$ 0,50" +
     "\n\n" + "4. Não sou '"+cad_usuario[i]+"' Sair e logar com outro usuário\n\n");
    int escolha = Integer.parseInt(produtos);
       
    switch (escolha) {
        case 1:
              caderno();
        case 2:
              lapis();
        case 3: 
              caneta();
        case 4:
              login();
        default:
              JOptionPane.showMessageDialog(null,"Essa opção de compra não existe");
             produtos();
                         }
        
    
}
    
    void caderno() {
           
    String quantidade = JOptionPane.showInputDialog("Caderno universitário 200 fls capa dura. \n\nQuantidade:\n\n\n");
    double qtd = Double.parseDouble(quantidade);   
    double total = qtd * 06.40;
    DecimalFormat decimal = new DecimalFormat("0.00");
    String totalFormatado = decimal.format(total);
    double confirma = JOptionPane.showConfirmDialog(null,"Sua compra foi de R$ "+ totalFormatado + " Reais. \n\nVocê confirma a compra de " + quantidade +" Caderno universitário 200 fls capa dura"+ " \ncom este valor? \n\n");
        
    if (confirma == JOptionPane.YES_OPTION) { 
          JOptionPane.showMessageDialog(null,"Compra efetuada com sucesso !");               
                        sair();
                        
                  } else if (confirma == JOptionPane.NO_OPTION){ 
                        produtos();       
                  }
                    else { 
                        System.exit((int) confirma);
               } 
     
    }
    
    void lapis() {
      
    String quantidade = JOptionPane.showInputDialog("Lápis evolution BIC. \n\nQuantidade:\n\n\n");
    double qtd = Double.parseDouble(quantidade); 
    double total = qtd * 0.40;
    DecimalFormat decimal = new DecimalFormat("0.00");
    String totalFormatado = decimal.format(total);
    double confirma = JOptionPane.showConfirmDialog(null,"Sua compra foi de R$ "+ totalFormatado + " Reais. \n\nVocê confirma a compra de " + quantidade +" Lápis evolution BIC"+ " \ncom este valor? \n\n");
        
    if (confirma == JOptionPane.YES_OPTION) { 
          JOptionPane.showMessageDialog(null,"Compra efetuada com sucesso !");               
                        sair();
                        
                  } else if (confirma == JOptionPane.NO_OPTION){ 
                        produtos();       
                  }
                    else { 
                        System.exit((int) confirma);
               } 
      
    }
    
    void caneta() {
      
    String quantidade = JOptionPane.showInputDialog("Caneta esferográfica azul. \n\nQuantidade:\n\n\n");
    double qtd = Double.parseDouble(quantidade);
    double total = qtd * 0.50;
    DecimalFormat decimal = new DecimalFormat("0.00");
    String totalFormatado = decimal.format(total);
    double confirma = JOptionPane.showConfirmDialog(null,"Sua compra foi de R$ "+ totalFormatado + " Reais. \n\nVocê confirma a compra de " + quantidade +" Caneta esferográfica azul"+ " \ncom este valor? \n\n");
        
    if (confirma == JOptionPane.YES_OPTION) { 
          JOptionPane.showMessageDialog(null,"Compra efetuada com sucesso !");               
                        sair();
                        
                  } else if (confirma == JOptionPane.NO_OPTION){ 
                        produtos();       
                  }
                    else { 
                        System.exit((int) confirma);
               } 
      
    }

    void sair(){
        String sair = JOptionPane.showInputDialog("Deseja comprar novamente? \n\n 1 - Sim \n\n 2 - Sair\n\n" );
    int escolha = Integer.parseInt(sair);
       
    switch (escolha) {
        case 1:
              produtos();
           
        case 2:
              JOptionPane.showMessageDialog(null,"Obrigado, volte sempre!");
              System.exit(escolha);
        
        default:
              JOptionPane.showMessageDialog(null,"Digite uma opção válida.");
             sair();
                         }
        
    
} 
    
    
public static void main(String args[]){
      Trabalho06 objeto = new Trabalho06();
      objeto.menu();

}
}

------------------------------------------------------

Esse código o usuário escolhe o tamanho do vetor(que será quantos usuários ele deseja cadastrar) daí beleza ele cadastra o tanto que ele quiser, porém na hora da verificação que fica no método LOGIN ele só deixa passar o primeiro usuário cadastrado os outros( caso for cadastrar + de 2) ele mostra como se fosse inválido. Preciso que todos os usuários cadastrados passe na verificação do método LOGIN. Agradeceria muito a ajuda de alguém pois já venho tentando isso a dias. Agradeço desde já.

7 Respostas

V

Você quer cadastrar vários usuários de uma vez só?

Explique melhor o que deseja (bem explicadinho). Achei meio difícil entender o código, por ser muito grande. Se puder explicar melhor talvez eu possa ajudar. :smiley:

W

VA:
Você quer cadastrar vários usuários de uma vez só?

Explique melhor o que deseja (bem explicadinho). Achei meio difícil entender o código, por ser muito grande. Se puder explicar melhor talvez eu possa ajudar. :D

Meu amigo, a quantidade de usuários a cadastrar será determinado pelo tamanho do vetor que eu fiz isso inicialmente no inicio do algoritmo ta ok. Problema = exemplo cadastro 2 usuários. na hora de efetuar o login os 2 usuários tem que poder entrar no sistema para tela de escolher produtos. porém só ta dando com um usuário que é o primeiro cadastrado. o outro diz que não existe, sendo que cadastrei no início. é só rodar esse cód e verificar help me.

RodrigoKaos

[i]Cara, o programa ta ok.

Vc cria um array com os usuarios ( vms dizer que tenha 2 usuarios)
usuario[0] e usuario[1]

O for só encontra o usuario[0] pq ainda n completou o 1º ciclo.[i]for(i = 0; i < array.length; i++){ login(); } void login(){ for(i = 0; i < array.length; i++){ senha(); } } void senha(){ produtos(); } void produto(){ etc(); } void etc(){ blablablabla; }// o for só vai conseguir acessar o array[1] dps de completar esse metodo // e quando terminar só o array[1] vai estar acessivel

W

RodrigoKaos:
[i]Cara, o programa ta ok.

Vc cria um array com os usuarios ( vms dizer que tenha 2 usuarios)
usuario[0] e usuario[1]

O for só encontra o usuario[0] pq ainda n completou o 1º ciclo.[i]for(i = 0; i < array.length; i++){ login(); } void login(){ for(i = 0; i < array.length; i++){ senha(); } } void senha(){ produtos(); } void produto(){ etc(); } void etc(){ blablablabla; }// o for só vai conseguir acessar o array[1] dps de completar esse metodo // e quando terminar só o array[1] vai estar acessivel

E como eu consigo terminar esse ciclo para que na hora da verificação ele passe para o usuário 2 também. preciso que todos os usuários sejam aceitos…

RodrigoKaos

Pra resolver o problema do login acho que é so vc usar ArrayList e iterar sobre ele.
da uma pesquisada sobre foreach, caso vc n conheça

W

RodrigoKaos:
Pra resolver o problema do login acho que é so vc usar ArrayList e iterar sobre ele.
da uma pesquisada sobre foreach, caso vc n conheça

Mas dá para resolver sem arraylist nao só com array normal mesmo como estou fazendo?

RodrigoKaos

Cara teu código tem que dar uma melhorada

Da pra fazer com array? Sim, mas acho muito mais facil fazer com ArrayList,
Por exemplo n precisaria dizer quantos usuários vão usar o sistema, vc poderia criar um método pra adicionar usuários a hr que quiser, adicionando um por vez, etc

Por exemplo no teu código o login pode funcionar com qualquer senha. Exemplo Login: usuario4, mas se for digitada a senha de qualquer usuário vai logar
recomendo que quando der login ou senha invalida, jogue o usuário de volta pro menu, até que vc pense em uma solução melhor

Cria um booleano, quando o usuário logar, se o login e a senha estiverem corretas esse bolleano é setado pra true, e os produtos só podem ser editados, caso esse bollean sejá true.

Enfim são só algumas ideias, Boa sorte!

Da uma olhada nesse código, é bem simples, é só adaptar ele no teu código
String[] logins = {"login1", "login2", "login3", "login4"};
		String[] senhas = {"senha1", "senha2", "senha3", "senha4"};		
		
		String login = "login4";
		String senha = "senha4";
		
		for(int i = 0; i < logins.length; i++){
			//Teste login
			if(login.equals(logins[i])){
				System.out.println("\nUsuario "+ logins[i] +" encontrado");
				//teste senha
					if(senha.equals(senhas[i])){
						System.out.println("Senha ok");
						break;
					}else{
						System.out.println("erro");
						break;
					}				
			}			
		}		
	}
Criado 25 de agosto de 2013
Ultima resposta 26 de ago. de 2013
Respostas 7
Participantes 3