Untitled
unknown
plain_text
2 years ago
3.7 kB
8
Indexable
import sqlite3
def crear_tabla_libros():
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute('''
        CREATE TABLE IF NOT EXISTS libros (
            id INTEGER PRIMARY KEY,
            titulo TEXT NOT NULL,
            autor TEXT NOT NULL,
            ejemplares_disponibles INTEGER NOT NULL
        )
    ''')
    conn.commit()
    conn.close()
def agregar_libro():
    titulo = input("Ingrese el título del libro: ")
    autor = input("Ingrese el autor del libro: ")
    ejemplares = int(input("Ingrese la cantidad de ejemplares disponibles: "))
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute('''
        INSERT INTO libros (titulo, autor, ejemplares_disponibles)
        VALUES (?, ?, ?)
    ''', (titulo, autor, ejemplares))
    conn.commit()
    conn.close()
def eliminar_libro():
    libro_id = int(input("Ingrese el ID del libro que desea eliminar: "))
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute('DELETE FROM libros WHERE id = ?', (libro_id,))
    if cursor.rowcount == 0:
        print("Libro no encontrado")
    else:
        print("Libro eliminado exitosamente")
    conn.commit()
    conn.close()
def actualizar_libro():
    libro_id = int(input("Ingrese el ID del libro que desea actualizar: "))
    nuevos_ejemplares = int(input("Ingrese la nueva cantidad de ejemplares disponibles: "))
    nuevo_autor = input("Ingrese el nuevo autor del libro: ")
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute('''
        UPDATE libros
        SET ejemplares_disponibles = ?, autor = ?
        WHERE id = ?
    ''', (nuevos_ejemplares, nuevo_autor, libro_id))
    conn.commit()
    conn.close()
def buscar_libros():
    criterio = input("Ingrese el criterio de búsqueda (titulo/autor): ")
    valor = input(f"Ingrese el valor a buscar por {criterio}: ")
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute(f'''
        SELECT * FROM libros
        WHERE {criterio} LIKE ?
    ''', ('%' + valor + '%',))
    libros_encontrados = cursor.fetchall()
    if not libros_encontrados:
        print("Libro no encontrado")
    else:
        for libro in libros_encontrados:
            print(f"ID: {libro[0]}, Título: {libro[1]}, Autor: {libro[2]}, Ejemplares Disponibles: {libro[3]}")
    conn.close()
    return libros_encontrados
def listar_libros():
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM libros')
    libros = cursor.fetchall()
    conn.close()
    return libros
# Crear la tabla si no existe
crear_tabla_libros()
while True:
    print("\n======= Menú =======")
    print("1. Agregar Libro")
    print("2. Eliminar Libro")
    print("3. Actualizar Libro")
    print("4. Buscar Libros")
    print("5. Listar Todos los Libros")
    print("6. Salir")
    opcion = input("Ingrese el número de la opción deseada: ")
    if opcion == '1':
        agregar_libro()
    elif opcion == '2':
        eliminar_libro()
    elif opcion == '3':
        actualizar_libro()
    elif opcion == '4':
        resultado = buscar_libros()
        print(resultado)
    elif opcion == '5':
        todos_los_libros = listar_libros()
        for libro in todos_los_libros:
            print(libro)
    elif opcion == '6':
        print("¡Hasta luego!")
        break
    else:
        print("Opción no válida. Por favor, ingrese un número del 1 al 6.")
Editor is loading...
Leave a Comment