Untitled

mail@pastecode.io avatar
unknown
plain_text
6 months ago
4.0 kB
1
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,
            editorial TEXT NOT NULL,
            ejemplares_disponibles INTEGER DEFAULT 0
        )
    ''')

    conn.commit()
    conn.close()

def agregar_libro():
    titulo = input("☆ Ingrese el título del libro: ")
    autor = input("☆ Ingrese el autor del libro: ")
    editorial = input("☆ Ingrese la editorial 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, editorial, ejemplares_disponibles)
        VALUES (?, ?, ?, ?)
    ''', (titulo, autor, editorial, 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("\n☆ 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: "))
    nueva_editorial = input("☆ Ingrese la nueva editorial del libro: ")

    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()

    cursor.execute('''
        UPDATE libros
        SET ejemplares_disponibles = ?, editorial = ?
        WHERE id = ?
    ''', (nuevos_ejemplares, nueva_editorial, libro_id))

    conn.commit()
    conn.close()

def buscar_libros():
    valor = input("☆ Ingrese el valor a buscar (título o autor): ")

    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()

    cursor.execute('''
        SELECT * FROM libros
        WHERE titulo LIKE ? OR autor LIKE ?
    ''', ('%' + valor + '%', '%' + valor + '%'))

    libros_encontrados = cursor.fetchall()

    if not libros_encontrados:
        print("\n☆ Libro no encontrado ☆")
    else:
        for libro in libros_encontrados:
            print(f"☆ ID: {libro[0]}, ☆ Título: {libro[1]}, ☆ Autor: {libro[2]}, ☆ Editorial: {libro[3]}, ☆ Ejemplares Disponibles: {libro[4]}")

    conn.close()
    return libros_encontrados

def listar_libros():
    conn = sqlite3.connect('biblioteca.db')
    cursor = conn.cursor()

    cursor.execute('SELECT * FROM libros')
    libros = cursor.fetchall()

    for libro in libros:
        print(f"☆ ID: {libro[0]}, ☆ Título: {libro[1]}, ☆ Autor: {libro[2]}, ☆ Editorial: {libro[3]}, ☆ Ejemplares Disponibles: {libro[4]}")

    conn.close()
    return libros

# Crear la tabla si no existe
crear_tabla_libros()

def switch(opcion):
    opciones = {
        '1': agregar_libro,
        '2': eliminar_libro,
        '3': actualizar_libro,
        '4': buscar_libros,
        '5': listar_libros,
        '6': lambda: print("☆¡Hasta luego!☆"),
    }
    opciones.get(opcion, lambda: print("Opción no válida. Por favor, ingrese un número del 1 al 6."))()

while True:
    print("\n✧‿ ︵‿ ୨♡୧‿  MENÚ ‿ ୨♡୧‿ ︵‿✧")
    print("\n1. Agregar Libro")
    print("2. Eliminar Libro")
    print("3. Actualizar Libro")
    print("4. Buscar Libros (por título o autor)")
    print("5. Listar Todos los Libros")
    print("6. Salir\n")

    opcion = input("Ingrese el número de la opción deseada: ")
    switch(opcion)
    if opcion == '6':
        break
Leave a Comment