Está en la página 1de 3

Fundamentos de Programacin

Proyecto de 3ra Evaluacin


Fecha de Entrega: 8 de Marzo del 2017 a las 23:55 pm

Objetivos:
Al finalizar este programa usted ganar ms experiencia en
Operaciones de entrada y salida de archivos
Operaciones con Diccionarios
Operaciones con listas
Manejo de Cadena de caracteres

Descripcin:
En este proyecto usted crear un programa que permitir al usuario consultar informacin acerca de
los libros que han aparecido en la lista de los libros mejores vendidos publicados por el New York
Times desde 1942.
El archivo bestsellers.txt contiene la data de los libros. Cada lnea en el archivo contiene
informacin de un libro, la cual incluye: ttulo, autor, editorial, fecha en que se lleg a ser best seller
y categora (Fiction y Nonfiction). Los campos en la lnea estn separados por un carcter tab (en
python tab caracter es \t).

El programa debe mostrar un men de opciones que permite al usuario buscar los libros que
cumplen con cierto criterio. Las opciones del men son:

1. Mostrar los libros que fueron publicados dentro de un rango de aos: El programa pide al
usuario el ao de inicio y ao de fin de la bsqueda y muestra informacin de los Best Sellers
entre esos aos. El ao de fin de la bsqueda puede ser opcional, si el usuario no ingresa ao de
fin se debe considerar como ao de fin el ao actual (2017).

Ingrese ao de inicio: 1960


Ingrese ao de fin: 1962

Los Best Sellers entre 1960 y 1962 son:


A Shade of Difference, por Allen Drury (10/28/1962)
Franny and Zooey, por J. D. Sallinger (10/29/1961)
Hawaii, por James Michener (1/17/1960)
Seven Days in May, por Fletcher Knebel (11/18/1962)
.
.

2. Buscar libros por ttulo: El programa pide al usuario una cadena de caracteres y entonces
muestra todos los libros que contienen esa cadena de caracteres en el ttulo(sin importar
maysculas o minsculas). Por ejemplo, si el usuario ingresa secret, el programa debera
mostrar los siguientes libros:

Ingrese el ttulo del libro (o parte de el ttulo): secret


The Secret of Santa Vittoria por Robert Crichton,
The Secret Pilgrim por John le Carr,
Harry Potter and the Chamber of Secrets por J. K. Rowling
3. Top 10 Editoriales: Esta opcin permite la usuario consultar las 10 editoriales que han
publicado ms Best Sellers. Esta opcin debe mostrar el nombre de las editoriales con el nmero
de best sellers publicados.

Las editoriales top 10 son:


Putnam 89
Little, Brown 87
Simon & Schuster 85
Doubleday 79
Random House 72
.
.

4. Estadsticas por autor y categora: Esta opcin muestra al usuario las siguiente informacin

Nombre del autor ms Best Sellers ha publicado:


Nombre del autor ms Best Sellers ha publicado por categora:
Fiction:
Nonfiction:
Nmero de Best Sellers por cada categora:
Fiction:
Nonfiction:

Para esta opcin usted debe crear una matriz de numpy autores vs categoras, donde cada celda es el
nmero de libros de ese autor en esa categora y usar esa matriz para obtener la informacin
requerida.

5. Salir: Termina el programa.

Instrucciones:

Lectura del archivo:


Cree una funcin que lea el archivo con los libros lnea a lnea y retorne una lista donde cada
elemento es un diccionario con la informacin de un libro. A continuacin un ejemplo de la salida
de esta funcin:

[
{publisher': 'Random House', 'date': '4/11/1976', 'title': '1876', 'cathegory': 'Fiction', 'author': 'Gore
Vidal},
{'publisher': 'Scribner', 'date': '11/27/2011', 'title': '23337', 'cathegory': 'Fiction', 'author': 'Stephen
King},
{'publisher': 'Putnam', 'date': '7/8/1984', 'title': '...and Ladies of the Club', 'cathegory': 'Fiction',
'author': 'Helen Hooven Santmeyer},
{'publisher': 'Little, Brown', 'date': '3/25/2001', 'title': '1st to Die', 'cathegory': 'Fiction', 'author':
'James Patterson},
.
.
.
{'publisher': ' Scribner ', 'date': ' 10/13/2013 ', 'title': 'Doctor Sleep ', 'cathegory': ' Fiction', 'author': '
Stephen King }
]
Matriz Numpy
Cree una funcin que retorne una matriz de numpy donde las filas son los nombres de los autores y
las columnas son las categoras de los libros (Fiction y nonfiction). Cada celda tiene el nmero de
bestsellers publicados por el autor por categora (Fiction y NonFiction). Para esto cree una lista
con los nombres de los autores y una lista con los nombres de las categoras. Recorra la lista
con los libros y por cada registro aumentar en 1 el nmero de libros publicados por el autor
del registro en la categora que corresponda.

Opciones del Men


Cree una funcin separada para cada una de las opciones del men principal.
Opcin 1: Cree una funcin que retorne una lista de tuplas (ttulo, autor, fecha) con los nombres
de los libros que fueron publicados en un rango de aos. Esta funcin recibe como parmetros la
lista con los libros, el ao de inicio de la bsqueda y el ao de fin de la bsqueda. El ao de fin de
la bsqueda debele tener como valor por defecto 2017
Opcin 2: Cree una funcin que retorne una lista de tuplas (ttulo, autor) con los libros en cuyos
ttulos estn presentes la cadena de caracteres ingresada por el usuario. La funcin recibe como
parmetro la lista de libros y la cadena de caracteres para la bsqueda.
Opcin 3: Cree una funcin que reciba la lista de libros y retorne una lista de tuplas (editorial,
nmero bestSellers) con las 10 editoriales que ms Best Sellers han publicado. Nota: para el
conteo use un diccionario donde la clave es el nombre de la editorial y el valor en nmero de
publicaciones de la editorial.
Opcin 4: Cree una funcin que llame a la funcin que crea la matriz de numpy autores vs
categoras y obtenga las estadsticas pedidas.

Consideraciones:
El programa debe continuar ejecutndose hasta que el usuario ingrese la opcin 5 del men.
Si un criterio de bsqueda no devuelve ningn resultado muestre un mensaje indicando que No
hay resultados para mostrar, en lugar de solamente no mostrar nada.
Su programa debe validar errores de ingreso del usuario y mostrar mensajes apropiados.
No se pueden usar variables globales dentro de las funciones, cada funcin slo puede hacer
referencia a variables que hayan sido definidas como parmetros de la funcin.

ENTREGA PROYECTO:
Subir un .zip con todos los archivos del proyecto al link en el sidweb
Slo un miembro del grupo debe subir el avance
Es obligatorio el uso de funciones en la implementacin del proyecto. No se aceptarn proyectos
que no hayan dividido el programa en funciones.
Su proyecto debe tener al menos dos archivos, uno con el programa principal y otro con las
funciones desarrolladas para el mismo.

También podría gustarte