Código
#include <iostream> #include <stdio.h> #include <math.h> #include <cstdlib> #include <ctime> using namespace std; struct jugador //Estructura para el registro de los participantes { char nombre[50]; char apellido[50]; char cedula[8]; char monto[20]; }; struct carton //Estructura para la creación del cartón de bingo { string letras[5]; int numeros[5][5]; }; void inscripcion(struct jugador &j) //Subprograma que permite realizar la inscripcion del jugador { cout << "Introduzca su nombre: "<<endl; cin >> j.nombre; fflush(stdin); //Limpiamos el búfer cout << "Introduzca su apellido: "<<endl; cin >> j.apellido; fflush(stdin); //Limpiamos el búfer cout << "Introduzca su cedula: "<<endl; cin >> j.cedula; fflush(stdin); //Limpiamos el búfer cout << "Introduzca el monto a apostar: "<<endl; cin >> j.monto; fflush(stdin); } void crear_carton (struct carton &bingo, int cantidad_cartones) { int inicio, fin, rango; int numeroRandom; srand((unsigned)time(0)); //Inicializacion del random for(int i = 0; i < cantidad_cartones; i++) { bingo[i].letras[0] = "B"; bingo[i].letras[1] = "I"; bingo[i].letras[2] = "N"; bingo[i].letras[3] = "G"; bingo[i].letras[4] = "O"; } for(int i = 0; i < cantidad_cartones; i++) //Llenado del carton de bingo { inicio = 1, fin = 15; rango = (fin-inicio)+1; for (int j = 0; j< 5; j++) //Llenado de la columna B de los cartones de bingo { numeroRandom = inicio + int(rango * rand() / (RAND_MAX + 1.0)); bingo[i].numeros[0][j]=numeroRandom; } inicio = 16, fin = 30; rango = (fin-inicio) + 1; for(int j = 0; j < 5; j++) //Llenado de la columna I de los cartones de bingo { numeroRandom = inicio + int(rango * rand() / (RAND_MAX + 1.0)); bingo[i].numeros[1][j]=numeroRandom; } inicio = 31, fin = 45; rango = (fin-inicio) + 1; for(int j = 0;j < 5; j++) // Llenado de la columna N de los cartones del bingo { numeroRandom = inicio + int(rango * rand() / (RAND_MAX + 1.0)); bingo[i].numeros[2][j]=numeroRandom; } inicio = 46, fin = 60; rango = (fin-inicio) + 1; for(int j = 0; j < 5; j++) // Llenado de la columna G de los cartones del bingo { numeroRandom = inicio + int(rango * rand() / (RAND_MAX + 1.0)); bingo[i].numeros[3][j]=numeroRandom; } inicio = 61, fin = 75; rango = (fin-inicio) + 1; for(int j = 0;j < 5; j++) // Llenado de la columna O de los cartones del bingo { numeroRandom = inicio + int(rango * rand() / (RAND_MAX + 1.0)); bingo[i].numeros[4][j]=numeroRandom; } } } void imprimir_carton (struct carton bingo, int cantidad_cartones) { for(int i = 0; i < cantidad_cartones; i++) { cout<<bingo[i].letras[0]<<"\t"; cout<<bingo[i].letras[1]<<"\t"; cout<<bingo[i].letras[2]<<"\t"; cout<<bingo[i].letras[3]<<"\t"; cout<<bingo[i].letras[4]<<"\t"; cout<<endl; for(int k = 0; k < 5; k++) { cout<<bingo[i].numeros[0][k]<<"\t"; cout<<bingo[i].numeros[1][k]<<"\t"; cout<<bingo[i].numeros[2][k]<<"\t"; cout<<bingo[i].numeros[3][k]<<"\t"; cout<<bingo[i].numeros[4][k]<<"\t"<<endl; } cout<<endl; } cout<<endl<<endl; } int main() { jugador j [3]; //Declaración de la estructura del jugador carton bingo [10]; //Declaracion del carton de bingo int opcion, rpta, cont= 1, i=0; //Variables - Inscripcion int aux = 0; cout<<"Bienvenido al juego de BINGO."<<endl; do { cout<<"1. Inscripcion. "<<endl; cout<<"2. Jugar. "<<endl; cout<< "3. Record. "<<endl; cout<< "4. Salir. "<<endl; cout<< "Introduzca opcion (1-4): "; cin>> opcion; //Inicio del anidamiento switch (opcion) { case 1: //Inscripcion de jugadores //PROBLEMA: NO SE DEBE REALIZAR INSCRIPCION MAS DE UNA VEZ Y FALTA COMPROBAR LOS NUMEROS DE CEDULA cout<<"Cantidad de jugadores a registrar: "<<endl; cin>>rpta; aux= rpta; if((rpta>0)&&(rpta<= 3)) { do { cout<<"Inscripcion del jugador # "<<cont<<endl; cont++; inscripcion (j[i]); i++; rpta= rpta-1; } while (rpta>0); } else { cout<<"Debe ingresar una cantidad de jugadores diferente."<<endl; } break; case 2: //Jugar - Crear cartones para jugadores crear_carton (bingo, aux); imprimir_carton (bingo, aux); //case 3: {Record} } } while (opcion!=4); //No hay opcion 4 sino que el programa se cierra cuando el usuario coloca "4" return 0; }
Engel Lex:
- Los códigos deben ir en etiquetas GeSHi
- Los titulos deben ser descriptivos