Advertisement
Guest User

Controlador

a guest
Nov 25th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.61 KB | None | 0 0
  1. public class Controlador {
  2.     //conhecer mapeadores, urna e tela(interface)
  3.    
  4.     private MinhaTela minhaTela;
  5.     private Urna urna;
  6.     private MapeadorGovernador mapeadorGovernador;
  7.     private MapeadorPresidente mapeadorPresidente;
  8.     private MapeadorPartido mapeadorPartido;
  9.     private MapeadorUrna mapeadorUrna;
  10.    
  11.     public Controlador(){
  12.        
  13.     }
  14.    
  15.     public void persistencia(){
  16.        
  17.         Eleicao eleicao = new Eleicao();
  18.         this.mapeadorGovernador = new MapeadorGovernador();
  19.         this.mapeadorPresidente = new MapeadorPresidente();
  20.         this.mapeadorPartido = new MapeadorPartido();
  21.         this.mapeadorUrna = new MapeadorUrna();
  22.        
  23.        
  24.         try{
  25.        
  26.         mapeadorGovernador.load();
  27.         mapeadorPresidente.load();
  28.         mapeadorPartido.load();
  29.         mapeadorUrna.load();
  30.        
  31.        
  32.     } catch(Exception ex){ // COMO FAZER O PROGRAMA CONTINUAR APOS A EXCECAO?
  33.            
  34.           ex.getMessage();
  35.         //Cria os partidos da Eleicao
  36.         Partido partidoA = new Partido("PartidoA", "PAA");
  37.         Partido partidoB = new Partido("PartidoB", "PAB");
  38.                
  39.                
  40.                 mapeadorPartido.putPartido(partidoA);
  41.                 mapeadorPartido.putPartido(partidoB);
  42.                
  43.                 mapeadorPartido.persist();
  44.        
  45.         //Cria os candidatos a Presidente
  46.                              
  47.         CandidatoPresidente candidatoPresidenteA = new CandidatoPresidente("Dilma", 13);
  48.         candidatoPresidenteA.setPartido(partidoA);
  49.                 mapeadorPresidente.putPresidente(candidatoPresidenteA);
  50.         CandidatoPresidente candidatoPresidenteB = new CandidatoPresidente("Aecio", 45);
  51.         candidatoPresidenteB.setPartido(partidoB);
  52.                 mapeadorPresidente.putPresidente(candidatoPresidenteB);
  53.                
  54.                 mapeadorPresidente.persist();
  55.                
  56.                 //----CRIAR URNA SANTA CATARINA---------------------------------------------------------------------------
  57.         //Cria o estado de Santa Catarina
  58.         EstadoFederativo estadoSC = new EstadoFederativo("Santa Catarina");
  59.  
  60.         //Cria 1 zona eleitoral para Santa Catarina
  61.         List<ZonaEleitoral> zonasEleitoraisSC = new ArrayList<ZonaEleitoral>();
  62.         ZonaEleitoral zona0 = new ZonaEleitoral(0);
  63.  
  64.         //Cria 1 urna para Santa Catarina
  65.                 Urna urnaSecao0 = new Urna(0, Turno.SEGUNDO);
  66.         urnaSecao0.adicionarCandidato(candidatoPresidenteA);
  67.         urnaSecao0.adicionarCandidato(candidatoPresidenteB);
  68.  
  69.         //Cria 1 secao eleitoral para Santa Catarina
  70.         List<SecaoEleitoral> secoesZona0 = new ArrayList<SecaoEleitoral>();
  71.         SecaoEleitoral secao0 = new SecaoEleitoral(0, urnaSecao0);
  72.  
  73.         //Estabelece a urna pertencente a cada secao eleitoral
  74.         secao0.setUrna(urnaSecao0);
  75.        
  76.         //Adiciona 5 eleitores a secao
  77.         Eleitor eleitor1 = new Eleitor("Nome1");
  78.         Eleitor eleitor2 = new Eleitor("Nome2");
  79.         Eleitor eleitor3 = new Eleitor("Nome3");
  80.         Eleitor eleitor4 = new Eleitor("Nome4");
  81.         Eleitor eleitor5 = new Eleitor("Nome5");
  82.         secao0.adicionarEleitor(eleitor1);
  83.         secao0.adicionarEleitor(eleitor2);
  84.         secao0.adicionarEleitor(eleitor3);
  85.         secao0.adicionarEleitor(eleitor4);
  86.         secao0.adicionarEleitor(eleitor5);
  87.  
  88.         //Estabelece as secoes pertencentes a cada zona eleitoral
  89.         secoesZona0.add(secao0);
  90.         zona0.setSecoes(secoesZona0);
  91.  
  92.         //Estabelece as zonas eleitorais para o estado de Santa Catarina
  93.         zonasEleitoraisSC.add(zona0);
  94.         estadoSC.setZonasEleitorais(zonasEleitoraisSC);
  95.        
  96.         try {
  97.             eleicao.adicionaEstadoFederativo(estadoSC);
  98.         } catch (ExcecaoEstadoFederativoRepetido e) {
  99.             e.printStackTrace(); // descobre qual erro deu
  100.         }
  101.  
  102.         //----CRIAR URNA RIO GRANDE DO SUL---------------------------------------------------------------------------
  103.         EstadoFederativo estadoRS = new EstadoFederativo("Rio Grande do Sul");
  104.  
  105.         //Cria 2 candidatos a Governador   
  106.                 CandidatoGovernador candidatoGovernadorA = new CandidatoGovernador("Governador1", 12);
  107.         candidatoGovernadorA.setPartido(partidoA);
  108.                 mapeadorGovernador.putGovernador(candidatoGovernadorA);
  109.         CandidatoGovernador candidatoGovernadorB = new CandidatoGovernador("Governador2", 15);
  110.         candidatoGovernadorB.setPartido(partidoB);
  111.                 mapeadorGovernador.putGovernador(candidatoGovernadorB);
  112.        
  113.                 mapeadorGovernador.persist();
  114.                
  115.         //Cria 1 zona eleitoral para o Rio Grande do Sul
  116.         List<ZonaEleitoral> zonasEleitoraisRS = new ArrayList<ZonaEleitoral>();
  117.         ZonaEleitoral zona1 = new ZonaEleitoral(1);
  118.  
  119.         //Cria 1 urna para o Rio Grande do Sul
  120.         Urna urnaSecao1 = new Urna(1, Turno.SEGUNDO);
  121.         urnaSecao1.adicionarCandidato(candidatoPresidenteA);
  122.         urnaSecao1.adicionarCandidato(candidatoPresidenteB);
  123.         urnaSecao1.adicionarCandidato(candidatoGovernadorA);
  124.         urnaSecao1.adicionarCandidato(candidatoGovernadorB);
  125.        
  126.         //Cria 1 secao eleitoral para o Rio Grande do Sul
  127.         List<SecaoEleitoral> secoesZona1 = new ArrayList<SecaoEleitoral>();
  128.         SecaoEleitoral secao1 = new SecaoEleitoral(1, urnaSecao0);
  129.        
  130.         //Estabelece a urna pertencente a cada secao eleitoral
  131.         secao1.setUrna(urnaSecao1);
  132.        
  133.         //Adiciona 5 eleitores a secao
  134.         Eleitor eleitor6 = new Eleitor("Nome6");
  135.         Eleitor eleitor7 = new Eleitor("Nome7");
  136.         Eleitor eleitor8 = new Eleitor("Nome8");
  137.         Eleitor eleitor9 = new Eleitor("Nome9");
  138.         Eleitor eleitor10 = new Eleitor("Nome10");
  139.         Eleitor eleitor11 = new Eleitor("Nome11");
  140.         Eleitor eleitor12 = new Eleitor("Nome12");
  141.         Eleitor eleitor13 = new Eleitor("Nome13");
  142.         Eleitor eleitor14 = new Eleitor("Nome14");
  143.         Eleitor eleitor15 = new Eleitor("Nome15");
  144.         secao1.adicionarEleitor(eleitor6);
  145.         secao1.adicionarEleitor(eleitor7);
  146.         secao1.adicionarEleitor(eleitor8);
  147.         secao1.adicionarEleitor(eleitor9);
  148.         secao1.adicionarEleitor(eleitor10);
  149.         secao1.adicionarEleitor(eleitor11);
  150.         secao1.adicionarEleitor(eleitor12);
  151.         secao1.adicionarEleitor(eleitor13);
  152.         secao1.adicionarEleitor(eleitor14);
  153.         secao1.adicionarEleitor(eleitor15);
  154.        
  155.         //Estabelece as secoes pertencentes a cada zona eleitoral
  156.         secoesZona1.add(secao1);
  157.         zona1.setSecoes(secoesZona1);
  158.  
  159.         //Estabelece as zonas eleitorais para o estado Rio Grande do Sul
  160.         zonasEleitoraisRS.add(zona1);
  161.         estadoRS.setZonasEleitorais(zonasEleitoraisRS);
  162.  
  163.         try {
  164.             eleicao.adicionaEstadoFederativo(estadoRS);
  165.         } catch (ExcecaoEstadoFederativoRepetido e) {
  166.             e.printStackTrace();
  167.         }
  168.                
  169.                 //----REALIZA VOTAÇÃO---------------------------------------------------------------------------
  170.         Scanner scanner = new Scanner(System.in);
  171.        
  172.         System.out.println("Iniciando votação..");
  173.         List<EstadoFederativo> estados = eleicao.getEstados();
  174.         for (EstadoFederativo estadoFederativo : estados) {
  175.             System.out.println("- Estado: " + estadoFederativo.getNome());
  176.             List<ZonaEleitoral> zonasEleitorais = estadoFederativo.getZonasEleitorais();
  177.             for (ZonaEleitoral zonaEleitoral : zonasEleitorais) {
  178.                 System.out.println("-- Zona: " + zonaEleitoral.getIdentificador());
  179.                 List<SecaoEleitoral> secoes = zonaEleitoral.getSecoes();
  180.                 for (SecaoEleitoral secaoEleitoral : secoes) {
  181.                     System.out.println("--- Secao: " + secaoEleitoral.getIdentificador());
  182.                     Urna urna = secaoEleitoral.getUrna();
  183.                     List<Eleitor> eleitores = secaoEleitoral.getEleitores();
  184.                     for (int i = 0; i < eleitores.size(); i++) {
  185.                         System.out.println("---- Eleitor " + (i+1) +" votando.");
  186.                         Set<Cargo> cargos = urna.getCargos();
  187.                         for (Cargo cargo : cargos) {
  188.                             System.out.println("----#" + cargo.getNomeCargo());
  189.                             System.out.print("----#Voto: ");
  190.                             String voto = scanner.next();
  191.                             if(voto.equals("b")){
  192.                                 voto = "";
  193.                             }
  194.                             try {
  195.                                 urna.adicionarVoto(voto);
  196.                             } catch (ExcecaoUrnaComExcessoDeVotos e) {
  197.                                 e.printStackTrace();
  198.                             }
  199.                         }
  200.                                                 mapeadorUrna.persist();
  201.                     }
  202.                 }
  203.             }
  204.            
  205.         }
  206.         scanner.close();
  207.                
  208.                 //----REALIZA CONTAGEM---------------------------------------------------------------------------
  209.         System.out.println("Iniciando apuracao..");
  210.         for (EstadoFederativo estadoFederativo : estados) {
  211.             System.out.println("- Estado: " + estadoFederativo.getNome());
  212.             HashMap<Integer, Integer> votosTotais = new HashMap<Integer, Integer>();
  213.             List<ZonaEleitoral> zonasEleitorais = estadoFederativo.getZonasEleitorais();
  214.            
  215.             for (ZonaEleitoral zonaEleitoral : zonasEleitorais) {
  216.                 List<SecaoEleitoral> secoes = zonaEleitoral.getSecoes();
  217.  
  218.                 for (SecaoEleitoral secaoEleitoral : secoes) {
  219.                     Urna urna = secaoEleitoral.getUrna();
  220.                     HashMap<Integer, Integer> votosEmCandidatos = urna.getVotosEmCandidatos();
  221.                     Set<Integer> numerosCandidatos = votosEmCandidatos.keySet();
  222.                    
  223.                     for (Integer numero : numerosCandidatos) {
  224.                         if(votosTotais.containsKey(numero)){
  225.                             int quantidadeVotos = votosTotais.get(numero) + votosEmCandidatos.get(numero);
  226.                             votosTotais.put(numero, quantidadeVotos);
  227.                         } else {
  228.                             votosTotais.put(numero, votosEmCandidatos.get(numero));
  229.                         }
  230.                     }
  231.                                         mapeadorUrna.persist();
  232.                                        
  233.                 }
  234.             }
  235.            
  236.             System.out.println("---#Apuracao em " + estadoFederativo.getNome() + " finalizada.");
  237.             Set<Integer> votos = votosTotais.keySet();
  238.             for (Integer voto : votos) {
  239.                 System.out.println("---#Candidato numero " + voto + ": " +  votosTotais.get(voto));
  240.             }
  241.                         // separar entre governador e presidente na contagem dos votos
  242.         }
  243.            
  244.            
  245.         }
  246.            
  247.            
  248.         }
  249.    
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement