/*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