Vous êtes sur la page 1sur 5

Fundamentos de Programacin

Parte 2 - Proyecto 1
Fecha de Entrega: Sbado 3 de Diciembre 2016, 23:55

En esta segunda parte del avance usted deber realizar un anlisis de los resultados de los
repasos. Al finalizar un repaso se registra el usuername del usuario, la fecha, la hora, el nivel, el
puntaje alcanzado y el numero de preguntas incorrectas. Esta informacin se registra en un
archivo de texto llamado historial.text. El formato en que se almacena los datos es el siguiente:
username || fecha hora || nivel || puntaje || numero preguntas incorrectas.
jose || 02/11/2016 16:00 || Facil || 19 || 3
rocio || 12/11/2016 14:00 || Medio || 50 || 3
rocio || 13/11/2016 19:00 || Dificil || 87 || 5
jose || 25/11/2016 21:00 || Medio || 60 || 5
rocio || 25/11/2016 19:00 || Dificil || 92|| 2
maria || 31/10/2106 19:00 || Facil || 18 || 2
Para leer de el archivo historial.text y cargar los datos del archivo en la lista historial_juegos use la
siguientes lnea de cdigo. Recuerde el archivo historial.text debe estar en la misma carpeta
donde esta el archivo .py de su programa.
file = open('historial.text', r')
historial_juegos = file.readlines()
Al hacer esto historial_juegos ser una lista de cadena de caracteres donde cada elemento en una
lnea del archivo.
historial_juegos = [
jose || 02/11/2016 16:00 || Facil || 19 || 3,
rocio || 12/11/2016 14:00 || Medio || 50 || 3,
rocio || 13/11/2016 19:00 || Dificil || 87 || 5,
jose || 25/11/2016 21:00 || Medio || 60 || 5,
rocio || 25/11/2016 19:00 || Dificil || 92|| 2,
maria || 31/10/2106 19:00 || Facil || 18 || 2,
]
Use la lista historial_juegos para crear dos arreglos Numpy con la siguiente informacin:
Matriz 1
Usuario vs nmeros de partidas jugadas por da por nivel.
Facil
1

rocio

jose

Medio
..

31

Difcil
..

31

..

31

..
maria

De la matriz anterior se interpreta la siguiente informacin:


El rocio en nivel fcil jug 1 partida el da 1, el 0 partidas el da 1, 4 partidas el da 3, 3 partidas el
da 31. En nivel Medio jug 3 partidas el da 1, el 0 partidas el da 1, 0 partidas el da 3, 5 partidas
el da 31.
Adems de la matriz debe crear una lista usuarios donde est el username de los usuarios sin
repetir.

Matriz 2
Matriz con los mximos puntajes por da del mes por nivel.

Facil

Medio

Didicil

20

50

80

13

65

85

31

12

60

95

..

IMPORTANTE:
Para esta parte del proyecto el obligatorio de uso de la librera Numpy.
DEBE CREAR EL ARCHIVO historial.text con el historial de los juegos para probrar. NO
TIENE QUE IMPLEMENTAR LA FUNCIONALIDAD DE REGISTRAR LOS RESULTADOS DE
LOS REPASOS EN EL ARCHIVO historial.text

En el programa solicitado en la parte 1 del proyecto agregar las siguientes funcionalidades:


Al men principal agregar la opcin anlisis historial partidas.

Bienvenidos al Sistema de repaso


1. Ingresar Nueva Pregunta
2. Empezar Repaso
3. Anlisis Historial de Partidas
4. Salir

Cuando el usuario selecciona la opcin Anlisis Historial de Partidas, se muestra el siguiente


men

Anlisis Historial de Partidas


1. Reporte por Usuarios y Nivel
2. Reporte por puntajes
3. Volver al men principal.

OPCIN 1. Reporte por Usuarios y Nivel

Reporte por Usuarios y Nivel


1. Nmero de partidas jugadas por nivel.
2. Nmero de partidas jugadas por rango de fechas.
3. Jugador con ms partidas jugadas en cada nivel
4. Partidas jugadas por dias
5. Regresar

1. Nmeros de partidos jugadas por nivel: Devuelve el nmero total de partidas jugadas en
el nivel ingresado por el usuario adems de un reporte con el nmero de partidas jugados
por cada jugador en dicho nivel.

Ingrese el nivel que quiere consultar: Facil


Nmero de Partidas jugadas en total: 23
Partidas jugadas por jugador:
rocio 23
jose 10

maria 15

2. Nmero de partidas jugadas por usuario: Devuelve el nmero de partidas jugadas en un


perodo especfico de fechas para los cual debe ingresar el da de inicio y fin a consultar.
Adems debe devolver el nmero de partidas jugadas en ese rango de fechas por cada
nivel.

Ingrese el da de inicio: 2
Ingrese el da de fin: 15
Partidas jugadas en el perodo de tiempo: 50
Partidas jugadas por nivel:
Facil 23
Medio 10
Didicil 17

3. Jugador con mas partidas jugadas por cada nivel: Devuelve los nombres de los
jugadores que han jugado mas partidos en cada nivel junto con el nmero de partidas
jugadas

Facil rocio 23
Medio jose 25
Didicil rocio 25

4. Partidas jugadas por das: Crea una matriz de das x Niveles con el total de partidas
jugadas por da por nivel. Muestre esa matriz. De esa matriz obtenga y muestre los das
del mes donde e el nmero de partidas jugadas es mayor al promedio de nmero de
partidas en un da. Por ejemplo si en promedio en los 31 das se jugaron 6 partidas por
das, debe de devolver todos los das donde el nmero de partidas el mayor a 6

Matriz dias por nivel:


Facil

Didicil

Medio

dia 1

dia 2

..
dia 31

Das donde nmero de partidas es mayor al promedio


dia 1 , dia 5, dia 31

LUEGO DE MOSTRARSE EL RESULTADO DE LA OPCIN SE DEBE VOVER A


PRESENTAR EL MEN DE REPORTE POR USUARIO Y POR NIVELl.
OPCIN 2. Reporte por puntajes

Reporte por Puntajes


1. Por nivel.
2. Por Rango de Fechas.
3. Regresar al men anterior

1. Por nivel: El usuario ingresa que nivel que desea consultar y el sistema muestra en
mximo y mnimo puntaje as como el da que ocurrieron. Adems mostrar el promedio de
los puntajes de ese nivel y los puntajes que superen el promedio del nivel.

Nivel: Facil
Mximo puntaje 20, da 1
Mnimo puntaje 12, da 31
Puntaje Promedio: 17
Reportes que superan el promedio
Da 18: Puntaje 19
Da 23: Puntaje 18

2. Por Rango de Fechas: El usuario ingresa el rango de fechas que quiere mostrar y se
presentar el puntaje mximo y mnimo en ese rango de fechas. Adicionalmente mostrar
el puntaje promedio en el rango de fechas

Ingrese Da de Inicio: 1
Ingrese Da de Fin:12
Mximo puntaje 20, da 1
Mnimo puntaje 16, da 11
Puntaje Promedio: 16

LUEGO DE MOSTRARSE EL RESULTADO DE LA OPCIN SE DEBE VOVER A


PRESENTAR EL MEN DE REPORTE POR PUNTAJE.

NOTA: Debe realizar todas las validaciones necesarias para asegurar de que su programa
correr sin ningn problema.

Consideraciones:
Debe usar como base para este proyecto, la parte 1 de proyecto.
Su cdigo debe estar correctamente comentado.
Recuerde que para resolver los ejercicios debe usar la librera Numpy donde sea necesario.
Se considerar la presentacin del proyecto.
Para los reportes por nivel, el usuario pude ingresar el nivel en maysculas, minsculas y el
programa debe reconocerlo.
La primera y segunda parte del proyecto se calificarn sobre 25 puntos y la nota total del
proyecto es el promedio de las dos notas.

Modo de entrega:
Subir la carpeta de su en un archivo .zip con el nombre de los dos integrantes del proyecto
usuario1usuaria2.zip al link del sidweb
En caso de entrega atrasada el proyecto ser calificado sobre la mitad de la nota.