La Red de Conocimientos Pedagógicos - Aprendizaje de inglés - Plan de problemas para estudiantes de escuela primaria

Plan de problemas para estudiantes de escuela primaria

# incluir & ltiostream & gt

# incluir & ltstdlib.h & gt

# incluir & ltctime & gt

# incluir & ltconio.h & gt

Usar STD::CIN;

Usar STD::cout;

Usar STD::endl;

//Cantidad de recetas

int constante Num = 100;

//El número máximo en la fórmula de cálculo

int const MaxNum = 100;

/ /Cada La puntuación de cada pregunta

int const PerMark = 1;

//El valor máximo del resultado del cálculo

int const max result = 100;

//Resultado mínimo del cálculo

int const min result = 0;

enum enOp {suma, resta, multiplicación, división};

//los tipos de enumeración se convertirán en tipos de caracteres para la salida.

char enum2char (operación enOp)

{

Cambiar

{

Caso agregado:

Devuelve "+";

Resta de casos:

Devuelve '-';

Multiplicación de casos:

Devuelve " x";

División de casos:

Devolver "/";

}

Devolver "";

}

//Calcular el resultado correcto de la expresión generada.

int myResult(int izquierda, int derecha, enOp op)

{

Cambiar

{

Suma de casos:

Regresar izquierda + derecha;

Resta de casos:

Regresar izquierda y derecha;

Multiplicación de casos:

Regresar izquierda*derecha;

División de casos:

Regresar izquierda/derecha;

}

Regresar 0;

}

//Comprueba si la fórmula generada es correcta. El resultado de la resta no puede ser negativo y el resultado de la división no puede ser decimal.

Fórmula de verificación booleana (int izquierda, int derecha, enOp op)

{

Cambiar

{

Adición de casos:

{

Devuelve verdadero

}

Resta de casos:

{

if(izquierda & lt; derecha)

Devuelve falso

Devuelve verdadero

}

Multiplicación de casos:

{

Devuelve verdadero

}

División de casos:

{

if( derecha == 0)

Devuelve falso

if(doble(izquierda/derecha)!= doble(doble(izquierda)/doble(derecha))

Devuelve falso

Devuelve verdadero

}

}

Devuelve falso

}

//Generar una expresión calificada basada en el operador dado.

void getFormula(int* left, int*right, enOp op)

{

//srand(time(NULL));

para(;;)

{

* izquierda = 1+rand()% MaxNum;

* derecha = 1+rand()% MaxNum;

if(checkFormula(*left,*right,op)&&myResult(*left,*right,op)<= MaxResult&&myResult(*left,*right, op)> = MinResult )

romper;

}

}

int main()

{

//Valor izquierdo del operador

int left[Num];

//Valor derecho del operador

int right[Num];

//El usuario ingresa el resultado del cálculo.

int resultado[Num];

//Operador +-*/

enOp operando;

//Respuesta correcta Cantidad

int respuesta correcta = 0;

cout & lt& lt"Generando, por favor espera."& lt& ltendl

//Semilla aleatoria

srand(time(NULL));

//Comience a generar expresiones de cálculo.

for(int I = 0; i & ltNumi++)

{

//srand((unsigned)time(NULL));

//Operador

oper[I]= enOp(rand()% 4);

obtener fórmula(&left[i], &right[i], oper [I]);

}

cout & lt& lt"Se genera la fórmula de cálculo, ¡comience a responder la pregunta!" & lt& ltendl

//Salida Expresiones para que los usuarios respondan.

for(int I = 0; i & ltNumi++)

{

//Expresión de salida

cout & lt& lt" primero "

cout & lt& ltleft[I]& lt;& lt' & lt& ltenum 2 char(oper[I])& lt;& lt' & lt& ltright[I]& lt; & lt" = ";

//Obtener la respuesta del usuario

CIN & gt;& gtResult [1];

//Comparar si la respuesta del usuario es correcta, el resultado correcto es correcto, la respuesta correcta es más uno; de lo contrario, el resultado es incorrecto.

if(resultado[i] == miResultado(izquierda[i], derecha[i], oper[i]))

{

cout & lt& lt"¡Sí!\n";

respuesta correcta++;

}

Otro

{

cout & lt& lt"¡Incorrecto!\n ";

}

}

//Después de responder todas las preguntas, genera el número y la puntuación de las preguntas correctas. respuestas.

cout & lt& lt"Deja de responder preguntas, * * * * & lt; & ltNum & lt& lt preguntas, cada pregunta

& lt& ltanswerRight * PerMark & ​​​​lt& lt" puntos.

";

//La pantalla se detiene.

getch();

Devuelve 0;

}