Red de conocimiento informático - Consumibles informáticos - ¡Recompensa por puntuación alta! ! ! ¿Quién sabe cómo utilizar c para programar un sistema de asientos en una sala de examen? ! !

¡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

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);

}

/* *******************************************/

//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 ;

}

}

}

//--- ----------------------------------//

do

{

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;

}

/** ****************************************/

//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

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;

}

/******* *******************************************/