Pregunta 1

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 4

package domApli;

public class producto {


String nombre;
String categoria;

public producto(String nombre, String categoria) {


this.nombre = nombre;
this.categoria = categoria;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getCategoria() {


return categoria;
}

public void setCategoria(String categoria) {


this.categoria = categoria;
}

package domApli;

import javax.swing.JOptionPane;

public class aplicacion {

producto Arreglo[];
int n;

public aplicacion() {
n = Integer.parseInt(JOptionPane.showInputDialog("Ingrese la cantidad de productos a almacenar"));
Arreglo = new producto[n];
}

public static void main(String[] args) {


aplicacion apli = new aplicacion();
apli.ingresar();
apli.menu();
}

public void ingresar() {


String nombre, categoria;
producto temp;
for (int i = 0; i < n; i++) {
nombre = JOptionPane.showInputDialog("Ingrese el nombre del producto " + (i + 1));
categoria = JOptionPane.showInputDialog("Ingrese la categoria del producto " + (i + 1));
temp = new producto(nombre, categoria);
Arreglo[i] = temp;
}
}

public void menu() {


int opcion;
String menu = "====== MENÚ ======\n"
+ "-------------------------\n"
+ "[1] Mostrar datos\n"
+ "[2] Busqueda(Secuencial) \n"
+ "[3] Busqueda(Binaria) \n"
+ "[4] Ordenamiento ascendente\n"
+ "[5] Ordenamiento descendente\n"
+ "[9] Finalizar\n"
+ "-------------------------\n"
+ "Seleccione una opción";
do {
opcion = Integer.parseInt(JOptionPane.showInputDialog(menu));
switch (opcion) {
case 1:
mostrarDatos();
break;
case 2:
busquedaSecuencial();
break;
case 3:
busquedaBinaria();
break;
case 4:
ordenarAscendente();
break;
case 5:
ordenarDescendente();
break;
case 9:

break;
default:
JOptionPane.showMessageDialog(null, "Esa opcion no existe");
}
} while (true);

public void mostrarDatos() {


String lista = "";
for (int i = 0; i < n; i++) {
lista = lista + Arreglo[i].getNombre() + " - " + Arreglo[i].getCategoria() + "\n";
}
JOptionPane.showMessageDialog(null, lista);
}

public void busquedaSecuencial() {


String nombre;
nombre = JOptionPane.showInputDialog("Ingrese el nombre del producto a buscar");
for (int i = 0; i < n; i++) {
if (nombre.equalsIgnoreCase(Arreglo[i].getNombre())) {
JOptionPane.showMessageDialog(null, "Proucto encontrado\nNombre:" + Arreglo[i].getNombre() + "\
nCategoria: " + Arreglo[i].getCategoria());
return;
}
}
JOptionPane.showMessageDialog(null, "Proucto no encontrado");
}

public int busquedaBinaria() {


ordenarAscendente();
String nombre;
nombre = JOptionPane.showInputDialog("Ingrese el nombre del producto a buscar");
int inicio = 0;
int fin = n - 1;
int pos;

while (inicio <= fin) {


pos = (inicio + fin) / 2;
if (Arreglo[pos].getNombre().equalsIgnoreCase(nombre)) {
return pos;
} else if (Arreglo[pos].getNombre().compareToIgnoreCase(Arreglo[pos].getNombre()) < 0) {
inicio = pos + 1;
} else {
fin = pos - 1;
}
}
return -1;
}

public void ordenarAscendente() {


producto pro;

for (int i = 0; i < n - 1; i++) {


for (int j = i + 1; j < n; j++) {
if (Arreglo[i].getNombre().compareToIgnoreCase(Arreglo[j].getNombre()) > 0) {
pro = Arreglo[i];
Arreglo[i] = Arreglo[j];
Arreglo[j] = pro;
}
}
}
}

public void ordenarDescendente() {


producto pro;

for (int i = 0; i < n - 1; i++) {


for (int j = i + 1; j < n; j++) {
if (Arreglo[i].getNombre().compareToIgnoreCase(Arreglo[j].getNombre()) < 0) {
pro = Arreglo[i];
Arreglo[i] = Arreglo[j];
Arreglo[j] = pro;
}
}
}
}
}

También podría gustarte