sábado, 9 de enero de 2016

Simon

#include <iostream>
#include <conio2.h>
#include <fstream.h>
#include <windows.h>
using namespace std;
#define N 10
#define maxcar 20
#define M 30
typedef int aleatorios_juego[N];
typedef int fibonacci_puntos[N];
typedef char vector_nick[maxcar];
typedef struct {
int codigo;
vector_nick nombre;
int partidas;
int puntuacion_ultima;
int puntuacion_max;
int veces_final;
} datos_jugador;
typedef struct {
aleatorios_juego al;
fibonacci_puntos punt_fib;

} numerosypuntos;

//Prototipo modulos
void presentacion();
int menu();
numerosypuntos inicializar();
void mostrar_aleatorios_prueba(numerosypuntos & n);
void asteriscos();
datos_jugador introducir_datos();
void visualizar_datos(datos_jugador j);
void introducir_datos_fichero(datos_jugador j, ofstream & escritura_jugadores);
bool existencia_jugador_fichero(datos_jugador & j, ifstream & lectura_jugadores,
int codigoint);
void carga_colores_sonidos_numero0(numerosypuntos n);
void jugar(datos_jugador & j, numerosypuntos n, bool controlador);
void carga_colores_sonidos_numero1(numerosypuntos n);
void carga_colores_sonidos_numero2(numerosypuntos n);
void carga_colores_sonidos_numero3(numerosypuntos n);
void carga_colores_sonidos_numero4(numerosypuntos n);
void carga_colores_sonidos_numero5(numerosypuntos n);
void carga_colores_sonidos_numero6(numerosypuntos n);
void carga_colores_sonidos_numero7(numerosypuntos n);
void carga_colores_sonidos_numero8(numerosypuntos n);
void carga_colores_sonidos_numero9(numerosypuntos n);
void carga_colores_sonidos_numero10(numerosypuntos n);
bool ronda_1(numerosypuntos n, datos_jugador & j);
bool ronda_2(numerosypuntos n, datos_jugador & j);
bool ronda_3(numerosypuntos n, datos_jugador & j);
bool ronda_4(numerosypuntos n, datos_jugador & j);
bool ronda_5(numerosypuntos n, datos_jugador & j);
bool ronda_6(numerosypuntos n, datos_jugador & j);
bool ronda_7(numerosypuntos n, datos_jugador & j);
bool ronda_8(numerosypuntos n, datos_jugador & j);
bool ronda_9(numerosypuntos n, datos_jugador & j);
bool ronda_10(numerosypuntos n, datos_jugador & j);
void instrucciones_juego(numerosypuntos n);
void actualizar_fichero(ofstream & escritura_jugadores, datos_jugador j);
int calculo_fibonacci(int n);

int main() {

datos_jugador jug;
numerosypuntos nu;
int opc;
ifstream lectura_jugadores;
ofstream escritura_jugadores;
bool cont;
int cod;
presentacion();
opc = menu();

while (opc != 10) {
switch (opc) {
case 1:
cout
<< "Inicializamos el conjunto de aleatorios de enteros y puntos para jugar."
<< endl;
nu = inicializar();
asteriscos();
break;
case 2:
cout << "Introduce tus datos :" << endl;
jug = introducir_datos();
asteriscos();
break;
case 3:
cout << "Comprobaremos los aleatorios generados." << endl;
mostrar_aleatorios_prueba(nu);
asteriscos();
break;
case 4:
cout << "Estos son los datos del jugador :" << endl;
asteriscos();
visualizar_datos(jug);
asteriscos();
break;
case 5:
cout
<< "Introducimos los datos del jugador en el fichero " "simon.txt" ""
<< endl;
introducir_datos_fichero(jug, escritura_jugadores);
cout
<< "Los datos han sido introducidos al fichero satisfactoriamente ."
<< endl;
break;
case 6:
cout
<< "Comprobamos si el jugador introducido está disponible en el fichero :"
<< endl;
cout << "Introduce codigo del jugador para localizar :" << endl;
cin >> cod;
existencia_jugador_fichero(jug, lectura_jugadores, cod);
asteriscos();
break;
case 7:
instrucciones_juego(nu);
asteriscos();
break;
case 8:
textcolor(LIGHTBLUE);
cout << "¡¡BIENVENIDO/A AL JUEGO DEL SIMON:   " << jug.nombre
<< endl;
Sleep(2000);
jugar(jug, nu, cont);
break;
case 9:
actualizar_fichero(escritura_jugadores, jug);
asteriscos();
break;
}
opc = menu();
}
cout << "Eso, ¡sin viciarse que eso es malo!" << endl;
system("PAUSE");

return 0;
}
void presentacion() {
textcolor(YELLOW);
cout
<< "***********************************************************************************************"
<< endl;
cout
<< "******************************  BIENVENIDO/A LA PRACTICA FINAL DE FP       ********************"
<< endl;
cout
<< "******************************            CURSO 2015/16                    ********************"
<< endl;
cout
<< "******************************          JUEGO 'SUPER SIMON'                ********************"
<< endl;
cout
<< "******************************    REALIZADO POR: LEANDRO & TOMAS & RICARDO ********************"
<< endl;
cout
<< "***********************************************************************************************"
<< endl;
Beep(330, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(330, 100);
Sleep(300);
Beep(262, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(392, 100);
Sleep(700);
Beep(196, 100);
Sleep(700);

}
int menu() {
textcolor(WHITE);
int opcion;
cout << "1.INICIALIZAR NUMEROS ALEATORIOS Y PUNTOS." << endl;
cout << "2.INICIALIZAR JUGADOR NUEVO." << endl;
cout
<< "3.VISUALIZAR NUMEROS ALEATORIOS(SOLO PARA PRUEBAS): BAJO CONTRASEÑA."
<< endl;
cout << "4.VISUALIZAR LOS DATOS DEL JUGADOR." << endl;
cout << "5.INTRODUCIR JUGADOR EN EL FICHERO." << endl;
cout << "6.COMPROBACION DE LA EXISTENCIA DEL JUGADOR EN EL FICHERO."
<< endl;
cout << "7.INSTRUCCIONES DEL JUEGO (MÓDULO EXTRA AÑADIDO POR NOSOTROS)"
<< endl;
cout << "8.JUGAR AL JUEGO." << endl;
cout << "9.ACTUALIZAR DATOS DEL FICHERO DE JUGADORES." << endl;
cout << "10.SALIR DEL PROGRAMA." << endl;
cout << "Introduce opcion de 1 a 10 :" << endl;
cin >> opcion;
while (opcion < 1 || opcion > 10) {
cout
<< "Error, opciOn introducida no es valida. Introduce una opcion de 1 a 9 :"
<< endl;
cin >> opcion;
}
return opcion;
}

numerosypuntos inicializar() {
numerosypuntos n;
srand(time(NULL));

for (int i = 0; i < N; i++) {
n.al[i] = rand() %11;
}

for (int i = 0; i < N; i++) {

n.punt_fib[i] = calculo_fibonacci(i);

}

cout << "Aleatorios y puntos inicializados satisfactoriamente:)" << endl;
return n;
}

void mostrar_aleatorios_prueba(numerosypuntos & n) {

//Contraseña: 12345
int contrasena;
cout
<< "Mostraremos el vector con todos los aleatorios, pero antes, INTRODUZCA SU CONTRASENIA :"
<< endl;
cin >> contrasena;
while (contrasena != 12345) {
cout
<< "Error, contraseña incorrecta. Introduzca de nuevo la contraseña :"
<< endl;
cin >> contrasena;
}
cout << "Aqui estan los aleatorios generados en el vector :" << endl;
for (int i = 0; i < N; i++) {
cout << "El numero :   " << i << "    es     :" << n.al[i] << endl;
}
for (int i = 0; i < N; i++) {
cout << "En la posicion fibonacci :  " << i
<< "   se encuentrar los puntos:   " << n.punt_fib[i] << endl;
}

}
void asteriscos() {
cout
<< "**************************************************************************************"
<< endl;
}

int calculo_fibonacci(int n) {
int fib;
if ((n == 0) || (n == 1)) {
fib = 1;
} else {
fib = (calculo_fibonacci(n - 2) + calculo_fibonacci(n - 1));
}

return fib;

}
datos_jugador introducir_datos() {

datos_jugador j;
cout << "Introduce el codigo del jugador :" << endl;
cin >> j.codigo;
cout << "Introduce el nombre del jugador :" << endl;
cin >> j.nombre;
j.partidas = 0;
j.puntuacion_ultima = 0;
j.puntuacion_max = 0;
j.veces_final = 0;

return j;

}

void visualizar_datos(datos_jugador j) {
cout << "El codigo del jugador es  :    " << j.codigo << endl;
cout << "EL nombre del jugador es  :    " << j.nombre << endl;
cout << "El jugador   :   " << j.nombre << "    lleva   :" << j.partidas
<< "   jugadas  ." << endl;
cout << "El jugador   :   " << j.nombre << "  consiguo un total de   :   "
<< j.puntuacion_ultima << "    puntos la ultima vez que jugo. "
<< endl;
cout << "El jugador   :   " << j.nombre
<< "   ha conseguido una puntuacion maxima de :  "
<< j.puntuacion_max << "  puntos." << endl;
cout << "El jugador   :   " << j.nombre
<< "   ha llegado al final del juego  :   " << j.veces_final
<< "  veces." << endl;
}

void introducir_datos_fichero(datos_jugador j, ofstream & escritura_jugadores) {
cout
<< "Vamos a guardar los datos del jugador en el fichero de texto : simon.txt."
<< endl;
escritura_jugadores.open("simon.txt");
if (escritura_jugadores.fail()) {
cout << "Error en la apertura del fichero simon.txt, lo sentimos."
<< endl;
} else {
escritura_jugadores << j.codigo << endl;
escritura_jugadores << j.nombre << endl;
escritura_jugadores << j.partidas << endl;
escritura_jugadores << j.puntuacion_ultima << endl;
escritura_jugadores << j.puntuacion_max << endl;
escritura_jugadores << j.veces_final << endl;

}
escritura_jugadores.close();
}

bool existencia_jugador_fichero(datos_jugador & j, ifstream & lectura_jugadores,
int codigoint) {
bool existe = false;
lectura_jugadores.open("simon.txt");
if (lectura_jugadores.fail()) {
cout
<< "Lo sentimos, se ha producido un error en la lectura del fichero."
<< endl;

} else {
lectura_jugadores >> j.codigo;
while (!lectura_jugadores.eof() && existe == false) {
if (codigoint == j.codigo) {
existe = true;
}
lectura_jugadores >> j.nombre;
lectura_jugadores >> j.partidas;
lectura_jugadores >> j.puntuacion_max;
lectura_jugadores >> j.puntuacion_ultima;
lectura_jugadores >> j.veces_final;
lectura_jugadores >> j.codigo;
}

if (existe == false) {
cout
<< "El jugador que has introducido no se encuentra en el fichero, por lo tanto, lo vamos a introducir:  "
<< endl;
j = introducir_datos();
}

cout << "Datos leidos correctamente..." << endl;
if (codigoint == j.codigo) {
cout << "El jugador con codigo  :    " << codigoint
<< "   si existe en el fichero." << endl;
}

}

lectura_jugadores.close();
return existe;
}
void carga_colores_sonidos_numero0(numerosypuntos n) {
if (n.al[0] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[0] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[0] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[0] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[0] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[0] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[0] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[0] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[0] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[0] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[0] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero1(numerosypuntos n) {
if (n.al[1] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[1] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[1] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[1] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[1] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[1] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[1] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[1] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[1] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[1] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[1] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero2(numerosypuntos n) {
if (n.al[2] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[2] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[2] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[2] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[2] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[2] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[2] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[2] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[2] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[2] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[2] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero3(numerosypuntos n) {
if (n.al[3] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[3] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[3] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[3] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[3] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[3] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[3] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[3] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[3] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[3] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[3] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero4(numerosypuntos n) {
if (n.al[4] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[4] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[4] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[4] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[4] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[4] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[4] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[4] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[4] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[4] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[4] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero5(numerosypuntos n) {
if (n.al[5] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[5] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[5] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[5] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[5] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[5] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[5] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[5] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[5] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[5] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[5] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}
void carga_colores_sonidos_numero6(numerosypuntos n) {
if (n.al[6] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[6] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[6] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[6] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[6] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[6] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[6] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[6] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[6] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[6] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[6] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}

void carga_colores_sonidos_numero7(numerosypuntos n) {
if (n.al[7] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[7] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[7] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[7] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[7] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[7] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[7] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[7] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[7] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[7] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[7] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}

void carga_colores_sonidos_numero8(numerosypuntos n) {
if (n.al[8] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[8] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[8] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[8] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[8] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[8] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[8] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[8] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[8] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[8] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[8] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}

void carga_colores_sonidos_numero9(numerosypuntos n) {
if (n.al[9] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[9] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[9] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[9] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[9] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[9] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[9] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[9] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[9] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[9] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[9] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}

void carga_colores_sonidos_numero10(numerosypuntos n) {
if (n.al[10] == 0) {
textcolor(1);
Beep(500, 200);
}
if (n.al[10] == 1) {
textcolor(2);
Beep(200, 101);
}
if (n.al[10] == 2) {
textcolor(3);
Beep(797, 145);
}
if (n.al[10] == 3) {
textcolor(4);
Beep(567, 189);
}
if (n.al[10] == 4) {
textcolor(5);
Beep(345, 200);
}
if (n.al[10] == 5) {
textcolor(6);
Beep(200, 400);
}
if (n.al[10] == 6) {
textcolor(7);
Beep(320, 134);
}
if (n.al[10] == 7) {
textcolor(8);
Beep(302, 211);
}
if (n.al[10] == 8) {
textcolor(9);
Beep(211, 400);
}
if (n.al[10] == 9) {
textcolor(10);
Beep(322, 1000);
}
if (n.al[10] == 10) {
textcolor(11);
Beep(233, 544);

} //Fin for
}

bool ronda_1(numerosypuntos n, datos_jugador & j) {
bool controlador=true;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << endl;
Sleep(1500);
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<1;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[0];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 1." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;


cout << "******************RONDA 2*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = j.puntuacion_ultima-M/3;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_2(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<2;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[1];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 2." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

cout << "******************RONDA 3*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[1];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_3(numerosypuntos n, datos_jugador & j) {
bool controlador=true;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<3;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[2];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 3." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

cout << "******************RONDA 4*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[1];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_4(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<4;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[3];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 4." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;


cout << "******************RONDA 5*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[2];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_5(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<3;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[4];
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 5." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

j.puntuacion_ultima = n.punt_fib[4] + M / 2;
cout<< "Y POR HABER PASADO YA LA MITAD DEL JUEGO, ¡¡¡TE LLEVAS UN BONUS DE 15 PUNTOS!!!" << endl;
Beep(322, 1000);
Beep(122, 1000);
Beep(343, 1000);
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

cout << "******************RONDA 6*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[3];
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_6(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << "        ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<6;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[5]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 6." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

cout << "******************RONDA 7*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[4]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_7(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << "        ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << "        ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<7;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[6]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 7." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;


cout << "******************RONDA 8*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[5]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_8(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << "        ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << "        ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << "        ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<9;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[7]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 8." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;


cout << "******************RONDA 9*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[6]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_9(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << "        ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << "        ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << "        ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << "        ";
Sleep(1500);
carga_colores_sonidos_numero8(n);
cout << n.al[8] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<9;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[8]+M/2;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 9 ." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;


cout
<< "******************RONDA 10*************************************"
<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[7]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

bool ronda_10(numerosypuntos n, datos_jugador & j) {
bool controlador;
int numero_int;
clrscr();
carga_colores_sonidos_numero0(n);
cout << n.al[0] << "        ";
Sleep(1500);
carga_colores_sonidos_numero1(n);
cout << n.al[1] << "        ";
Sleep(1500);
carga_colores_sonidos_numero2(n);
cout << n.al[2] << "        ";
Sleep(1500);
carga_colores_sonidos_numero3(n);
cout << n.al[3] << "        ";
Sleep(1500);
carga_colores_sonidos_numero4(n);
cout << n.al[4] << "        ";
Sleep(1500);
carga_colores_sonidos_numero5(n);
cout << n.al[5] << "        ";
Sleep(1500);
carga_colores_sonidos_numero6(n);
cout << n.al[6] << "        ";
Sleep(1500);
carga_colores_sonidos_numero7(n);
cout << n.al[7] << "        ";
Sleep(1500);
carga_colores_sonidos_numero8(n);
cout << n.al[8] << "        ";
Sleep(1500);
carga_colores_sonidos_numero9(n);
cout << n.al[9] << endl;
textcolor(WHITE);
cout << "Esperamos 5 segundos a que memorices el contenido..." << endl;
Sleep(5000); //Espero 5 segundos
clrscr();
cout << "Introduce los numeros que has visto :" << endl;
for(int i=0;i<10;i++)
{
cin>>numero_int;
if(numero_int!=n.al[i])
{
controlador=false;
break;
}

}
if(controlador)
{
j.puntuacion_ultima = n.punt_fib[9]+M/2+M;
cout << "¡¡FELICIDADES!! Has logrado pasar la ronda 10." << endl;
cout << "Llevas una puntuacion total de   :  " << j.puntuacion_ultima
<< endl;

j.veces_final++;
j.partidas++;
cout<< "ENHORABUENA, ¡¡¡ERES UN AUTENTICO GENIO!!! HAS CONSEGUIDO ACABARTE EL JUEGO."<< endl;
cout<< "**********************¡¡¡FIN DEL JUEGO!!!*************************************"<< endl;
Sleep(4000);
}
else
{
j.partidas++;
j.puntuacion_ultima = n.punt_fib[8]+M/2;
j.puntuacion_max = j.puntuacion_ultima;
cout << "Tu puntuacion es de :   " << j.puntuacion_max << endl;
}

return controlador;

}

void jugar(datos_jugador & j, numerosypuntos n, bool controlador) {
bool prueba = true;
controlador = ronda_1(n, j);
prueba = controlador;
if (prueba == true) {
controlador = ronda_2(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_3(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_4(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_5(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_6(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_7(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_8(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_9(n, j);
prueba = controlador;
}

if (prueba == true) {
controlador = ronda_10(n, j);
prueba = controlador;
} else {
cout << "Has perdido." << endl;
Sleep(4000);
asteriscos();
}

}

void instrucciones_juego(numerosypuntos n) {
textcolor(LIGHTRED);
cout
<< "******************************************************************************************************************************"
<< endl;
cout
<< "*********************************************INSTRUCCIONES DEL JUEGO**********************************************************"
<< endl;
cout
<< "******************************************************************************************************************************"
<< endl;
textcolor(WHITE);
cout << "1.-Aparecera un numero en la pantalla." << endl;
cout<< "2.-Deberas memorizar el numero bien, tienes 5 segundos para hacerlo."<< endl;
cout<< "3.-Despues, deberas introducir ese mismo numero correctamente, si no lo haces el juego terminara y perderas. Tu puntuacion sera de -10."<< endl;
cout<< "4.-Si aciertas, iras progresando en el juego, pasaras de ronda. Aparecera el numero que aparecio anteriormente, mas otro nuevo. Asi sera hasta que termines las 10 rondas o pierdas."<< endl;
cout<< "5.-Los puntajes son los siguientes (RONDA 0 ES LA RONDA 1, RONDA 9 ES LA RONDA 10)"<< endl;
for (int i = 0; i < N; i++) {
cout << "Si superas la ronda:  " << i << "  te llevas:    "
<< n.punt_fib[i] << "  puntos." << endl;
}
cout<< "6.-Si consigues llegar a la mitad del juego (ronda 5), recibiras una bonificación extra de 15 puntos."<< endl;
cout<< "7.-Si consigues acabar el juego (ronda 10), recibiras una bonificacion extra de 30 puntos. "<< endl;
textcolor(LIGHTRED);
cout<< "**************************************¡¡A JUGAR!!*****************************************************************************"<< endl;
Beep(330, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(330, 100);
Sleep(300);
Beep(262, 100);
Sleep(100);
Beep(330, 100);
Sleep(300);
Beep(392, 100);
Sleep(700);
Beep(196, 100);
Sleep(700);
textcolor(WHITE);

}

void actualizar_fichero(ofstream & escritura_jugadores, datos_jugador j) {
escritura_jugadores.open("simon.txt");
if (escritura_jugadores.fail()) {
cout << "Error en la apertura del fichero de escritura." << endl;
} else {
escritura_jugadores << j.codigo << endl;
escritura_jugadores << j.nombre << endl;
escritura_jugadores << j.partidas << endl;
escritura_jugadores << j.puntuacion_ultima << endl;
escritura_jugadores << j.puntuacion_max << endl;
escritura_jugadores << j.veces_final << endl;

}
escritura_jugadores.close();
}



martes, 8 de diciembre de 2015

Supermercado(vectores,registros y ficheros)

#include <iostream>
#include <fstream>
using namespace std;
#define max 1
typedef char cadena [20];
typedef struct
{
int dia,mes,anio;
}fecha;
typedef struct
{
int codigo_producto;
cadena producto;
char tipo_producto;
float precio;
fecha fechacaducidad;
int cantidadproductoin;
}producto;
typedef producto supermercado[max];
int menu();
void introducirdatos(supermercado s);
void visualizardatos(const supermercado s);
int cuantosprocaducados(int dia, int mes, int anio, supermercado s);
void cuantosprocomestibles(const supermercado s,int&sicomesti,int&nocomesti);
void ventadeproducto(int codigo, const supermercado s);
void almacenardatos(const supermercado s);
int main()
{ supermercado s;
int cuantos,cod;
int d,m,a;
bool salir;
salir=false;
bool introducidos;
introducidos=false;
int sicomesti,nocomesti;
sicomesti=0;
nocomesti=0;
while(salir==false)
{
switch(menu())
{
case 1: introducirdatos(s);
introducidos=true;
break;
case 2:
if (introducidos==true)
{
visualizardatos(s);
}
else
{
cout<<"Introducir los datos"<<endl;

}
break;
case 3: cout<<"Introduce la fecha a comparar "<<endl;
cout<<"dia:"<<endl;
cin>>d;
cout<<"mes:"<<endl;
cin>>m;
cout<<"anio:"<<endl;
cin>>a;
cuantos=cuantosprocaducados(d,m,a,s);
cout<<"Hay "<<cuantos<<" productos caducados"<<endl;
break;
case 4: cuantosprocomestibles(s,sicomesti,nocomesti);
cout<<"Hay "<<sicomesti<<" productos comestibles"<<endl;
cout<<"Hay "<<nocomesti<<" productos no comestibles"<<endl;
break;
case 5: cout<<"Introduce el codigo del producto a vender"<<endl;
cin>>cod;
ventadeproducto(cod,s);
break;
case 6: almacenardatos(s);
break;
case 7: cout<<"Gracias por usar este programa"<<endl;
salir=true;
break;


}

}

return 0;
}
int menu()
{ int opcion;
cout<<"Menu.Escribe el numero de la opcion que quieras"<<endl;
cout<<"1.Introducir los datos por teclado de los productos"<<endl;
cout<<"2.Visualizar los datos de los productos"<<endl;
cout<<"3.Cantidad de productos caducados"<<endl;
cout<<"4.Cantidad de productos comestibles y no comestibles"<<endl;
cout<<"5.Simulacion de venta de algun producto"<<endl;
cout<<"6.Almacenar los datos en el fichero de texto"<<endl;
cin>>opcion;
while(opcion<1||opcion>6)
{
cout<<"Error.Introduce una opcion que sea correcta"<<endl;
cin>>opcion;
}
return opcion;
}
void introducirdatos(supermercado s)
{
for(int i=0;i<max;i++)
{
cout<<"Introduce el codigo del producto"<<endl;
cin>>s[i].codigo_producto;
cout<<"Introduce nombre del producto"<<endl;
cin>>s[i].producto;
cout<<"Introduce tipo de producto(comestible :c y no comestible :n)"<<endl;
cin>>s[i].tipo_producto;

cout<<"Introduce precio del producto"<<endl;
cin>>s[i].precio;
while(s[i].precio<=0)
{
cout<<"Error, el precio debe ser >0"<<endl;
cin>>s[i].precio;
}
cout<<"Introduce fecha de caducidad del producto"<<endl;
cout<<"Introduce el dia:"<<endl;
cin>>s[i].fechacaducidad.dia;
while(s[i].fechacaducidad.dia<1||s[i].fechacaducidad.dia>31)
{
cout<<"Error mete dia correcto"<<endl;
cin>>s[i].fechacaducidad.dia;
}
cout<<"Introduce mes:"<<endl;
cin>>s[i].fechacaducidad.mes;
while(s[i].fechacaducidad.mes<1||s[i].fechacaducidad.mes>12)
{
cout<<"Error.Mete mes correcto"<<endl;
cin>>s[i].fechacaducidad.mes;
}
cout<<"Introduce anio:"<<endl;
cin>>s[i].fechacaducidad.anio;
while(s[i].fechacaducidad.anio<2014||s[i].fechacaducidad.anio>2025)
{
cout<<"Error.Introduce el año correcto"<<endl;
cin>>s[i].fechacaducidad.anio;
}
cout<<"Introduce la cantidad inicial al abrir la tienda"<<endl;
cin>>s[i].cantidadproductoin;
}
}
void visualizardatos(const supermercado s)
{
for(int i=0;i<max;i++)
{
cout<<"El codigo del producto es: "<<s[i].codigo_producto<<endl;
cout<<"El nombre del producto es: "<<s[i].producto<<endl;
cout<<"El tipo es: "<<s[i].tipo_producto<<endl;
cout<<"El precio es: "<<s[i].precio<<" euros"<<endl;
cout<<"La fecha de caducidad es: "<<s[i].fechacaducidad.dia<<"/"<<s[i].fechacaducidad.mes<<"/"<<s[i].fechacaducidad.anio<<endl;
cout<<"La cantidad de producto en la tienda es: "<<s[i].cantidadproductoin<<endl;

}
}
int cuantosprocaducados(int dia, int mes, int anio, supermercado s)
{
int contador =0;
for(int i=0;i<max;i++)
{
if (s[i].fechacaducidad.anio<anio)
{
contador++;
}
else
{
if ( s[i].fechacaducidad.mes<mes)
{
contador++;
}
else
{
if (s[i].fechacaducidad.dia<dia)
{
contador++;
}

}
}
}

return contador;

}
void cuantosprocomestibles(const supermercado s,int&sicomesti,int&nocomesti)
{
for(int i=0;i<max;i++)
{
if(s[i].tipo_producto=='c'||s[i].tipo_producto=='C')
{
sicomesti++;
}
else
{
nocomesti++;
}

}
}
void ventadeproducto(int codigo, const supermercado s)
{
int i=0;
while(i<max)
{
if (s[i].codigo_producto==codigo)
{
cout<<"el producto es: "<<s[i].producto<<endl;
cout<<"el precio del producto es: "<<s[i].precio<<" euros"<<endl;


}
i++;
}

}
void almacenardatos(const supermercado s)
{
ofstream salida;
salida.open("Super.txt");
if(salida.fail())
{
cout<<"Error.No se ha podido abrir el fichero"<<endl;
}
else
{
cout<<"El fichero se abrio correctamente"<<endl;
for(int i=0;i<max;i++)
{
salida<<s[i].codigo_producto<<" "<<s[i].producto<<" ";
salida<<s[i].tipo_producto<<" "<<s[i].precio<<" "<<s[i].fechacaducidad.dia<<"/"<<s[i].fechacaducidad.mes<<"/"<<s[i].fechacaducidad.anio<<" "<<s[i].cantidadproductoin<<endl;
}
}
salida.close();
}
// fin de programa

jueves, 26 de noviembre de 2015

Diseña, Implementa y Verifica los siguientes módulos: 1.- “virus”: Módulo que visualice por pantalla la palabra virus en rojo, tantas veces como quepan en la pantalla. 2.- “aleatorio_impar_neg”: Módulo que devolverá al módulo llamador un número aleatorio entre valor mínimo y valor máximo que se le hayan pasado por parámetros y que sea impar y negativo. 3.- “media_suma_tres”: Módulo que devuelva al módulo llamador los siguientes resultados: la media y la suma, de tres números enteros pasados como parámetros 4.- “menu”: Módulo que muestre los módulos que se han implementado y permita al usuario ejecutar el que elija. Deberá devolver al programa principal la opción válida seleccionada por el usuario.

//Diseña, Implementa y Verifica los siguientes módulos:
//1.- “virus”: Módulo que visualice por pantalla la palabra virus en rojo, tantas veces como quepan en //la pantalla.
//2.- “aleatorio_impar_neg”: Módulo que devolverá al módulo llamador un número aleatorio entre //valor mínimo y valor máximo que se le hayan pasado por parámetros y que sea impar y negativo.
//3.- “media_suma_tres”: Módulo que devuelva al módulo llamador los siguientes resultados: la media //y la suma, de tres números enteros pasados como parámetros
//4.- “menu”: Módulo que muestre los módulos que se han implementado y permita al usuario ejecutar //el que elija. Deberá devolver al programa principal la opción válida seleccionada por el usuario.

#include <iostream>
#include<conio2.h>
using namespace std;
#define minimo 0
#define maximo 20
//prototipos modulos
void virus();
int aleatorio_impar_neg(int min,int max);
void media_suma_tres(int numero1,int numero2,int numero3,float&media,int&suma);
void menu();

int main() {
srand(time((NULL)));
int numero1,numero2,numero3,suma,opcion,a,ahleatorio;
float media;
//Declaro una variable ahleatorio para devolver el numero aleatorio cuando llame al modulo 3 en el main
a=ahleatorio;
cout<<"Introduce un numero entero:"<<endl;
cin>>numero1;
cout<<"Introduce un numero entero:"<<endl;
cin>>numero2;
cout<<"Introduce un numero entero:"<<endl;
cin>>numero3;
//LLamo al modulo menu
menu();
cout<<"Introduce un opcion:"<<endl;
cin>>opcion;
while(opcion<=0||opcion>=5){
cout<<"Error.Ha introducido un numero diferente a los que le mostramos"<<endl;
cout<<"Introduzca un numero del 1 al 4:"<<endl;
cin>>opcion;
}
//Switch para escoger opciones en el menu
switch(opcion){
case 1: virus();
break;
case 2:cout << "El numero aleatorio entre  es:"<<aleatorio_impar_neg(minimo,maximo)<<endl;
break;
case 3:
media_suma_tres( numero1, numero2, numero3,media,suma);
cout << "La media aritmetica y la suma es:"<<suma<<"y"<<media<<endl;
break;
case 4:cout<<"Usted ha salido"<<endl;
break;
}
system("PAUSE");

return 0;
}
//1.Módulo que visualice por pantalla la palabra virus en rojo, tantas veces como quepan en la pantalla.
//Definición modulo 1.virus
void virus(){
gotoxy(1,1);
textcolor(RED);
//Bucle for anidado para que se vaya completando el programa en negro
for(int fila=1;fila<=25;fila++){
for(int columna=1;columna<=80;columna=columna+5){
gotoxy(columna,fila);
cout<<"virus"<<endl; //Se puede poner tambien print("virus)";
}
}
clrscr();
textcolor(LIGHTGRAY);
}

//2.Módulo que devolverá al módulo llamador un número aleatorio entre valor mínimo
//y valor máximo que se le hayan pasado por parámetros y que sea impar y negativo.
//Definicion modulo 2.aleatorio_impar_neg
int aleatorio_impar_neg(int min,int max){
//Declaro una variable numeroaleatorio que devuelva ese numero aleatorio impar negtivo
int numeroaleatorio;
numeroaleatorio=rand()%(maximo+1-minimo)+minimo;
//Como el aleatorio debe ser impar uso un while
//While para calcular el numero aleatorio si es  impar
//La condición que va dentro del debe ser lo contrario
while(numeroaleatorio%2==0){
//Vuelvo a poner la formula para calcular el numero aleatorio impar negativo
numeroaleatorio=rand()%(maximo+1-minimo)+minimo;
}
//Esto es para pasar el numero aleatorio impar a negativo
numeroaleatorio=-numeroaleatorio;
return numeroaleatorio;
}

//3.Módulo que devuelva al módulo llamador los siguientes resultados:
//la media y la suma, de tres números enteros pasados como parámetros
//Definicion modulo 3.media_suma_tres
void media_suma_tres(int numero1,int numero2,int numero3,float&media,int&suma){
//Las variable numero1,numer2 y numero 3 las declaramos en el main ya que deben ser pasadas como parametros
//Formula para sumar tres numeros
suma=numero1+numero2+numero3;
//Formula para la media aritmetica de tres numeros
//Se debe poner 3.0 y no 3 para que el resultado me lo de en decimales
media=suma/3.0;

}
//4.Módulo que muestre los módulos que se han implementado y permita al usuario ejecutar el que elija.
//Deberá devolver al programa principal la opción válida seleccionada por el usuario.
//Definición modulo 4.menu
void menu(){
cout<<"1.Virus"<<endl;
cout<<"2.Aleatorio_impar_neg"<<endl;
cout<<"3.media_suma_tres"<<endl;
cout<<"4.Salir"<<endl;
cout<<"Elija el modulo que desea ejecutar"<<endl;
}
CONSOLA:

MODULO 1


 MODULO 2


MODULO 3


 MODULO 4




martes, 17 de noviembre de 2015

Cajero 4B

#include <iostream>
using namespace std;
#define min 100
#define max 1000

int main() {
int dinero;
int saldo;
char respuesta;
srand(time(NULL));

cout<<"Bienvenido al cajero 4B"<<endl;
saldo=rand()%(max-100)+min;
cout<<"Tu saldo es:"<<saldo<<" "<<"euros"<<endl;

cout<<"Quieres seguir utilizando el cajero s/n:";
cin>>respuesta;
while(respuesta!='s'&&respuesta!='S'&&respuesta!='n'&&respuesta!='N')
{
cout<<"Se ha producido un error.Intruduce ahora s/n:";
cin>>respuesta;
}
while (respuesta=='s'||respuesta=='S')
{
cout<<"¿Cuanto dinero deseas retirar?:"<<endl;
cin>>dinero;

if(dinero>saldo)
{

cout<<"Lo sentimos.Ya no tienes saldo en tu cuenta.Te quedan:"<<saldo<<" "<<"euros"<<endl;
cout<<"¿Deseas retirar lo que te queda de saldo? responde s/n:";
cin>>respuesta;
while(respuesta!='s'&&respuesta!='S'&&respuesta!='n'&&respuesta!='N')
{
cout<<"Se ha producido un error.Introduzce ahora s/n:";
cin>>respuesta;
}
if(respuesta=='s'||respuesta=='S')
{
cout<<"Te agradecemos que hayas utilizado este cajero"<<endl;
saldo=saldo-dinero;
}

}
else
{
cout<<"Te agradecemos que hayas utilizado este cajero"<<endl;
saldo=saldo-dinero;
}

cout<<"Quieres seguir utilizando el cajero s/n:";
cin>>respuesta;
while(respuesta!='s'&&respuesta!='S'&&respuesta!='n'&&respuesta!='N')
{
cout<<"Se ha producido un error.Introduzce ahora s/n:";
cin>>respuesta;
}
}


cout<<"El cajero no está disposible";

return 0;

}
CONSOLA:


jueves, 5 de noviembre de 2015

4.1.Escribir un algoritmo al que le pasemos dos números enteros y escriba el mayor

//Escribir un algoritmo al que le pasemos dos números enteros y escriba el mayor
#include <iostream>
using namespace std;
//Prototipo de  modulo mayor con dos parametros formales x e y
//Este prototipo será una función porque devolvera un valor y solo un solo valor
//Si devolviese dos valores o mas fuese un procedimiento
int mayor(int x,int y);

int main() {
//Declaramos variables
int numero1,numero2;
//Muestra por pantalla que introduzcas un numero
cout << "Introduce un numero:" << endl; // prints !!!Hello World!!!
//Introducir por teclado un numero
cin>>numero1;
//Muestra por pantalla que introduzcas otro numero
cout<<"Introduce otro numero:"<<endl;
//Introducir por teclado otro numero
cin>>numero2;
//If para comprabar que si numero1>numero2 o viceversa   mostrará por pantalla el numero que sea mayor
if(numero1>numero2 || numero2>numero1){
cout<<"El mayor de los numeros es:"<<" "<<mayor(numero1,numero2)<<endl;
}
return 0;
}
//Declaracion del modulo mayor
//Se declara una variable auxiliar para almacenar el valor de 'x' e 'y' ahí
//Se realiza un if para comprabar que si el numero 'x' es mayor que el numero 'y'.El valor de la x se almacenara en la variable auxiliar
//y si no se cumple la condicion(else) el valor de la y se almacenara en la variable 'y'
//Al final del modulo devolvera el valor que este almacenado en la variable auxiliar; Ese valor del la auxiliar sera el valor de la x(numero1) o el valor de la y(numero2)
//si la x es mayor o la y es mayor
int mayor(int x,int y){
int aux;
if(x>y){
aux=x;
}
else{
aux=y;
}
return(aux);
}
CONSOLA: