¡Recompensa por puntuación alta! ! ! ¿Quién sabe cómo utilizar c para programar un sistema de asientos en una sala de examen? ! !
Para aprender a programar, simplemente lo escribí de nuevo.
Después de ejecutar y depurar, ¡básicamente no hay ningún problema grave!
#include lt;stdlib.hgt;
#include lt;time.hgt;
#include lt;iostreamgt;
#include lt; stringgt;
#include lt; iomanipgt;
usando el espacio de nombres
/************ ************************************/
estudiante de clase
{
público:
estudiante(){ stestnum="" sname=="";}
void setmessage()
{
cingt; gt; stestnumgt; sname;
}
cadena stestnum; > nombre de cadena; //Nombre
};
estudiante cstu[64];
/************** ********* ****************************/
const int fila=8, col=8; //Columna de suma de filas de asientos
/********************************* *********** ***/
void organizar_seat(int asiento[][col]);
void cancel_seat(int asiento[][col] ]);
void find_student(int asiento[][col]);
void find_seat(int asiento[][col]);
void display_seats (int asiento[][col]);
/********************************* *********** */
void main()
{
int elegir, asiento[fila][col], i, j;
para (i=0; ilt; fila; i )
{
para (j=0; jlt; col; j )
{
asiento[i][j] = 0; //0 significa que el asiento está vacío
}
}
hacer
{
coutlt;lt;"----------------------- ----------- --------"lt;lt;endl
lt;lt;"----Entrada: 1------ Organizar asientos para nuevos candidatos"lt;lt;" ---"lt;lt;endl
lt;lt;"---- 2------Cancelar el asiento de alguien en la sala de examen "lt;lt;" ---"lt;lt ;endl
lt;lt;"---- 3------Consulta información del candidato según puesto"lt;lt;" --
-"lt;lt;endl
lt;lt;"---- 4------Verifique el asiento del candidato según el boleto de admisión"lt;lt;" ;lt; endl
lt;lt;"---- 5------Generar el diagrama de asientos de la sala de examen"lt;lt;" ---"lt;lt;endl p>
lt;lt;"---- 0------Salir!"lt;lt;" ---"lt;lt;endl
lt;lt;" ----- -------------------------------------"lt;lt;endl;
cingt; gt; elegir;
si (1 == elegir) organizar_asiento(asiento);
si (2 == elegir) cancelar_asiento(asiento) ;
else if (3 == elegir) find_student(asiento);
else if (4 == elegir) find_seat(asiento); (5 == elegir) display_seats(asiento);
else exit(1);
} while(elegir);
}
/* *******************************************/ p>
//Elija 1 para organizar asientos para nuevos candidatos Método: el usuario ingresa el número y el nombre del boleto de admisión, y el sistema lo genera aleatoriamente
//-------. El número de fila y el número de escaño del candidato. Se requiere que cada candidato tenga un solo escaño y no se puedan colocar nuevos candidatos en los escaños de los candidatos existentes
//------;
void organizar_asiento(int asiento[][col])
{
time_t t;
int nuevoasiento, r=0, c =0;
p>srand((unsigned int)time(amp; t));
for ( r=0; rlt; fila; r )
{
for ( c=0; clt; col; c )
{
if (asiento[r][c] == 0) break; //Hay un asiento vacío
if (r==row amp;amp; c==col)
{
coutlt;lt; "¡Esta clase está llena de candidatos!"lt ;lt;endl;
return ;
}
}
} p>
//--- ----------------------------------//
do
{ p>
newseat = rand()64; //Generar número de asiento
r = newseat/8; >
c = nuevo asiento - r*8; // Columna
} while (asiento[r][c] != 0); //El asiento ya está ocupado Regenera el número de asiento primero
//-------------. --- ------------------//
asiento[r][c]=nuevoasiento;
coutlt;lt ;"Ingrese el número y el nombre del boleto de admisión: ";
cstu[newseat].setmessage() //Almacenamiento de información en la clase de estudiante
for (int i=0; ilt; 64 ; i )
{
if ( i != newseat) //El mismo número de boleto de admisión no puede solicitar un asiento nuevamente
{
if ( cstu[newseat].stestnum == cstu[i].stestnum )
{
coutlt;lt;"¡Lo sentimos! Este número de boleto de admisión tiene ya solicitó un asiento, por favor. Después de verificar, ingrese: ";
cstu[newseat].setmessage(); //
i--;
}
}
}
coutlt;lt;"¡Operación exitosa!"lt;lt;endl;
}
/** ****************************************/ p>
//Elija 2, cancelar el asiento de alguien en la sala de examen (suponiendo que alguien más pueda sentarse en el asiento cancelado)
void cancel_seat(int seat[][col])
{
nombre de cadena;
int i, r, c;
coutlt; :";
cingt; gt; nombre;
for (i=0; ilt; 64; i )
{
if (cstu[i].sname == nombre)
{
r = i/8; //fila
c = i - r*8; ; //columna
asiento [r][c]=0; //Asignar un valor de 0 significa que este asiento está desocupado
cstu[i].stestnum = "" ; //Borrar la información almacenada
cstu[ i].sname = "";
coutlt;lt;"¡Operación exitosa!"lt;lt;endl;
return;
}
}
coutlt;lt;"¡No existe tal persona en esta sala de examen!"lt;lt;endl;
coutlt;lt;endl;
}
/********************* ********************* ***/
//Seleccione 3, lo que requiere ingresar el número de fila y el número de columna del asiento, y luego muestra la información del estudiante en ese asiento;
void find_student(int seat[][col ])
{
int r, c;
coutlt;lt; "Ingrese el número de fila y el número de columna col:";
cingt;gt;rgt;gt;c;
r = r-1;
c
= c-1;
if ( cstu[r*8 c].stestnum == "" || cstu[r*8 c].sname == "")
{
coutlt;lt;"Este asiento está actualmente vacío."lt;lt;endl;
}
else
{
coutlt;lt;"Boleto de entrada: "lt;lt;cstu[r*8 c].stestnumlt;lt;", Nombre: "lt;lt;cstu[r*8 c].snamelt ;lt;endl;
}
coutlt;lt;endl;
}
/******** ***********************************/
//Seleccione 4, solicite Ingrese el número de boleto de admisión de un candidato y luego muestre el asiento del estudiante
void find_seat(int seat[][col])
{
int r, c;
string textnum;
coutlt; "Ingrese el número de boleto de admisión:"
cingt;
para ( r=0; rlt; fila; r )
{
para (c=0; clt; col; c )
{
if (textnum == cstu[r*8 c].stestnum)
{
coutlt;lt;"Resultados de la consulta: "lt;lt; " fila: "lt;lt;r 1lt;lt;", "lt;lt;" col: "lt;lt;c 1lt;lt;endl;
retorno;
}
}
}
coutlt;lt;"¡Boleto de entrada incorrecto!"lt;lt;endl;
coutlt; lt ;endl;
}
/****************************** ****** *************/
//Elija 5 para mostrar el plano de asientos de la sala de examen y solicitar que el número de boleto de admisión del candidato se muestre en el fila correspondiente a cada asiento.
void display_seats(int asiento[][col])
{
int r, c
coutlt;lt;" La ocupación de asientos de esta sala de examen es la siguiente (* no representa a nadie, el número representa el número del boleto de admisión): "lt; lt; endl;
for ( r=0; rlt; fila; r )
{
for (c=0; clt; col; c )
{
if (asiento[r][ c] != 0) //Si no es 0, hay alguien más
{
//Las filas de salida están alineadas a la izquierda y el ancho de la columna es 10 p>
cout.setf(ios::left);
coutlt;lt;setw(10)lt;lt;(cstu[r*8 c].stestnum);//Alguien ingresa el número del boleto de admisión
}
else
{
cout.setf(ios::left
<); p> coutlt;lt;setw(10)lt;lt;"* *******"; //Nadie genera ******}
}
}
coutlt;lt;endllt;lt;endl;
}
/******* *******************************************/