Autor
|
Tema: Problemas con los array (Leído 2,174 veces)
|
Fenrir_01
Desconectado
Mensajes: 2
|
Hola gente quisiera saber si alguien puede darme un empujon con este codigo: package buscar; import javax.swing.JOptionPane; public class Buscar { public static void main (String[] args ) { boolean confirmacion = true; int i,j =0; String [] jr = new String[2];//creamos un arreglo para nombres int [] gr = new int [2];// creamos un arreglo para telefono while (confirmacion ==true){ + "1 Cargar Operarios\n" + "2 Buscar Por Nombre\n" + "3 Buscar Por Telefono\n" + "4 Salir")); if (a ==1){ JOptionPane. showMessageDialog(null, "Ingrese el telefono de "+ p ); for (i=0; i<jr.length-1;i++){ jr [i+1] =p; } for (j=0; j<gr.length-1; j++){ int telefono = Integer. parseInt(JOptionPane. showInputDialog("Ingrese el Numero de Telefono ")); gr[i+1]= telefono; } } if (a== 2){ String oper = JOptionPane. showInputDialog(null, "Ingrese el nombre del operario a Buscar"); for(i =0; i<gr.length;i++){ if (jr[i] == oper && jr[i]!= oper){ JOptionPane. showMessageDialog(null, "El telefono del operario "+oper +" es: "+jr [i ] ); } else{ } } if (a==3){ int tel =Integer. parseInt( JOptionPane. showInputDialog(null, "Ingrese el telefono del operario a Buscar")); if (tel == gr[i]){ JOptionPane. showMessageDialog(null, "El operario es "+gr [i ]); } } if (a==4){ } //como convertir un while a true o false usando JOptionPane confirm dialog.... //int operacion = (JOptionPane.showConfirmDialog(null,"Desea cargar mas operarios y telefonos", "Confirmacion", JOptionPane.YES_NO_OPTION)); // if (operacion == 0){ // confirmacion = true; //}else // if (operacion ==1 ){ // System.exit(0); } } } }
la idea es que cargues operarios con su teléfono y luego a través del menú puedas buscarlos o por nombre o por el teléfonoel código se que esta algo bien pero no se donde esta el problema. Gracias.
|
|
« Última modificación: 27 Mayo 2018, 00:13 am por Eleкtro »
|
En línea
|
|
|
|
Serapis
|
No está bien pedir que "te miren" el código.
Señala que te falla,que precisa mejora, donde te pierdes, que no te sale, que te falta y uno se ciñe justo al punto concreto...
|
|
|
En línea
|
|
|
|
RRGT19
Desconectado
Mensajes: 1
|
- Variables llamadas jr, gr, oper, etc... qué significan?. Nunca uses variables con estos nombres ya que solamente tu podrás entender a qué se refieren.
- Por qué usas un while en lugar de un do-while?. Tu menu siempre debe aparecer al menos una vez, cierto?, entonces, el do-while es la mejor opción ya que siempre va a ejecutarse al menos una vez sin importar la condición.
- Por qué usas muchos if?. Tienes un menu con opciones entonces, un switch sería más fácil para tu ejercicio y más idóneo.
- Qué pasa si quieres guardar infinitos operarios e infinitos teléfonos?. Crees que un array es la solución?. Lo idóneo es que uses ArrayList de tipo String o Integer y con el método .add() o .remove() podrás hacer cualquier cosa fácilmente sin tener que usar un for. En un ejercicio más trabajado, orientado a objetos, tendrías una clase con atributos.
- Por qué todos son if y no usas else-if? Se supone que el usuario solo podrá acceder a una opción a la vez, no hay necesidad de evaluar la opción del menú en todos los if. Lo correcto sería usar else-if.
- Debes encontrar la forma de avisarle al usuario cuando no se ha encontrado el nombre ingresado o el teléfono ingresado. Si lo haces dentro del for, mostrará el mensaje de "no encontrado" en cada iteración y puede llegar a molestar.
- Tienes muchos errores, te voy a ayudar a arreglar tu ejercicio pero, no voy a solucionarte tu duda sobre cómo tener la posibilidad de agregar infinitos nombres y teléfonos ya que te he dicho cómo arriba y tu trabajo ahora es investigar.
Código arreglado y funcionando:import javax.swing.JOptionPane; public class SO { public static void main (String[] args ) { boolean confirmacion = true; // int i, j = 0; Esto es innecesario int[] telefonos = new int[2]; while (confirmacion == true) { "\n______Agenda_____ \n" + "1 Cargar Operarios\n" + "2 Buscar Por Nombre\n" + "3 Buscar Por Telefono\n" + "4 Salir")); if (a == 1) { String nombreOperario = JOptionPane. showInputDialog(" Ingrese el nombre del Operario "); // Por qué tienes esto aquí si no hace nada? // JOptionPane.showMessageDialog(null, "Ingrese el telefono de " + // nombreOperario); // Por qué haces length-1 y luego [i+1]? No tiene sentido para mí, lo // arreglaré... // Lo guardaré en la primera posición del arreglo // Asumiremos que solo se podrá guardar 1 solo nombre por el momento, luego lo // arreglas nombres[0] = nombreOperario; // Por qué tienes la solicitud del número dentro del for?... // Se supone que es 1 solo número por operario, o no?... /* * for (j=0; j<gr.length-1; j++){ * * int telefono = * Integer.parseInt(JOptionPane.showInputDialog("Ingrese el Numero de Telefono " * )); gr[i+1]= telefono; } */ // Debería ser así: int telefono = Integer. parseInt(JOptionPane. showInputDialog("Ingrese el Numero de Telefono ")); // Lo guardaré en la primera posición del arreglo // Asumiremos que solo se podrá guardar 1 solo telefono por el momento, luego lo // arreglas telefonos[0] = telefono; } else if (a == 2) { String nombreOperario = JOptionPane. showInputDialog(null, "Ingrese el nombre del operario a Buscar"); // Si estás buscando por el nombre, por qué estás usando "telefonos"? // Debería ser con "nombres" // for (i = 0; i < telefonos.length; i++) { for (int i = 0; i < nombres.length; i++) { // La segunda no tiene sentido, por qué usas esto? // if (nombres[i] == nombreOperario && nombres[i] != nombreOperario) { // Debería ser solamente esto... // Se usa .equals cuando se quiere comparar dos String's if (nombreOperario.equals(nombres[i])) { // Por qué muestras "nombres[i]" en lugar del telefono? // JOptionPane.showMessageDialog(null, "El telefono del operario " + // nombreOperario + " es: " + nombres[i]); // Debería ser... "El telefono del operario " + nombreOperario + " es: " + telefonos[i]); } } } else if (a == 3) { . parseInt(JOptionPane. showInputDialog(null, "Ingrese el telefono del operario a Buscar")); // Aquí te falta todo, vamos a hacerlo rápido... for (int i = 0; i < telefonos.length; i++) { if (telefonos[i] == telefonoOperario) { // Por qué muestras "telefonos[i]" en lugar de nombres? // Vamos a arreglarlo... JOptionPane. showMessageDialog(null, "El operario es " + nombres [i ]); } } } else if (a == 4) { // Esto es para terminar todo el programa, no para salir del while // System.exit(0); /** * Pregunta 1: como convertir un while a true o false usando JOptionPane confirm * dialog.... * * Respuesta: Se puede hacer de muchas formas, vamos a hacerlo con 1 y 0. * Asumiendo que 1 es para SALIR y el 0 para NO SALIR y repetir el while */ . parseInt(JOptionPane. showInputDialog(null, "Seguro que desea salir? (1 = SI, 0 = NO)")); if (respuesta == 1) { // Para salir del while correctamente, tu variable "confirmacion" debe ser = // false confirmacion = false; } } } } }
He comentado todo en el código.Espero haberte ayudado.
|
|
« Última modificación: 30 Mayo 2018, 07:03 am por RRGT19 »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
problemas: array de objetos.[SOLUCIONADO]
Java
|
yovaninu
|
2
|
5,749
|
22 Mayo 2008, 10:06 am
por k0n3
|
|
|
Problemas con array (unidimencional) de caracteres [C++]
Programación C/C++
|
.:BlackCoder:.
|
5
|
4,064
|
20 Mayo 2010, 23:11 pm
por .:BlackCoder:.
|
|
|
problemas con array multidimencional
PHP
|
Zeroql
|
7
|
4,051
|
1 Julio 2011, 00:03 am
por Zeroql
|
|
|
[Resuelto] Problemas con un Array
PHP
|
DeXon18
|
2
|
1,787
|
3 Junio 2015, 20:22 pm
por DeXon18
|
|
|
MOVIDO: Problemas con los array
Programación General
|
Eleкtro
|
0
|
1,788
|
27 Mayo 2018, 00:12 am
por Eleкtro
|
|