0 votos
por (20 puntos) en Java
Saludos a tod@s.

Es mi primer post en estos lados, espero ser bien recibida.

Aqui va, pues estudio actualmente el 4o semestre de ing. en computacion, y como trabajo final de taller de archivos me han dejado este programucho:

package lista2;
import java.io.*;
import java.util.*;
/**
*
* @author Lyrthaave
*/
public class NewMain1 {
// BufferedReader teclado= new BufferedReader(new InputStreamReader (System.in));

public class nodo {

private int dato;
private nodo posicion;

public nodo(int uno){
dato = uno;
posicion = null;
}
public nodo(int dos, nodo sig){
dato=dos;
sig=null;
}}

public class operacionesnodo{
nodo primero = null;

public void elementos(){
primero = null;
}

public void crearlista(){
BufferedReader teclado= new BufferedReader(new InputStreamReader (System.in));
if (primero == null){
System.out.println("Dame el dato: ");
try{
String ingresa = teclado.readLine();
}catch(IOException e)
{ System.err.println("Error");
System.exit(1);
}
}
}

public void buscar(){
BufferedReader teclado= new BufferedReader(new InputStreamReader (System.in));
nodo aux = primero;
boolean compara = false;
if (aux == null){
System.out.println("No hay dato");
}
else{System.out.println("ingresa el valor a buscar: ");
try{
String ingresa2 = teclado.readLine();
}catch(IOException e)
{ System.err.println("Error");
System.exit(1);
}}
}

public void eliminar(){

}
}

public static void main(String[] args) {
BufferedReader teclado= new BufferedReader(new InputStreamReader (System.in));
NewMain1 lista = new NewMain1();
String res;
String dato;
int ops = 0;

do
{
System.out.println("");
System.out.println("Bienvenido a la Lista");
System.out.println("MENU:");
System.out.println("1.- Crear Lista");
System.out.println("2- Agregar Dato");
System.out.println("3- Buscar Dato");
System.out.println("4- Eliminar Dato");
System.out.println("5- Salir");
System.out.println("¿Que cambio desea hacer?");
try{
ops = Integer.parseInt(teclado.readLine());
}catch(IOException e)
{
System.err.println("Error");
System.exit(1);
}
System.out.println("");

switch (ops)
{
case 1: res = dato.crearlista();
case 2: res = dato.eliminar(); break;
case 3: res = dato.buscar(); break;
case 4: System.exit(1);}

System.out.println("Dame un dato");

try{ dato = teclado.readLine();
}catch(IOException e)
{
System.err.println("Error");
System.exit(1);
}
System.out.println("");
}
while (ops<=4); // TODO code application logic here
}
}

&nbsp;

El problema es que, a la hora de mandar llamar los metodos dentro del switch, "curiosamente" no los detecta... Me ha dicho el Prof. que estoy omitiendo "algo" lo cual no puedo intuir... Espero y me ayuden, gracias.

2 Respuestas

0 votos
por (5.4k puntos)
@lyrthaave,
Yo he visto varios errores.
<ul>
    <li>Intentas crear los métodos de la lista sobre un String, cuando tienes que hacerlo sobre un tipo de dato operacionesnodo.</li>
    <li>Los métodos crearlista, buscar, eliminar,... no devuelven nada y tu intentas asignar un retorno a una variable.</li>
    <li>Lees un dato de consola dato que no utilizas por ningún lado...
</li>
</ul>

Espero que esto pueda irte ayudando.

Saludos.

por (560 puntos)
Hola que tal, efectivamente como dice victor hay varios puntos de mejora en tu codigo, pero en especial el error que comentas
me imagino que esta en el switch que realiza la validacion de la decicion del usuario, de ser asi la observacion que te haria
es que tu variable dato como lo comento victor es de tipo String cuando tu necesitas una variable de tipo operacionesnodo

switch (ops)
{
case 1: res = dato.crearlista();
case 2: res = dato.eliminar(); break;
case 3: res = dato.buscar(); break;
case 4: System.exit(1);
}

Lo que te aconsejaria antes de utilizar tu variable dato es que cambies tu declaracion por ejemplo ese error lo solucionaria
de la siguiente manera

operacionesnodo dato=new operacionesnodo();

switch (ops)
{
case 1: res = dato.crearlista();
case 2: res = dato.eliminar(); break;
case 3: res = dato.buscar(); break;
case 4: System.exit(1);
}


con esto ya podras usar tus metodos, toma en cuenta que hay que cambiar String por operacionesnodo en tu variable, de ahii en fuera espero
tomes las recomendaciones o comentarios de victor
Espero te sirva mi info saludos..
0 votos
por (120 puntos)
lo que estas omitiendo es ponerle "static" a tus métodos, el main es estático por lo tanto no puede ver los métodos fuera de él y que no sean estáticos también.

Preguntas relacionadas

0 votos
1 respuesta
preguntado por Bafina (20 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
0 votos
1 respuesta
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...