ayuda con Ejercicio de Java

Iniciado por furkone, 5 Diciembre 2018, 19:52 PM

0 Miembros y 1 Visitante están viendo este tema.

furkone



Código (java) [Seleccionar]
package ejercicio7;


public class Libro {
   
    private String titulo;
    private String tema;
    private double precio;
    private int unidades;
    int ventas = 0;

    public Libro( String titulo , String tema ) {
        this.titulo = titulo;     
        this.tema = tema;   
    }
   
    public Libro( double precio , int unidades ){
        this.precio = precio;
        this.unidades = unidades;
    }

    public String getTitulo() {
        return this.titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getTema() {
        return this.tema;
    }

    public void setTema(String tema) {
        this.tema = tema;
    }
   
    public double getPrecio(){
        return this.precio;
    }
   
    public void setPrecio(double precio){
        this.precio = precio;
    }
   
    public double getUnidades(){
        return this.unidades;
    } 
   
    public void setUnidades(int unidades){
        this.unidades = unidades;
    }
   
    public int getVentas(){
        return this.ventas;
    }
   
    public double Vender(int pussy){
       double importe;
       importe= pussy*getPrecio();
       if(unidades>=pussy){
          unidades -= pussy;
          this.ventas += pussy;
       }
       else {
           importe = 0;
       }
         
       return importe;
       
    }
}

Código (java) [Seleccionar]

package ejercicio71;
import ejercicio7.Libro;
import javax.swing.JOptionPane;


public class Libreria {
public static Libro libro;
   
    public static void main(String [] args ){
        String resp;
        int opcion;
        int libPosicion=-1;
        Double aux;
        int cont;
        String matriz [][] = new String[9][4];
       
        matriz[0][0] = "Aprenda C Ya";
        matriz[1][0] = "Microsoft Office";
        matriz[2][0] = "Windows 10";
        matriz[3][0] = "C Avanzado";
        matriz[4][0] = "Word Basico";
        matriz[5][0] = "Windows 2015 Server";
        matriz[6][0] = "Access 2015";
        matriz[7][0] = "Diseño de Algoritmos";
        matriz[8][0] = "Excel 2015";
       
        matriz[0][1] = "Programación";
        matriz[1][1] = "Ofimática";
        matriz[2][1] = "Sistemas Operativos";
        matriz[3][1] = "Programación";
        matriz[4][1] = "Ofimática";
        matriz[5][1] = "Sistemas Operativos";
        matriz[6][1] = "Ofimática";
        matriz[7][1] = "Programación";
        matriz[8][1] = "Ofimática";
       
        matriz[0][2] = "75.12";
        matriz[1][2] = "58.6";
        matriz[2][2] = "45";
        matriz[3][2] = "90";
        matriz[4][2] = "64.6";
        matriz[5][2] = "52.3";
        matriz[6][2] = "32.45";
        matriz[7][2] = "90.15";
        matriz[8][2] = "52.58";
       
        matriz[0][3] = "5";
        matriz[1][3] = "12";
        matriz[2][3] = "8";
        matriz[3][3] = "3";
        matriz[4][3] = "10";
        matriz[5][3] = "7";
        matriz[6][3] = "5";
        matriz[7][3] = "0";
        matriz[8][3] = "4";
       
        do{
            resp = JOptionPane.showInputDialog("1.Vender Libro" + "\n2.Buscar Tema" +
                    "\n3.Salir\n" + "\n=============" + "\nOpcion [1-3]");
            opcion = (int) Double.parseDouble(resp);
           
            switch (opcion){

                case 1:

                        do{

                            resp = JOptionPane.showInputDialog("Titulo");
                            libPosicion = buscar( resp , matriz );

                            if( libPosicion !=-1 ){

                                libro = new Libro( matriz[libPosicion][0] , matriz[libPosicion][1] );
                                libro.setPrecio( Double.parseDouble(matriz[libPosicion][2]) );
                                libro.setUnidades( (int) Double.parseDouble(matriz[libPosicion][3]) );

                                System.out.println("Tema:" + libro.getTema() + "\tPrecio:" + libro.getPrecio() + "\tUnidades:" + (int)libro.getUnidades() );

                                resp = JOptionPane.showInputDialog("Unida3 a comprar");

                                if( libro.getUnidades() >= (int)Double.parseDouble(resp) ){
                                    aux = libro.Vender((int)Double.parseDouble(resp));
                                }
                                else{
                                    JOptionPane.showMessageDialog(null,
                                "No se puede concretar la venta", "Error",       
                                JOptionPane.ERROR_MESSAGE);
                                }
                            }
                            else{
                                JOptionPane.showMessageDialog(null,
                                "El libro no existe", "Error",       
                                JOptionPane.ERROR_MESSAGE);
                            }   

                            resp = JOptionPane.showInputDialog("Seguir vendiendo? (S/N)");
                        }while( resp.equalsIgnoreCase("S") );

                        break;
                       
                case 2:
                         
                        do{
                            cont=0;
                            resp = JOptionPane.showInputDialog("Tema");
                            System.out.println("Tema:"+resp+"\n");
                            System.out.printf("%-25s%-10s%-11s%n","Titulo","Precio","Existencias");
                            System.out.printf("%-25s%-10s%-11s%n","======","======","===========");

                            for(int i=0 ; i<9 ; i++){

                                if( resp.equalsIgnoreCase(matriz[i][1]) ){
                                    System.out.printf("%-25s%-10s%-11s%n",matriz[i][0],matriz[i][2],matriz[i][3]);
                                    cont++;
                                }

                            }
                            System.out.println("\nSe han encontra2 " + cont +" libros del tema");

                            resp = JOptionPane.showInputDialog("Seguir buscando? (S/N)");
                        }while( resp.equalsIgnoreCase("S") );

                        break;
                   
            }
           
        }while(!resp.equalsIgnoreCase("3"));
    }

    public static int buscar( String nombre , String matriz[][] ){
        int pos=-1;
       
        for(int i=0 ; i<9 ; i++){
            if( nombre.equalsIgnoreCase(matriz[i][0]) ){
                pos = i;
                break;
            }
        }
               
        return pos;
    }
   
   
}


Holaa soy nuevo en Java, no me sale el punto 3 de mi ejercicio, no se me ocurre como hacerlo= 

La opción 3 finalizará el proceso. Al finalizar el mismo se mostrará el siguiente resumen :
Resumen de ventas
Título Tema Precio Unidades Ventas Importe
Título Tema Precio Unidades Ventas Importe
...
Suma Suma Suma

TickTack

Hola furkone,

no entiendo. Al elegir la opción tres querés que se finalice el proceso y que además de eso se muestre los títulos, los precios, las unidades, las ventas y el importe de los libros vendidos y la suma de todo eso?


Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

antopixel

#2
Es sencillo puedes crear un método en la clase Libros que guarde dentro un ArrayList toda esa informacion como un String, cada vez que se realice una venta, se añade un registro nuevo.

Y ya lo de unidades finales de cada libro lo tienes como variable global, solo lo devuelves y ya esta.

En el menu dentro del  switch mandas a llamar al metodo y luego System.exit(0)