Proyecto final

Iniciado por Krizos, 28 Abril 2019, 21:19 PM

0 Miembros y 1 Visitante están viendo este tema.

Krizos

hola, soy un usuario nuevo y la verdad ya estoy muy frustrado, necesito ayuda, mi codigo hace mas o menos lo siguiente: es una especie de test matematico donde el programa genera al azar dos numeros y una operacion, la cual el ususario debera de responder, en caso que este bien deberia de aumentarel puntuage, pero es justamente esto lo que no logro hacer, el programa forsosamente debe de tener clases y herencia, espero me puedan ayudar 8favor de ignorar los comentarios)
Código (cpp) [Seleccionar]
#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;
}


Stark verse

5.19 Realice un algoritmo que lea una matriz de C columnas y R renglones.
A partir de ella genere dos vectores que contengan la suma de sus renglones
y la suma de sus columnas. Represéntelo mediante diagrama,
diagrama N/S y pseudocódigo. Me gustaria tambien que me ayuden a programar en matlab, lo necesito, por favor si no es mucha molestia

simorg

@Stark verse, No se reabren temas tan antiguos, 2019, crea un hilo nuevo para tu consulta.

(Leer las reglas del Foro.)


Saludos.