Advertisement
LightProgrammer000

Votação

Jul 7th, 2024
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.97 KB | None | 0 0
  1. package Tarefas_1;
  2.  
  3. import java.util.InputMismatchException;
  4. import java.util.Scanner;
  5.  
  6. public class EX08
  7. {
  8.     static Scanner ent = new Scanner(System.in);
  9.    
  10.     public static void main(String[] args)
  11.     {
  12.         try  
  13.         {
  14.             // Variáveis
  15.             int qtd_1 = 0, qtd_2 = 0, qtd_3 = 0, qtd_4 = 0, qtd_5 = 0, qtd_6 = 0;
  16.            
  17.             // Controle
  18.             int qtd_tot_vot = 0;
  19.  
  20.             // Apresentação
  21.             System.out.println("# Programa EX08");
  22.  
  23.             // Estrutura de repetição
  24.             while (true)
  25.             {
  26.                 switch (menu())
  27.                 {
  28.                     // Relatório
  29.                     case 0:
  30.                         relatorio(qtd_1, qtd_2, qtd_3, qtd_4, qtd_5, qtd_6, qtd_tot_vot);
  31.                         //System.exit(0);
  32.                         return;
  33.                         //break;
  34.  
  35.                     // Candidato 1
  36.                     case 1:
  37.                         qtd_1++;
  38.                         break;
  39.  
  40.                     // Candidato 2
  41.                     case 2:
  42.                         qtd_2++;
  43.                         break;
  44.  
  45.                     // Candidato 3
  46.                     case 3:
  47.                         qtd_3++;
  48.                         break;
  49.  
  50.                     // Candidato 4
  51.                     case 4:
  52.                         qtd_4++;
  53.                         break;
  54.  
  55.                     // Voto nulo
  56.                     case 5:
  57.                         qtd_5++;
  58.                         break;
  59.  
  60.                     // Voto em branco
  61.                     case 6:
  62.                         qtd_6++;
  63.                         break;
  64.  
  65.                     default:
  66.                         System.out.println("# Opção invalida.");
  67.                         break;
  68.                 }
  69.  
  70.                 // Contagem de votos
  71.                 qtd_tot_vot++;
  72.             }    
  73.         }
  74.        
  75.         catch (Exception e)
  76.         {
  77.             System.err.println(e.getMessage());
  78.             ent.nextLine();
  79.         }
  80.        
  81.         finally
  82.         {
  83.             // Fechamento do scanner
  84.             ent.close();
  85.         }
  86.     }
  87.  
  88.     // Função: Menu
  89.     private static int menu()
  90.     {
  91.         int opc = -1;
  92.  
  93.         while (opc < 0 || opc > 6)
  94.         {
  95.             try
  96.             {
  97.                 // Apresentação
  98.                 System.out.println("\n---------- Menu ----------");
  99.                 System.out.println("* [1] Candidato - 1 ");
  100.                 System.out.println("* [2] Candidato - 2 ");
  101.                 System.out.println("* [3] Candidato - 3 ");
  102.                 System.out.println("* [4] Candidato - 4 ");
  103.                 System.out.println("* [5] Voto nulo");
  104.                 System.out.println("* [6] Voto em branco");
  105.                 System.out.println("* [0] Finalizar conjunto de votos");
  106.                 System.out.println("---------------------------------");
  107.                 System.out.print("* Opc: ");
  108.  
  109.                 opc = ent.nextInt();
  110.  
  111.                 // Verifica se a opção está dentro do intervalo válido
  112.                 if (opc < 0 || opc > 6)
  113.                 {
  114.                     System.out.println("Opção invalida! Digite um valor entre 0 e 6.");
  115.                 }
  116.             }
  117.  
  118.             catch (InputMismatchException e)
  119.             {
  120.                 System.out.println("Entrada invalida! Por favor, digite um numero inteiro.");
  121.                 ent.nextLine(); // Limpa o buffer do scanner - Porém 'opc continua com o valor de -1'
  122.             }
  123.         }
  124.  
  125.         return opc;
  126.     }
  127.  
  128.     // Método: Relatório
  129.     private static void relatorio(int qtd_1, int qtd_2, int qtd_3, int qtd_4, int qtd_5, int qtd_6, int qtd_tot_vot)
  130.     {
  131.         if (qtd_tot_vot > 0)
  132.         {
  133.             System.out.println("\n---------- RELATORIO ----------");
  134.             System.out.println("# Votos (candidato 1): " + qtd_1);
  135.             System.out.println("# Votos (candidato 2): " + qtd_2);
  136.             System.out.println("# Votos (candidato 3): " + qtd_3);
  137.             System.out.println("# Votos (candidato 4): " + qtd_4);
  138.             System.out.println("# Votos nulos: " + qtd_5);
  139.             System.out.println("# Votos em branco: " + qtd_6);
  140.             System.out.println("# Total de votos: " + qtd_tot_vot);
  141.             System.out.println("# Total de votos validos: " + (qtd_tot_vot - (qtd_5 + qtd_6)));
  142.             System.out.printf("# Percentual de votos nulos: %.2f%%\n", (double) qtd_5 * 100 / qtd_tot_vot);
  143.             System.out.printf("# Percentual de votos brancos: %.2f%%\n", (double) qtd_6 * 100 / qtd_tot_vot);
  144.             System.out.println("----------------------------------");
  145.         }
  146.        
  147.         else
  148.         {
  149.             System.out.println("\n---------- RELATÓRIO ----------");
  150.             System.out.println("# Total de votos: " + qtd_tot_vot);
  151.             System.out.println("----------------------------------");
  152.         }
  153.     }
  154. }
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement