Programa básico completado con los requerimientos funcionales que se pedían.