elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: [1]
1  Programación / Ejercicios / Proyecto final en: 28 Abril 2019, 21:19 pm
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
  1. #include <iostream>
  2. #include <math.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. using namespace std;
  7.  
  8. class operacion
  9. {
  10. protected:
  11. int operador1, operador2, nivel, asierto;
  12. public:
  13. operacion (int u=0, int d=0, int n=0, int v=0): operador1(u), operador2(d), nivel(n), asierto(v){}
  14. ~operacion(){}
  15.  
  16. };
  17.  
  18. /*class facil: public virtual operacion
  19. {
  20. public:
  21. facil(int u=0, int d=0, int n=0): operacion (u,d,n){}
  22. ~facil(){}
  23. void nivel1(int u, int d);
  24. };
  25. void facil::nivel1(int u, int d)
  26. {
  27. srand(time(NULL));
  28. u = 1 + rand() % (50);
  29. d = 1 + rand() % (50);
  30. }*/
  31.  
  32. class suma: public virtual operacion
  33. {
  34. protected:
  35. int respuesta,opcion, acierto;
  36. public:
  37. 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){}
  38. ~suma(){}
  39. void impsuma(int a, int b, int c);
  40. };
  41.  
  42. void suma::impsuma(int a, int b, int c)
  43. {
  44. int r=0,p;
  45. cout <<"suma" << endl;
  46. cout << a<< " " << endl;
  47. cout << b<< " " << endl;
  48. respuesta = a+b;
  49. p=respuesta;
  50. //cout <<"ingrese su respuesta  " << endl;
  51. //cin >> opcion;
  52. /*if (respuesta==opcion)
  53. {
  54. acierto++;
  55. cout <<"La respuesta es correcta" << endl;
  56. }
  57. else
  58. {
  59. cout <<"error, la respuesta correcta es:  " << respuesta << endl;
  60. }*/
  61.  
  62. //for (c=0; opcion==respuesta; opcion++)
  63. //{
  64. if(c==respuesta)
  65. {
  66. cout << "la respuesta es correcta";
  67. cout<<c++;
  68. }
  69. else
  70. {
  71. cout <<"erros la respuesta es: " << respuesta;
  72. }
  73.  
  74. // }
  75.  
  76.  
  77. }
  78.  
  79. class resta: public operacion
  80. {
  81. protected:
  82. int t;
  83. public:
  84. resta(int u=0, int d=0):operacion(u,d){}
  85. ~resta(){}
  86. void impresta(int a, int b);
  87. };
  88.  
  89. void resta::impresta(int a, int b)
  90. {
  91. int r,p;
  92. cout <<"resta" << endl;
  93. cout << a<< " " << endl;
  94. cout << b<< " " << endl;
  95. r = a-b;
  96.  
  97. cout <<"ingrese su respuesta  " << endl;
  98. cin >> p;
  99. if (p==r)
  100. {
  101. t++;
  102. cout <<"La respuesta es correcta" << endl;
  103. }
  104. else
  105. {
  106. cout <<"error, la respuesta correcta es:  " << r << endl;
  107. }
  108. }
  109.  
  110. class multi: public operacion
  111. {
  112. protected:
  113. int t;
  114. public:
  115. multi(int u=0, int d=0):operacion(u,d){}
  116. ~multi(){}
  117. void impmulti(int a, int b);
  118. };
  119.  
  120. void multi::impmulti(int a, int b)
  121. {
  122. int r,p;
  123. cout << "multiplicacion" << endl;
  124. cout << a<< " " << endl;
  125. cout << b<< " " << endl;
  126. r = a*b;
  127.  
  128. cout <<"ingrese su respuesta  " << endl;
  129. cin >> p;
  130. if (p==r)
  131. {
  132. t++;
  133. cout <<"La respuesta es correcta" << endl;
  134. }
  135. else
  136. {
  137. cout <<"error, la respuesta correcta es:  " << r << endl;
  138. }
  139.  
  140. }
  141.  
  142. class divi: public operacion
  143. {
  144. protected:
  145. int t;
  146. public:
  147. divi(int u=0, int d=0):operacion(u,d){}
  148. ~divi(){}
  149. void impdiv(int a, int b);
  150. };
  151.  
  152. void divi::impdiv(int a, int b)
  153. {
  154. int p;
  155. div_t r;
  156. r= div(a,b);
  157. cout << "divicion" << endl;
  158. cout << a<< endl <<b << endl;
  159.  
  160. cout <<"ingrese su respuesta  " << endl;
  161. cin >> p;
  162. if (p==r.quot)
  163. {
  164. t++;
  165. cout <<"La respuesta es correcta" << endl;
  166. cout <<"el residuo es: ";
  167. cout << r.rem;
  168. cout << endl;
  169. }
  170. else
  171. {
  172. cout <<"error, la respuesta correcta es:  " << r.quot << endl;
  173. cout <<"el residuo es: ";
  174. cout << r.rem;
  175. cout << endl;
  176. }
  177.  
  178.  
  179. }
  180.  
  181. class pot: public operacion
  182. {
  183. protected:
  184. int t;
  185. public:
  186. pot(int u=0):operacion(u){}
  187. ~pot(){}
  188. void imppot(int a);
  189. };
  190.  
  191. void pot::imppot(int a)
  192. {
  193. int r, p;
  194. cout <<"potencia" << endl;
  195. r = pow (a,2);
  196. cout << a << "al cuadrado" << endl;
  197. cout <<"ingrese su respuesta  " << endl;
  198. cin >> p;
  199. if (p==r)
  200. {
  201. t++;
  202. cout <<"La respuesta es correcta" << endl;
  203. }
  204. else
  205. {
  206. cout <<"error, la respuesta correcta es:  " << r << endl;
  207. }
  208.  
  209. }
  210.  
  211. class raiz: public operacion
  212. {
  213. protected:
  214. int t;
  215. public:
  216. raiz(int u=0):operacion(u){}
  217. ~raiz(){}
  218. void impraiz(int a);
  219. };
  220.  
  221. void raiz::impraiz(int a)
  222. {
  223. int r,p;
  224. cout << "raiz" << endl;
  225. r = sqrt(a);
  226.  
  227. cout << a << endl;
  228.  
  229. cout <<"ingrese su respuesta  " << endl;
  230. cin >> p;
  231. if (p==r)
  232. {
  233. t++;
  234. cout <<"La respuesta es correcta" << endl;
  235. }
  236. else
  237. {
  238. cout <<"error, la respuesta correcta es:  " << r << endl;
  239. }
  240. }
  241.  
  242. class aciertos: public  suma, public  resta, public  multi, public  divi, public pot, public  raiz
  243. {
  244.  
  245. public:
  246. // aciertos(int t=0): suma(t), resta(t), multi(t), divi(t), pot(t), raiz(t) {}
  247. // ~aciertos(){}
  248. int impaciertos();
  249. };
  250.  
  251. int aciertos:: impaciertos()
  252. {
  253. /*int t,p,a=0,i;
  254. t = suma::respuesta;
  255. p= suma::opcion;
  256. for (a=1; a=10; a++)
  257. {
  258. if (t == p)
  259. {
  260. a++;
  261. }
  262. }*/
  263.  
  264. return suma::acierto;
  265.  
  266.  
  267. //t = suma::asierto;
  268. //return a;
  269. }
  270.  
  271. int main()
  272. {
  273. int a,b,c,d,o,y,r;
  274. int p=0;
  275. 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;
  276.  
  277. for (int i=1; i<=10; i++)
  278. {
  279. srand(time(NULL)); //inicializa los numoeros aleatoreos
  280.  
  281. //o = 1 + rand() % (6);
  282. a = 1 + rand() % (100);
  283. b = 1 + rand() % (100);
  284. d = 1 + rand() % (20);
  285. cout << i <<") ";
  286. o=1;
  287. switch (o)
  288. {
  289. case 1:
  290.  
  291. cout << "ingrese su respuesta" << endl;
  292. cin >> p;
  293. r= a+b;
  294. s1.impsuma(a,b,r);
  295. break;
  296. case 2:
  297. r1.impresta(a,b);
  298. break;
  299. case 3:
  300. m1.impmulti(a,b);
  301. break;
  302. case 4:
  303. d1.impdiv(a,b);
  304. break;
  305. case 5:
  306. p1.imppot(d);
  307. break;
  308. case 6:
  309. r2.impraiz(a);
  310. break;
  311. }
  312. if(r=p)
  313. {
  314. y=y++;
  315. }
  316. cout <<endl;
  317. }
  318. y=l.impaciertos();
  319. cout << y;
  320.  
  321. return 0;
  322. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines