Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Controlador {
- //conhecer mapeadores, urna e tela(interface)
- private MinhaTela minhaTela;
- private Urna urna;
- private MapeadorGovernador mapeadorGovernador;
- private MapeadorPresidente mapeadorPresidente;
- private MapeadorPartido mapeadorPartido;
- private MapeadorUrna mapeadorUrna;
- public Controlador(){
- }
- public void persistencia(){
- Eleicao eleicao = new Eleicao();
- this.mapeadorGovernador = new MapeadorGovernador();
- this.mapeadorPresidente = new MapeadorPresidente();
- this.mapeadorPartido = new MapeadorPartido();
- this.mapeadorUrna = new MapeadorUrna();
- try{
- mapeadorGovernador.load();
- mapeadorPresidente.load();
- mapeadorPartido.load();
- mapeadorUrna.load();
- } catch(Exception ex){ // COMO FAZER O PROGRAMA CONTINUAR APOS A EXCECAO?
- ex.getMessage();
- //Cria os partidos da Eleicao
- Partido partidoA = new Partido("PartidoA", "PAA");
- Partido partidoB = new Partido("PartidoB", "PAB");
- mapeadorPartido.putPartido(partidoA);
- mapeadorPartido.putPartido(partidoB);
- mapeadorPartido.persist();
- //Cria os candidatos a Presidente
- CandidatoPresidente candidatoPresidenteA = new CandidatoPresidente("Dilma", 13);
- candidatoPresidenteA.setPartido(partidoA);
- mapeadorPresidente.putPresidente(candidatoPresidenteA);
- CandidatoPresidente candidatoPresidenteB = new CandidatoPresidente("Aecio", 45);
- candidatoPresidenteB.setPartido(partidoB);
- mapeadorPresidente.putPresidente(candidatoPresidenteB);
- mapeadorPresidente.persist();
- //----CRIAR URNA SANTA CATARINA---------------------------------------------------------------------------
- //Cria o estado de Santa Catarina
- EstadoFederativo estadoSC = new EstadoFederativo("Santa Catarina");
- //Cria 1 zona eleitoral para Santa Catarina
- List<ZonaEleitoral> zonasEleitoraisSC = new ArrayList<ZonaEleitoral>();
- ZonaEleitoral zona0 = new ZonaEleitoral(0);
- //Cria 1 urna para Santa Catarina
- Urna urnaSecao0 = new Urna(0, Turno.SEGUNDO);
- urnaSecao0.adicionarCandidato(candidatoPresidenteA);
- urnaSecao0.adicionarCandidato(candidatoPresidenteB);
- //Cria 1 secao eleitoral para Santa Catarina
- List<SecaoEleitoral> secoesZona0 = new ArrayList<SecaoEleitoral>();
- SecaoEleitoral secao0 = new SecaoEleitoral(0, urnaSecao0);
- //Estabelece a urna pertencente a cada secao eleitoral
- secao0.setUrna(urnaSecao0);
- //Adiciona 5 eleitores a secao
- Eleitor eleitor1 = new Eleitor("Nome1");
- Eleitor eleitor2 = new Eleitor("Nome2");
- Eleitor eleitor3 = new Eleitor("Nome3");
- Eleitor eleitor4 = new Eleitor("Nome4");
- Eleitor eleitor5 = new Eleitor("Nome5");
- secao0.adicionarEleitor(eleitor1);
- secao0.adicionarEleitor(eleitor2);
- secao0.adicionarEleitor(eleitor3);
- secao0.adicionarEleitor(eleitor4);
- secao0.adicionarEleitor(eleitor5);
- //Estabelece as secoes pertencentes a cada zona eleitoral
- secoesZona0.add(secao0);
- zona0.setSecoes(secoesZona0);
- //Estabelece as zonas eleitorais para o estado de Santa Catarina
- zonasEleitoraisSC.add(zona0);
- estadoSC.setZonasEleitorais(zonasEleitoraisSC);
- try {
- eleicao.adicionaEstadoFederativo(estadoSC);
- } catch (ExcecaoEstadoFederativoRepetido e) {
- e.printStackTrace(); // descobre qual erro deu
- }
- //----CRIAR URNA RIO GRANDE DO SUL---------------------------------------------------------------------------
- EstadoFederativo estadoRS = new EstadoFederativo("Rio Grande do Sul");
- //Cria 2 candidatos a Governador
- CandidatoGovernador candidatoGovernadorA = new CandidatoGovernador("Governador1", 12);
- candidatoGovernadorA.setPartido(partidoA);
- mapeadorGovernador.putGovernador(candidatoGovernadorA);
- CandidatoGovernador candidatoGovernadorB = new CandidatoGovernador("Governador2", 15);
- candidatoGovernadorB.setPartido(partidoB);
- mapeadorGovernador.putGovernador(candidatoGovernadorB);
- mapeadorGovernador.persist();
- //Cria 1 zona eleitoral para o Rio Grande do Sul
- List<ZonaEleitoral> zonasEleitoraisRS = new ArrayList<ZonaEleitoral>();
- ZonaEleitoral zona1 = new ZonaEleitoral(1);
- //Cria 1 urna para o Rio Grande do Sul
- Urna urnaSecao1 = new Urna(1, Turno.SEGUNDO);
- urnaSecao1.adicionarCandidato(candidatoPresidenteA);
- urnaSecao1.adicionarCandidato(candidatoPresidenteB);
- urnaSecao1.adicionarCandidato(candidatoGovernadorA);
- urnaSecao1.adicionarCandidato(candidatoGovernadorB);
- //Cria 1 secao eleitoral para o Rio Grande do Sul
- List<SecaoEleitoral> secoesZona1 = new ArrayList<SecaoEleitoral>();
- SecaoEleitoral secao1 = new SecaoEleitoral(1, urnaSecao0);
- //Estabelece a urna pertencente a cada secao eleitoral
- secao1.setUrna(urnaSecao1);
- //Adiciona 5 eleitores a secao
- Eleitor eleitor6 = new Eleitor("Nome6");
- Eleitor eleitor7 = new Eleitor("Nome7");
- Eleitor eleitor8 = new Eleitor("Nome8");
- Eleitor eleitor9 = new Eleitor("Nome9");
- Eleitor eleitor10 = new Eleitor("Nome10");
- Eleitor eleitor11 = new Eleitor("Nome11");
- Eleitor eleitor12 = new Eleitor("Nome12");
- Eleitor eleitor13 = new Eleitor("Nome13");
- Eleitor eleitor14 = new Eleitor("Nome14");
- Eleitor eleitor15 = new Eleitor("Nome15");
- secao1.adicionarEleitor(eleitor6);
- secao1.adicionarEleitor(eleitor7);
- secao1.adicionarEleitor(eleitor8);
- secao1.adicionarEleitor(eleitor9);
- secao1.adicionarEleitor(eleitor10);
- secao1.adicionarEleitor(eleitor11);
- secao1.adicionarEleitor(eleitor12);
- secao1.adicionarEleitor(eleitor13);
- secao1.adicionarEleitor(eleitor14);
- secao1.adicionarEleitor(eleitor15);
- //Estabelece as secoes pertencentes a cada zona eleitoral
- secoesZona1.add(secao1);
- zona1.setSecoes(secoesZona1);
- //Estabelece as zonas eleitorais para o estado Rio Grande do Sul
- zonasEleitoraisRS.add(zona1);
- estadoRS.setZonasEleitorais(zonasEleitoraisRS);
- try {
- eleicao.adicionaEstadoFederativo(estadoRS);
- } catch (ExcecaoEstadoFederativoRepetido e) {
- e.printStackTrace();
- }
- //----REALIZA VOTAÇÃO---------------------------------------------------------------------------
- Scanner scanner = new Scanner(System.in);
- System.out.println("Iniciando votação..");
- List<EstadoFederativo> estados = eleicao.getEstados();
- for (EstadoFederativo estadoFederativo : estados) {
- System.out.println("- Estado: " + estadoFederativo.getNome());
- List<ZonaEleitoral> zonasEleitorais = estadoFederativo.getZonasEleitorais();
- for (ZonaEleitoral zonaEleitoral : zonasEleitorais) {
- System.out.println("-- Zona: " + zonaEleitoral.getIdentificador());
- List<SecaoEleitoral> secoes = zonaEleitoral.getSecoes();
- for (SecaoEleitoral secaoEleitoral : secoes) {
- System.out.println("--- Secao: " + secaoEleitoral.getIdentificador());
- Urna urna = secaoEleitoral.getUrna();
- List<Eleitor> eleitores = secaoEleitoral.getEleitores();
- for (int i = 0; i < eleitores.size(); i++) {
- System.out.println("---- Eleitor " + (i+1) +" votando.");
- Set<Cargo> cargos = urna.getCargos();
- for (Cargo cargo : cargos) {
- System.out.println("----#" + cargo.getNomeCargo());
- System.out.print("----#Voto: ");
- String voto = scanner.next();
- if(voto.equals("b")){
- voto = "";
- }
- try {
- urna.adicionarVoto(voto);
- } catch (ExcecaoUrnaComExcessoDeVotos e) {
- e.printStackTrace();
- }
- }
- mapeadorUrna.persist();
- }
- }
- }
- }
- scanner.close();
- //----REALIZA CONTAGEM---------------------------------------------------------------------------
- System.out.println("Iniciando apuracao..");
- for (EstadoFederativo estadoFederativo : estados) {
- System.out.println("- Estado: " + estadoFederativo.getNome());
- HashMap<Integer, Integer> votosTotais = new HashMap<Integer, Integer>();
- List<ZonaEleitoral> zonasEleitorais = estadoFederativo.getZonasEleitorais();
- for (ZonaEleitoral zonaEleitoral : zonasEleitorais) {
- List<SecaoEleitoral> secoes = zonaEleitoral.getSecoes();
- for (SecaoEleitoral secaoEleitoral : secoes) {
- Urna urna = secaoEleitoral.getUrna();
- HashMap<Integer, Integer> votosEmCandidatos = urna.getVotosEmCandidatos();
- Set<Integer> numerosCandidatos = votosEmCandidatos.keySet();
- for (Integer numero : numerosCandidatos) {
- if(votosTotais.containsKey(numero)){
- int quantidadeVotos = votosTotais.get(numero) + votosEmCandidatos.get(numero);
- votosTotais.put(numero, quantidadeVotos);
- } else {
- votosTotais.put(numero, votosEmCandidatos.get(numero));
- }
- }
- mapeadorUrna.persist();
- }
- }
- System.out.println("---#Apuracao em " + estadoFederativo.getNome() + " finalizada.");
- Set<Integer> votos = votosTotais.keySet();
- for (Integer voto : votos) {
- System.out.println("---#Candidato numero " + voto + ": " + votosTotais.get(voto));
- }
- // separar entre governador e presidente na contagem dos votos
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement