Ejercicio ong

 


DROP TABLE IF EXISTS `poblacion`;

CREATE TABLE `poblacion` (
 `idpoblacion` int(11) NOT NULL AUTO_INCREMENT,
 `nombre` varchar(45) DEFAULT NULL,
 `habitantes` int(11) DEFAULT NULL,
 `pais` varchar(45) DEFAULT NULL,
 PRIMARY KEY (`idpoblacion`),
 KEY `ix_nombre` (`nombre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


DROP TABLE IF EXISTS `sede`;

CREATE TABLE `sede` (
 `idsede` int(11) NOT NULL AUTO_INCREMENT,
 `ciudad` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
 `pais` varchar(45) DEFAULT NULL,
 `direccion` varchar(45) DEFAULT NULL,
 `telefono` varchar(45) DEFAULT NULL,
 `director` varchar(45) DEFAULT NULL,
 PRIMARY KEY (`idsede`),
 KEY `ix_ciudad` (`ciudad`),
 KEY `ix_pais` (`pais`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


DROP TABLE IF EXISTS `proyecto`;

CREATE TABLE `proyecto` (
 `idproyecto` int(11) NOT NULL AUTO_INCREMENT,
 `idsede` int(11) DEFAULT NULL,
 `titulo` varchar(45) DEFAULT NULL,
 `fini` date DEFAULT NULL,
 `ffin` date DEFAULT NULL,
 `presupuesto` decimal(10,2) DEFAULT NULL,
 `responsable` varchar(45) DEFAULT NULL,
 PRIMARY KEY (`idproyecto`),
 KEY `fk_sede_idx` (`idsede`),
 KEY `ix_titulo` (`titulo`),
 CONSTRAINT `fk_sede` FOREIGN KEY (`idsede`) REFERENCES `sede` (`idsede`) ON DELETE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;




DROP TABLE IF EXISTS `actuacion`;

CREATE TABLE `actuacion` (
 `idactuacion` int(11) NOT NULL AUTO_INCREMENT,
 `idproyecto` int(11) NOT NULL,
 `idpoblacion` int(11) DEFAULT NULL,
 `inversion` decimal(10,2) DEFAULT NULL,
 `descripcion` text,
 PRIMARY KEY (`idactuacion`),
 KEY `fk_proyecto` (`idproyecto`),
 KEY `fk_poblacion_idx` (`idpoblacion`),
 CONSTRAINT `fk_poblacion` FOREIGN KEY (`idpoblacion`) REFERENCES `poblacion` (`idpoblacion`),
 CONSTRAINT `fk_proyecto` FOREIGN KEY (`idproyecto`) REFERENCES `proyecto` (`idproyecto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;



Blackjack

Para el juego del blackjack primero necesitamos conocer las reglas del juego:

BlackJack

Hay un jugador y una banca. Se reparten dos cartas a cada uno. El objetivo es sumar 21 o lo más cercano pero sin pasarse. Las figuras valen 10 y los ases 1 u 11, dependiendo de lo que nos interese. El resto de cartas su valor. Una vez repartidas las dos cartas el jugador puede plantarse o pedir carta. Si pide carta y se pasa, ha perdido. Si no, otra vez puede pedir carta o pararse. Cuando se para es el turno de la banca.

Para gestionar las decisiones de la banca puede parecer que necesitamos una inteligencia artificial, pero por suerte no es así.  Si la puntuación es menor de 16 tiene que pedir carta, si es 17 o superior tiene que plantarse.

¿Cómo lo haremos?

En primer lugar crearemos un array con las 52 cartas de la baraja. Este array lo desordenaremos y ya estaremos listos para empezar a repartir.

Se reparten dos cartas a la banca y dos al jugador. Las podemos guardar en un array. Las de la banca se oculta la primera y se muestra la segunda. Las del jugador se muestran todas.

A partir de aquí tenemos dos botones:

  • Pedir carta. Le damos otra carta al jugador. Tenemos que contar la puntuación; si se ha pasado pierde. En caso contrario no hacemos nada.
  • Plantarse. Pasamos al turno de la banca

Cuando es el turno de la banca esta tiene que hacer:

  • Si su puntuación es menor que 17, pedir carta. Si se pasa pierde.
  • Si es mayor plantarse.

Si no se ha pasado ninguno de los dos el jugador que tiene el mayor número es el que gana. Y vuelta a empezar.

baraja

Ejercicio academia

Crear un diseño entidad relación que permita controlar el sistema de información de una academia de cursos siguiendo estas premisas:

  • Se dan clases a trabajadores y desempleados. Los datos que se almacenan de los alumnos son el DNI, dirección, nombre, teléfono y la edad
  • Además de los que trabajan necesitamos saber el CIF, nombre, teléfono y dirección de la empresa en la que trabajan
  • Los cursos que imparte la academia se identifican con un código de curso. Además se almacena el programa del curso, las horas de duración del mismo, el título y cada vez que se imparte se anotará las fechas de inicio y fin del curso junto con un número concreto de curso (distinto del código) y los datos del profesor o profesora (sólo uno por curso) que son: dni, nombre, apellidos, dirección y teléfono
  • Se almacena la nota obtenida por cada alumno en cada curso teniendo en cuenta que un mismo alumno o alumna puede realizar varios cursos y en cada cual obtendrá una nota.

Ejemplos BD

En un centro de salud un médico atiende a varios pacientes y cada paciente está asignado a un solo médico. Cada médico pasa consulta en una o varias salas en horario distinto. En cada sala pasan consulta varios médicos.

a. Del médico interesan conocer sus datos personales y el año en que se colegio.

b. De la sala interesa conocer su ubicación, además se identifica por un nº de sala

c. Del paciente, además de sus datos personales, se desea conocer su historial médico.

d. Se desea saber en qué sala pasa consulta cada médico en cada momento.

 

Se desea diseñar una BD para una Universidad que contenga información sobre carreras y asignaturas que se pueden estudiar. Además se incluirá la información de los alumnos matriculados en las correspondientes asignaturas y las calificaciones que obtienen en las asignaturas en las que están matriculados. Nota: suponer que una asignatura solo puede pertenecer a una carrera.

 

 

En una autoescuela hay varios profesores y varios coches de prácticas. Se quiere guardar información respecto a los alumnos que se matriculan, el profesor que se les asigna y el coche que conducirán. Cada alumno da clase con un profesor en un coche, el alumno siempre va a conducir el mismo coche y con el mismo profesor.

 

Se desea diseñar una base de datos para almacenar y gestionar la información empleada por una empresa dedicada a la venta de automóviles, teniendo en cuenta los siguientes aspectos La empresa dispone de una serie
de coches para su venta. Se necesita conocer la matricula, marca y modelo, el color y el precio de venta de cada coche.Los datos que interesa conocer de cada cliente son el NIF, nombre, dirección, ciudad y numero de teléfono: ademas, los clientes se diferencian por un código interno de la empresa.  Un cliente puede comprar tantos coches como desee a la empresa. Un coche determinado solo puede ser comprado por un único cliente.

 

 

En la biblioteca del centro se manejan fichas de autores y libros. En la ficha de cada autor se tiene el código de autor y el nombre. De cada libro se guarda el código. titulo, ISBN, editorial y numero de pagina. Un autor puede escribir varios libros, y un libro puede ser escrito por varios autores. Un libro esta formado por ejemplares.
Cada ejemplar tiene un código y una localización Un libro tiene muchos ejemplares y un ejemplar pertenece solo a un libro. Los usuarios de la biblioteca del centro también disponen de ficha en la biblioteca y sacan ejemplares
de ella. De cada usuario se guarda el código, nombre. dirección y teléfono. Los ejemplares son prestados a los usuarios. Un usuario puede tomar prestados varios ejemplares, y un ejemplar puede ser prestado a varios usuarios. De cada prestamos interesa guardar la fecha de préstamo y la fecha de devolución.

Algoritmo ruleta

Botón reset-> Actualizar la página
Arrastrar fichas: en el drop guardar valores:

  var apuesta_ruleta = ['rojo', 'negro', 'par', 'impar', 'passe', 'manque'];
    var apuestas = [];
    $(".ficha").draggable();
    $(".apuesta").droppable({
        drop: function (event, ui) {
            var apuesta = $(this).attr("title");
            var cantidad = $(ui.draggable).attr("title");
            $(ui.draggable).draggable('disable');
            apuestas[apuesta] = cantidad;
            $('#info').append("Apuesta " + cantidad + " al " + apuesta_ruleta[apuesta] + "<br/>");

        }
    });

En el botón de jugar tenemos que hacer:
– Descontar del saldo el total de las apuestas:

  var total=0;
        for (var i in apuestas){
            total+=parseInt(apuestas[i]);
        }
		saldo-=total;

– Obtener un número entre 0 y 36
– Si el número es cero avisar de que ha perdido.
– Si el número es rojo y ha apostado a rojo darle de premio la apuesta
– Idem negro
– Idem par
– Idem impar
– Idem passe
– Idem manque
– Informar de número, premios, saldo, etcétera.