Tenho um programa quer:
- Le nº de candidato
- Le os candidatos
- Le o nº de leitores
- Le os votos
- Apura
- Mostra vencedor
Tenho uma classe candidato com atributos* ( * = Me corrijam se tiver errado)
Fiz o seguinte:
package eleicoes;
import java.util.Scanner;
public class Eleicoes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Digite a quantidade de candidatos");
Integer Candidatos = Integer.parseInt(sc.nextLine());
Candidato[] candidatoArray = new Candidato[Candidatos];
for (int i = 0; i < Candidatos ; i++) {
System.out.println("Entre com os candidatos -> ");
Integer Codigo = Integer.parseInt(sc.nextLine());
}
System.out.println("Digite a quantidade de eleitores");
Integer Eleitores = Integer.parseInt(sc.nextLine());
Eleitor[] eleitorArray = new Eleitor[Eleitores];
for (int i = 0; i < Eleitores; i++) {
System.out.println("Entre com o codigo dos eleitores");
Integer codigoEleitor = Integer.parseInt(sc.nextLine());
}
}
}
Ola,
a ideia é simular uma urna?
Vc já votou alguma vez?
A ideia eh trabalahar com array
Preciso fazer este programa usando e entendendo referencias.
Eh um exercicio comum para reforcar a ideia f3 vetor
Dicas: Use nomes de variáveis que correspondam àquilo que a variável representa.
Integer
é diferente de int
.
Não há necessidade de pôr o sufixo array ao declarar um array, geralmente se usa uma variável no plural.
package eleicoes;
import java.util.Scanner;
public class Eleicoes {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Digite a quantidade de candidatos");
int quantidade = Integer.parseInt(sc.nextLine());
Candidato[] candidatos = new Candidato[quantidade];
for (int i = 0; i < quantidade; i++) {
System.out.println("Digite o código do candidato:");
int codigo = Integer.parseInt(sc.nextLine());
Candidato candidato = new Candidato();
candidato.setCodigo(codigo);
candidatos[i] = candidato;
}
System.out.println("Digite a quantidade de eleitores");
quantidade = Integer.parseInt(sc.nextLine());
Eleitor[] eleitores = new Eleitor[quantidade];
for (int i = 0; i < quantidade; i++) {
System.out.println("Digite o código do eleitor:");
int codigo = Integer.parseInt(sc.nextLine());
Eleitor eleitor = new Eleitor();
eleitor.setCodigo(codigo);
eleitores[i] = eleitor;
}
}
}
Entendi o uso de uma variavel no plural.
Queria entender esta do Integer e int , pois meu prof disse que é referncia a algo, essa minha duvida.
Ele usou Double
No outro exemplo de sala 
package produtos;
import java.util.Scanner;
public class Produtos {
public static final int ARRAY_LENGTH = 3;
public static void main(String[] args) {
Produto[] produtoArray = new Produto[ARRAY_LENGTH];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < ARRAY_LENGTH; i++) {
System.out.println("Entre com o nome: ");
String nome = scanner.nextLine();
System.out.println("Entre com o preco");
Double preco = Double.parseDouble(scanner.nextLine());
produtoArray[i] = new Produto(nome, preco);
}
Produto produtoMaisCaro = produtoArray[0];
for (int i = 1; i < produtoArray.length; i++) {
if (produtoArray[i].getPreco() > produtoMaisCaro.getPreco()) {
produtoMaisCaro = produtoArray[i];
}
}
System.out.println(produtoMaisCaro);
}
}
São tipos por referencia. Integer, Double, Character, etc.
int
é um tipo de dado primitivo que ocupa 32 bits (4 bytes)
Integer
é uma classe que encapsula um int
.
Tive esclarecimento com o professor de algumas duvidas, ele ainda fez melhor, mostrou alguns pontos importantes.
Faz todo o sentido o int, int é um tipo primitivo, e Integer é um tipo por referencia.
package correcao;
import java.util.Scanner;
public class Correcao {
private static Scanner sc = new Scanner(System.in);
private static Candidato[] candidatoArray;
private static String[] votoArray;
public static void main(String[] args) {
lerCandidatos();
lerVotos();
contarVotos();
Candidato candidatoVencedor = candidatoArray[0];
candidatoVencedor = encontrarVencedor(candidatoVencedor);
mostrarResultado(candidatoVencedor);
}
private static void mostrarResultado(Candidato candidatoVencedor) {
System.out.println("Vencedor: ");
System.out.println(candidatoVencedor);
}
private static Candidato encontrarVencedor(Candidato candidatoVencedor) {
for (int i = 1 ; i < candidatoArray.length ; i++) {
if (candidatoArray[i].getVotos() > candidatoVencedor.getVotos()) {
candidatoVencedor = candidatoArray[i];
}
}
return candidatoVencedor;
}
private static void contarVotos() {
for (String voto : votoArray) {
for (Candidato candidato : candidatoArray) {
if (candidato.getCodigo().equals(voto)) {
candidato.addVotos();
break;
}
}
//todo objeto java é herdeiro de outro
}
//ianserfor fo it
}
private static void lerVotos() throws NumberFormatException {
System.out.println("Entre com o numero de eleitores");
int quantidadeDeEleitores = Integer.parseInt(sc.nextLine());
votoArray = new String[quantidadeDeEleitores];
for (int i = 0; i < quantidadeDeEleitores; i++) {
System.out.println("Entre com o voto");
votoArray[i] = sc.nextLine();
}
}
private static void lerCandidatos() throws NumberFormatException {
System.out.println("Entre com a quantidade de candidatos");
int quantidadeDeCandidatos = Integer.parseInt(sc.nextLine());
candidatoArray = new Candidato[quantidadeDeCandidatos];
for (int i = 0; i < quantidadeDeCandidatos; i++) {
System.out.println("Entre com o codigo do condadato");
candidatoArray[i] = new Candidato(sc.nextLine());
}
}
}