Java - Actualizar variables.

 
Vista:

Actualizar variables.

Publicado por Alvaro (14 intervenciones) el 29/09/2012 23:34:29
Hola, Buenas Tardes:
- comencé a programar en Java hace 2 meses, e hice un simulador de tienda que vende por puntos,
el problema es que cuando hago una "compra" me quita los puntos (naturalmente) y cuando reinicio la tienda vuelvo a tener la cantidad de puntos que tenia antes de comprar. Existe alguna manera para que se "actualice" la variable?.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Actualizar variables.

Publicado por Jose Manuel (22 intervenciones) el 02/10/2012 12:40:53
Hola Alvaro:

Si la tienda es una aplicación de escritorio Java, creo que la opción más fácil es que crees un fichero donde guardar los puntos que tengas en cada momento. Si es una aplicación web, tal vez sea suficiente con una variable de sesión, sino, igualmente puedes optar por un fichero que guarde los puntos.

Espero que te sirva, saludos y suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Alvaro (14 intervenciones) el 02/10/2012 22:24:22
No, aun no he aprendido a hacerlo con interfaz, es una linea de comando, y si me podrias explicar como hacerlo te lo agradeceria.


Muchisimas gracias.

Alvaro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Jose Manuel (1 intervención) el 03/10/2012 08:52:39
Hola de nuevo Alvaro:

Bueno, para trabajar con ficheros en Java hay cantidad de información en Internet. Te paso esta dirección que pienso puede ayudarte:
http://chuwiki.chuidiang.org/index.php?title=Lectura_y_Escritura_de_Ficheros_en_Java

Sobre lo de echarte una mano no hay problema, claro, pero sin saber qué código tienes ahora mismo es difícil.

La idea es modificar el fichero (uno de texto cualquiera) cada vez que los puntos cambien. Se borra el valor que había en el fichero y se pone el nuevo. Para presentar los puntos que se tienen en ese momento, se lee el contenido del fichero. Eso sí, como el contenido del fichero probablemente será texto, habrá que hacer una conversión de cadena a numérico.

En cualquier caso Álvaro, creo que el primer paso sería aprender a manejar ficheros de texto desde Java y como digo, la dirección que te doy más arriba puede ayudarte. Si no, tan fácil como poner java ficheros texto en Google y estarás saturado de información al respecto.

Saludos y ya me dirás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Alvaro (14 intervenciones) el 03/10/2012 22:36:28
Muchisimas gracias por tu ayuda eres muy util, pero lo que yo quiero saber es como se pueden actualizar solas, con algun fichero en algun formato especifico.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Alvaro (14 intervenciones) el 03/10/2012 22:38:55
P.D.: Me olvidé, toma el codigo, lo hice para mi hermano pequeño, por eso es lo de los videojuegos:


import java.util.Scanner;
public class Tienda{

/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
int videojuegos;
int juguetes;
int LegoBatman;
int Legos;
int decisionc;
int decisionv;
int decisionj;
int decisionseg;
int puntos;
int numvideoj;
int numjuguet;
numvideoj = 1;
numjuguet = 0;
puntos = 100;
LegoBatman = 100;
Legos = 50;
System.out.printf("Bienvenido a Alvaro's\nla nueva tienda On-line ,¿qué desea comprar?\n1. Videojuegos. - %d articulo/s \n2. Juguetes.- %d articlo/s", numvideoj, numjuguet);
decisionc = input.nextInt();
if (decisionc == 1){
System.out.printf("Buena elección, por favor, ecoja un videojuego:\n1. Lego Batman 2: DC Superheroes = %d \n No hay más videojuegos por ahora.", LegoBatman);
decisionv = input.nextInt();
if (decisionv == 1){
System.out.print("¿Está seguro de que quiere comprarlo?\n1. Si\n2. No");
decisionseg = input.nextInt();
if (decisionseg == 1){
System.out.printf("\nRetirando %d puntos…", LegoBatman);
puntos = puntos - LegoBatman;
System.out.printf("\nTiene %d puntos en su cuenta.\n Muchas gracias por usar nuestro servicio.", puntos);

}
else{
System.out.printf("Muchas gracias por usar nuestro servicio.", puntos);
}

if (decisionc == 2){
System.out.println("Lo sentimos, aún no hay juguetes.");


}
}
}
}


}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Jose Manuel (22 intervenciones) el 04/10/2012 12:24:54
Álvaro, no me queda muy claro lo de actualizarse sola. Los puntos de la tienda se actualizarán respondiendo a algún evento como el inicio de la tienda, una compra, etc. El ejemplo que te paso a continuación es con un fichero de texto, que de acuerdo a tu código sería suficiente. Claro está que puedes utilizar otro tipo de ficheros o mejor incluso, bases de datos, pero eso es algo bastante más avanzado. Bueno, te paso el código igualmente y espero que te sea de utilidad:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.IOException;
 
import java.util.Scanner;
 
public class Tienda {
   static BufferedReader fichero = null;
   static FileWriter salidasFichero = null;
   static PrintWriter salidaTmp = null;
 
   static int puntos = 0;
 
   public static void inicializarPuntos () {
      try {
         String strLeido;
 
         fichero = new BufferedReader ( new FileReader ( "puntos.txt" ) );
 
         while ( ( strLeido = fichero.readLine () ) != null ) {
             puntos = Integer.parseInt ( strLeido );
         }
 
         fichero.close ();
 
         System.out.println("=======\n\nPuntos iniciales: " + puntos + "\n\n=======");
      } catch ( IOException e) {
         System.out.println ( e.getMessage () );
      }
   }
 
   public static void modificarPuntos ( int puntosTmp ) {
      try {
         salidasFichero = new FileWriter ( "puntos.txt" );
         salidaTmp = new PrintWriter ( salidasFichero );
 
         salidaTmp.print ("");
         salidaTmp.print ( puntosTmp );
 
         salidaTmp.close ();
 
         inicializarPuntos ();
      } catch ( IOException e ) {
         System.out.println ( e.getMessage () );
      }
   }
 
   public static void main( String[] args ) {
      Scanner input = new Scanner ( System.in );
 
      int videojuegos;
      int juguetes;
      int LegoBatman;
      int Legos;
      int decisionc;
      int decisionv;
      int decisionj;
      int decisionseg;
      int numvideoj;
      int numjuguet;
      numvideoj = 1;
      numjuguet = 0;
 
      inicializarPuntos ();
 
      LegoBatman = 100;
      Legos = 50;
      System.out.printf("Bienvenido a Alvaro's\nla nueva tienda On-line ,¿qué desea comprar?\n1.
         Videojuegos. - %d articulo/s \n2. Juguetes.- %d articlo/s", numvideoj, numjuguet);
      decisionc = input.nextInt();
 
      if (decisionc == 1){
         System.out.printf("Buena elección, por favor, ecoja un videojuego:\n1. Lego Batman 2: DC
            Superheroes = %d \n No hay más videojuegos por ahora.", LegoBatman);
         decisionv = input.nextInt();
 
         if (decisionv == 1){
            System.out.print("¿Está seguro de que quiere comprarlo?\n1. Si\n2. No");
            decisionseg = input.nextInt();
 
            if (decisionseg == 1){
               System.out.printf("\nRetirando %d puntos…", LegoBatman);
               puntos = puntos - LegoBatman;
               modificarPuntos ( puntos );
               System.out.printf("\nTiene %d puntos en su cuenta.\n Muchas gracias por usar nuestro
                  servicio.", puntos);
            } else{
               System.out.printf("Muchas gracias por usar nuestro servicio.");
            }
 
            if (decisionc == 2){
               System.out.println("Lo sentimos, aún no hay juguetes.");
            }
         }
      }
   }
}


El fichero de texto es uno normal y cualquiera (puntos.txt) que contiene el número de puntos (Ej.:900). Nada más.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Actualizar variables.

Publicado por Alvaro (14 intervenciones) el 05/10/2012 00:25:34
Era eso, te debo la vida!!!
Me podrias explicar como lo has hecho?

Muchisisisisisisisimas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar