Ajuda Trabalho da Faculdade

Ola galera, não consigo termina meu codigo…

Escreva um projeto para funcionamento de uma URNA ELETRÔNICA. A aplicação inicialmente lê o número de eleitores esperados para uma seção eleitoral, e os candidatos e seus códigos. Depois desse procedimento, a urna é aberta e se inicia a votação. Na tela para votação, o eleitor informa o código do candidato. A coleta dos votos se repete até um código (dopresidente da seção) ser informado. Se todos os eleitores da seção já tiverem votado, o programa deve alertar para que a mesma seja encerrada. Por fim, oprograma deve exibir:

  • Total de votos esperados na seção.
  • Total de votos realizados.
  • Total de votos: por candidato, brancos e nulos.
  • Total de eleitores ausentes.

Separei meu código em três classes, o problema é que não consigo criar um vetor para ler o nome e o numero de um “n” numero de candidatos

import javax.swing.JOptionPane;


public class Candidato {
	
	private int numero;	
	private String nome;
	
	public Candidato() {
	}
	

	 public String getNomeCand() {    
         return this.nome;    
     }    
     
     public String setNomeCand() {    
             return nome;
     }    
     
     
     public int getNumero() {    
         return this.numero;    
     }    
     
     public int  setNumero() {        
         return numero;  
     }    
     
   		
}

import javax.swing.JOptionPane;

public class Eleitor  {
	

	private int totalEleitores;
	private int somaCand1,somaCand2,somaCand3,somaCand4,somaCand5,votosNulos,votantes = 0;
	private int a,b,c = 0;
	
	
	
	public int getTotalEleitores(int totalEleitores){
		return this.totalEleitores = totalEleitores;
	}
			
		while( != getcodigoPresidente()){
			
			if(numeroCandidato == 13){
				somaCand1 = somaCand1 + 1;
				votantes = votantes +1;
			}
			
			if(numeroCandidato == 21){
				somaCand2 = somaCand2 + 1;
				votantes = votantes +1;
			}
			
			if(numeroCandidato == 25){
				somaCand3 = somaCand1 + 3;
				votantes = votantes +1;
			}
			
			if(numeroCandidato == 45){
				somaCand4 = somaCand4 + 1;
				votantes = votantes +1;
			}
			
			if(numeroCandidato == 65){
				somaCand5 = somaCand5 + 1;
				votantes = votantes +1;
			}
			
			
		}
	
	

	

}

[code]

import java.util.Scanner;
import javax.swing.JOptionPane;

public class UrnaApp {

public static void main(String []args){
	
	
	
	Scanner ler = new Scanner(System.in);
	 
	JOptionPane.showMessageDialog(null, "URNA ELETRONICA :" );

		
	 String quantCandidatos = JOptionPane.showInputDialog("Qual o número de candidatos?");    
           int x = Integer.parseInt(quantCandidatos);  
         
        Candidato[] a = new Candidato[x];     
            
        for (int q = 0;q <= x; q++){    
            a[q] = new Candidato();    
            a[q].getNomeCand();        
            a[q].getNumero();    
        }    
}    
	
		}
		
		
[/code]

1º a contagem dos votos por canditado coloque no método main

2º poste o erro ;D


import java.util.Scanner;  
import javax.swing.JOptionPane;  
  
public class UrnaApp  {  
  
      
    public static void main(String []args){  
          
          
          
        Scanner ler = new Scanner(System.in);  
           
        JOptionPane.showMessageDialog(null, "URNA ELETRONICA :" );  
  
              
              String quantCandidatos = JOptionPane.showInputDialog("Qual o número de candidatos?");      
               int x = Integer.parseInt(quantCandidatos);    // essa conversão esta certa ??
               
            Candidato[] a = new Candidato[x];  // meu new candidato esta certo  assim, para colocar valores em um vetor ??
                  
            for (int q = 0;q <= x; q++){    // aqui ele acusa erro, ele lê um valor para getNomeCand  e trava.  
                a[q] = new Candidato();      
                a[q].getNomeCand();          
                a[q].getNumero();      
            }   



 while( != getcodigoPresidente()){  
              
            if(numeroCandidato == 13){  
                somaCand1 = somaCand1 + 1;  
                votantes = votantes +1;  
            }  
              
            if(numeroCandidato == 21){  
                somaCand2 = somaCand2 + 1;  
                votantes = votantes +1;  
            }  
              
            if(numeroCandidato == 25){  
                somaCand3 = somaCand1 + 3;  
                votantes = votantes +1;  
            }  
              
            if(numeroCandidato == 45){  
                somaCand4 = somaCand4 + 1;  
                votantes = votantes +1;  
            }  
              
            if(numeroCandidato == 65){  
                somaCand5 = somaCand5 + 1;  
                votantes = votantes +1;  
            }  
              
              
        } 
  
         }
}  

Amigo os passos do seu algoritmo na minha opnião estão um pouco incorretos vou tentar lhe dar uma visão de passos para solucionar o problema.

– 1º Pergunte quantos votos serão realizados na urna.
Está parte esta tudo certo pois só será pego o valor convertido para inteiro e colocado como tamanho do array, do objeto canditado

– 2º Faça um laço while ou for que pegue um contador sentinela e realize a repetição até esse contador ser == ao numero de candidatos digitados no 1º passo.
Faça a pergunta do código do candidato, mas antes de realizar a converção faça o que está descrito abaixo, mas se o úsuario quiser anular digite nulo, se quisér deixar em branco digite branco.
Faça uma condição para que Se a string pega do JOptionPane == “branco” || nulo, verifique se for nulo incremente a variavel de nulos se for branco incremente a variavel de brancos.
E senão for nenhum dos dois, faça a implementação da variavel de numero de votos, faça a converção do numero do candidato digitado para int e então monte uma estrutura Swith, com cases para implementar a variavel de contagem dos votos para cada candidato.

– 3º Aqui eu não por não votar ainda, se os votos em nulo e em branco contam como voto para colocar na variavel de total de votos, mas os votos em branco vão para o candidato com mais votos isso? então faça a atribuição do valor de votos em branco para o candidato com maior voto, então vc vai ter que impelementar uma lógica para ver qual ganhou mais votos e então atribuir os votos brancos a ele.

Se precisar de exemplos em código para te ajudar só falar, abçs.

Se tu poder mostrar um exemplo de como montar o vetor que lê o nome e o numero, agradeceria mt.

abraço

Velho não é necessario a criação desse vetor pois o código do candidato sómente será utilizado, para decidir para onde vai o voto, e entao encrementar as variáveis.