• Lunes 23 de Diciembre de 2024, 00:07

Autor Tema:  Dificultades Con El Codigo  (Leído 1172 veces)

luis_cartagena

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Dificultades Con El Codigo
« en: Lunes 3 de Julio de 2006, 03:16 »
0
hola a tod@s l@s programadores y programadoras de java

bueno sinceramente soy nuevo en esto y no tengo mucha experiencia pero resulta y pasa es k ando en aprietos con el codigo java k estoy realizando
pues pretendo guardar el valor de las ganancias para luego porder consultarlo y esto no lo he podido hacer
y pues la verdad ya empiezo a sentirme un poco frustrado pues no encuentro solucion
sera k alguien me puede dar una luz de como hacerle pues ya la verdad este es el ultimo recurso k me keda pedir ayuda en los foros  :huh:
en todo caso aki esta parte del codigo ojales y lo revisen y pues puedan ayudarme se los agradeceria
cualquier cosa escribeme a luis_m_paternina@hotmail.com

package Fair.Play.net;

import java.io.*;

public class Menu {

   ManagerCliente manager = new ManagerCliente();

   Clientes x = new Clientes();

   final int precio = 1000;

   int ti = 0, tf = 0, total = 0, bolsa = 0;

   int tiT = 0, tfT = 0, totalT = 0;

   private static BufferedReader dato = new BufferedReader(
         new InputStreamReader(System.in));

   public void menuprincipal() {
      int op = 0;
      do {
         System.out.println("MENU PRINCIPAL");
         System.out.println("----------------");
         System.out.println("1. CLIENTES ");
         System.out.println("2. INTERNET ");
         System.out.println("3. JUEGOS ");
         System.out.println("4. CAJA ");
         System.out.println("5. SALIR ");
         System.out.println("----------------");
         op = Leer.entero("");
      } while ((op < 1) || (op > 5));
      switch (op) {
      case 1:
         this.menuclientes();
         break;

      case 2:
         this.menuinternet();
         break;
      case 3:
         this.menujuegos();
         break;
      case 4:
         this.menuganancias();
         break;
      case 5:
         System.exit(0);
      }
   }

   public void menuclientes() {
      int op = 0;
      do {

         System.out.println("CLIENTES");
         System.out.println("--------------------");
         System.out.println("1.crear clientes");
         System.out.println("2.buscar clientes");
         System.out.println("3.consultar lista");
         System.out.println("4.menu principal");
         System.out.println("---------------------");
         op = Leer.entero("");

      } while ((op < 1) || (op > 4));
      switch (op) {
      case 1:

         System.out.println("digite nombre");
         String nom = Leer.cadena("");
         System.out.println("digite cedula");
         int ced = Leer.entero("");

         Clientes cli = new Clientes();
         cli.setNombre(nom);
         cli.setCedula(ced);
         manager.crearCliente(cli);

         this.menuclientes();
         break;

      case 2: {

         if (manager.capturar()) {
         do {
         System.out.println("digite la cedula a buscar");
               ced = Leer.entero("");
            } while (ced < 0);

            x = manager.buscar(ced);

            if (x == null)
            System.out.println("no se encuentra el cliente");
            else

            System.out.println(x.getNombre());
         }

         else
         System.out.println("no existen registros");
         this.menuclientes();

      }

      break;

      case 3:
         manager.print();

         this.menuclientes();
         break;

      case 4:
         this.menuprincipal();
         break;
      default:
         System.out.println("opcion no valida");

      }
   }

   public void menuinternet() {

      int op = 0;
      do {

         System.out.println("INTERNET");
         System.out.println("--------------------");
         System.out.println("1.computador 1");
         System.out.println("2.computador 2");
         System.out.println("3.computador 3");
         System.out.println("4.menu principal");
         System.out.println("---------------------");
         op = Leer.entero("");

      } while ((op < 1) || (op > 4));
      switch (op) {
      case 1: {

         try {

         System.out.println("digite tiempo de inicio");
            ti = Leer.entero("");
            if (ti >= 0) {
         System.out.println("digite tiempo final");
               tf = Leer.entero("");
               if (tf >= 0) {

               if (tf >= ti) {
               total = (tf - ti) * precio;
                     System.out.println("el valor a cancelar es "+ total);
            }

                    else {
                     System.out.println("tiempo de inicio debe ser mayor o igual a tiempo final");
                     menuinternet();
      }
      } else {
                  System.out.println("digita un valor igual o mayor que cero");
               }
               menuinternet();
            } else {
      System.out.println("digita un valor igual o mayor que cero");
            }
            menuinternet();

            Cp1 a = new Cp1();
            a.getTiempo_inicial();
            a.getValorHora();
            a.getTiempo_final();

         } catch (Exception e) {
            System.out.println("Error, " + e);
         }

         this.menuinternet();
         break;
      }

      case 2: {

         try {
            System.out.println("digite tiempo de inicio");
            ti = Leer.entero("");
            if (ti >= 0) {
               System.out.println("digite tiempo final");
               tf = Leer.entero("");
               if (tf >= 0) {

                  if (tf >= ti) {
                     total = (tf - ti) * precio;
                     System.out.println("el valor a cancelar es "
                           + total);
                  }

                  else {
                     System.out
                           .println("tiempo de inicio debe ser mayor o igual a tiempo final");
                     menuinternet();
                  }
               } else {
                  System.out.println("digita un valor igual o mayor que cero");
               }
               menuinternet();
            } else {
               System.out.println("digita un valor igual o mayor que cero");
            }
            menuinternet();

            Cp2 b = new Cp2();
            b.getTiempo_inicial();
            b.getValorHora();
            b.getTiempo_final();

         } catch (Exception e) {
            System.out.println("Error, " + e);
         }

         this.menuinternet();
         break;
      }

      case 3: {

         try {
            System.out.println("digite tiempo de inicio");
            ti = Leer.entero("");
            if (ti >= 0) {
               System.out.println("digite tiempo final");
               tf = Leer.entero("");
               if (tf >= 0) {

                  if (tf >= ti) {
                     total = (tf - ti) * precio;
                     System.out.println("el valor a cancelar es "
                           + total);
                  }

                  else {
                     System.out
                           .println("tiempo de inicio debe ser mayor o igual a tiempo final");
                     menuinternet();
                  }
               } else {
                  System.out.println("digita un valor igual o mayor que cero");
               }
               menuinternet();
            } else {
               System.out.println("digita un valor igual o mayor que cero");
            }
            menuinternet();
            Cp3 c = new Cp3();
            c.getTiempo_inicial();
            c.getValorHora();
            c.getTiempo_final();

         } catch (Exception e) {
            System.out.println("Error, " + e);
         }

         this.menuinternet();
         break;
      }

      case 4:
         this.menuprincipal();

      default:
         System.out.println("opcion no valida");

      }

   }

   public void menuganancias(){
      
      total = bolsa;
   }

}


bueno el codigo se ve un poquito desordenado pero pueden probarlo con toda confianza e

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: Dificultades Con El Codigo
« Respuesta #1 en: Lunes 3 de Julio de 2006, 11:44 »
0
Hola!!

Se que no es lo que has preguntado, pero viendo tu codigo hay una cosa que lo hace parecer mas desordenado y mas ineficiente.

La cuestion es que cuando estas dentro de un menu (por ahora solo he sacado paciencia para ver el de clientes  -_- ) despues de cualquier opcion vuelves a llamar al mismo metodo de forma recursiva para volverlo a sacar. Esto es ineficiente por que lo que haces es ir llenando la pila de datos del mismo metodo de forma innecesaria.

La alternativa que te doy es:

public void MenuClientes(){
 int op = 0;
 do{
  // Codigo para mostrar las operaciones

  // Leer numero
  switch(op){
   case 1:
    // Codigo op 1
    break;
   case 2:
    // ...

   case 4:  // Salir del menu
    break;
   default:
    System.out.println("Operacion no valida.");
    break;
  }
  } while (op != 4);
}

De todas formas voy a seguir mirando tu codigo para ver si saco la duda que planteas. Saludos!!  :hola:
   

Nagisa

  • Miembro MUY activo
  • ***
  • Mensajes: 119
  • Nacionalidad: es
    • Ver Perfil
Re: Dificultades Con El Codigo
« Respuesta #2 en: Lunes 3 de Julio de 2006, 12:05 »
0
Uhm... He terminado de leer todo el codigo, y la duda  :alien:  que tengo es:

¿Que es total? ¿Que es bolsa? ¿Y por que no puedes guardar el valor y luego consultarlo si son variables de tu clase??

Si necesitas hacerlo desde dentro de tu clase, no hay problema; y si necesitas hacerlo desde fuera tampoco lo hay (haces un metodo llamado ConsultarBolsa() que te devuelva ese valor).

Si quieres mas ayuda tendras que ser mas concreto...

Un saludo  :hola: