Java - dudas java

 
Vista:
Imágen de perfil de ruben

dudas java

Publicado por ruben (3 intervenciones) el 21/02/2017 22:40:11
Buenas noches, queria preguntaros unas dudas sobre este ejercicio:

Escribe un programa que pida los datos de los usuarios que van a usar una aplicación. Como mucho, se pedirá los datos de diez usuarios o, hasta el momento, en el que los datos de un usuario no se lleguen a insertar bien.

De cada usuario, nos interesa: nombre, clave de acceso (para acceder la aplicación) y edad.

• El nombre debe de empezar, obligatoriamente, por una letra
• La clave tiene que tener, al menos, tres caracteres. Debe de empezar por una letra, y tiene que tener (al menos) dos dígitos.
• La edad, por supuesto, tiene que ser numérica y positiva.
De tal forma que:
• Si el nombre lo inserta mal, se volverá a pedir (por supuesto) dicho nombre.
• Si la clave la inserta mal, se volverá a pedir (solamente) dicha clave.
• Y si la edad, se inserta mal, se volverá a pedir (de nuevo) todos los datos.

Al principio del programa se pedirá que se indique cuantas veces se va a dejar, para que inserte bien los datos de un usuario.

Si a insertar los datos de un usuario, ha agotado las oportunidades (que se indicó al principio) se dejará de pedir datos de usuarios (o, hasta que se inserte los datos de diez usuarios, como se indicó al principio).

Al final del programa, hay que visualizar los datos del usuario más joven. Si hay varios usuarios, se visualizará el último de ellos.

Si no se llega a insertar ningún usuario, se visualizara un mensaje indicando esta circunstancia.

llevo hecho la mitad, pero no consigo hacer lo que pide la edad , volver a pedir todos los datos, lo he intentado de muchas formas con el do while y nada.La otra duda es como poner que no se ha insertado ningun usuario .Gracias un saludo
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

dudas java

Publicado por YYanes (144 intervenciones) el 23/02/2017 15:23:53
Hola amigo:
la clave de la POO (Programación Orientada a Objetos) es dividir un problema grande, en varios problemas más pequeños para irlos resolviendo uno a uno. Eso es lo que debe hacer: en lugar de centrarse en tratar de resolver un gran problema general, divida el ejercicio en problemas más pequeños, de forma que pueda atender cada parte por separado y así no se le mezclará el dódigo y encontrará las soluciones más fácilmente. De eso se trata la propuesta que voy a hacerle en breve.

Dejaré que usted se encargue de programar los métodos CaptarNombreUsuario(), CaptarClave() y CaptarEdad() respectivamente, y también deberá programar la función EnlistarUsuario(user) en donde "user" será un objeto de tipo Usuario(Nombre,Clave,Edad)

Sin más, la propuesta:
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
//------------------------------------------------------
 
int cantUsuarios = 0;
String nombre = "";
String clave = "";
int edad = 0;
 
do{
    nombre = ""; //para que reinicie el valor de esta variable al volver a entrar al ciclo do-while
    while(nombre =="")
	  nombre = CaptarNombreUsuario(); //'CaptarNombreUsuario()' deberá validar el nombre, devolverá un String con el valor del mismo si es correcto, y si es incorrecto devolverá nulo o ""
	//con el 'while' anterior garantizo que me vuelva a pedir el nombre del usuario si el entrado es incorrecto
 
	clave = ""; //para que reinicie el valor de esta variable al volver a entrar al ciclo do-while
	while(clave =="")
	  clave = CaptarClave(); //'CaptarClave()' Deberá devolver un String con la clave si es correcta, o "" si es incorrecta
	//con el 'while' anterior garantizo que me vuelva a pedir la clave si la entrada es incorrecta
 
	edad = 0; //para que reinicie el valor de esta variable al volver a entrar al ciclo do-while
	edad = CaptarEdad(); //Captará y devolverá un int con la edad. Devolverá cero (0) si es incorrecta
	if(edad !=0)
	{
	  Usuario user = new Usuario(nombre, clave, edad);
	  EnlistarUsuario(user);
	  cantUsuarios ++;
	} //si la edad es incorrecta, la variable cantUsuarios no se incrementará ni se enlistará el usuario nuevo, por lo que comenzará el ciclo completo nuevamente
 
}while(cantUsuarios < 10); //cargará un total de 10 usuarios
//-----------------------------------------------------------------------------------------

Una nota importante: dentro de los métodos que le he propuesto NO diseñe ciclos para captar el dato, pues estos métodos ya están dentro de ciclos 'while'. Solo tiene que hacer para cada método los siguientes pasos:

-Pedir el dato de entrada
-Validar si es correcto
-Si es correcto devolver su valor y terminar el método.
-Si es incorrecto devolver un valor por defecto, mostrar un mensaje de error, pero igualmente terminar el método ahí mismo.

Un GigaSaludo y espero resuelva!!
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