Java - Ayuda con codigo que no ingresa ni imprime datos de un arreglo

 
Vista:
sin imagen de perfil

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por Alejandro (16 intervenciones) el 19/06/2017 04:47:02
Saludos, tengo este proyecto donde se implementan POJOS, CRUD y métodos, además de arreglos. El problema es que el método nuevoCliente no funciona, el método setImprimir al ser llamado desde una clase prueba tampoco y solo imprime espacios en blanco, al igual que los otros métodos como editar, buscar y eliminar, además de redimensionar el arreglo por si llega al limite de su tamaño. No encuentro el error, espero puedan ayudarme.

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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
package dominio;
import java.util.Date;
 
/**
 *
 * @author mofg
 */
public class Banco {
 
    private String nombre;
    private static Cliente[] clientes;
    private static int numClientes;
    private static Empleado[] empleados;
    private static int numEmpleados;
    private Date nacio;
    //static final define constantes que no se pueden cambiar 
    private static final double TASA_INTERES = 0.8;
 
    static {
        clientes = new Cliente[3];
        numClientes = 0;
        empleados = new Empleado[3];
        numEmpleados = 0;
    }
 
    //inicializar el arreglo
    public Banco() {
        this.nombre = "Banco x";
        clientes = new Cliente[3];
        numClientes = 0;
        empleados = new Empleado[3];
        numEmpleados = 0;
    }
 
    public Banco(String nombre) {
        this.nombre = nombre;
 
    }
 
    public String getNombre() {
        String nombre;
        return this.nombre;
 
    }
 
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    public boolean nuevoCliente(Cliente cliente) {
        return false;
 
    }
    //creando un metodo con los atributos 
 
    public void nuevoCliente(String nombre, String apellido, int edad) {
        // clientes[numClientes]= new Cliente(nombre, apellido, edad);
        //numClientes=numClientes++;    
 
        if (numClientes == clientes.length) {
            Cliente clienteaux[] = clientes;
 
        }
        clientes[getNumClientes()] = new Cliente(nombre, apellido, edad);
        setNumClientes(numClientes++);
    }
 
    public int getNumClientes() {
        return numClientes;
    }
 
    public void setNumClientes(int numClientes) {
        this.numClientes = numClientes;
    }
 
    public Cliente getCliente(int indice) {
        return clientes[indice];
    }
 
    /**
     * @return the numEmpleados
     */
    public int getNumEmpleados() {
        return numEmpleados;
    }
 
    /**
     * @param numEmpleados the numEmpleados to set
     */
    public void setNumEmpleados(int numEmpleados) {
        this.numEmpleados = numEmpleados;
    }
 
    public Empleado getEmpleado(int indice) {
        return empleados[indice];
    }
 
    public String imprimirClientes() {
        String texto = "";
        for (int i = 0; i < numClientes; i++) {
            texto += "\n Cliente" + clientes[i];
            //"[ " + (i + 1) + " ]" + this.getCliente(i).toString();
        }
        return texto;
 
    }
 
    public String imprimir() {
        return "Nombre del banco: " + this.getNombre();
    }
 
    public void redimensionarCliente(String nombre, String apellido, int edad) {
 
        if (numClientes == clientes.length) {
            Cliente cliente_aux[] = clientes;
            clientes = new Cliente[clientes.length + 1];
            System.arraycopy(cliente_aux, 0, clientes, 0, clientes.length - 1);
        }
        clientes[getNumClientes()] = new Cliente(nombre, apellido, edad);
        setNumClientes(getNumClientes() + 1);
    }
 
    public void eliminarCliente(int posicion) {
 
        Cliente clienteaux[] = clientes;
        clientes = new Cliente[clientes.length - 1];
        if (posicion == 0) {
 
            System.arraycopy(clienteaux, 1, clientes, 0, clientes.length);
 
        } else if (posicion == clientes.length) {
            System.arraycopy(clienteaux, 0, clientes, 0, clientes.length);
        } else if (posicion > 0 && posicion < clientes.length) {
            System.arraycopy(clienteaux, 0, clientes, 0, posicion - 1);
            System.arraycopy(clienteaux, posicion + 1, clientes, posicion, clientes.length);
 
        }
        numClientes = numClientes - 1;
 
    }
 
    public void modificarCliente(int posicion, String nombre, String apellido, int edad) {
        clientes[posicion] = new Cliente(nombre, apellido, edad);
 
    }
 
    public void nuevoEmpleado(String nombre, String cedula, double salario) {
 
        if (numEmpleados == empleados.length) {
            Empleado empleadoaux[] = empleados;
            empleados[getNumEmpleados()] = new Empleado(nombre, cedula, salario);
            setNumEmpleados(getNumEmpleados());
 
        }
    }
 
    public void nuevoEmpleado(Empleado e1) {
 
        if (getNumEmpleados() == empleados.length) {
            Empleado empleado_aux[] = empleados;
            empleados = new Empleado[empleados.length + 1];
            System.arraycopy(empleado_aux, 0, empleados, 0, empleados.length - 1);
        }
        empleados[getNumEmpleados()] = e1;
        setNumEmpleados(getNumEmpleados() + 1);
    }
 
    public void redimensionarEmpleado(String nombre, String cedula, double salario) {
 
        if (getNumEmpleados() == empleados.length) {
            Empleado empleado_aux[] = empleados;
            empleados = new Empleado[empleados.length + 1];
            System.arraycopy(empleado_aux, 0, empleados, 0, empleados.length - 1);
        }
        empleados[getNumEmpleados()] = new Empleado(nombre, cedula, salario);
        setNumEmpleados(getNumEmpleados() + 1);
    }
 
    public String imprimirEmpleado() {
        String texto;
        texto = " ";
 
        for (int i = 0; i < getNumEmpleados(); i++) {
            texto += "EMPLEADO [" + (i + 1) + "]" + this.getEmpleado(i).toString();
        }
        return texto + "\n";
    }
 
    public void eliminarEmpleado(int posicion) {
 
        Empleado empleadoaux[] = empleados;
        empleados = new Empleado[empleados.length - 1];
        if (posicion == 0) {
 
            System.arraycopy(empleadoaux, 1, empleados, 0, empleados.length);
 
        } else if (posicion == empleados.length) {
            System.arraycopy(empleadoaux, 0, empleados, 0, empleados.length);
        } else if (posicion > 0 && posicion < empleados.length) {
            System.arraycopy(empleadoaux, 0, empleados, 0, posicion - 1);
            System.arraycopy(empleadoaux, posicion + 1, empleados, posicion, empleados.length);
 
        }
        setNumEmpleados(getNumEmpleados() - 1);
 
    }
 
    public boolean validarDuplicados(Empleado e) {
 
        for (Empleado emp : empleados) {
 
            if (emp.equals(e)) {
                return true;
            }
        }
        return false;
    }
 
}
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
Imágen de perfil de jonathan

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por jonathan (5 intervenciones) el 19/06/2017 05:14:15
para imprimir los empleados te recomiendo que envíes como parámetro el arreglo de empleados que quieres imprimir intentar hacer mas orientado a objetos tu código y no hacer todo en una sola clase te puedo ayudar con tu ejercicio pero dime cual es el enunciado o lo que quieres programar.
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

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por Alejandro (16 intervenciones) el 19/06/2017 06:46:46
Un proyecto, con una clase banco, clientes, empleados y sus clases hijas (gerente, director), una clase impuesto que agregue un impuesto al salario de cada empleado: 0.10 para empleado comun, 0.20 para gerente y 0.30 para director. Los empleados y clientes deben guardarse en un arreglo, dentro de Banco, ademas de crear un CRUD que permita añadir, editar consultar o eliminar elementos del arreglo por medio de un codigo que cada atributo tendrá. Si se sobredimensiona el arreglo, se creará uno nuevo pero más grande donde se copien los elementos del anterior mas el nuevo. Se creará un metodo imprimir donde se sobreescribirán datos, métodos con sobrecarga y en cada elemento del CRUD el metodo no recibirá argumentos sino un elemento, además se usarán for each para los arreglos, ademas de metodos estaticos y privados según sea conveniente. Los atributos de cada clase son:
BANCO
nombre
CLIENTE
nombre, apellido, edad, correo, codigo (el codigo debe aumentar con un contador +1 cada vez que se ingrese un nuevo cliente)
EMPLEADO
nombre, cedula, salario, nacimiento, codigo(debe aumentar como en cliente)
GERENTE extends EMPLEADO
departamento
DIRECTOR extends EMPLEADO
estudio
CUENTA
salario, cuenta (aqui se muestra el salario neto y con su impuesto)
IMPUESTO
salario(se calcula el impuesto de los empleados)

Se deben verificar y validar tipos de datos(int, double, string, date) de acuerdo al campo requerido, ademas de validar duplicados.
Todos los metodos deben llamarse desde una clase test por cada clase principal. Además el codigo completo con POJOS y CRUD deben ejecutarse desde una clase main.
Para leer datos, use el metodo Scanner, para verificar datos puede usar metodo pattern y mattern. No implemente interfaces. Cada clase debe tener sus metodos get y set.
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
Imágen de perfil de jonathan

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por jonathan (5 intervenciones) el 19/06/2017 15:34:48
solo una ultima duda gerente y director tambien tienen que guardarse en un arreglo o solo se guardara una ves dentro de la clase banco ?
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

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por Alejandro (16 intervenciones) el 20/06/2017 05:10:12
Se guardaran en un arreglo, con sus atributos correspondientes.
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
Imágen de perfil de jonathan

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por jonathan (5 intervenciones) el 20/06/2017 19:19:01
solo que en estos momentos te voy a quedar mal Alejadro ya que esta trabajando en tu codigo y me llamaron para unos tramites laborales.
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

Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Publicado por Alejandro (16 intervenciones) el 23/06/2017 04:36:16
No hay problema, cuando puedas me ayudas.
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