View difference between Paste ID: S8R9PYLF and baWcZf3C
SHOW: | | - or go back to the newest paste.
1
/* Estructura de Datos - Facultad de Ingeniería - Universidad Nacional de Jujuy
2
=============================================================================
3
*/
4
 
5
/**
6
* @Autor: Equipo 5.1 Estructura de Datos.
7
/*      @Integrantes:                |    @Carrera:             |   @DNI:
8
                                     |                          |
9
Camacho, Mauro Rodrigo               | Ing. Informática         | 41.654.090
10
Cabana, Mario Ariel Fernando         | Ing. Informática         | 42.268.639
11
Cruz, Facundo Emanuel                | Ing. Informática         | 41.609.573
12
López, Juan Carlos                   | Ing. Informática         | 41.400.550
13
Machaca, Aldo Martin                 | Ing. Informática         | 31.455.538
14
Soto, Sofía Alejandra                | Ing. Informática         | 40.442.283 
15
Vilca, Sergio Esteban                | Ing. Informática         | 39.200.406
16
 
17
* @Ingeniera: Perez Ibarra.
18
* @Fecha: 28/10/2020.
19
*/
20
 
21
/*
22
 Trabajo Práctico N°4 / Listas – Lista Genérica, Lista Ordenada / Ejercicio 6 
23
---------------------   --------------------------------------   ------------
24
* Objetivo General: Almacenar la información de equipos en una lista y determinar ganador, perdedor.
25
* Metodología Empleada: Ingresar por consola o aleatoriamente valores para equipos participantes:
26
                        Nombre del equipo, cantidad de integrantes del equipo (entre 3 y 5)
27
                        y cantidad de presas obtenidas.
28
                        Almacenarlo en una lista y mostrar el equipo que obtuvo mayor cantidad de  
29
                        presas y el que obtuvo la menor cantidad. 
30
                        Ademas indicar que equipo conformado por la menor cantidad de integrante
31
                        obtuvo más presas.
32
                        Se utiliza Lista Enlazada Doble, DobleOrdenada. 
33
* El funcionamiento será a traves del entorno de desarrollo integrado Eclipse 2020-06(4.16)-(IDE for Java Developers),
34
  empleando el leguaje de programación Orientado a Objeto Java.
35
* Api a utilizar. Paquete:- Java.Util / Clase:- Iterator, - Scanner , - Random.
36
* Clase principal: CompetenciaPescaPejerey. 
37
* Clases secundarias: Equipos, DoubleLinkedList, DoubleLinkedListOrdenada, Helper.
38
* Iteradores: ILinkedList, LinkedListOrdenada.*/
39
import java.util.Iterator;
40
41
public class CompetenciaPescaPejerey {
42
	//------------------- Inicio método Run() --------------------//
43
	
44
    public void run() {
45
        Equipos minIntegrantes=null;
46
        DoubleLinkedListOrdenada<Equipos>listaEquipos= new DoubleLinkedListOrdenada<Equipos>();
47
        int respuesta, cantidad=0;
48
        System.out.println("Trabajo Práctico Nº 4 - Ejercicio 6");
49
        do {
50
        	menu();
51
        	respuesta=Helper.numeroEntero("Ingrese una opción ........:  ");
52
        	if ((respuesta==1)||(respuesta==2)) { 
53-
                cantidad= Helper.numeroEnteroPositivo("Cantidad de Equipos Participantes: ");
53+
                cantidad= Helper.numeroEnteroPositivo("Cantidad de de Equipos Participantes: ");
54
            }
55
        	switch(respuesta){
56
	            case 1: EnlistarEquipos(listaEquipos,cantidad,1);
57
	                break;
58
	            case 2: EnlistarEquipos(listaEquipos,cantidad,2);
59
	                break;
60
	            case 3: listaEquipos(listaEquipos);
61
	                break;
62
	            case 4: mostrarResultados(listaEquipos,minIntegrantes);
63
	                    System.out.println("-----Fin del Ejercicio 6-----------");
64
	                break;
65
	            default: System.out.println("Ingrese una opción válida.....");
66
	                break;
67
        	}
68
        }while(respuesta!=4);
69
    }
70
    //-------------- Menú - CompetenciaPescaPejerey --------------//   
71
    
72
    public void menu(){
73
        System.out.println("-------------- Campeonato de Pesca -------------------");
74
        System.out.println("1) Cargar equipos......");
75
        System.out.println("2) Generar equipos......");
76
        System.out.println("3) Lista de equipos registrados........");
77
        System.out.println("4) Fin del Campeonado, Mostrar los resultados .....");
78
    } //Fin menu
79
    //----------------------- Cargar Lista------------------------// 
80
    
81
    private void EnlistarEquipos(LinkedListOrdenada<Equipos> e, int ultimo,int eleccion) {//Proceso de Cargar una Lista.
82
    	System.out.println("----------- Carga de equipos ------------------");
83
    	for(int i=0;i<ultimo;i++) {  
84
            if(eleccion==1) {            	
85
                System.out.println("Carga del Equipo Nº "+(i+1)+" :");
86
                e.addenOrden(crearEquipo());                
87
            }else {
88
                e.addenOrden(equiporandom());
89
            }
90
        }
91
    	System.out.println("------- Fin de la Carga de equipos  ---------");
92
    } //Fin EnlistarEquipos.
93
    
94
    private Equipos crearEquipo() {	//Carga Equipo de forma manual.
95
        Integer miembros;
96
        Integer pescados;
97
        System.out.print("Ingrese Nombre del Equipo: ");
98
        String equipo=Helper.sc.nextLine();
99
        System.out.print("Cantidad de Miembros del Equipo (Min. 3,Max.5):");
100
        while(true){ 
101
              miembros= Helper.entero("");
102
              if ( Helper.dentroIntervalo(miembros,3,5)==false) break;
103
                  }
104
        System.out.print("Ingrese Cantidad de Peces Atrapados :");
105
        while(true) {
106
            pescados= Helper.entero("");
107
            if(Helper.naturalesCero(pescados)==false)break;
108
            }
109
        return new Equipos (equipo,miembros,pescados);      
110
    } //Fin crearEquipo.
111
    
112
    private Equipos equiporandom(){ //Carga Equipo con datos aleatorios.
113
        String[] nombre= {"Team Null","Sin anzuelo","Bigote de Bagre","Golden fishers","Camarones","Only Catamaran","Participamos de onda","Solo pesco en Rio","Exception Explosion","Trycatch's","No sabemos programar","Seguidores del profe Tentor","Esclavos de Zapana","Esto es C++?","Me Equivoque de Carrera","No Quiero Recursar"} ;                
114
        String equipo=nombre[Helper.generadorAleatorio(nombre.length)];
115
        Integer miembros=Helper.generadorAleatorio(3)+3;//
116
        Integer pescados=Helper.generadorAleatorio(500); //                 
117
        return new Equipos(equipo,miembros,pescados);
118
    } //Fin Equiporandom.
119
    //----------------- Mostrar Lista Ordenada -------------------//
120
    
121
    public void listaEquipos(DoubleLinkedListOrdenada<Equipos> listaEquipos){
122
        System.out.println("Lista de los equipos registrados.......");
123
        if (listaEquipos.size()!=0) {
124
            System.out.println(listaEquipos.toString()+"\n-------------- Fin del listado ------------");
125
        }else System.out.println("------- Aun no se registraron equipos -----");
126
    } // Fin listaEquipos.
127
    //--------------- Mostrar Resultado de Pesca -----------------//
128
    
129-
    private void mostrarResultados(DoubleLinkedListOrdenada<Equipos> e,Equipos minIntegrantes){
129+
    private void mostrarResultados(DoubleLinkedListOrdenada<Equipos> e,Equipos desventaja){
130
        int contpescados = 0,minimoIntregrantes=6;
131
        System.out.println("Los ganadores son:");
132
        mostrarGanadores(e);
133
        System.out.println("==================================");
134-
        for (Equipos equipo : e) {               
134+
        for (Equipos checkeo : e) {               
135-
            if(equipo.getIntegre()<minimoIntregrantes) {
135+
            if(checkeo.getIntegre()<minimoIntregrantes) {
136-
            	minimoIntregrantes=equipo.getIntegre();
136+
            	minimoIntregrantes=checkeo.getIntegre();
137
            	contpescados=0;
138-
            	if(equipo.getPresas()>=contpescados) {
138+
            	if(checkeo.getPresas()>=contpescados) {
139-
            		contpescados=equipo.getPresas();   
139+
            		contpescados=checkeo.getPresas();   
140-
            		minIntegrantes= equipo;}             
140+
            		desventaja= checkeo;}             
141
               } 
142
        }
143-
        System.out.println("Equipo con menor integrantes y mayor presas\n"+minIntegrantes+"\n==================================");
143+
        System.out.println("Equipo con menor integrantes y mayor presas\n"+desventaja+"\n==================================");
144
        System.out.println("Los perdedores son: ");
145
        mostrarPerdedores(e);
146
        System.out.println("==================================");  
147
    }// Fin MostrarResultados.
148
    
149
    private void mostrarGanadores(DoubleLinkedListOrdenada<Equipos> lista){
150
        for (Equipos equipo: lista) {
151
            if (equipo.compareTo(lista.iterator().next())!=0) {
152
                break;
153
            }
154
            System.out.println(equipo);
155
        }
156
    } //Fin mostrarGanadores
157
    
158
    private void mostrarPerdedores(DoubleLinkedListOrdenada<Equipos> lista){
159
        Iterator<Equipos> IT = lista.iteratorBack();
160
        Equipos equipo1= IT.next();
161
        System.out.println(equipo1);
162
        while (IT.hasNext()) {
163
        	Equipos equipo2=IT.next();
164
            if (equipo1.compareTo(equipo2)==0) {
165
            	System.out.println(equipo2);
166
            }else  break;
167
                }
168
    } //Fin mostrarPerdedores
169
    
170
}
171