re: muxos errores
hola a todos!!!!
he transcrito un ejercicio de un libro y al compilarlo me da unos cuantos errores.Os pongo el codigo del programa y espero que podais ayudarme.
import java.io.*;
import java.lang.String.*;
public class Test
{
public static int menu()
{
System.out.println("nn");
System.out.println("1. Buscar");
System.out.println("2. Buscar siguiente");
System.out.println("3 Añadir");
System.out.println("4 Eliminar");
System.out.println("5 Salir");
System.out.println();
System.out.println(" Opcion");
int op;
do
op=Leer.datoInt();
while(op<1 || op>5);
return op;
}
public class CPersona
{
private String nombre;
private String direccion;
private String telefono;
public CPersona(){}
public CPersona(String nom,String dir,String tel)
{
nombre=nom;
direccion=dir;
telefono=tel;
}
public void asignarNombre(String nom)
{
nombre=nom;
}
public String obtenerNombre()
{
return nombre;
}
public void asignarDireccion(String dir)
{
direccion=dir;
}
public String obtenerDireccion()
{
return direccion;
}
public void asignarTelefono(String tel)
{
telefono=tel;
}
public String obtenerTelefono()
{
return telefono;
}
}
public class CListaTfnos
{
private CPersona[] listaTelefonos;
private int nElementos;
private void unElementoMas(CPersona[] listaActual)
{
nElementos=listaActual.length;
listaTelefonos=new CPersona[nElementos+1];
for(int i=0;i<nElementos;i++)
listaTelefonos[i]=listaActual[i];
nElementos++;
}
private void unElementoMenos(CPersona[] listaActual)
{
if(listaActual.length==0) return;
int k=0;
nElementos=listaActual.length;
listaTelefonos=new CPersona[nElementos-1];
for(int i=0;i<nElementos;i++)
if(listaActual[i]!=null)
listaTelefonos[k++]=listaActual[i];
nElementos--;
}
public int buscar(String str,int pos)
{
String nom;
if(str==null) return-1;
if(pos<0) pos=0;
for(int i=pos;i<nElementos;i++)
{
nom=listaTelefonos[i].obtenerNombre();
if(nom==null) continue;
if(nom.indexOf(str)>-1)
return 1;
}
return-1;
}
public CPersona valorEn(int i)
{
if(i>=0 && i<nElementos)
return listaTelefonos[i];
else
{
System.out.println("Indice fuera de limites");
return null;
}
}
public int longitud() {return nElementos;}
public boolean eliminar(long tel)
{
for( int i=0;i<nElementos;i++)
if(listaTelefonos[i].obtenerTelefono==tel)
{
listaTelefonos[i]=null;
unElementoMenos(listaTelefonos);
return true;
}
return false;
}
public void añadir(CPersona obj)
{
unElementoMas(listaTelefonos);
ponerValorEn(nElementos-1,obj);
}
public CListaTfnos()
{
nElementos=0;
listaTelefonos=new CPersona[nElementos];
}
public void ponerValorEn(int i,CPersona objeto)
{
if(i>=0&&i<nElementos)
listaTelefonos[i]=objeto;
else
System.out.println("Indice fuera de limites");
}
}
public static void main(String [] args)
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE=new BufferedReader(isr);
PrintStream flujoS=System.out;
CListaTfnos listatfnos=new CListaTfnos();
int opcion=0,pos=-1;
String cadenabuscar=null;
String nombredirecccion;
String telefono;
boolean eliminado=false;
do
{
try
{
opcion=menu();
switch(opcion)
{
case 1:
flujoS.print("conjunto de caracteres a buscar");
cadenabuscar=flujoE.readLine();
pos=listatfnos.buscar(cadenabuscar,0);
if(pos==-1)
if(listatfnos.longitud()!=0)
flujoS.println("busqueda fallida");
else
flujoS.println("lista vacia");
else
{
flujoS.println(listatfnos.valorEn(pos).obtenerNombre());
flujoS.println(listatfnos.valorEn(pos).obtenerDireccion());
flujoS.println(listatfnos.valorEn(pos).obtenerTelefono());
}
break;
case 2:
pos=listatfnos.buscar(cadenabuscar,pos+1);
if(pos==-1)
if(listatfnos.longitud()!=0)
flujoS.println("Busqueda fallida");
else
flujoS.println("lista vacia");
else
{
flujoS.println(listatfnos.valorEn(pos).obtenerNombre());
flujoS.println(listatfnos.valorEn(pos).obtenerDireccion());
flujoS.println(listatfnos.valorEn(pos).obtenerTelefono());
}
break;
case 3:
flujoS.println("nombre: ");
nombre=flujoE.readLine();
flujoS.println("direccion: ");
direccion=flujoE.readLine();
flujoS.println("telefono: ");
telefono=Leer.datoString();
listatfnos.añadir(new CPersona(nombre,direccion,telefono));
break;
case 4:
flujoS.println("telefono: ");
telefono=Leer.datoString();
eliminado=listatfnos.eliminar(telefono);
if(eliminado)
flujoS.println("registro eliminado");
else if(listatfnos.longitud()!=0)
flujoS.println("telefono no encontrado");
else flujoS.println("lista vacia");
break;
case 5:
listatfnos=null;
}
}
catch(IOException ignorada) {}
}
while(opcion!=5);
}
}
Muxas gracias
Atentamente
Raul (Lillo)
he transcrito un ejercicio de un libro y al compilarlo me da unos cuantos errores.Os pongo el codigo del programa y espero que podais ayudarme.
import java.io.*;
import java.lang.String.*;
public class Test
{
public static int menu()
{
System.out.println("nn");
System.out.println("1. Buscar");
System.out.println("2. Buscar siguiente");
System.out.println("3 Añadir");
System.out.println("4 Eliminar");
System.out.println("5 Salir");
System.out.println();
System.out.println(" Opcion");
int op;
do
op=Leer.datoInt();
while(op<1 || op>5);
return op;
}
public class CPersona
{
private String nombre;
private String direccion;
private String telefono;
public CPersona(){}
public CPersona(String nom,String dir,String tel)
{
nombre=nom;
direccion=dir;
telefono=tel;
}
public void asignarNombre(String nom)
{
nombre=nom;
}
public String obtenerNombre()
{
return nombre;
}
public void asignarDireccion(String dir)
{
direccion=dir;
}
public String obtenerDireccion()
{
return direccion;
}
public void asignarTelefono(String tel)
{
telefono=tel;
}
public String obtenerTelefono()
{
return telefono;
}
}
public class CListaTfnos
{
private CPersona[] listaTelefonos;
private int nElementos;
private void unElementoMas(CPersona[] listaActual)
{
nElementos=listaActual.length;
listaTelefonos=new CPersona[nElementos+1];
for(int i=0;i<nElementos;i++)
listaTelefonos[i]=listaActual[i];
nElementos++;
}
private void unElementoMenos(CPersona[] listaActual)
{
if(listaActual.length==0) return;
int k=0;
nElementos=listaActual.length;
listaTelefonos=new CPersona[nElementos-1];
for(int i=0;i<nElementos;i++)
if(listaActual[i]!=null)
listaTelefonos[k++]=listaActual[i];
nElementos--;
}
public int buscar(String str,int pos)
{
String nom;
if(str==null) return-1;
if(pos<0) pos=0;
for(int i=pos;i<nElementos;i++)
{
nom=listaTelefonos[i].obtenerNombre();
if(nom==null) continue;
if(nom.indexOf(str)>-1)
return 1;
}
return-1;
}
public CPersona valorEn(int i)
{
if(i>=0 && i<nElementos)
return listaTelefonos[i];
else
{
System.out.println("Indice fuera de limites");
return null;
}
}
public int longitud() {return nElementos;}
public boolean eliminar(long tel)
{
for( int i=0;i<nElementos;i++)
if(listaTelefonos[i].obtenerTelefono==tel)
{
listaTelefonos[i]=null;
unElementoMenos(listaTelefonos);
return true;
}
return false;
}
public void añadir(CPersona obj)
{
unElementoMas(listaTelefonos);
ponerValorEn(nElementos-1,obj);
}
public CListaTfnos()
{
nElementos=0;
listaTelefonos=new CPersona[nElementos];
}
public void ponerValorEn(int i,CPersona objeto)
{
if(i>=0&&i<nElementos)
listaTelefonos[i]=objeto;
else
System.out.println("Indice fuera de limites");
}
}
public static void main(String [] args)
{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE=new BufferedReader(isr);
PrintStream flujoS=System.out;
CListaTfnos listatfnos=new CListaTfnos();
int opcion=0,pos=-1;
String cadenabuscar=null;
String nombredirecccion;
String telefono;
boolean eliminado=false;
do
{
try
{
opcion=menu();
switch(opcion)
{
case 1:
flujoS.print("conjunto de caracteres a buscar");
cadenabuscar=flujoE.readLine();
pos=listatfnos.buscar(cadenabuscar,0);
if(pos==-1)
if(listatfnos.longitud()!=0)
flujoS.println("busqueda fallida");
else
flujoS.println("lista vacia");
else
{
flujoS.println(listatfnos.valorEn(pos).obtenerNombre());
flujoS.println(listatfnos.valorEn(pos).obtenerDireccion());
flujoS.println(listatfnos.valorEn(pos).obtenerTelefono());
}
break;
case 2:
pos=listatfnos.buscar(cadenabuscar,pos+1);
if(pos==-1)
if(listatfnos.longitud()!=0)
flujoS.println("Busqueda fallida");
else
flujoS.println("lista vacia");
else
{
flujoS.println(listatfnos.valorEn(pos).obtenerNombre());
flujoS.println(listatfnos.valorEn(pos).obtenerDireccion());
flujoS.println(listatfnos.valorEn(pos).obtenerTelefono());
}
break;
case 3:
flujoS.println("nombre: ");
nombre=flujoE.readLine();
flujoS.println("direccion: ");
direccion=flujoE.readLine();
flujoS.println("telefono: ");
telefono=Leer.datoString();
listatfnos.añadir(new CPersona(nombre,direccion,telefono));
break;
case 4:
flujoS.println("telefono: ");
telefono=Leer.datoString();
eliminado=listatfnos.eliminar(telefono);
if(eliminado)
flujoS.println("registro eliminado");
else if(listatfnos.longitud()!=0)
flujoS.println("telefono no encontrado");
else flujoS.println("lista vacia");
break;
case 5:
listatfnos=null;
}
}
catch(IOException ignorada) {}
}
while(opcion!=5);
}
}
Muxas gracias
Atentamente
Raul (Lillo)