Java - Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

 
Vista:
sin imagen de perfil

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por dev3rt (22 intervenciones) el 22/01/2017 20:04:50
Enunciado:
Consideramos que una secuencia de numeros enteros leída des del teclado corresponde a los codigos de los clientes de una empresa los cuales se han vendido productos.
La sequencia acaba en 0,valor que no hace falta tener en cuenta como codigo de cliente.

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuencia


Tienes que tener en cuenta los siguientes requisitos:

-El maximo nombre de clientes diferentes a los cuáles se puede vender es de 2500 clientes diferentes i los codigos de los clientes pueden ser cualquier número entero.
-La secuencia de entrada no tiene mida máxima,puede ser muy grande.

Ejemplos de secuencia:
256 38 1256987 564 38 698 256 78 78 256 0

Ejemplos de salida:

Vendas realizadas a cada cliente:
256 ---> 3 vendas
38 --> 2 vendas
1256987-->1 venda
564 --> 1 venda
698 --> 1 venda
78 --> 2 vendas
----------
codigo hasta ahora:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
 
public class Ex3 {
 
public static final int maxncl = 2500;
 
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
boolean encontrado=false;
int[][] codigo, venda = new int[maxncl][maxncl];
int introclient;
 
System.out.println("Introduce los codigos de los clientes: ");
introclient = leer.nextInt();
 
while(introclient != 0 && !encontrado){
 
}
 
 
 
}
 
}






Espero que alguien me pueda ayudar y que me lo explique como continuar el codigo,quiero entenderlo porfavor.Gracias y saludos
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por Andrés (340 intervenciones) el 23/01/2017 17:16:18
1
2
3
4
5
6
7
8
9
10
package clientesdiferentes;
 
public class ClientesDiferentes {
 
    public static void main(String[] args) {
       ContadorClientes cc = new ContadorClientes();
       cc.leerDatos();
    }
 
}

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
package clientesdiferentes;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
 
public class ContadorClientes {
 
    private Map<Integer, Integer> mapaContador;
 
    public ContadorClientes() {
 
        mapaContador = new HashMap<Integer, Integer>();
 
    }
 
    public void leerDatos() {
 
        //Para leer los datos del teclado
        Scanner scanner = null;
        //La secuendia termina cuando se introduce 0
        final Integer FINAL = 0;
        //Valor que s elee del teclado
        Integer valorLeido = null;
        //Valor actualmente contabilizado
        Integer valorActual = null;
        //try catch para manejo de errores
        try {
            //para leer datos del teclado    
            scanner = new Scanner(System.in);
            //Indicación
            System.out.println("Ingresa la secuencia, terminar con 0");
            //Realizar el ciclo mientras el usuario no introduzca 0
            while (!FINAL.equals(valorLeido = scanner.nextInt())) {
                //Leer del mapa el contador para el dato del teclado
                valorActual = mapaContador.get(valorLeido);
                //Si el valor en el mapa no es nulo, incrementarlo y guardarlo
                if (null != valorActual) {
                    mapaContador.put(valorLeido, ++valorActual);
                } else {
                    //El caso contrario ingresarlo con 1
                    mapaContador.put(valorLeido, 1);
                }
 
            }
            //Cerrar el objeto scanner
            scanner.close();
            //Imprimir el resultado
            imprimirResultado();
 
        } catch (Exception e) {
            //Solo imprimimos la excepcion
            e.printStackTrace();
        } finally {
            //Cerramos el scanner
            if (null != scanner) {
                scanner.close();
            }
        }
    }
 
    public void imprimirResultado() {
        //Obtener los key del map que son los codigos ingresados
        Set<Integer> keySet = mapaContador.keySet();
        //Obtener un iterador
        Iterator<Integer> keySetIterator = keySet.iterator();
        //Key para recorrido
        Integer key = null;
        //Mensaje de rersultado
        System.out.println("Resultado:");
        //ciclo para imrpimir
        while(keySetIterator.hasNext()) {
            //Obtener el key del iterador
            key = keySetIterator.next();
            //Imprimir key y conteo
            System.out.println(key+": "+mapaContador.get(key));
        }
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por dev3rt (22 intervenciones) el 23/01/2017 20:25:57
Ya ya pero hay un problema que estas cosas no las usamos,y si es cierto con ellas es más fácil ya lo sé pero no deja usar-los.
Gracias pero deberia ser más senzillo sin las ayuditas estas.
Me entiendes?,se puede utilizar while,for,if,do:while.
Muchas Gracias por tu ayuda pero ya te digo este es el problema,
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por Andrés (340 intervenciones) el 23/01/2017 20:33:58
Ya veo, mmm dejame ver
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
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por Andrés (340 intervenciones) el 23/01/2017 20:52:41
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
package clientesdiferentes;
 
import java.util.Scanner;
 
public class ContadorClientes {
 
    private int[][] acumuladores;
 
    public ContadorClientes() {
 
        acumuladores = new int[1][6000000];
 
        inicializaArreglo();
 
    }
 
    private void inicializaArreglo() {
        for (int i = 0; i < acumuladores[0].length; i++) {
 
            acumuladores[0][i] = 0;
        }
    }
 
    public void leerDatos() {
 
        //Para leer los datos del teclado
        Scanner scanner = null;
        //La secuendia termina cuando se introduce 0
        final int FINAL = 0;
        //Valor que s elee del teclado
        int valorLeido = -1;
 
        //try catch para manejo de errores
        try {
            //para leer datos del teclado    
            scanner = new Scanner(System.in);
            //Indicación
            System.out.println("Ingresa la secuencia, terminar con 0");
            //Realizar el ciclo mientras el usuario no introduzca 0
            while (FINAL != (valorLeido = scanner.nextInt())) {
 
                acumuladores[0][valorLeido]++;
 
            }
            //Cerrar el objeto scanner
            scanner.close();
            //Imprimir el resultado
            imprimirResultado();
 
        } catch (Exception e) {
            //Solo imprimimos la excepcion
            e.printStackTrace();
        } finally {
            //Cerramos el scanner
            if (null != scanner) {
                scanner.close();
            }
        }
    }
 
    public void imprimirResultado() {
 
        //Mensaje de rersultado
        System.out.println("Resultado:");
        //ciclo para imrpimir
        for (int i = 0; i < acumuladores[0].length; i++) {
 
            if (0 != acumuladores[0][i]) {
                System.out.println(i + ": " + acumuladores[0][i]);
            }
        }
 
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Hacer un Algoritmo que indique cuántas vendas se han hecho por cada cliente que aparece en la secuen

Publicado por dev3rt (22 intervenciones) el 23/01/2017 20:57:19
Muchas Gracias,aunque no usamos try and catch,pero bueno :) no pasa nada ya intentaré mirarlo esto que me has enviado y intentarlo sin try and catch,finally,null,no hacemos funciones

MUCHAS GRACIAS de Verdad!!
Saludoos!
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