Tutorial de Python en Español # 50 - Programa de Aplicación III (1)
http://www.youtube.com/watch?v=ITtN_ghjVK8&feature=related
Tutorial de Python en Español # 51 - Programa de Aplicación III (2)
http://www.youtube.com/watch?v=0y9n9kwFk20&feature=related
Tutorial de Python en Español # 52 - Programa de Aplicación III (3)
http://www.youtube.com/watch?v=OPaTHr-iAno&feature=related
Tutorial de Python en Español # 53 - Programa de Aplicación III (4)
http://www.youtube.com/watch?v=MtyFZtdHKoE&feature=related
Cal recordar que s'ha de tenir el modul record, i un parell de fitxers txt. Deixo aquí el seu contingut:
RegistroClientes.txt
Pepe Luis,1,0,True
Maria Marta,2,0,True
RegistroPeliculas.txt
Matrix,1,0,True
El Origen,2,0,True
Jo ho he treballat en la carpeta e:\PythonExercices i l'aspecte és aquest:
CODI DEL PROGRAMA VIDEOCLUB
videoclub01.py
#Mòdul record. Cal que hi sigui a la mateixa carpeta que el programa#Serveix per crear els registres
from record color="#FF0000">import record
#Creació REGISTRE Cliente. Es forma amb una clase que conté camps
class Cliente(record):
#Creem els camps de la clase Cliente
nombre = ""
codigo = 0
ultima_pelicula = None
habilitado = True
#Creació REGISTRE Pelicula
class Pelicula(record):
#Creem els camps de la clase Pelicula
nombre = ""
codigo = 0
ultimo_cliente = 0
habilitada = True
#Definim la funció abrirBaseDeDatos (Funció 1)
def abrirBaseDeDatos():
#Crea dues llistes que contindran les dades dels txt
#Amb [] les inicialitzem com a llistes buides
lista_clientes = []
lista_peliculas = []
#Omplim la variable fichero_clientes amb una funció anomenada
#abrirFichero (Funció 2)
fichero_clientes = abrirFichero("RegistroClientes.txt")
#Amb la funció abrirFichero (Funció 3) hem validat la possibilitat de
#que el fitxer no existexi
#Si el fitxer existeix, la funció abrirFichero (3) no ens retornarà
#res, es a dir no serà "None"
if fichero_clientes != None:
#Fem servir la funció poblarLista (Funció 3)
poblarLista (lista_clientes,fichero_clientes,1)
fichero_clientes.close()
fichero_peliculas = abrirFichero("RegistroPeliculas.txt")
if fichero_peliculas != None:
poblarLista (lista_peliculas,fichero_peliculas,2)
fichero_peliculas.close()
return lista_clientes,lista_peliculas
#Definim la funció abrirFichero (Funció 2)
#Aquesta funció valida que el fitxer existeixi. En cas contrari genera un missatge
def abrirFichero(nombre_archivo):
try:
return open (nombre_archivo,"r")
except:
print "n\n\No se pudo abrir el archivo",nombre_archivo
return
#Definim la funció poblarLista (Funció 3)
def poblarLista(lista,fichero,numero_lista):
for linea in fichero:
registro = linea.rstrip().split(",")
if numero_lista == 1:
#Està omplint els camps de la llista 1: nombre + codigo + ultima PELICULA + habilitadO
#Separo les linies per una més fàcil interpretació. Observeu els parèntesis.
lista.append(
Cliente(nombre = registro[0],
codigo = int(registro[1]),
ultima_pelicula = int(registro[2]),
habilitado = convertirVF(registro[3]) ) )
elif numero_lista == 2:
#Està omplint els camps de la llista 2: nombre + codigo + ultimo CLIENTE + habilitadA
lista.append(
Pelicula(
nombre = registro[0],
codigo = int(registro[1]),
ultimo_cliente = int(registro[2]),
habilitada = convertirVF(registro[3]) ) )
return
#Definim la funció convertirVF (Funció 4)
def convertirVF(cadena):
if cadena == "True":
return True
elif cadena == "False":
return False
#Interconnexió de registres (Funció 5)
def interconectarRegistros():
global lista_clientes
for c in range (len(lista_clientes)):
lista_clientes[c].ultima_pelicula = buscarRegistro(lista_clientes[c],ultima_pelicula,2)
return
#Missatge inicial (Funció 6)
def mostrarInicio():
clear_output()
print "n\n\n *// VIDEOCLUB // *\n"
print "... Presione una Tecla ...\n\n"
#el paràmetre 2 fa esperar que es presioni una tecla
keypressed(2)
return
#Menu (Funció 7)
#ls és el número màxim d'opcions dins el menú
def mostrarMenu(opciones,ls):
clear_output()
print " *// VIDEOCLUB // *\n"
print opciones
return elegirOpcion(ls)
#Menu escollirOpció (Funció 8)
def elegirOpcion(limite_superior):
opcion = keypressed(2)
while not opcionEsValida(opcion,limite_superior):
opcion = keypressed(2)
return opcion
#Comprovem si l'opció és dins el rang permès (Funció 9)
def opcionEsValida(opcion,ls):
if opcion == "Escape":
return True
for elemento in range(1,ls+1):
if opcion == str(elemento):
return True
return False
#Constantes
#Per facilitar la comprensió del codi s'han tallat les línies amb \
opciones_menu_principal = "- Menú Principal -\n\n"
"1) Gestión de VideoClub\n"
"2) Gestión de Películas\n"
"3) Gestión de Clientes \n"
opciones_menu_videoclub ="- Menú VideoClub -\n\n"
"1) Alquiler Película \n"
"2) Devolver Película \n"
opciones_menu_peliculas ="- Menú Películas -\n\n"
"1) Consultar Pelicula \n"
"2) Agregar Película \n"
"3) Eliminar Pelicula \n"
opciones_menu_clientes ="- Menú Clientes -\n\n"
"1) Consultar Cliente \n"
"2) Agregar Cliente \n"
"3) Eliminar Cliente \n"
##################################
# #
# PARTE PRINCIPAL DEL PROGRAMA #
# #
##################################
lista_clientes,lista_peliculas = abrirBaseDeDatos()
#Quan s'implementa la funció mostrarInicio, el print ja no te sentit
#print lista_clientes,lista_peliculas
mostrarInicio()
while True:
opcion_principal = mostrarMenu(opciones_menu_principal,3)
if opcion_principal == "1":
opcion_videoclub = mostrarMenu(opciones_menu_videoclub,2)
if opcion_videoclub == "1":
alquilarPelicula()
elif opcion_videoclub == "2":
devolverPelicula()
elif opcion_principal == "2":
opcion_peliculas = mostrarMenu(opciones_menu_peliculas,3)
if opcion_peliculas == "1":
consultarPelicula()
elif opcion_peliculas =="2":
agregarPelicula()
elif opcion_peliculas == "3":
eliminarRegistro(2)
elif opcion_principal == "3":
opcion_clientes = mostrarMenu(opciones_menu_clientes,3)
if opcion_clientes == "1":
consultarCliente()
elif opcion_clientes == "2":
agregarCliente()
elif opcion_clientes == "3":
eliminarRegistro(1)
if opcion_principal == "Escape":
mostrarInicio()
Cap comentari:
Publica un comentari a l'entrada