Está en la página 1de 22

Programación Estructurada.

Trabajo Final

Presentación

Sustentantes
Alexander Cabrera
A00058760
FELIX GERARDO LARA
A00054388

CARLOS CASTRO
A00133890

Docente:
LIC. VICTORIANO PEREZ MEDINA

Asignatura:

PROGRAMACION ESTRUCTURADA

Tema:
TRABAJO FINAL

PROGRAMACION ESTRUCTURADA

1 Grupo # 3
Programación Estructurada. Trabajo Final

Índice

Presentación .............................................................................................................. 1
Índice.......................................................................................................................... 2
Introducción................................................................................................................ 3
Justificación................................................................................................................ 4
Explicación de la Programación del Sistema ............................................................. 5
Propósito ................................................................................................................ 5
¿El programa tiene entrada de datos? ................................................................... 5
Funciones ............................................................................................................... 5
Lista de variables .................................................................................................... 8
Explicación .......................................................................................................... 9
Conclusión ............................................................................................................... 12
Bibliografía ............................................................................................................... 13
Anexos ..................................................................................................................... 14

2 Grupo # 3
Programación Estructurada. Trabajo Final

Introducción

El siguiente trabajo ha sido concebido en base a lo aprendido en esta asignatura,


mediante la creación de un proyecto o solución informática. Se aplicaron estructuras
de control de la programación, así como estructuración de pequeños bloques de
código mediante el uso de funciones.

Aquí veremos de modo explicativo el desarrollo de un programa que tiene como final
que los estudiantes de primer ciclo (primaria) aprendan a multiplicar, y como objetivo
el poder mostrar como se usan los bloques, funciones, arreglos y tipos de datos.

3 Grupo # 3
Programación Estructurada. Trabajo Final

Justificación

El trabajo a continuación tiene como fina la creación de un programa para estudiantes


de primer ciclo para que los mismo tengan la facilidad de aprender a multiplicar, el
desarrollo del mismo será de gran beneficio ya que permitirá tener un mejor
entendimiento de cómo funcionan las estructuras de control, para poder crear bloques
de código mediante funciones que pueden ser utilizados en el futuro en su vida
personal o laboral.

4 Grupo # 3
Programación Estructurada. Trabajo Final

Explicación de la Programación del Sistema

Propósito
Incentivar al estudiante para que se interese por aprender a multiplicar. Se motiva
con mensajes recurrentes de felicitaciones impulsando asi que el estudiante avance.
Y en los en que estos fallen en sus respuestas se incentivan y animan a seguir
intentando.

¿El programa tiene entrada de datos?


Si, el estudiante es quien ingresa los datos como respuestas a las preguntas que se
despliegan en la pantalla.

después de la entrada de las respuestas, los mensajes de salida dependen de las


respuestas que ingrese el estudiante, ya sean correctas o incorrectas.

Funciones
Se usaron múltiples funciones en este desarrollo, las mismas fuero las siguientes:

int main() dentro de esta función está definido el cuerpo del programa. En esta se
desarrolla todas las funcionalidades que el programa va a realizar.

5 Grupo # 3
Programación Estructurada. Trabajo Final

Aquí se realizan los llamados a las funciones de obtener Preguntas y verificar Respuesta,

también se realizan los cálculos de porcentajes correspondientes a las respuestas


seleccionadas.

Preguntas obtenerPreguntas() en esta función encontraremos la configuración de la


pregunta. Se muestra los datos utilizados para la creación de la pregunta, la cantidad
de intentos que tiene el estudiante para responder, también se guardan las respuestas
correctas. El mensaje que se muestra es la pregunta principal del sistema ¿Cuánto
es …?
6 Grupo # 3
Programación Estructurada. Trabajo Final

Preguntas verificarRespuesta(int respuestaUsuario, Preguntas preg) ya aquí se verifican


las respuestas dadas por el estudiante y se les muestra los mensajes ya sea de
felicitación o de intentar nuevamente, cada intento tiene un mensaje diferente. En
casos de responder correctamente, esta función le notifica al programa que puede
pasar a la siguiente pregunta. En caso contrario, esta misma función le indica al
programa que repita la misma pregunta, hasta que se encuentre la respuesta correcta
o hasta agotar los intentos, de ser así el programa indica cual es la respuesta correcta.

Lista de variables
struct Preguntas {
string pregunta;
string mensajeRespuesta;
int respuestaCorrecta;
int intentosMaximos;
bool siguientePregunta;
int intentoActual;
int maximoPreguntas;

};

Como se puede notar en esta clase se encuentran las variables que ayudan al
programa a realizar su función, como son las preguntas, los mensajes que salen, los
intentos, entre otros.

7 Grupo # 3
Programación Estructurada. Trabajo Final

int main() {

int intentos = 0;
int maxPreg = 0;
float cantRespuestasCorrectas = 0;
float cantRespuestasIncorrectas = 0;

do
{

int respuestaUsuario;
cin >> respuestaUsuario;

cout << preg.mensajeRespuesta << endl << endl;

if (preg.siguientePregunta) {
intentos = 0;
maxPreg = maxPreg + 1;
cantRespuestasCorrectas = cantRespuestasCorrectas + 1;

preg.intentoActual = 0;
}
else {
intentos = intentos + 1;
}

preg.intentoActual = intentos;

//Si agoto los intentos maximos


//muestro la respuesta y paso a la siguiente pregunta
if (intentos >= preg.intentosMaximos) {
cantRespuestasIncorrectas = cantRespuestasIncorrectas + 1;

cout << "Maximo de intentos alcanzados. La respuesta correcta es:


" + std::to_string(preg.respuestaCorrecta) << endl << endl;
intentos = 0;
maxPreg = maxPreg + 1;

preg = obtenerPreguntas();
preg.intentoActual = 0;
}

} while (maxPreg < preg.maximoPreguntas);

int _cantRespuestasCorrectas = cantRespuestasCorrectas;


int _cantRespuestasIncorrectas = cantRespuestasIncorrectas;

cout << "Cantidad de respuestas correctas: " +


std::to_string(_cantRespuestasCorrectas) << endl << endl;
cout << "Cantidad de respuestas incorrectas: " +
std::to_string(_cantRespuestasIncorrectas) << endl << endl;
float rendimientoCorrecto = (cantRespuestasCorrectas / 15.00) * 100;
float rendimientoInCorrecto = (cantRespuestasIncorrectas / 15.00) * 100;

8 Grupo # 3
Programación Estructurada. Trabajo Final

int _rendimientoCorrecto = rendimientoCorrecto;

if (_rendimientoCorrecto > 70) {


cout << " \t *** Tu rendimiento en porcentaje es: " +
std::to_string(_rendimientoCorrecto) + "% *** " << endl << endl;
cout << " \t *** Felicitaciones, puedes avanzar al siguiente nivel! ***
" << endl << endl;
}
else {
int _rendimientoInCorrecto = rendimientoInCorrecto;

cout << " \t *** Tu rendimiento en porcentaje es: " +


std::to_string(_rendimientoInCorrecto) + "% *** " << endl << endl;
cout << " \t *** Te recomendamos que repitas el ejercicio *** " << endl
<< endl;
}
}

Explicación

Tenemos int intentos = 0; donde se van registrando las respuestas incorrectas del
estudiante. Por cada pregunta tiene un total de 4 intentos.

int maxPreg = 0; un contador donde se van acumulando las preguntas que van
apareciendo y tiene como función evitar que pasen el máximo de 15 preguntas.

float rendimiento Correcto con esta variable se hacen los cálculos de las respuestas
correctas del estudiante y así sacar el rendimiento de este.

Y un grupo de variables que, al leer y analizar el código, sabremos cuáles son sus
funcionalidades.

9 Grupo # 3
Programación Estructurada. Trabajo Final

struct Preguntas {
string pregunta;
string mensajeRespuesta;
int respuestaCorrecta;
int intentosMaximos;
bool siguientePregunta;
int intentoActual;
int maximoPreguntas;
};

Preguntas obtenerPreguntas();
Preguntas verificarRespuesta(int respuestaUsuario, Preguntas preg);
int numeralPreguntas;

int main() {

cout << " \t ***Bienvenido al sistema de calculadora v1.0*** " << endl << endl;

int intentos = 0;
int maxPreg = 0;
float cantRespuestasCorrectas = 0;
float cantRespuestasIncorrectas = 0;

Preguntas preg = obtenerPreguntas();


preg.intentoActual = 0;

do
{
cout << preg.pregunta << endl;

int respuestaUsuario;
cin >> respuestaUsuario;
preg = verificarRespuesta(respuestaUsuario, preg);

cout << endl;

cout << preg.mensajeRespuesta << endl << endl;

if (preg.siguientePregunta) {
intentos = 0;
maxPreg = maxPreg + 1;
cantRespuestasCorrectas = cantRespuestasCorrectas + 1;

preg = obtenerPreguntas();
preg.intentoActual = 0;
}
else {
intentos = intentos + 1;
}

preg.intentoActual = intentos;

//Si agoto los intentos maximos


//muestro la respuesta y paso a la siguiente pregunta
if (intentos >= preg.intentosMaximos) {
cantRespuestasIncorrectas = cantRespuestasIncorrectas + 1;

cout << endl;

cout << "Maximo de intentos alcanzados. La respuesta correcta es: " +


std::to_string(preg.respuestaCorrecta) << endl << endl;
intentos = 0;
maxPreg = maxPreg + 1;
10 preg = obtenerPreguntas(); Grupo # 2
preg.intentoActual = 0;
Programación Estructurada. Trabajo Final

}
Programación Estructurada. Trabajo Final

} while (maxPreg < preg.maximoPreguntas);

int _cantRespuestasCorrectas = cantRespuestasCorrectas;


int _cantRespuestasIncorrectas = cantRespuestasIncorrectas;

cout << "Cantidad de respuestas correctas: " + std::to_string(_cantRespuestasCorrectas) << endl


<< endl;
cout << "Cantidad de respuestas incorrectas: " + std::to_string(_cantRespuestasIncorrectas) <<
endl << endl;
float rendimientoCorrecto = (cantRespuestasCorrectas / 15.00) * 100;
float rendimientoInCorrecto = (cantRespuestasIncorrectas / 15.00) * 100;

int _rendimientoCorrecto = rendimientoCorrecto;

if (_rendimientoCorrecto > 70) {


cout << " \t *** Tu rendimiento en porcentaje es: " +
std::to_string(_rendimientoCorrecto) + "% *** " << endl << endl;
cout << " \t *** Felicitaciones, puedes avanzar al siguiente nivel! *** " << endl <<
endl;
}
else {
int _rendimientoInCorrecto = rendimientoInCorrecto;

cout << " \t *** Tu rendimiento en porcentaje es: " +


std::to_string(_rendimientoInCorrecto) + "% *** " << endl << endl;
cout << " \t *** Te recomendamos que repitas el ejercicio *** " << endl << endl;
}
}

Preguntas obtenerPreguntas() {
srand(time(0));

int multiplicando = (rand() % 10) + 1;


int multiplicador = (rand() % 10) + 1;

numeralPreguntas = (numeralPreguntas + 1);

Preguntas preguntaActual;
preguntaActual.intentosMaximos = 4;
preguntaActual.pregunta = std::to_string(numeralPreguntas) + " - Cuanto es " +
std::to_string(multiplicando) + " por " + std::to_string(multiplicador) + "?";
preguntaActual.respuestaCorrecta = (multiplicando * multiplicador);
preguntaActual.maximoPreguntas = 15;

return preguntaActual;
}

Preguntas verificarRespuesta(int respuestaUsuario, Preguntas preg) {

string respuestaCorrecta[4] = { "Bravo, eres un campeon!","Excelente!","Buen trabajo!","Muy


bien!" };
string respuestaInCorrecta[4] = { "Uf! No es correcta, por favor intenta de nuevo.","Incorrecto.
Intenta una vez mas.","No te rindas! Trata de nuevo.","Tu puedes, sigue intentando." };

int intentoActual = preg.intentoActual;

if (preg.respuestaCorrecta == respuestaUsuario) {
preg.mensajeRespuesta = respuestaCorrecta[intentoActual];
preg.siguientePregunta = true;
}
else {
preg.mensajeRespuesta = respuestaInCorrecta[intentoActual];
preg.siguientePregunta = false;
}
11 Grupo # 2

return preg;
Programación Estructurada. Trabajo Final

}
Programación Estructurada. Trabajo Final

Conclusión

De acuerdo a lo aprendido en esta asignatura, las explicaciones y practicas en línea


con el profesor, hemos logrado desarrollar este programa, el cual se desarroloo
mediante bloques pequeños de códigos y funciones, variables, cada una con un meta
asignada.

12 Grupo # 2
Programación Estructurada. Trabajo Final

Bibliografía
1. Microsoft Visual
Studio.

2. La Web del
Programador

13 Grupo # 2
Programación Estructurada. Trabajo Final

Anexos

Se muestra las preguntas y las respuestas otorgadas, si son correctas mensajes de


felicitaciones si son incorrectas mensajes de ánimo para seguir avanzando.

14 Grupo # 2
Programación Estructurada. Trabajo Final

Este estudiante obtuvo un porcentaje muy bueno por ende puede pasar al siguiente
nivel.

15 Grupo # 2
Programación Estructurada. Trabajo Final

Aquí su rendimiento fue bajo por lo que se insta a repetir el ejercicio.

EN LA SIGUIENTE PAGINA SE ENCUENTRA EL CÓDIGO FUENTE.

16 Grupo # 2
Programación Estructurada. Trabajo Final

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <string>

using namespace std;

struct Preguntas {
string pregunta;
string mensajeRespuesta;
int respuestaCorrecta;
int intentosMaximos;
bool siguientePregunta;
int intentoActual;
int maximoPreguntas;
};

Preguntas obtenerPreguntas();
Preguntas verificarRespuesta(int respuestaUsuario, Preguntas preg);
int numeralPreguntas;

int main() {

cout << " \t ***Bienvenido al sistema de calculadora v1.0*** " << endl <<
endl;

int intentos = 0;
int maxPreg = 0;
float cantRespuestasCorrectas = 0;
float cantRespuestasIncorrectas = 0;

Preguntas preg = obtenerPreguntas();


preg.intentoActual = 0;

do
{
cout << preg.pregunta << endl;

int respuestaUsuario;
cin >> respuestaUsuario;
preg = verificarRespuesta(respuestaUsuario, preg);

cout << endl;

cout << preg.mensajeRespuesta << endl << endl;

if (preg.siguientePregunta) {

17 Grupo # 2
Programación Estructurada. Trabajo Final

intentos = 0;
maxPreg = maxPreg + 1;
cantRespuestasCorrectas = cantRespuestasCorrectas + 1;

preg = obtenerPreguntas();
preg.intentoActual = 0;
}
else {
intentos = intentos + 1;
}

preg.intentoActual = intentos;

//Si agoto los intentos maximos


//muestro la respuesta y paso a la siguiente pregunta
if (intentos >= preg.intentosMaximos) {
cantRespuestasIncorrectas = cantRespuestasIncorrectas + 1;

cout << endl;

cout << "Maximo de intentos alcanzados. La respuesta correcta es:


" + std::to_string(preg.respuestaCorrecta) << endl << endl;
intentos = 0;
maxPreg = maxPreg + 1;

preg = obtenerPreguntas();
preg.intentoActual = 0;
}

} while (maxPreg < preg.maximoPreguntas);

int _cantRespuestasCorrectas = cantRespuestasCorrectas;


int _cantRespuestasIncorrectas = cantRespuestasIncorrectas;

cout << "Cantidad de respuestas correctas: " + std::to_string(_cantRespues


tasCorrectas) << endl << endl;
cout << "Cantidad de respuestas incorrectas: " + std::to_string(_cantRespu
estasIncorrectas) << endl << endl;
float rendimientoCorrecto = (cantRespuestasCorrectas / 15.00) * 100;
float rendimientoInCorrecto = (cantRespuestasIncorrectas / 15.00) * 100;

int _rendimientoCorrecto = rendimientoCorrecto;

if (_rendimientoCorrecto > 70) {


cout << " \t *** Tu rendimiento en porcentaje es: " + std::to_string(_
rendimientoCorrecto) + "% *** " << endl << endl;
cout << " \t *** Felicitaciones, puedes avanzar al siguiente nivel! **
* " << endl << endl;

18 Grupo # 2
Programación Estructurada. Trabajo Final

}
else {
int _rendimientoInCorrecto = rendimientoInCorrecto;

cout << " \t *** Tu rendimiento en porcentaje es: " + std::to_string(_


rendimientoInCorrecto) + "% *** " << endl << endl;
cout << " \t *** Te recomendamos que repitas el ejercicio *** " << end
l << endl;
}
}

Preguntas obtenerPreguntas() {
srand(time(0));

int multiplicando = (rand() % 10) + 1;


int multiplicador = (rand() % 10) + 1;

numeralPreguntas = (numeralPreguntas + 1);

Preguntas preguntaActual;
preguntaActual.intentosMaximos = 4;
preguntaActual.pregunta = std::to_string(numeralPreguntas) + " - Cuanto es
" + std::to_string(multiplicando) + " por " + std::to_string(multiplicador) +
"?";
preguntaActual.respuestaCorrecta = (multiplicando * multiplicador);
preguntaActual.maximoPreguntas = 15;

return preguntaActual;
}

Preguntas verificarRespuesta(int respuestaUsuario, Preguntas preg) {

string respuestaCorrecta[4] = { "Bravo, eres un campeon!","Excelente!","Bu


en trabajo!","Muy bien!" };
string respuestaInCorrecta[4] = { "Uf! No es correcta, por favor intenta d
e nuevo.","Incorrecto. Intenta una vez mas.","No te rindas! Trata de nuevo.","
Tu puedes, sigue intentando." };

int intentoActual = preg.intentoActual;

if (preg.respuestaCorrecta == respuestaUsuario) {
preg.mensajeRespuesta = respuestaCorrecta[intentoActual];
preg.siguientePregunta = true;
}
else {
preg.mensajeRespuesta = respuestaInCorrecta[intentoActual];
preg.siguientePregunta = false;
}

19 Grupo # 2
Programación Estructurada. Trabajo Final

return preg;
}

20 Grupo # 2

También podría gustarte