elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Obtener nombre y código - Java/Netbenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obtener nombre y código - Java/Netbenas  (Leído 557 veces)
Wilzb56

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Obtener nombre y código - Java/Netbenas
« en: 11 Octubre 2020, 08:06 am »

Muy buenas, quisiera saber si me podrían ayudar con este código. Lo que busco es obtener el nombre y código del despachador que vendió X cantidades de galones de gasolina.
Lo he intentado hacer pero no encuentro el como, adjunto la codificación por si pueden ayudarme, Muchas gracias.

Pido disculpas si el código es demasiado extenso para ustedes lo hago por si acaso omito algo y lo necesitan para poder ayudarme, es primera vez que recurro a algún foro y no se como van estos.

Código
  1. [  public static void main(String[] args) {
  2.        String tipo;
  3.        double valor;
  4.        Gasolina gasolina = new Gasolina();
  5.        int contador = 0, contador2 = 0, op;
  6.        do {
  7.            tipo = JOptionPane.showInputDialog(null, "Digite el tipo de gasolina");
  8.            valor = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite el valor por galon"));
  9.            gasolina = new Gasolina(tipo, valor);
  10.            gasolina.Guardar(gasolina);
  11.            contador++;
  12.        } while (contador < 2);
  13.        do {
  14.            op = Integer.parseInt(JOptionPane.showInputDialog(null, "1<----- Registrar Despachador"
  15.                    + "\n2<----- Consultar Despachador"
  16.                    + "\n3<----- Consutar Gasolina"
  17.                    + "\n4<----- Vender"
  18.                    + "\n5<---- Salir"));
  19.            switch (op) {
  20.                case 1:
  21.                    GuardarEmpleado();
  22.                    contador2++;
  23.                    break;
  24.                case 2:
  25.                    ConsultarEmpleado();
  26.                    break;
  27.                case 3:
  28.                    ConsultarGasolina();
  29.                    break;
  30.                case 4:
  31.                    if (contador2 == 0) {
  32.                        JOptionPane.showMessageDialog(null, "No hay ningún despachador registrado");
  33.                    } else {
  34.                        Vender();
  35.                    }
  36.                    break;
  37.            }
  38.        } while (op != 5);
  39.        Consulta();
  40.    }
  41.    private static void GuardarEmpleado() {
  42.        Despachador despachador;
  43.        String codigo, nombre;
  44.        int seguir;
  45.        do {
  46.            codigo = JOptionPane.showInputDialog(null, "Digite el codigo del despachador");
  47.            nombre = (JOptionPane.showInputDialog(null, "Digite el nombre del despachador"));
  48.            despachador = new Despachador(codigo, nombre);
  49.            despachador.Guardar(despachador);
  50.            seguir = Integer.parseInt(JOptionPane.showInputDialog(null, "1<---- Registrar otro despachador\n2<----- Dejar de registrar"));
  51.  
  52.        } while (seguir != 2);
  53.    }
  54.    private static void ConsultarEmpleado() {
  55.        Despachador despachador = new Despachador();
  56.        if (despachador.Consultar() != null) {
  57.            for (Despachador item : despachador.Consultar()) {
  58.                JOptionPane.showMessageDialog(null, "Codigo: " + item.getCodigo() + "\nNombre: " + item.getNombre());
  59.            }
  60.        } else {
  61.            JOptionPane.showMessageDialog(null, "No hay ningún despachador registrados");
  62.        }
  63.    }
  64.    private static void ConsultarGasolina() {
  65.        Gasolina gasolina = new Gasolina();
  66.  
  67.        for (Gasolina item : gasolina.Consultar()) {
  68.            if (item != null) {
  69.                JOptionPane.showMessageDialog(null, "" + "Tipo: " + item.getTipo() + "\nValor: " + item.getValor());
  70.            } else {
  71.                JOptionPane.showMessageDialog(null, "No hay gasolina registrada");
  72.            }
  73.        }
  74.    }
  75.    private static void Vender() {
  76.        Despachador despachador = new Despachador();
  77.        String codigo, t = "";
  78.        int tipo, esta = 0;
  79.        double galones, total, precio = 0;
  80.        Gasolina gasolina = new Gasolina();
  81.        do {
  82.            codigo = JOptionPane.showInputDialog(null, "Digite el codigo del despachador");
  83.            for (Despachador item : despachador.Consultar()) {
  84.                if (item.getCodigo().equals(codigo)) {
  85.                    esta = 1;
  86.                }
  87.            }
  88.            if (esta == 0) {
  89.                JOptionPane.showMessageDialog(null, " El deespachador no se encuentra registrado ");
  90.                GuardarEmpleado();
  91.            }
  92.        } while (esta == 0);
  93.        do {
  94.            tipo = Integer.parseInt(JOptionPane.showInputDialog(null, "1<---- Extra\n2<----- Corriente\nseleccione el tipo de gasolina"));
  95.        } while (!(tipo == 1 || tipo == 2));
  96.        if (tipo == 1) {
  97.            t = "Extra";
  98.        } else if (tipo == 2) {
  99.            t = "Corriente";
  100.        }
  101.        for (Gasolina item : gasolina.Consultar()) {
  102.            if (item.getTipo().equals(t)) {
  103.                precio = item.getValor();
  104.            }
  105.        }
  106.        JOptionPane.showMessageDialog(null, "Dato del precio: " + precio, "PRECIOS",JOptionPane.INFORMATION_MESSAGE);
  107.        galones = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite la cantidad de galones"));
  108.        total = galones * precio;
  109.        Venta venta = new Venta(codigo, galones, t, total);
  110.        venta.Guardar(venta);
  111.        JOptionPane.showMessageDialog(null, " El total a pagar es: " + total);
  112.    }
  113.    private static void Consulta() {
  114.        double total = 0, galones = 0;
  115.        Venta venta = new Venta();
  116.        for (Venta item : venta.Consultar()) {
  117.            total += item.getTotal();
  118.            if ("Extra".equals(item.getTipo_gasolina())) {
  119.                galones += item.getGalones();
  120.            }
  121.        }
  122.    JOptionPane.showMessageDialog(null, "Cantidad de galones vendidos de gasolina tipo Extra " + galones + "\nTotal en dinero generado en la jornada " + total, "REGISTRO DE VENTAS", JOptionPane.INFORMATION_MESSAGE);
  123.    }
  124. }


« Última modificación: 11 Octubre 2020, 08:12 am por Wilzb56 » En línea

K-YreX


Desconectado Desconectado

Mensajes: 846



Ver Perfil
Re: Obtener nombre y código - Java/Netbenas
« Respuesta #1 en: 14 Octubre 2020, 01:35 am »

Este código está bastante revuelto. Algunas de las cosas que veo a primera vista son:
  • Instancias de objetos que no se utilizan nunca. Creas objetos usando el constructor sin parámetros para luego llamar a otro constructor con parámetros.
  • Cada vez que llamas a ciertos métodos creas nuevas instancias de algunas clases cuando parece que esas instancias ya tendrían que existir.
  • Llamas a métodos de una clase pasando como parámetro el mismo objeto que llama al método. Esto es innecesario.

Deberías reorganizar tu código antes de seguir pues cada vez será más complicado corregirlo.

Pero yendo al grano, tienes que tener un sitio donde guardes todas las ventas. Pues lo que tienes que hacer es:
Código:
PARA CADA empleado DE empleadosTotales HACER
  cantidadVendida := 0
  PARA CADA venta DE ventasTotales HACER
    SI venta.codigoEmpleado == empleado.codigo ENTONCES
      cantidadVendida += venta.cantidad
    FIN SI
  FIN PARA
  SI cantidadVendida == cantidadBuscada ENTONCES
    // Aqui haces lo que quieras con ese empleado
  FIN SI
FIN PARA

El código se puede optimizar haciendo que deje de acumular si ya nos hemos pasado de la cantidad a buscar y cosas similares pero esta es la versión más simple y más fácil de entender.
Lo anterior es pseudocódigo, es decir, los pasos que tienes que seguir para lo que quieres hacer. Ahora tienes que implementar esa idea en lenguaje Java.


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
obtener el nombre de los equipos de una red
Programación Visual Basic
MaLkAvIaN_NeT 2 5,412 Último mensaje 1 Octubre 2005, 05:43 am
por MaLkAvIaN_NeT
Obtener el nombre de PC
Programación C/C++
.:WindHack:. 1 1,250 Último mensaje 16 Mayo 2010, 21:40 pm
por Foxy Rider
como obtener el nombre y el password de la PC en código Java
Java
XpandyX 5 7,496 Último mensaje 14 Noviembre 2011, 19:49 pm
por Pablo Videla
Obtener el Nombre de la ventana
.NET (C#, VB.NET, ASP)
BrokerJoker 4 1,862 Último mensaje 30 Enero 2012, 00:41 am
por Keyen Night
Codigo en java para obtener toda la información de tu pc
Java
Danielsk8 4 2,514 Último mensaje 9 Agosto 2016, 20:25 pm
por BloodSharp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines