Generation

generate functionFri, 13 Dec 2024

Haga un programa orientado a objetos en java netbeans para hacer una busqueda binaria en un arreglo de nombres en el que puedas ingresar los nombres en el arreglo mediante comandos y con una interfaz

Aquí te muestro un ejemplo de cómo podrías implementar un programa en Java Netbeans para realizar una búsqueda binaria en un arreglo de nombres utilizando una interfaz gráfica. **Clase Arreglo** ```java import java.util.Arrays; public class Arreglo { private String[] nombres; private int tamaño; public Arreglo(int tamaño) { this.tamaño = tamaño; this.nombres = new String[tamaño]; } public void agregarNombre(String nombre, int posición) { if (posición >= 0 && posición <= tamaño) { nombres[posición] = nombre; } else { System.out.println("Posición inválida"); } } public void mostrarNombres() { System.out.println(Arrays.toString(nombres)); } public int buscarNombreBinario(String nombre) { int izquierda = 0; int derecha = tamaño - 1; int posición = -1; while (izquierda <= derecha) { int medio = (izquierda + derecha) / 2; if (nombres[medio].equals(nombre)) { posición = medio; break; } else if (nombres[medio].compareTo(nombre) < 0) { izquierda = medio + 1; } else { derecha = medio - 1; } } return posición; } } ``` **Clase Interfaz** ```java import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Interfaz extends JFrame { private Arreglo arreglo; private JTextField campoNombre; private JTextField campoPosición; private JTextField campoNombreBuscar; private JTextArea textoResultado; public Interfaz() { arreglo = new Arreglo(10); // Crear componentes campoNombre = new JTextField(20); campoPosición = new JTextField(5); campoNombreBuscar = new JTextField(20); textoResultado = new JTextArea(10, 20); // Crear botones JButton agregarNombre = new JButton("Agregar nombre"); JButton mostrarNombres = new JButton("Mostrar nombres"); JButton buscarNombre = new JButton("Buscar nombre"); JButton agregarNombreEnPosición = new JButton("Agregar nombre en posición"); // Agregar eventos a los botones agregarNombre.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int posición = Integer.parseInt(campoPosición.getText()); arreglo.agregarNombre(campoNombre.getText(), posición); textoResultado.setText("Nombre agregado correctamente"); } }); mostrarNombres.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { textoResultado.setText(arreglo.mostrarNombres()); } }); buscarNombre.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int posición = arreglo.buscarNombreBinario(campoNombreBuscar.getText()); if (posición != -1) { textoResultado.setText("Nombre encontrado en la posición " + posición); } else { textoResultado.setText("Nombre no encontrado"); } } }); agregarNombreEnPosición.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { int posición = Integer.parseInt(campoPosición.getText()); arreglo.agregarNombre(campoNombre.getText(), posición); textoResultado.setText("Nombre agregado correctamente"); } }); // Crear panel JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); // Agregar componentes al panel panel.add(new JLabel("Nombre:")); panel.add(campoNombre); panel.add(new JLabel("Posición:")); panel.add(campoPosición); panel.add(agregarNombre); panel.add(mostrarNombres); panel.add(buscarNombre); panel.add(agregarNombreEnPosición); panel.add(new JLabel("Nombre a buscar:")); panel.add(campoNombreBuscar); panel.add(new JScrollPane(textoResultado)); // Agregar panel al frame add(panel); // Establecer tamaño y ubicación del frame setSize(400, 300); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Interfaz(); } } ``` **Explicación** La clase `Arreglo` representa un arreglo de nombres y proporciona métodos para agregar nombres, mostrar nombres y buscar nombres binariamente. La clase `Interfaz` representa la interfaz gráfica del programa y permite al usuario interactuar con el programa. La interfaz incluye campos de texto para ingresar nombres y posiciones, botones para agregar nombres, mostrar nombres y buscar nombres, y un área de texto para mostrar los resultados. El programa utiliza la clase `Arreglo` para realizar las operaciones de agregar nombres, mostrar nombres y buscar nombres binariamente. La interfaz gráfica utiliza la clase `Interfaz` para interactuar con el usuario y mostrar los resultados. **Uso** Para utilizar el programa, simplemente ejecuta la clase `Interfaz` y sigue las instrucciones en la interfaz gráfica. Puedes agregar nombres, mostrar nombres, buscar nombres binariamente y ver los resultados en la área de texto.

Want to kickstart your project?Use the new AI Studio to create your code