Código
#include <iostream> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; class operacion { protected: int operador1, operador2, nivel, asierto; public: operacion (int u=0, int d=0, int n=0, int v=0): operador1(u), operador2(d), nivel(n), asierto(v){} ~operacion(){} }; /*class facil: public virtual operacion { public: facil(int u=0, int d=0, int n=0): operacion (u,d,n){} ~facil(){} void nivel1(int u, int d); }; void facil::nivel1(int u, int d) { srand(time(NULL)); u = 1 + rand() % (50); d = 1 + rand() % (50); }*/ class suma: public virtual operacion { protected: int respuesta,opcion, acierto; public: suma(int u=0, int d=0, int t=0, int r=0, int p=0, int l=0):acierto(l),respuesta(r), opcion(p),operacion(u,d,t){} ~suma(){} void impsuma(int a, int b, int c); }; void suma::impsuma(int a, int b, int c) { int r=0,p; cout <<"suma" << endl; cout << a<< " " << endl; cout << b<< " " << endl; respuesta = a+b; p=respuesta; //cout <<"ingrese su respuesta " << endl; //cin >> opcion; /*if (respuesta==opcion) { acierto++; cout <<"La respuesta es correcta" << endl; } else { cout <<"error, la respuesta correcta es: " << respuesta << endl; }*/ //for (c=0; opcion==respuesta; opcion++) //{ if(c==respuesta) { cout << "la respuesta es correcta"; cout<<c++; } else { cout <<"erros la respuesta es: " << respuesta; } // } } class resta: public operacion { protected: int t; public: resta(int u=0, int d=0):operacion(u,d){} ~resta(){} void impresta(int a, int b); }; void resta::impresta(int a, int b) { int r,p; cout <<"resta" << endl; cout << a<< " " << endl; cout << b<< " " << endl; r = a-b; cout <<"ingrese su respuesta " << endl; cin >> p; if (p==r) { t++; cout <<"La respuesta es correcta" << endl; } else { cout <<"error, la respuesta correcta es: " << r << endl; } } class multi: public operacion { protected: int t; public: multi(int u=0, int d=0):operacion(u,d){} ~multi(){} void impmulti(int a, int b); }; void multi::impmulti(int a, int b) { int r,p; cout << "multiplicacion" << endl; cout << a<< " " << endl; cout << b<< " " << endl; r = a*b; cout <<"ingrese su respuesta " << endl; cin >> p; if (p==r) { t++; cout <<"La respuesta es correcta" << endl; } else { cout <<"error, la respuesta correcta es: " << r << endl; } } class divi: public operacion { protected: int t; public: divi(int u=0, int d=0):operacion(u,d){} ~divi(){} void impdiv(int a, int b); }; void divi::impdiv(int a, int b) { int p; div_t r; r= div(a,b); cout << "divicion" << endl; cout << a<< endl <<b << endl; cout <<"ingrese su respuesta " << endl; cin >> p; if (p==r.quot) { t++; cout <<"La respuesta es correcta" << endl; cout <<"el residuo es: "; cout << r.rem; cout << endl; } else { cout <<"error, la respuesta correcta es: " << r.quot << endl; cout <<"el residuo es: "; cout << r.rem; cout << endl; } } class pot: public operacion { protected: int t; public: pot(int u=0):operacion(u){} ~pot(){} void imppot(int a); }; void pot::imppot(int a) { int r, p; cout <<"potencia" << endl; r = pow (a,2); cout << a << "al cuadrado" << endl; cout <<"ingrese su respuesta " << endl; cin >> p; if (p==r) { t++; cout <<"La respuesta es correcta" << endl; } else { cout <<"error, la respuesta correcta es: " << r << endl; } } class raiz: public operacion { protected: int t; public: raiz(int u=0):operacion(u){} ~raiz(){} void impraiz(int a); }; void raiz::impraiz(int a) { int r,p; cout << "raiz" << endl; r = sqrt(a); cout << a << endl; cout <<"ingrese su respuesta " << endl; cin >> p; if (p==r) { t++; cout <<"La respuesta es correcta" << endl; } else { cout <<"error, la respuesta correcta es: " << r << endl; } } class aciertos: public suma, public resta, public multi, public divi, public pot, public raiz { public: // aciertos(int t=0): suma(t), resta(t), multi(t), divi(t), pot(t), raiz(t) {} // ~aciertos(){} int impaciertos(); }; int aciertos:: impaciertos() { /*int t,p,a=0,i; t = suma::respuesta; p= suma::opcion; for (a=1; a=10; a++) { if (t == p) { a++; } }*/ return suma::acierto; //t = suma::asierto; //return a; } int main() { int a,b,c,d,o,y,r; int p=0; suma s1(a,b,0); resta r1(a,b); multi m1(a,b); divi d1(a,b); pot p1(d); raiz r2(c); aciertos l; for (int i=1; i<=10; i++) { srand(time(NULL)); //inicializa los numoeros aleatoreos //o = 1 + rand() % (6); a = 1 + rand() % (100); b = 1 + rand() % (100); d = 1 + rand() % (20); cout << i <<") "; o=1; switch (o) { case 1: cout << "ingrese su respuesta" << endl; cin >> p; r= a+b; s1.impsuma(a,b,r); break; case 2: r1.impresta(a,b); break; case 3: m1.impmulti(a,b); break; case 4: d1.impdiv(a,b); break; case 5: p1.imppot(d); break; case 6: r2.impraiz(a); break; } if(r=p) { y=y++; } cout <<endl; } y=l.impaciertos(); cout << y; return 0; }