• Viernes 8 de Noviembre de 2024, 12:48

Autor Tema:  No Se Que Hacer  (Leído 1962 veces)

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
No Se Que Hacer
« en: Sábado 27 de Octubre de 2007, 01:52 »
0
Hola que tal como estan?
Bueno aqui esta lo que tengo que hacer.

Hacer un programa que dado 80 votos diga cual de los 3 candidatos es vencedor, no debe existir un empate.

AQUI ESTA LO QUE EH HECHO:

Citar
import javax.swing.*;

public class elecciones {

    public static void main  (String[]args)  {
       
   
       int can,k,contd,conta,contc,contanu;
       
       contd=0; conta=0; contc=0; contanu=0;
   
   
    for(k=1;k<=80;k++){
       can=Integer.parseInt(JOptionPane.showInputDialog("Digite un numero segun su candidato: \n " + "     1:Diego    2:Andres   3:Carlos "));
    if (can== 1){
       contd=contd+1;
    }
    if (can== 2){
       conta=conta+1;
    }
    if (can==3) {
       contc=contc+1;
    } else{
       contanu=contanu+1;
    } 
   
    }
   
    if ((contd>conta) && (contd>contc)) {
       JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
    }   
   
    if ((conta>contd)&&(conta>contc)){
       JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
    }     
   
    if ((contc>contd)&& (contc>conta)) {
       JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
    }
   
    }   
   
       
       
       }
   
   
   

Hasta ahi solo sale quien es el vencedor de los tres candidatos, pero si llegase a existir un empate, ejemplo: candidato1 = 30 votos candidato2 = 30 votos candidato3 = 20 votos , que podria hacer si eso llegase a pasar?? una segunda vuelta??? Que diga que hubo un empate en el primer lugar?? o que puede ser??

La verdad no se, y tampoco como escribirlo.

Otra cosa, me pueden ayudar a optimizarlo si se puede?? GRACIAS

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No Se Que Hacer
« Respuesta #1 en: Domingo 28 de Octubre de 2007, 01:27 »
0
Hola de nuevo, miren eh hecho algunos cambios al codigo pero ahora tengo otra inquietud mas, por que no se hace ninguno de los procesos de por (porcentajes)??? ayudenme please

Citar
import javax.swing.*;

public class elecciones {

    public static void main  (String[]args)  {
       
   
       int can,k,n,contd,conta,contc,contanu,contbla,porD,porA,porC,porBLA,porANU,Vvc;
       
       contd=0; conta=0; contc=0; contbla=0; contanu=0;
        n=10; 
   
    //ELECCION Y CONTEO DE VOTOS
    for(k=1;k<=n;k++){
       can=Integer.parseInt(JOptionPane.showInputDialog
      ("Digite el numero correspondiente segun su candidato: \n \n  " + "        " + "1--Diego\n " + "         " + "2--Andres\n " + "         " + "3--Carlos\n " + "         " + "4--Voto en blanco\n "));
   
    switch(can) {
       case 1:contd=contd+1;
       break;
       case 2:conta=conta+1;
       break;
       case 3:contc=contc+1;
       break;
       case 4:contbla=contbla+1;
       break;
       
       default: contanu=contanu+1;
       break;
    }
       
    }
   
   
   
    if ((contd>conta) && (contd>contc)) {
       JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
    }   
   
    if ((conta>contd)&&(conta>contc)){
       JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
    }     
   
    if ((contc>contd)&& (contc>conta)) {
       JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
    }
     //PORCENTAJES VOTACIONES
    porD=(contd/n)*100;
    porA=(conta/n)*100;
    porC=(contc/n)*100;
    porBLA=(contbla/n)*100;
    porANU=(contanu/n)*100;
    //
    Vvc=contd+conta+contc;
    JOptionPane.showMessageDialog(null,"      **ESTADISTICAS**\n \n"+ "      -Porcentajes- \n"+ "Diego = " + porD+"%" +"\n"+ "Andres = "+ porA+"%" +"\n"+ "Carlos = "+ porC+"%" +"\n"+ "Votos en blanco = "+ porBLA+"%" +"\n"+ "Votos anulados = "+ porANU+"%" +"\n \n"+ "      -Cantidad votos-\n"+ "Votos validos candidatos = "+ Vvc +"\n"+"Votos en blanco = " +contbla +"\n"+ "Votos anulados = " + contanu +"\n"+ "Total = "+ n );
   
    }   
   
       
       
       }
   
   
   

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No Se Que Hacer
« Respuesta #2 en: Lunes 29 de Octubre de 2007, 18:29 »
0
NADIE PUEDE AYUDARME??  :huh:  :(

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: No Se Que Hacer
« Respuesta #3 en: Martes 30 de Octubre de 2007, 20:55 »
0
import javax.swing.*;

public class elecciones {

    public static void main  (String[]args)  {
   
 
    int can,k,n,contd,conta,contc,contanu,contbla,Vvc;
    float porD = 0;
    float porA = 0;
    float porC = 0;
    float porBLA = 0;
    float porANU = 0;
   
    contd=0; conta=0; contc=0; contbla=0; contanu=0;
        n=10;
   
    //ELECCION Y CONTEO DE VOTOS
    for(k=1;k<=n;k++){
    can=Integer.parseInt(JOptionPane.showInputDialog
      ("Digite el numero correspondiente segun su candidato: \n \n  " + "        " + "1--Diego\n " + "        " + "2--Andres\n " + "        " + "3--Carlos\n " + "        " + "4--Voto en blanco\n "));
   
    switch(can) {
    case 1:contd=contd+1;
    break;
    case 2:conta=conta+1;
    break;
    case 3:contc=contc+1;
    break;
    case 4:contbla=contbla+1;
    break;
   
    default: contanu=contanu+1;
    break;
    }
       
    }
   
 
   
    if ((contd>conta) && (contd>contc)) {
    JOptionPane.showMessageDialog(null,"El ganador es Diego con " +contd + " votos" );
    }
    else if ((conta>contd)&&(conta>contc)){
    JOptionPane.showMessageDialog(null,"El ganador es Andres con "+ conta + " votos");
    }  
   
    else if ((contc>contd)&& (contc>conta)) {
    JOptionPane.showMessageDialog(null,"El ganador es Carlos con "+ contc + " votos");
    }
    //PORCENTAJES VOTACIONES
    porD= ((float)contd/n) * 100;
    porA=((float)conta/n) * 100;
    porC=((float)contc/n) * 100;
    porBLA=((float)contbla/n) * 100;
    porANU=((float)contanu/n) * 100;
    //
    Vvc=contd+conta+contc;
    JOptionPane.showMessageDialog(null,"      **ESTADISTICAS**\n \n"+ "      -Porcentajes- \n"+ "Diego = " + (int)porD+"%" +"\n"+ "Andres = "+ (int)porA+"%" +"\n"+ "Carlos = "+ (int)porC+"%" +"\n"+ "Votos en blanco = "+ (int)porBLA+"%" +"\n"+ "Votos anulados = "+ (int)porANU+"%" +"\n \n"+ "      -Cantidad votos-\n"+ "Votos validos candidatos = "+ Vvc +"\n"+"Votos en blanco = " +contbla +"\n"+ "Votos anulados = " + contanu +"\n"+ "Total = "+ n );
 
    }  
       
    }


esta es una forma de resolver los porcentajes.... si quieres resolver lo de los empates puedes poner una bandes y repeter el ciclo hasta que haya un ganador

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No Se Que Hacer
« Respuesta #4 en: Martes 30 de Octubre de 2007, 21:53 »
0
Hola que tal?

MUCHAS GRACIAS MANIX!!  :hola:

Otra cosa, por que no dejaba como lo tenia?
GRACIAS

manix

  • Miembro MUY activo
  • ***
  • Mensajes: 203
  • Nacionalidad: cr
    • Ver Perfil
    • http://apuntes.delibertad.com
Re: No Se Que Hacer
« Respuesta #5 en: Martes 30 de Octubre de 2007, 23:35 »
0
porque al hacer la division cont/n inmediantamente el resultado era redondiado a 0 en ves de ser 0.2 y cualquier otro decimal, entonces cuando lo multiplicabas por 100  estabas multiplicando 0 * 100 y por eso siempre te daba 0
Pero cuando sobreponemos el float toma ese decimal y lo multiplica por 100
 :lol:  :lol:  :lol:

digichap28

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No Se Que Hacer
« Respuesta #6 en: Miércoles 31 de Octubre de 2007, 13:14 »
0
Nuevamente gracias!!!  :hola: