JavaScript - Problema para validación de datos ingresados

 
Vista:
sin imagen de perfil

Problema para validación de datos ingresados

Publicado por Ariel (1 intervención) el 24/09/2015 03:01:17
Gente, buenas noches. Me presento, mi nombre es Ariel, soy nuevo en esta pagina y es mi primer posteo, si bien vengo leyendo desde hace unos meses. Estoy estudiando diseño web y recien voy por el segundo cuatrimestre.

Mi problema surge de un parcial que estoy realizando, en donde tengo que crear un programa de ingreso de datos de una comision.
Datos del parcial: No puedo definir cantidad de alumnos de antemano y debo indicar cauntos van (problema resuelto)
No puedo definir cantidad de materias (problema resuelto)
No se puede repetir el numero de legajo (problema principal)

El problema, ademas del principal que señalo, es que las materias se me pisan, en vez de poder ingresar muchas.

Dejo el codigo a como esta, a ver si alguien puede darme ideas, muchas gracias desde ya.

Codigo:

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
<script type="text/javascript">
 
var alumnos = [ ];
	var j = 0;
var contAlm = 0;
 
 
do{
	alumnos[j] = [ ];
 
	do{
	alumnos[j] [ 'Legajo' ] = parseInt(prompt("Ingrese el numero de legajo del alumno"));
	}while( isNaN(alumnos[j] [ 'Legajo' ]) || alumnos[j] [ 'Legajo' ] <= 0 || alumnos[j] [ 'Legajo' ] > 500 )
 
	do{
		alumnos[j] [ 'Nombre' ] = prompt("Ingrese el nombre");
	}while( !isNaN(alumnos[j] [ 'Nombre' ]) || alumnos[j] [ 'Nombre' ] == "")
 
	do{
		alumnos[j] [ 'Apellido' ] = prompt("Ingrese el apellido");
	}while( !isNaN(alumnos[j] [ 'Apellido' ]) || alumnos[j] [ 'Apellido' ] == "")
 
 
	alumnos[j]['Materia'] = []
	alumnos[j]['Nota'] = []
 
	do{
 
 
	do{
		alumnos[j] ['Materia'] = (prompt("Ingrese Materia"));
 
 
	}while( !isNaN(alumnos[j] [ 'Materia' ]) || alumnos[j] [ 'Materia' ] == "")
 
	do{
		alumnos[j] [ 'Nota' ] = parseInt(prompt("Ingrese nota de la materia ingresada"));
 
 
	}while( isNaN(alumnos[j] [ 'Nota' ]) || alumnos[j] [ 'Nota' ] <= 0 || alumnos[j] [ 'Nota' ] > 10 )
 
 
	}while(confirm("Desea ingresar otra materia? "))
 
 
 
 
	j++;
	contAlm++;
 
}while(confirm("Desea Ingresar otro alumno? Cantidad ingresada: "+ contAlm + "."))
 
 
for ( var i = 0; i < 50; i++ ){
 
	document.write('<div style="background:lightblue; border: 4px solid darkblue; width: 400px; margin: auto; list-style: none;">');
	document.write('<ul>');
	document.write('<li style="margin-left: 15px"><b>Nombre:</b> ' + alumnos[ i ] [ 'Nombre' ] + '</li>');
	document.write('<li style="margin-left: 30px"><b>Apellido:</b> ' + alumnos[ i ] [ 'Apellido' ] + '</li>');
	document.write('<li style="margin-left: 45px"><b>Legajo:</b> ' + alumnos[ i ] [ 'Legajo' ] + '</li>');
	document.write('<li style="margin-left: 60px"><b>Materia:</b> ' + alumnos[ i ] [ 'Materia' ] + ' </li>');
	document.write('<li style="margin-left: 75px"><b>Nota:</b> ' + alumnos[ i ] [ 'Nota' ] + ' </li>');
	document.write('</ul>');
	document.write('</div>');
 
}
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 Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Problema para validación de datos ingresados

Publicado por Vainas (258 intervenciones) el 24/09/2015 19:36:36
Buenas:

Defines asi:

1
2
alumnos[j]['Materia'] = [];
alumnos[j]['Nota'] = [];

y sin embargo lo usas asi:

1
2
3
alumnos[j] ['Materia']
...
alumnos[j] [ 'Nota' ]

Arriba has dicho que "materia" y "nota" era un array asi que tendra que introducir valores para que quede algo asi:

1
alumnos[j]['Materia'] = ["Ingles", "Matematicas", ....];

o dicho de otra forma:
1
2
alumnos[j]['Materia'][0] = "Ingles";
alumnos[j]['Materia'][1] = "Matematicas";


asi que tendras que (siguiendo la dinamica que llevas) agregar un contador nuevo para ir creando nuevas materias:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//...
	alumnos[j]['Materia'] = []
	alumnos[j]['Nota'] = []
	z = 0;
	do{
		do{
			alumnos[j] ['Materia'][z] = (prompt("Ingrese Materia"));
		}while( !isNaN(alumnos[j][ 'Materia' ][z]) || alumnos[j][ 'Materia' ][z] == "")
		do{
			alumnos[j][ 'Nota' ][z] = parseInt(prompt("Ingrese nota de la materia ingresada"));
		}while( isNaN(alumnos[j] [ 'Nota' ][z]) || alumnos[j][ 'Nota' ][z] <= 0 || alumnos[j][ 'Nota' ][z] > 10 )
	z++;
	}while(confirm("Desea ingresar otra materia? "));
//...

Saludos.
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