Pàgines

dissabte, 31 de desembre del 2011

Codi videoclub de Clases de Ingenieria en Python

L'únic problema que li trobo al tutorial de Python en YouTube impartit per Clases de Ingenieria es -justament- que el format es YouTube. Evidentment es pot descarregar però trobo que haguès estat còmode dispossar del codi en fitxer de text per poder-lo anar diggerint fora de pantalla. Per si a algú li serveix deixo aqui el codi des del capítol 50 fins el 53 amb comentaris. Igualment deixo els links del 50 al 53

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