sábado, 6 de junio de 2009

Practica 2


El pequeño programa que he hecho o mejor dicho la miniaplicacion es simplemente par que un profesor ponga un listado de notas pudiendo ver cuantos alumnos lleva, la nota media, e incluso le avisa si el alumno ya ha sido metido en el listado. También puede ordenar el listado por nombre (un listado organizado) o por notas (se directamente a quien dar las matriculas de honor).


En el programa que he hecho tengo incluida una deficinicion de clase (Alumno), a la cual llamo cada vez que lo necesito, aunque lo que mayormente hago con la clase es crear los objetos que necesito para operar. Aunque la clase la he creado sin funciones lo mismo podrian estar incluidas la mayor parte de las que tengo pero he preferido no hacerlo porque asi puedo llamar siempre a las funciones sin ningun tipo de restriccion (una mania que tengo de hacer cada cosa lo mas independiente de las demas como se pueda).



Aplicacion Resultante final





<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>AAP: Practica 2 : Pablo Ignacio Rodríguez Fernández</title>

<script type="text/javascript">

var cadena = "";

// Definición de la clase Alumno

function Alumno (nombre,nota){

this.nombre = nombre;

this.nota = nota;

}



var lista = new Array;



function insertarNota (nombre, nota){

lista[lista.length] = new Alumno (nombre,nota);

calificaciones();

}



function vercalificacion (nota){

var calificacion = "";

if (nota == "NP"){

calificacion = "No Presentado";

}

else if (nota >= 9){

calificacion = "Sobresaliente";

}

else if (nota >= 7){

calificacion = "Notable";

}

else if (nota >= 5){

calificacion = "Aprobado";

}

else{

calificacion = "Suspenso";

}

return calificacion;

}



function notaMedia(){

var media = 0;

for (i in lista){

media += parseFloat(lista[i].nota);

}

media = media / lista.length;

return media;

}



function calificaciones () {

cadena = "<table border=0>";

cadena += "<tr height=20><td width=500><b>Nombre del Alumno</b></td><td><b>Nota Final</b></td></tr>";

for (i in lista) {

//cadena += lista[i].mostrarunalumno();

cadena += "<tr height=20>";

cadena += "<td width=500>" + lista[i].nombre + "</td>";

var calificacion = vercalificacion(lista[i].nota);

cadena += "<td>" + lista[i].nota +"</td>";

cadena += "<td>" + calificacion + "</td>";

cadena += "</tr>";



}

cadena += "<tr></tr><tr><td>Numero total de Alumnos: " + lista.length+"</td>";

cadena += "<td>Nota media: " + notaMedia() + "</td></tr>"

cadena += "</table>";

escribir(cadena);

}



function escribir (text){

document.getElementById('programa').innerHTML=text;

}



function anadirNota(){

nombre = document.getElementById('nombre').value;

nota = document.getElementById('nota').value;

var num_nota = /^(([0-9]\.[0-9]*)|([0-9]|10)|NP)$/ //numero del 0-10

var er_nombre = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\,)+$/ //letras, ',' o espacio repetidos



//comprueba campo nombre

if(!er_nombre.test(nombre)) {

alert('Contenido del campo nombre no válido.')

return false

}



//comprueba campo nota

if(!num_nota.test(nota)) {

alert('Contenido del campo nota no valido (debe ser un numero del 0-10 o NP).')

return false

}

var confirmar = confirm('La nota del alumno '+ nombre +' es ' + nota +'?')

var repetido = false;

if (confirmar){

for (i in lista) {

if(nombre==lista[i].nombre){

var repetido = true;

}

}

if(repetido == false){

insertarNota(nombre, nota);

return true

}

else{

alert('El alumno ya tiene nota')

return false

}

}

else{

return false

}

}



function ordenarporNombre(){

for(var h = 0; h < lista.length-1 ; h++ ){

if(lista[h].nombre > lista[h+1].nombre){

var a = new Alumno (lista[h].nombre,lista[h].nota);

lista[h]= new Alumno (lista[h+1].nombre,lista[h+1].nota);

lista[h+1]=new Alumno (a.nombre,a.nota);

h=-1;

}

}

calificaciones ();

}

function ordenarporNota(){

for(var h = 0; h < lista.length-1 ; h++ ){

if(lista[h].nota < lista[h+1].nota){

var a = new Alumno (lista[h].nombre,lista[h].nota);

lista[h]= new Alumno (lista[h+1].nombre,lista[h+1].nota);

lista[h+1]=new Alumno (a.nombre,a.nota);

h=-1;

}

}

calificaciones ();

}



</script>



</head>



<body>

<center>



<h1>AAP: Practica <x> : Pablo Ignacio Rodríguez Fernández</h1>



<h2>Introducción</h2>



<p>

El pequeño programa que he hecho o mejor dicho la miniaplicacion es simplemente par que un profesor ponga un listado de notas pudiendo ver cuantos alumnos lleva, la nota media, e incluso le avisa si el alumno ya ha sido metido en el listado. También puede ordenar el listado por nombre (un listado organizado) o por notas (se directamente a quien dar las matriculas de honor).





<h2>Primer punto puntuable de la práctica</h2>



<p>

En el programa que he hecho tengo incluida una deficinicion de clase (Alumno), a la cual llamo cada vez que lo necesito, aunque lo que mayormente hago con la clase es crear los objetos que necesito para operar. Aunque la clase la he creado sin funciones lo mismo podrian estar incluidas la mayor parte de las que tengo pero he preferido no hacerlo porque asi puedo llamar siempre a las funciones sin ningun tipo de restriccion (una mania que tengo de hacer cada cosa lo mas independiente de las demas como se pueda).</p>





<h2>Aplicacion Resultante final</h2>



<form>

Nombre del alumno: <input type="text" id="nombre"><br>

Nota del alumno: <input type="text" id="nota"><p>

<input type="button" value="Poner Nota" onClick="anadirNota();"><p>





<input type="button" value="Lista de Alumnos ordenada alfabeticamente" onClick="ordenarporNombre();">

<input type="button" value="Lista de Alumnos ordenada por nota" onClick="ordenarporNota();">



</form>



<div id="programa">

</div>

<hr>

<address><a href="mailto:pabloign@gmail.com">pabloign</a></address>



</center>

</body>

</html>

No hay comentarios: