Problema con parametrización
Publicado por jose (73 intervenciones) el 04/10/2018 09:27:13
Buenos días a todos,
Estoy realizando un programa que haga lo siguiente:
El tema es que necesito poner las variables globales String matriConsulta, dniConsulta, nomConsulta; dentro del método pedir datos.
Pero al hacer eso me dice que han de estar inicializado. Si lo inicializo, tengo deja de funcionar correctamente.
Dejo el código por si alguien me puede ayudar.
Estoy realizando un programa que haga lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Introduce una Matrícula y pulsa [ENTER]:111mat
Introduce un DNI y pulsa [ENTER]::111dni
Introduce un Nombre y pulsa [ENTER]:111tit
El DNI 111dni con nombre 111tit se ha añadido correctamente.
El matricula 111mat con dni 111dni se ha añadido correctamente.
Introduce una Matrícula y pulsa [ENTER]:111mat
El vehiculo 111mat pertenece a la persona 111dni con nombre 111tit
Introduce una Matrícula y pulsa [ENTER]:222mat
Introduce un DNI y pulsa [ENTER]::111dni
La persona 111dni 111tit ya existe, no es necesario ingresar un nuevo nombre.
El matricula 222mat con dni 111dni se ha añadido correctamente.
Introduce una Matrícula y pulsa [ENTER]:
El tema es que necesito poner las variables globales String matriConsulta, dniConsulta, nomConsulta; dentro del método pedir datos.
Pero al hacer eso me dice que han de estar inicializado. Si lo inicializo, tengo deja de funcionar correctamente.
Dejo el código por si alguien me puede ayudar.
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
import java.util.Scanner;
public class parametrizacion {
private static final int MAX = 10;
int indexDni = 0;
int indexMatricula = 0;
String matriConsulta, dniConsulta, nomConsulta;
boolean finnalitza = false;
Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
parametrizacion programa = new parametrizacion();
programa.inicio();
}
private void inicio() {
String[][] listaMatriDni = new String[MAX][2];
String[][] listaDniNom = new String[MAX][2];
mostrarPresentacion();
while ((indexMatricula < MAX)&&(!finnalitza)) {
pedirDatos(listaMatriDni, listaDniNom);
}
finPrograma();
}
private void mostrarPresentacion() {
System.out.println("Programa de vehiculos\n");
System.out.println("--------------------");
}
private void pedirDatos(String[][] listaMatriDni,String[][] listaDniNom ) {
String matricula;
String dni;
String nom;
System.out.print("\nIntroduce una Matrícula y pulsa [ENTER]:");
matricula =scanner.nextLine();
if (matricula.equalsIgnoreCase("fin")){
finnalitza = true;
return;
}
buscarDniByMatricula(matricula,listaMatriDni);
buscarPersonaByDni(dniConsulta,listaDniNom);
if (matriConsulta == matricula) {
System.out.println("El vehiculo " + matricula + " pertenece a la persona " + dniConsulta + " con nombre " + nomConsulta + " \n" );
return;
}
System.out.print("Introduce un DNI y pulsa [ENTER]::");
dni = scanner.nextLine();
if (dni.equalsIgnoreCase("fin")){
finnalitza = true;
return;
}
buscarPersonaByDni(dni,listaDniNom);
if (dniConsulta == dni) {
System.out.println("La persona " + dni + " " + nomConsulta + " ya existe, no es necesario ingresar un nuevo nombre. \n" );
añadirVehiculo(listaMatriDni, matricula, dni);
}else{
System.out.print("Introduce un Nombre y pulsa [ENTER]:");
nom = scanner.nextLine();
if (nom.equalsIgnoreCase("fin")){
finnalitza = true;
return;
}
añadirPersona(listaDniNom,dni,nom);
añadirVehiculo(listaMatriDni, matricula, dni);
}
}
//Método para añadir dni y nombre en array listaDniNom
private String añadirPersona(String[][]listaDniNom, String aDni, String aNom ) {
listaDniNom[indexDni][0] = aDni;
listaDniNom[indexDni][1] = aNom;
indexDni ++;
System.out.println("El DNI " + aDni + " con nombre " + aNom + " se ha añadido correctamente. \n" );
return aDni;
}
//Método para añadir matricula y dni en array listaMatriDni
private String añadirVehiculo(String[][] listaMatriDni,String bMatricula, String bDni) {
listaMatriDni[indexMatricula][0] = bMatricula;
listaMatriDni[indexMatricula][1] = bDni;
indexMatricula++;
System.out.println("El matricula " + bMatricula + " con dni " + bDni + " se ha añadido correctamente. \n" );
return bMatricula;
}
//Método para buscar el dni a través de la matrícula
private String buscarDniByMatricula(String pMatricula, String[][] listaMatriDni) {
for(int i=0; (i<indexMatricula); i++){
if (listaMatriDni[i][0].equalsIgnoreCase(pMatricula)) {
matriConsulta = pMatricula;
dniConsulta = listaMatriDni[i][1];
return listaMatriDni[i][1]; //Que retorne el nombre
}
}
return ""; // no se ha encontrado la matrícula
}
//Método para buscar el nombre a través del dni
private String buscarPersonaByDni(String pDNI, String[][] listaDniNom) {
for(int i=0; (i<indexDni); i++){
if (listaDniNom[i][0].equalsIgnoreCase(pDNI)) {
dniConsulta = pDNI;
nomConsulta = listaDniNom[i][1];
return listaDniNom[i][1]; //Que retorne el nombre
}
}
return ""; // no se ha encontrado el dni
}
private void finPrograma() {
System.out.println("finalizar programa");
}
}
Valora esta pregunta


0