Plan de problemas para estudiantes de escuela primaria
# 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: p>
{
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;
}