Foros del Web » Programación para mayores de 30 ;) » Java »

Programa en java casi terminado, pero tengo un problema

Estas en el tema de Programa en java casi terminado, pero tengo un problema en el foro de Java en Foros del Web. Hola. Estoy estudiando un Grado Superior, y me gustaria que me ayudasen con un programa que tengo que entregar este viernes. Lo tengo casi todo ...
  #1 (permalink)  
Antiguo 06/06/2012, 18:49
 
Fecha de Ingreso: abril-2011
Ubicación: En el mundo
Mensajes: 18
Antigüedad: 13 años, 1 mes
Puntos: 1
Programa en java casi terminado, pero tengo un problema

Hola. Estoy estudiando un Grado Superior, y me gustaria que me ayudasen con un programa que tengo que entregar este viernes.

Lo tengo casi todo completo, pero hay una cosa que me falla, y no consigo hacerla funcionar.

Uno de los problemas, es que solo puedo insertar un código de cliente con la carga, mientras que podría insertar varios código de cliente igual con diferentes fechas.
El otro, es en el public static void pl_cl, puesto que me tendria que mostrar la carga que sera mas tarde del codigo del cliente insertado, y tampoco se como hacerlo.

Si me pueden ayudar, os lo agradecere mucho, puesto que me va aqui todo el curso.
Gracias



El codigo es:


Código:
package cronus; 
import java.util.Scanner; 
import java.io.*; 

public class Cronus { 



//Introduce un nuevo registro en el cronus, con una tabulacion de separacion 
public static void add_Carga(){ 
String hora, dmes, mes, dia_semana, cliente, cadena; 
Scanner datos = new Scanner(System.in); 
int i=0; 

try{ 
System.out.println("Introduce el codigo para identificar a el cliente:"); 
cliente=datos.next(); 
System.out.println("Introduce la hora de carga (entre las 0 y las 23): "); 
hora=datos.next(); 
System.out.println("Introduce el dia del mes cuando se producira la carga(1-31): "); 
dmes=datos.next(); 
System.out.println("Introduce el numero de mes (ej. para el mes de enero 01):"); 
mes=datos.next(); 
System.out.println("Introduce los dias de la semana (1-6, el 1 es lunes y 6 sabado):"); 
dia_semana=datos.next(); 
cadena=cliente+";"+hora+";"+dmes+";"+mes+";"+dia_semana; 
String array[]=cadena.split(";"); 

if(existe(cliente)==false){ 
File f=new File("cronus.txt"); 
FileWriter w = new FileWriter(f,true); 
BufferedWriter bw = new BufferedWriter(w); 
PrintWriter wr = new PrintWriter(bw); 

wr.println(array[0]+ "\t"+array[1]+"\t"+array[2]+"\t"+array[3]+"\t"+array[4]+"\t"); 
wr.close(); 
bw.close(); 
System.out.println("El cliente con codigo: " + array[0]+ ", cargara a las "+array[1]+" horas el dia "+array[2]+" del mes "+array[3]+" que es "+array[4]+". (*Recuerda, 1 es lunes y 6 es sabado)"); 

System.out.println("Se ha registrado la carga con los datos introducidos \n\n"); 
}else{ 
System.out.println("ATENCION! SE HA PRODUCIDO UN ERROR, YA HAY UN CLIENTE CON ESTE "); 
} 


}catch(Exception e){} 

} 
//Modifica una entrada a partir del codigo del cliente introducido 
public static void modificar(String cd_cliente) 
{ 

try{ 
boolean chivato=false; 
FileReader fr=new FileReader("cronus.txt"); 
BufferedReader reader = new BufferedReader(fr); 

String array[]; 
String linea=reader.readLine(); 
String total=""; 
String hora, dmes, mes, dia_semana, cadena; 
Scanner datos = new Scanner(System.in); 
while(linea!=null){ 
array=linea.split("\t"); 
if (array[0].equals(cd_cliente)) 
{ 
chivato=true; 
System.out.println("Introduce la hora de carga (entre las 0 y las 23): "); 
hora=datos.next(); 
System.out.println("Introduce el dia del mes cuando se producira la carga(1-31): "); 
dmes=datos.next(); 
System.out.println("Introduce el numero de mes (ej. para el mes de enero 01):"); 
mes=datos.next(); 
System.out.println("Introduce los dias de la semana (1-6, el 1 es lunes y 6 sabado):"); 
dia_semana=datos.next(); 
cadena=cd_cliente+";"+hora+";"+dmes+";"+mes+";"+dia_semana; 
String mod_entrada[]=cadena.split(";"); 
total=total+ mod_entrada[0]+"\t"+mod_entrada[1]+"\t"+mod_entrada[2]+"\t"+mod_entrada[3]+"\t"+mod_entrada[4]+ System.getProperty("line.separator"); 
linea=reader.readLine(); 

}else if (array[0].equals(cd_cliente)==false){ 
total=total+linea+ System.getProperty("line.separator"); 
linea=reader.readLine(); 
} 
} 
if(chivato==false) 
{ 
System.out.println("El codigo del cliente que has insertado, no existe actualmente en nuestra Base de Datos"); 
}else{ 
reader.close(); 
File f=new File("cronus.txt"); 
FileWriter w = new FileWriter(f,false); 
BufferedWriter bw = new BufferedWriter(w); 
PrintWriter wr = new PrintWriter(bw); 
wr.write(total); 
wr.close(); 
bw.close(); 
System.out.println(total); 
} 
}catch(Exception e){} 
} 
//Comprueba si existe un cliente en el archivo cronus con el mismo Id 
public static boolean existe(String cd_cliente) 
{ 
boolean estado=false; 
try{ 

String array[]; 
FileReader fr=new FileReader("cronus.txt"); 
BufferedReader reader = new BufferedReader(fr); 
String linea=reader.readLine(); 

while(linea!=null) 
{ 
array=linea.split("\t"); 
if (array[0].equals(cd_cliente)) 
{ 
reader.close(); 
return true; 
}else{ 
linea=reader.readLine(); 
} 
} 

reader.close(); 
}catch(Exception e){} 

return false; 
} 

//Borrara un registro a partir de un codigo de cliente introducido 
public static void delete(String cd_cliente) 
{ 
try{ 
boolean chivato=false; 
String array[]; 
String total=""; 
FileReader fr=new FileReader("cronus.txt"); 
BufferedReader reader = new BufferedReader(fr); 
String linea=reader.readLine(); 

while(linea!=null) 
{ 
array=linea.split("\t"); 
if (array[0].equals(cd_cliente)){ 
chivato=true; 
linea=reader.readLine(); 
}else{ 
total=total+linea+"\n"; 
linea=reader.readLine(); 
} 
} 

if(chivato=false){ 
System.out.println("No existen registros para este codigo de cliente"); 
}else{ 
reader.close(); 
File f=new File("cronus.txt"); 
FileWriter w = new FileWriter(f,false); 
BufferedWriter bw = new BufferedWriter(w); 
PrintWriter wr = new PrintWriter(bw); 
wr.write(total); 
wr.close(); 
bw.close(); 
System.out.println("Se ha eliminado el cliente satisfactoriamente"); 
} 
}catch(Exception e){} 
} 

//Muestra las cargas de un cliente 
public static void pl_cl(String cd_cliente) 
{ 
try{ 
int i=0; 
String array[]; 
FileReader fr=new FileReader("cronus.txt"); 
BufferedReader reader = new BufferedReader(fr); 
String linea=reader.readLine(); 

while(linea!=null){ 
array=linea.split("\t"); 
if (array[0].equals(cd_cliente)){ 
for(i=0;i<array.length;i++){ 
switch(i){ 
case 0: 
System.out.println("Planificación del cliente seleccionado (" + array[i] + ")"); 
break; 
case 1: 
System.out.println("Cargara a las: " + array[i] + " horas" ); 
break; 
case 2: 
System.out.println("El día: " + array[i]); 
break; 
case 3: 
System.out.println("Del mes: " + array[i]); 
break; 
case 4: 
System.out.println("Dia de la setmana (1 equivale a lunes, 2 a martes, ...): " + array[i]); 
break; 
default: 
System.out.println("Error"); 
break; 
} 
} 
linea=reader.readLine(); 
}else{ 
linea=reader.readLine(); 
} 
} 
reader.close(); 
}catch(Exception e){} 
} 


//Cuando sera la proxima carga de el cliente 

public static void nueva_carga_cliente(String cd_cliente){ 
try{ 
int i=0; 
String array[]; 
FileReader fr=new FileReader("cronus.txt"); 
BufferedReader reader = new BufferedReader(fr); 
String linea=reader.readLine(); 

while(linea!=null){ 
array=linea.split("\t"); 
if (array[0].equals(cd_cliente)){ 
for(i=0;i<array.length;i++){ 
switch(i){ 
case 0: 
System.out.println("Planificación del cliente seleccionado (" + array[i] + ")"); 
break; 
case 1: 
System.out.println("Cargara a las: " + array[i] + " horas" ); 
break; 
case 2: 
System.out.println("El día: " + array[i]); 
break; 
case 3: 
System.out.println("Del mes: " + array[i]); 
break; 
case 4: 
System.out.println("Dia de la setmana (1 equivale a lunes, 2 a martes, ...): " + array[i]); 
break; 
default: 
System.out.println("Error"); 
break; 
} 
} 
linea=reader.readLine(); 
}else{ 
linea=reader.readLine(); 
} 
} 
reader.close(); 
}catch(Exception e){} 
} 

//Este es el codigo del menu 
public static void main(String[] args) { 

Scanner entrada=new Scanner(System.in); 
String seleccion; 
String seleccion2; 
int a=1; 
do{ 
System.out.println("Escoge la opción que quieras realizar: "); 
System.out.println(" 1) Añadir, modificar o borrar registros"); 
System.out.println(" 2) Consultar registros"); 
System.out.println(" 3) Salir del programa"); 
seleccion=entrada.next(); 

if (seleccion.equals("1")){ 
System.out.println("Escoge la opción que quieras realizar: "); 
System.out.println(" 1) Añadir un nuevo registro"); 
System.out.println(" 2) Modificar un registro ya existente"); 
System.out.println(" 3) Borrar un registro ya existente"); 
seleccion=entrada.next(); 
if(seleccion.equals("1")) 
add_Carga(); 
else if (seleccion.equals("2")){ 
System.out.println("Introduce el codigo del cliente a modificar:"); 
seleccion=entrada.next(); 
modificar(seleccion); 
}else if(seleccion.equals("3")){ 
System.out.println("Introduce el codigo del cliente a borrar:"); 
seleccion=entrada.next(); 
delete(seleccion); 
} 

}else if(seleccion.equals("2")){ 
System.out.println("Escoge la opción que quieras realizar: "); 
System.out.println(" 1)Proxima hora de carga para el cliente"); 
System.out.println(" 2)Mostrar plan de carga para el dia..."); 
System.out.println(" 3)Mostrar plan de carga del cliente..."); 
seleccion=entrada.next(); 
if (seleccion.equals("1")){ 
System.out.println("Introduce el codigo del cliente "); 
seleccion=entrada.next(); 
nueva_carga_cliente(seleccion); 
}else if (seleccion.equals("2")){ 
System.out.println("Todavia hay que mejorar esta función"); 
}else if (seleccion.equals("3")){ 
System.out.println("Introduece el codigo de el cliente: "); 
seleccion=entrada.next(); 
pl_cl(seleccion); 
} 

}else if(seleccion.equals("3")){ 
a++; 
}else{ 
System.out.println("ENTRADA INCORRECTA."); 
} 
}while(a==1); 
} 
}
  #2 (permalink)  
Antiguo 07/06/2012, 01:12
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Programa en java casi terminado, pero tengo un problema

En el método existe deberías leer también la fecha y compararla con la de registros anteriores. Si coinciden el cd_cliente y la fecha entonces devolvería true.

Sobre el otro problema no entiendo bien que va a contener el cronus.txt, ni cuantas lineas quieres leer.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 07/06/2012, 03:16
 
Fecha de Ingreso: abril-2011
Ubicación: En el mundo
Mensajes: 18
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Programa en java casi terminado, pero tengo un problema

Hola Fuzzylog, gracias por la respuesta.
Respecto al metodo, no se como leer la fecha y compararla con registros anteriores

el archivo cronus contiene
id_cliente [TAB] hora [TAB] dia_mes [TAB] mes [TAB] dia_semana


A veer si me puedes ayudar

Gracias por adelantado
  #4 (permalink)  
Antiguo 07/06/2012, 05:56
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Programa en java casi terminado, pero tengo un problema

Pues comparando uno a uno los elementos de la fecha con equals te valdría, se supone.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: programa, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:33.