ya cambie la etiqueta disculpa ._.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúimport java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Elecciones {
private int N;
private int M;
private int CANDIDATOS_BALOTAJE = 2;
private double PORC_MIN_GANADOR = 0.5;
private String[] CANDIDATOS;
private String[] DISTRITOS;
private int[][] ESCRUTINIO;
private int[] VOTOS_X_CANDIDATO;
private BufferedReader in;
public static byte IZQUIERDA = (byte) 0;
public static byte DERECHA = (byte) 1;
public Elecciones() throws IOException {
N = leerInt("Introduzca la cantidad de candidatos: ");
M = leerInt("Introduzca la cantidad de distritos: ");
CANDIDATOS = new String[N];
DISTRITOS = new String[M];
ESCRUTINIO = new int[DISTRITOS.length][CANDIDATOS.length];
VOTOS_X_CANDIDATO = new int[CANDIDATOS.length];
for (int i = 0; i < N; i++) {
CANDIDATOS[i] = "Candidato" + (i + 1);
}
for (int i = 0; i < M; i++) {
DISTRITOS[i] = "Distrito" + (i + 1);
}
}
private String leer(String m) throws IOException {
if (in == null) {
in = new BufferedReader(new InputStreamReader(System.in));
}
if (m != null) {
System.out.print(e);
}
return in.readLine();
}
private int leerInt(String m) throws IOException {
return Integer.parseInt(leer(e));
}
void cargarDatos() throws IOException {
System.out.println("\nIngrese la cantidad de votos obtenidos");
for (int j = 0; j < DISTRITOS.length; j++) {
String distrito = DISTRITOS[j];
String linea = repetir('-', distrito.length());
System.out.println(linea);
System.out.println(distrito);
System.out.println(linea);
for (int i = 0; i < CANDIDATOS.length; i++) {
ESCRUTINIO[j][i] = leerInt(CANDIDATOS[i] + ": ");
}
}
}
public void mostrar() throws IOException {
leer("\nDatos ingresados correctamente. **Presione enter para continuar.");
System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
System.out.println(" " + centrar("Candidatos", CANDIDATOS.length * 12));
System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
System.out.print(alinear("Distritos", 12, IZQUIERDA));
for (int i = 0; i < N; i++) {
System.out.print(alinear(CANDIDATOS[i], 12, DERECHA));
}
System.out.println("\n" + repetir('-', (CANDIDATOS.length + 1) * 12));
for (int j = 0; j < DISTRITOS.length; j++) {
System.out.print(alinear(DISTRITOS[j], 12, IZQUIERDA));
for (int i = 0; i < CANDIDATOS.length; i++) {
System.out.print(alinear("" + ESCRUTINIO[j][i], 12, DERECHA));
}
System.out.println();
}
System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
}
public void votosPorCandidato() {
double total = 0;
for (int j = 0; j < ESCRUTINIO.length; j++) {
for (int i = 0; i < CANDIDATOS.length; i++) {
int v = ESCRUTINIO[j][i];
VOTOS_X_CANDIDATO[i] += v;
total += v;
}
}
int mas_votado = -1;
int ganador = -1;
System.out.println("\nTotal de votos recibidos para cada candidato y su porcentaje");
System.out.println(repetir(' ', 12) + centrar("Votos", 12) + centrar("Porcentaje", 12));
int[] clasificacion = clasificarCandidatosPorVoto();
for (int i = clasificacion.length - 1; i >= 0; i--) {
int j = clasificacion[i];
int votos = VOTOS_X_CANDIDATO[j];
double porc = votos / total;
if (mas_votado < 0 || votos < VOTOS_X_CANDIDATO[mas_votado]) {
mas_votado = i;
}
if (porc > PORC_MIN_GANADOR) {
ganador = i;
}
System.out.print(alinear(CANDIDATOS[j], 12, IZQUIERDA));
System.out.print(alinear(votos, 12, DERECHA));
System.out.println(alinear(String.format("%3.2f%%" , porc * 100), 12, DERECHA));
}
if (mas_votado > 0) {
System.out.println("\nEl candidato mas votado: ");
System.out.println("\t" + CANDIDATOS[mas_votado] + ": " + VOTOS_X_CANDIDATO[mas_votado]);
}
if (ganador > 0) {
System.out.println("\nResulto ganador el:");
System.out.println("\t" + CANDIDATOS[ganador] + ": " + VOTOS_X_CANDIDATO[ganador]);
} else {
System.out.println("\nLos dos mas votados fueron:");
for (int i = clasificacion.length - 1; i >= 0 && i + CANDIDATOS_BALOTAJE >= clasificacion.length; i--) {
System.out.println("\t" + CANDIDATOS[clasificacion[i]]);
}
}
}
private void copiarArray(int[] orig, int[] dest) {
for (int i = 0; i < orig.length; i++) {
orig[i] = dest[i];
}
}
private int[] clasificarCandidatosPorVoto() {
int[] vxc = new int[VOTOS_X_CANDIDATO.length];
int[] clasificacion = new int[VOTOS_X_CANDIDATO.length];
for (int i = 0; i < clasificacion.length; i++) {
clasificacion[i] = i;
}
copiarArray(vxc, VOTOS_X_CANDIDATO);
int j;
for (int i = 1; i < vxc.length; i++) {
int votos = vxc[i];
int cand = clasificacion[i];
j = i;
while (j > 0 && votos < vxc[j - 1]) {
vxc[j] = vxc[j - 1];
clasificacion[j] = clasificacion[j - 1];
j--;
}
vxc[j] = votos;
clasificacion[j] = cand;
}
return clasificacion;
}
public String repetir(char ch, int cant) {
char[] chars = new char[cant];
for (int i = 0; i < cant; i++) {
chars[i] = ch;
}
return new String(chars);
}
public String alinear(int nro, int ancho, byte alineacion) {
return alinear(String.valueOf(nro), ancho, alineacion);
}
public String alinear(String texto, int ancho, byte alineacion) {
if (texto == null) {
return repetir(' ', ancho);
}
if (texto.length() > ancho) {
return texto.substring(0, ancho);
}
if (alineacion == DERECHA) {
return repetir(' ', ancho - texto.length()) + texto;
} else {
return texto + repetir(' ', ancho - texto.length());
}
}
public String centrar(String texto, int ancho) {
if (texto == null) {
return repetir(' ', ancho);
}
if (texto.length() >= ancho) {
return texto.substring(0, ancho);
}
String s = repetir(' ', (ancho - texto.length()) / 2) + texto;
return s + repetir(' ', ancho - s.length());
}
public static void main(String[] args) throws Exception {
Elecciones e = new Elecciones();
e.cargarDatos();
e.mostrar();
e.votosPorCandidato();
}
}
import java.util.Scanner;
class Test {
static Scanner leer = new Scanner(System.in);
static int cant_elementos = 100;
static int[] legajo = new int[cant_elementos];
static String[] apenomb = new String[cant_elementos];
static double[] salario = new double[cant_elementos];
public static void main(String[] args) {
int flag = 0;
while (flag == 0) {
switch (inicio()) {
case 0: flag = 1; break;
case 1: registro(); break;
case 2: imprimir(); break;
case 3: busqueda(); break;
case 4: ordenar(); break;
case 5: salariomenor(); break;
default:System.out.println("Seleccione una opcion valida."); break;
}
}
}
public static int inicio() {
System.out.println(" M E N U de O P C I N E S ");
System.out.println(" 1- Ingresar datos de empleados: ");
System.out.println(" 2- Imprimir lista ordenada por legajo: ");
System.out.println(" 3- Busqueda por legajo: ");
System.out.println(" 4- Ordenar por apellido los datos de los empleados de la empresa ");
System.out.println(" 5- Mostrar datos del empleado con menor remuneracion ");
System.out.println(" 0- Programa Finalizado.");
System.out.println(" Ingrese una opcion valida: ");
return leer.nextInt();
}
public static void registro() {
System.out.println("Ingrese legajo:");
int le = leer.nextInt();
System.out.println("Ingrese Apellidos y nombres:");
String an = leer.next();
System.out.println("Ingrese sueldo:");
double sa = leer.nextDouble();
legajo[le] = le;
apenomb[le] = an;
salario[le] = sa;
}
public static void imprimir() {
for (int i = 0; i < cant_elementos; i++) {
if (legajo[i] > 0) {
System.out.println(legajo[i] + "-" + apenomb[i] + "-" + salario[i]);
}
}
}
public static void busqueda() {
System.out.println("Ingrese el numero de legajo que quiere buscar: ");
int nro = leer.nextInt();
if (legajo[nro] > 0) {
System.out.println(legajo[nro] + "-" + apenomb[nro] + "-" + salario[nro]);
if (legajo[nro] != 0) {
System.out.println("Legajo no corresponde a un empleado de la empresa");
}
}
}
public static void ordenar() {
for(int i = 0; i < cant_elementos -1; i++){
int ii = 0;
for(int j=i+1;j < cant_elementos;j++){
if(legajo[j]<legajo[ii]){
ii=j;
if(i != ii){
int a = legajo[i];
legajo[i] = legajo[ii];
legajo[ii] = a;
int c = apenomb[i];
apenomb[i] = apenomb[ii];
apenomb[ii] = c;
double s = salario[i];
salario[i] = salario[ii];
salario[ii] = s;
}
}
}
}
}
public static void salariomenor() {
int ii = 0;
double salariomenor = salario[0];
for(int i=0; i < cant_elementos;i++){
if(salario[i] < salariomenor){
ii = i;
salariomenor = salario[i];
}
}
printLine("");
printLine("");
printLine("-----------------------------------------------");
printLine("Datos del empleado de menor sueldo: ");
printLine("Legajo: " + legajo[ii] + "\tNombre y apellido: " + apenomb[ii] + "\tSueldo: " + salario[ii]);
}
}