/*1 .- (6 puntos) Con vistas a las próximas elecciones, se desea hacer un programa en Java para la 
gestión de los datos de las listas de candidatos de los partidos que se presentan. El programa debe permitir
 la entrada de los nombres de los partidos (1 punto) y de los nombres de los candidatos de cada partido, así
  como el número de firmas de apoyo que presenta cada candidato para acreditarse. Para ello, se introducirá el 
  nombre de un partido, y a continuación el nombre y número de firmas de cada candidato de ese partido; después
   se continuará con otro partido y sus candidatos, etc.
Por ejemplo:   
     pesoe 
        pepe – 300 
        juan – 200 
        maria – 400 
        fin
        
     pepé 
        lolo – 170
        pepa – 190
        fin
   
    esquerra
            patxi – 88
            joseba – 430
            igor – 210
           aitor – 170
            fin
    fin
    
  No sabemos cuántos partidos se van a introducir, ni cuántos candidatos en cada partido (siempre al menos uno); 
  cada partido tendrá un distinto número de candidatos. Sí sabemos que dentro de un partido se acabará la 
  lista de sus candidatos cuando el nombre introducido sea “fin”, y que se acabará la lista de partidos cuando
  el nombre del partido sea “fin”.
  
Después de introducidos los datos, se debe mostrar un resumen con los siguientes resultados:
-  Nombre del partido con más candidatos. (1 punto)
-  Número medio de firmas que presentan todos los candidatos. (1 punto)
-  Nombre del candidato que presenta más firmas. (1 punto)
-  Número medio de firmas de los candidatos del partido con menos candidatos. (1 punto)
-  Porcentaje de partidos que presentan más de 5 candidatos. (1 punto)
 suponemos que ningún partido va a tener mas de 1000 candidatos.*/
import javax.swing.*;
public class Examen11_12_Ej_1
{
   public static void main(String args[])
   {
      String nombrePartido,nombreCandidato;
      int firmasCandidato;
      String partMasCand="";
      String partMenosCand = "";
      int contadorCandidatos;
      int maxNumCands=0;
      int minNumCands=1000;
      int totalCandidatos=0;
      int totalFirmas=0;
      int maxFirmasDeUnCandidato=0;
      String nombreCandConMasFirmas="";
      int totalFirmasDeUnPartido;
      float numMedioFirmasDeUnPartido=0.0F;
      int contadorPartidos = 0;
      int numPartidosConMasDe5=0;
     nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
   
      while(!nombrePartido.equals("fin")) // tb: equalsIgnoreCase
      {
         contadorPartidos++;
         totalFirmasDeUnPartido = 0;
         contadorCandidatos = 0;
         nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
         while(!nombreCandidato.equals("fin"))
         {
            contadorCandidatos++;
            firmasCandidato = Integer.parseInt(JOptionPane.showInputDialog("Firmas del candidato: "));
            totalFirmas = totalFirmas + firmasCandidato;
            if(firmasCandidato > maxFirmasDeUnCandidato)
              {
               maxFirmasDeUnCandidato = firmasCandidato;
               nombreCandConMasFirmas = nombreCandidato;
              }
            totalFirmasDeUnPartido = totalFirmasDeUnPartido+firmasCandidato;
         
            nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
         }
         totalCandidatos = totalCandidatos + contadorCandidatos;
         
         if(contadorCandidatos < minNumCands)
         {
          minNumCands = contadorCandidatos;
          partMenosCand = nombrePartido;
          numMedioFirmasDeUnPartido = (float)totalFirmasDeUnPartido/contadorCandidatos;
         }
    
         if(contadorCandidatos > maxNumCands)    
          {
            maxNumCands = contadorCandidatos;
            partMasCand = nombrePartido;
          }
         
         if(contadorCandidatos > 5)
         {
          numPartidosConMasDe5++;
         }
      
      
      
         nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
      }
      JOptionPane.showMessageDialog(null,"Partido con mas candidatos: "+partMasCand);
      JOptionPane.showMessageDialog(null,"Media de firmas: "+(float)totalFirmas/totalCandidatos);
      JOptionPane.showMessageDialog(null,"Candidato con mas firmas: "+nombreCandConMasFirmas);
      JOptionPane.showMessageDialog(null,"El partido "+partMenosCand+", el que tiene menos candidatos, tiene como media de firmas: "+numMedioFirmasDeUnPartido);
      JOptionPane.showMessageDialog(null,"Porcentaje de partidos con mas de cinco candidatos: "+(float)numPartidosConMasDe5/contadorPartidos*100);
   }
}
2. (Falta algo al final)
import javax.swing.*;
public class Examen1112Ej2
{
 public static void main(String args[])
 {
  int max1=0,max2=0,max3=0,max4=0,max5=0;
  int num,aux;
  
  num=Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
  
 
  while(num>=0)
  {
   if(num>max5)
   {
     max5=num;
     if(max5>max4) //intercambio max4 y max5
     {
      aux = max4;
      max4=max5;
      max5=aux;
     }
      
     if(max4>max3)
      {
       aux=max3;
       max3=max4;
       max4=aux;
      }
       
      if(max3>max2)
       {
       aux=max2;//con todos
       }
         
   }
  
    num = Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
  
   }
  
  JOptionPane.showMessageDialog(null,"Los mayores son:" +max1+max2);
  
  }
  
 }
Si sabéis cómo completar el segundo decídmelo, por favor
ResponderEliminar