Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
3.3 kB
4
Indexable
Never
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,))

    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()

    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.")
Leave a Comment