como puedo evitar que el usuario siga ingresando en la opcion "inscripcion"

Iniciado por MILAGRITOS, 18 Julio 2017, 20:29 PM

0 Miembros y 1 Visitante están viendo este tema.

MILAGRITOS

Tengo varias dudas pero dos principales, 1) como puedo evitar que el usuario siga ingresando en la opcion "inscripcion" una vez que ya tenga registrado 3 participantes y lance un "Cantidad de jugadores MAXIMA alcanzada" y 2) problema de variable con carton e int (el struct)

Código (cpp) [Seleccionar]
#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