Cómo escribir un programa de lotería en lenguaje C
/*
Ingrese y almacene la información de los participantes de la lotería por adelantado, principalmente a través de la matriz de estructura. Cada registro está representado por una estructura, que incluye número de identificación, nombre y número de teléfono. , dirección, etc. información. Cuando comienza la lotería, el número de identificación del participante parpadea rápidamente en la pantalla. Presione cualquier tecla para detener el parpadeo y la información del ganador se muestra en la pantalla. Se pueden sortear repetidamente varios primeros premios, segundos premios y terceros premios.
Diseñar e implementar las siguientes funciones:
(1) Entrada: completar el ingreso de información de la lotería;
(2) Eliminar: eliminar información de la lotería;< /p >
(3) Modificación: Los datos ingresados se pueden editar y modificar nuevamente
(4) Visualización: Muestra la información de todos los ganadores
(5) Sorteo:
A. Saque 1 primer premio y no podrá volver a sortear;
B. Saque dos segundos premios y no podrá volver a sortear; C. Sorteo de 5 terceros premios Una vez finalizado el sorteo no se pueden sortear más;
(6) Salir del programa. */
#incluye
#incluye
#incluye
#incluye
#incluye
#includes
#define número de pedido 10
estructura typedef tag_award
{
char ID[20];
char nombre[20];
char telNo[20];
char dirección[50];
} PREMIO
un guardián * un guardián = new un guardián[un guardián _ NUM];
int primer _ premio[1]= {-1 }
int segundo_premio[ 2] = {-1,-1};
int tercer_premio[5] ={-1,-1,-1,-1,-1};
int adjudicador _ num = 0;
Información_login() no válida
{
if(adjudicador _ num>=cantidad del pedido)
{
PREMIO * nuevo _ un guardián = nuevo un guardián[un guardián _ NUM+un guardián _ NUM];
memcpy(new_awarder, adjudicador, un guardián _ num * sizeof(un guardián ));
Eliminar pedido;
adjudicador = nuevo _ adjudicatario
}
Printf("Número de identificación:");
scanf("%s ", adjudicador[awarder_num].ID);
printf(" nombre:");
scanf( "%s ", adjudicador[awarder_num].
Printf("número de teléfono:");
scanf("%s ", adjudicador[awarder_num]. telNo);
Printf("Dirección particular:");
scanf("%s ", adjudicador[awarder_num].Dirección);
adjudicador _ num++; p>}
void info_delete()
{
char name[20];
Printf(" Ingrese el nombre de la lotería para ser eliminado: ");
scanf("%s ", nombre);
for(int I = 0; i<awarder_numi++)
{
if (strcmp(awarder[i].name, name) == 0)
{
Printf("Usted elige eliminar La información de la lotería es la siguiente: \n ");
Printf ("Número de identificación: %s\n ", adjudicador[i]. ID);
Printf ("Nombre: %s\n ", adjudicador[i]. Nombre
Printf ("Número de teléfono: %s\n ", adjudicador[); i]. telNo);
Printf("Dirección particular: %s\n ", adjudicador[i].
dirección);
Rotura;
}
}
if(i == cantidad del pedido)
{
Printf("¡No se encontró la lotería que ingresaste! \ n "
}
Otros
{); p >
char c;
Printf("¿Está seguro de que desea eliminar? (Y//N)");
fflush(stdin);
scanf("%c ", & ampc);
if(c == 'Y' || c == 'y ')
{
PREMIO * nuevo_premio = nuevo PREMIO[PREMIO_num-1];
if(i<=0)
memcpy(nuevo_premio, adjudicador+1, tamaño de(PREMIO)*( ADJUDICADOR _ num-1));
else if (I>=número de pedido-1)
memcpy(new_award, adjudicador, sizeof(ADJUDICADOR)*(ADJUDICADOR _ num -1 ));
Otro
{
memcpy(new_award, Awarder, sizeof(AWARDER)* I);
memcpy (new_award +i, adjudicador+i+1, tamaño de(ADJUDICADOR)*(ADJUDICADOR _ num-I-1));
}
adjudicador _ num-;
Eliminar pedido;
premio = nuevo _ premio
}
}
}
anular info_modify ()
{
char name[20];
Printf("Ingrese el nombre de la lotería que desea modificar:");
scanf("%s ", nombre);
for(int I = 0; i & ltawarder _ numi++)
{
if (strcmp ( adjudicador[i].nombre, nombre) == 0)
{
Printf("La información de la lotería que seleccionó es la siguiente:\ n ");
Printf ("Número de identificación: %s\n ", adjudicador[i]. ID);
Printf ("Nombre: %s\n ", adjudicador[i]. Nombre
Printf ("Número de teléfono: %s\n ", adjudicador[); i].telNo);
Printf("Dirección particular: %s\n ", adjudicador[i].Dirección);
Pausa;
}
}
if(i == cantidad del pedido)
{
Printf("¡No se encontró la lotería que ingresó!\ n ");
}
Otros
{
Printf("Ingrese nueva información para esta lotería:\ n ") ;
Printf("Número de tarjeta de identificación:");
scanf("%s ", comando[i].ID);
printf(" nombre: ");
scanf("%s ", comando[i]. Nombre);
Printf("Número de teléfono:");
scanf("%s ", comando[i].telNo);
Printf("Dirección particular:");
scanf("%s", comando[i].
dirección);
}
}
bool check_over(int cur_award, int AwarderNo)
{
if(awarderNo == 1)
{
if(cur_award == first_award[0])
Devuelve verdadero
}
else if(awarderNo & lt; = 3)
{
if(cur_award == first_award[0])
Devuelve verdadero
for(int I = 0;i<awarderNo-1;i++)
if (recompensa actual == segunda recompensa[i])
Devuelve verdadero p>
}
else if(awarderNo <= 8)
{
if(cur_award == first_award[0] )
Devuelve verdadero
for(int I = 0;i<2;i++)
if (recompensa actual == segunda recompensa[i])
Devuelve verdadero
for(I = 0;i<awarderNo-3;i++)
if(cur_award ==third_award[i])
Devuelve verdadero
}
Devuelve falso
}
Recompensa no válida()
{
if( Awarder _ num & lt; 8)
{
Printf("El número de personas es demasiado pequeño, ¡agregue suficientes personas antes de dibujar!\ n ");
Regresar;
}
srand((long) time(0));
char hit _ id[20];
printf("\nEmpieza a sacar el primer premio (1), presiona cualquier tecla para comenzar...\n");
getch();
And(! kbhit())
{
primer _ premio[0]= rand()% un guardián _ num;
memcpy(hit_id , adjudicador[primer_premio[ 0]].ID,18);
printf(" \r ");
printf("\r %s ", pulsa _ id
<); p>}printf(" \ n \ nEmpieza a sacar el segundo premio (2)"
for(int I = 0; I<2 ;i++)
<); p>{printf("\nEl %d segundo premio, presiona cualquier tecla para comenzar...\n ",I+1);
getch(); p>
Y (! kbhit())
{
segundo _ premio[I]= rand()% un guardián _ num;
mientras(verificar _ sobre(segundo _ premio[I], 1+i))
segundo _ premio[I]= rand()% un guardián _ num;
memcpy(hit_id, adjudicador[segundo_premio[i] ].
ID, 18);
printf(" \r ");
printf("\r %s ", hit _ id);
}
}
printf(" \ n \ nEmpieza a sacar el tercer premio (5)"
for(I = 0;I<5;i++ ) p>
{
printf("\nEl %d tercer premio, presiona cualquier tecla para comenzar...\n ",I+1);
getch() ;
Y(!kbhit())
{
tercer _ premio[I]= rand()% un guardián _ num ;
while(check _ over(tercer _ premio[I], 3+i))
tercer _ premio[I]= rand()% un guardián _ num;
memcpy(hit_id, adjudicador[tercer_premio[i]].ID, 20);
printf("\r");
printf("\r %s ", hit_id );
}
}
}
void info_show()
{
Printf("Ganador del primer premio:\ n ");
Printf("\t número de identificación: % s \ n ",Premiador [primer _ premio [0 ]]. id ); p>
Printf ("\ tname:% s \ n ", Adjudicador [primer _ premio [0]]. Nombre
printf (" \ t Número de teléfono: % s \ n "); , Adjudicador [first_award [0]].telno);
printf("\tDirección particular: % s\n ", Adjudicador [first_award [0]]. ]]. Dirección);
Printf("Ganador del segundo premio:\ n ");
for(int I = 0; i<2;i++)
{
Printf ( "%dGanador del segundo premio:\ n ");
Printf("\tNúmero de ID:% s\ n ",Premiador [segundo _ premio [i]]. id
Printf ("\tname:%s\n", Adjudicador [segundo_premio[i]]. nombre);
printf("\tNúmero de teléfono:% s\n",Premiador[segundo_premio[i]].telno);
printf("\tDirección particular: % s \ n ", Premiador [segundo _ premio [i]]. Dirección);
}
Printf("Ganador del tercer premio:\ n ");
for(int I = 0;I<5;i++)
{
Printf ("%dGanador del tercer premio:\ n ");
Printf(" \tID número:% s\n ",Premiador [tercer _ premio [i]].id);
Printf("\tname:% s\n" ",Premiador[tercer_premio[i]] .nombre);
printf("\tNúmero de teléfono:% s\n",Premiador[tercer_premio[i]].telno);
printf(" \tDirección particular: % s \ n ", Adjudicador [Tercer _ Premio [I]]. Dirección);
}
}
/*Información inmediata*/
bool rise()
{
printf("\nIngrese el código de operación que necesita:\ n "); t1. Enter: Ingresa la información de la lotería; \n ");
Printf("\t2. Delete: Elimina la información de la lotería; \n ");
Printf("\ t3.
Modificación: Permitir que los datos ingresados sean editados y modificados nuevamente;\n ");
Printf("\t4. Lotería: ¡Inicia la lotería!\n ");
Printf (" \t5. Display: muestra información sobre todos los ganadores;\n ");
Printf("\t6. Exit.\n ");
printf(" = = > ;));
operación int;
fflush(stdin);
scanf("%d ", & amp operación);
Interruptor (operación)
{
Caso 1:
info_log in();
Interrupción;
Caso dos:
info_delete();
Pausa;
Caso tres:
info_modify(
Pausa;
Caso 4:
premio();
Pausa
Caso 5:
info_show();
Pausa;
Caso 6:
Devuelve falso
Valor predeterminado:
Break;
}
printf("\nLa operación se ha completado.
\ n ");
devuelve verdadero
}
void main()
{
mientras( subir());
}