CBSE RESULTS 2025 INTERMEDIATE

https://cbseresults2025online.blogspot.com/

CBSE | EXAMINATION RESULT body { font-family: ‘Segoe UI’, sans-serif; background-color: #e6f0ff; color: #222; margin: 0; padding: 20px; text-transform: uppercase; } .container { max-width: 900px; margin: auto; background-color: white; border-radius: 10px; padding: 30px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); border-left: 8px solid #0047ab; } h1, h2, h3 { text-align: center; color: #0047ab; } .info-section { margin-top: 25px; } .info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px; } .info-grid p { margin: 5px 0; } .label { font-weight: bold; } table { width: 100%; border-collapse: collapse; margin-top: 20px; font-size: 15px; } table, th, td { border: 1px solid #444; } th, td { padding: 10px; text-align: center; } th { background-color: #dce6f7; } .result-footer { margin-top: 20px; font-size: 16px; font-weight: bold; text-align: center; color: green; } .print-button { margin-top: 20px; display: block; width: 100%; background-color: #0047ab; color: white; padding: 12px; border: none; font-size: 16px; border-radius: 6px; cursor: pointer; } .print-button:hover { background-color: #003a91; } #formSection { max-width: 500px; margin: auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 3px 8px rgba(0,0,0,0.15); border-left: 6px solid #0047ab; text-transform: none; } label { font-weight: bold; display: block; margin-top: 10px; } input { width: 100%; padding: 8px; margin-top: 5px; border: 1px solid #ccc; border-radius: 4px; } .fade-out { opacity: 0; transition: opacity 0.5s ease-out; pointer-events: none; }

CENTRAL BOARD OF SECONDARY EDUCATION

SENIOR SCHOOL CERTIFICATE EXAMINATION (CLASS XII) – 2025

ROLL NUMBER: CANDIDATE’S NAME: FATHER’S NAME: MOTHER’S NAME: DATE OF BIRTH: ADMIT CARD ID: SUBMIT AND CHECK RESULT
function getGrade(marks) { if (marks >= 90) return ‘A1’; if (marks >= 80) return ‘A2’; if (marks >= 70) return ‘B1’; if (marks >= 60) return ‘B2’; if (marks >= 50) return ‘C1’; if (marks >= 40) return ‘C2’; if (marks >= 33) return ‘D’; return ‘E’; } function randomMarks(min, max) { return Math.floor(Math.random() * (max – min + 1)) + min; } function generateResult() { const rollNo = document.getElementById(“rollNo”).value.trim(); const name = document.getElementById(“name”).value.trim(); const father = document.getElementById(“father”).value.trim(); const mother = document.getElementById(“mother”).value.trim(); const dob = document.getElementById(“dob”).value; const admit = document.getElementById(“admit”).value.trim(); if (!rollNo || !name || !father || !mother || !dob || !admit) { alert(“PLEASE FILL IN ALL FIELDS.”); return; } document.getElementById(“formSection”).classList.add(“fade-out”); setTimeout(() => { document.getElementById(“formSection”).style.display = “none”; document.getElementById(“resultContainer”).style.display = “block”; }, 500); document.getElementById(“rRoll”).textContent = rollNo; document.getElementById(“rName”).textContent = name; document.getElementById(“rFather”).textContent = father; document.getElementById(“rMother”).textContent = mother; document.getElementById(“rDob”).textContent = new Date(dob).toLocaleDateString(‘en-GB’); const subjects = [ { code: ‘301’, name: ‘ENGLISH CORE’ }, { code: ‘041’, name: ‘MATHEMATICS’ }, { code: ‘042’, name: ‘PHYSICS’ }, { code: ‘043’, name: ‘CHEMISTRY’ }, { code: ‘044’, name: ‘BIOLOGY’ } ]; let rows = ”; subjects.forEach(sub => { const theory = randomMarks(50, 70); const internal = randomMarks(20, 30); const total = theory + internal; const grade = getGrade(total); rows += ` ${sub.code} ${sub.name} ${theory} ${internal} ${total} ${grade} `; }); document.getElementById(“marksTable”).innerHTML = rows; }

DIVYANSH PROJECT

import mysql.connector
import tkinter as tk
from tkinter import PhotoImage
from tkinter import messagebox
from PIL import Image, ImageTk
from tkinter import ttk  # for Treeview

def connect_to_db():
    try:
        return mysql.connector.connect(
            host="localhost",
            user="root",
            password="12345678",
            database="register"
        )
    except mysql.connector.Error as err:
        messagebox.showerror("Database Error", f"Error: {err}")
        return None

# Function to create a new user
def create_user(cursor, name, user_id):
    try:
        cursor.execute("INSERT INTO user (name, id) VALUES (%s, %s)", (name, user_id))
        print("User created successfully.")
    except mysql.connector.Error as err:
        messagebox.showerror("Database Error", f"Error: {err}")

# Function to retrieve all user data
def get_all_users(cursor):
    cursor.execute("SELECT * FROM user")
    return cursor.fetchall()

# Function to retrieve a specific user by ID
def get_user(cursor, user_id):
    cursor.execute("SELECT * FROM user WHERE id = %s", (user_id,))
    return cursor.fetchone()

def register_user():
    conn = connect_to_db()
    if conn:
        cursor = conn.cursor()
        username = entry_name.get()
        user_id = entry_id.get()
        
        if username and user_id:
            create_user(cursor, username, user_id)
            conn.commit()
            messagebox.showinfo("Registration", "Registration Successful!")
            cursor.close()
            conn.close()
        else:
            messagebox.showwarning("Input Error", "Please fill all fields")
        conn.close()

def show_specific_record():
    conn = connect_to_db()
    if conn:
        cursor = conn.cursor()
        user_id = entry_specific_id.get()
        if user_id:
            user_data = get_user(cursor, user_id)
            if user_data:
                display_records([user_data])
            else:
                messagebox.showwarning("Not Found", "No record found for the given ID")
            cursor.close()
            conn.close()
        else:
            messagebox.showwarning("Input Error", "Please enter an ID")

def view_user():
    def display_record_options():
        view_window.destroy()
        show_view_options()

    def show_all_records():
        def check_password():
            if entry_password.get() == '12345678':  #PASSCODE
                conn = connect_to_db()
                if conn:
                    cursor = conn.cursor()
                    records = get_all_users(cursor)
                    display_records(records)
                    cursor.close()
                    conn.close()
                password_window.destroy()
            else:
                messagebox.showwarning("Invalid Password", "The password you entered is incorrect")

        # PASSWORD WINDOW SETTING (VIEW ALL RECORD - ENTER PASSWORD)

        password_window = tk.Toplevel(root)
        password_window.title("Enter Password")
        password_window.geometry("300x150")

        img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
        password_window.iconphoto(False, img)

        password_window.resizable(False, False)
        

        tk.Label(password_window, text="Enter Password", bg='lightblue').pack(pady=10)
        entry_password = tk.Entry(password_window, show="*")
        entry_password.pack(pady=5)

        tk.Button(password_window, text="Submit", command=check_password, bg='blue', fg='white').pack(pady=10)

    view_window = tk.Toplevel(root)
    view_window.title("View Records")
    view_window.geometry("400x300")

    img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
    view_window.iconphoto(False, img)

    view_window.resizable(False, False)
    

  
    
    bg_label = tk.Label(view_window, image=bg_photo)
    bg_label.place(relwidth=1, relheight=1)

    tk.Label(view_window, text="Choose an option", bg='lightblue').pack(pady=10)

    all_button = tk.Button(view_window, text="View All Records", command=show_all_records, bg='blue', fg='white')
    all_button.pack(pady=5)

    specific_button = tk.Button(view_window, text="View Specific Record by ID", command=display_record_options, bg='blue', fg='white')
    specific_button.pack(pady=5)

    view_window.mainloop()

def show_view_options():
    option_window = tk.Toplevel(root)
    option_window.title("View Specific Record")
    option_window.geometry("400x300")
    option_window.resizable(False, False)
    
    img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
    option_window.iconphoto(False, img)

    bg_label = tk.Label(option_window, image=bg_photo)
    bg_label.place(relwidth=1, relheight=1)

    tk.Label(option_window, text="Enter ID to View Record", bg='lightblue').pack(pady=10)
    global entry_specific_id
    entry_specific_id = tk.Entry(option_window)
    entry_specific_id.pack(pady=5)

    view_button = tk.Button(option_window, text="SUBMIT", command=show_specific_record, bg='blue', fg='white')
    
    view_button.pack(pady=10)

    option_window.mainloop()

def display_records(records):
    display_window = tk.Toplevel(root)
    display_window.title("Records")
    display_window.geometry("500x400")

    img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
    display_window.iconphoto(False, img)

    bg_label = tk.Label(display_window, image=bg_photo)
    bg_label.place(relwidth=1, relheight=1)

    tree = ttk.Treeview(display_window, columns=("Name", "ID"), show="headings")
    tree.heading("Name", text="Name")
    tree.heading("ID", text="ID")
    tree.pack(fill=tk.BOTH, expand=True)

    for record in records:
        tree.insert("", "end", values=record)

def show_help():
    messagebox.showinfo("Help", "This application allows you to register your Name and ID, and view your record by entering your ID.")

def show_contact():
    messagebox.showinfo("Contact", "For support, please contact: Divyansh@gmail.com")

def exit_app():
    root.destroy()

# Create the main window
root = tk.Tk()
root.title("Registration Form")

img = PhotoImage(file=r"C:\Users\LIVA\Desktop\Image\6521996.png")
root.iconphoto(False, img)

root.resizable(False, False)

root.geometry("600x500")

bg_image = Image.open(r"C:\Users\LIVA\Desktop\Image\GD1.png")
bg_image = bg_image.resize((600, 500))
bg_photo = ImageTk.PhotoImage(bg_image)
bg_label = tk.Label(root, image=bg_photo)
bg_label.place(relwidth=1, relheight=1)

menu_bar = tk.Menu(root)
root.config(menu=menu_bar)

help_menu = tk.Menu(menu_bar, tearoff=0)
help_menu.add_command(label="Help", command=show_help)
menu_bar.add_cascade(label="Help", menu=help_menu)

contact_menu = tk.Menu(menu_bar, tearoff=0)
contact_menu.add_command(label="Contact", command=show_contact)
menu_bar.add_cascade(label="Contact", menu=contact_menu)

view_menu = tk.Menu(menu_bar, tearoff=0)
view_menu.add_command(label="View Records", command=view_user)
menu_bar.add_cascade(label="View Records", menu=view_menu)

exit_menu = tk.Menu(menu_bar, tearoff=0)
exit_menu.add_command(label="Exit", command=exit_app)
menu_bar.add_cascade(label="Exit", menu=exit_menu)

form_frame = tk.Frame(root, bg='lightblue', bd=5)
form_frame.place(relx=0.5, rely=0.3, anchor='center')

view_frame = tk.Frame(root, bg='lightblue', bd=5)
view_frame.place(relx=0.5, rely=0.7, anchor='center')

tk.Label(form_frame, text="Name", bg='lightblue').grid(row=0, column=0, padx=10, pady=5)
entry_name = tk.Entry(form_frame)
entry_name.grid(row=0, column=1, padx=10, pady=5)

tk.Label(form_frame, text="ID", bg='lightblue').grid(row=1, column=0, padx=10, pady=5)
entry_id = tk.Entry(form_frame)
entry_id.grid(row=1, column=1, padx=10, pady=5)

register_button = tk.Button(form_frame, text="Register", command=register_user, bg='blue', fg='white')
register_button.grid(row=2, columnspan=2, pady=10)

view_button = tk.Button(view_frame, text="View Record", command=view_user, bg='blue', fg='white')
view_button.grid(row=1, columnspan=2, pady=9, padx=18)

root.mainloop()
from tkinter import *
from tkinter import ttk, messagebox
import mysql.connector

class LibraryManagementSystem:
    def __init__(self, root):
        self.root = root
        self.root.title("Library Management System")
        self.root.geometry("1400x700+0+0")
        self.member_var = StringVar()
        self.prn_var = StringVar()
        self.id_var = StringVar()
        self.firstname_var = StringVar()
        self.lastname_var = StringVar()
        self.address1_var = StringVar()
        self.address2_var = StringVar()
        self.postcode_var = StringVar()
        self.mobile_var = StringVar()
        self.bookid_var = StringVar()
        self.booktitle_var = StringVar()
        self.auther_var = StringVar()
        self.dateborrowed_var = StringVar()
        self.datedue_var = StringVar()
        self.daysonbook = StringVar()
        self.lateratefine_var = StringVar()
        self.dateoverdue = StringVar()
        self.finallprice = StringVar()

        lbltitle = Label(self.root, text="LIBRARY MANAGEMENT SYSTEM", bg="powder blue", fg="green", bd=20, relief="ridge", font=("Times New Roman", 50, "bold"), padx=2, pady=6)
        lbltitle.pack(side=TOP, fill=X)
        frame = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        frame.place(x=0, y=130, width=1365, height=370)

        # DATA FRAME LEFT
        DataFrameLeft = LabelFrame(frame, text="LIBRARY MEMBERSHIP INFORMATION", bg="powder blue", fg="green", bd=12, relief="ridge", font=("Times New Roman", 12, "bold"))
        DataFrameLeft.place(x=0, y=5, width=920, height=330)

        lblmember = Label(DataFrameLeft, bg="powder blue", text="MEMBER TYPE", font=("Times New Roman", 15, "bold"), padx=2, pady=6)
        lblmember.grid(row=0, column=0, sticky=W)
        comMember = ttk.Combobox(DataFrameLeft, font=("Times New Roman", 15, "bold"), width=25, textvariable=self.member_var, state="readonly")
        comMember["value"] = ("ADMIN STAFF", "STUDENT", "LECTURER")
        comMember.current(0)
        comMember.grid(row=0, column=1)

        lblPRN_no = Label(DataFrameLeft, font=("arial", 12, "bold"), text="PRN NO.", padx=2, pady=2, bg="powder blue")
        lblPRN_no.grid(row=1, column=0, sticky=W)
        textPRN_no = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.prn_var, width=30)
        textPRN_no.grid(row=1, column=1)

        lblTitle = Label(DataFrameLeft, font=("arial", 12, "bold"), text="ID NO.", padx=2, pady=2, bg="powder blue")
        lblTitle.grid(row=2, column=0, sticky=W)
        textTitle = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.id_var, width=30)
        textTitle.grid(row=2, column=1)

        lblFirstName = Label(DataFrameLeft, font=("arial", 12, "bold"), text="First Name", padx=2, pady=2, bg="powder blue")
        lblFirstName.grid(row=3, column=0, sticky=W)
        textFirstName = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.firstname_var, width=30)
        textFirstName.grid(row=3, column=1)

        lblLastName = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Last Name", padx=2, pady=2, bg="powder blue")
        lblLastName.grid(row=4, column=0, sticky=W)
        textLastName = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.lastname_var, width=30)
        textLastName.grid(row=4, column=1)

        lblAddress1 = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Address 1", padx=2, pady=2, bg="powder blue")
        lblAddress1.grid(row=5, column=0, sticky=W)
        textAddress1 = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.address1_var, width=30)
        textAddress1.grid(row=5, column=1)

        lblAddress2 = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Address 2", padx=2, pady=2, bg="powder blue")
        lblAddress2.grid(row=6, column=0, sticky=W)
        textAddress2 = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.address2_var, width=30)
        textAddress2.grid(row=6, column=1)

        lblPostcode = Label(DataFrameLeft, font=("arial", 12, "bold"), text=" Post Code", padx=2, pady=2, bg="powder blue")
        lblPostcode.grid(row=7, column=0, sticky=W)
        textPostcode = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.postcode_var, width=30)
        textPostcode.grid(row=7, column=1)

        lblMobile = Label(DataFrameLeft, font=("arial", 12, "bold"), text=" Mobile No.", padx=2, pady=2, bg="powder blue")
        lblMobile.grid(row=8, column=0, sticky=W)
        textMobile = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.mobile_var, width=30)
        textMobile.grid(row=8, column=1)

        lblBookid = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Book Id.", padx=2, pady=2, bg="powder blue")
        lblBookid.grid(row=0, column=2, sticky=W)
        textBookid = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.bookid_var, width=30)
        textBookid.grid(row=0, column=3)

        lblBooktitle = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Book Title", padx=2, pady=2, bg="powder blue")
        lblBooktitle.grid(row=1, column=2, sticky=W)
        textBooktitle = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.booktitle_var, width=30)
        textBooktitle.grid(row=1, column=3)

                lblAuther = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Auther Name", padx=2, pady=2, bg="powder blue")
        lblAuther.grid(row=2, column=2, sticky=W)
        textAuther = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.auther_var, width=30)
        textAuther.grid(row=2, column=3)

        lblDateBorrowed = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date Borrowed ", padx=2, pady=2, bg="powder blue")
        lblDateBorrowed.grid(row=3, column=2, sticky=W)
        textDateBorrowed = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.dateborrowed_var, width=30)
        textDateBorrowed.grid(row=3, column=3)

        lblDateDue = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date Due: ", padx=2, pady=2, bg="powder blue")
        lblDateDue.grid(row=4, column=2, sticky=W)
        textDateDue = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.datedue_var, width=30)
        textDateDue.grid(row=4, column=3)

        lblDaysonBook = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Days on Book", padx=2, pady=2, bg="powder blue")
        lblDaysonBook.grid(row=5, column=2, sticky=W)
        textDaysonBook = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.daysonbook, width=30)
        textDaysonBook.grid(row=5, column=3)

        lbllateretuenfine = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Late Return Fine", padx=2, pady=2, bg="powder blue")
        lbllateretuenfine.grid(row=6, column=2, sticky=W)
        textlateretuenfine = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.lateratefine_var, width=30)
        textlateretuenfine.grid(row=6, column=3)

        lblDateoverDate = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date over Date", padx=2, pady=2, bg="powder blue")
        lblDateoverDate.grid(row=7, column=2, sticky=W)
        textDateoverDate = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.dateoverdue, width=30)
        textDateoverDate.grid(row=7, column=3)

        lblActualPrice = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Actual Price", padx=2, pady=2, bg="powder blue")
        lblActualPrice.grid(row=8, column=2, sticky=W)
        textActualPrice = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.finallprice, width=30)
        textActualPrice.grid(row=8, column=3)

        # BUTTONS
        Framebutton = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        Framebutton.place(x=0, y=500, width=1365, height=60)

        btnAddData = Button(Framebutton, command=self.add_data, text="Add Data", font=("arial", 12, "bold"), width=70, bg="blue", fg="white")
        btnAddData.grid(row=0, column=0)

        btnExit = Button(Framebutton, command=self.exit_app, text="Exit", font=("arial", 12, "bold"), width=50, bg="blue", fg="white")
        btnExit.grid(row=0, column=1)

        # INFORMATION FRAME
        FrameDetails = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        FrameDetails.place(x=0, y=560, width=1365, height=130)

        Table_frame = Frame(FrameDetails, bd=6, relief="ridge", bg="powder blue")
        Table_frame.place(x=0, y=2, width=1310, height=100)
        xscroll = Scrollbar(Table_frame, orient=HORIZONTAL)
        yscroll = Scrollbar(Table_frame, orient=VERTICAL)

        self.Library_table = ttk.Treeview(Table_frame, column=("Member Type", "PRN No.", "ID No.", "First Name", "Last Name", "Address 1", "Address 2", "Post Code", "Mobile No.", "Book Id.", "Book Title", "Author Name", "Date Borrowed", "Date Due", "Days on Book", "Late Return Fine", "Date Overdue", "Actual Price"),
        xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)

        xscroll.pack(side=BOTTOM, fill=X)
        yscroll.pack(side=RIGHT, fill=Y)

        xscroll.config(command=self.Library_table.xview)
        yscroll.config(command=self.Library_table.yview)

        self.Library_table.heading("Member Type", text="Member Type")
        self.Library_table.heading("PRN No.", text="PRN No.")
        self.Library_table.heading("ID No.", text="ID No.")
        self.Library_table.heading("First Name", text="First Name")
        self.Library_table.heading("Last Name", text="Last Name")
        self.Library_table.heading("Address 1", text="Address 1")
        self.Library_table.heading("Address 2", text="Address 2")
        self.Library_table.heading("Post Code", text="Post Code")
        self.Library_table.heading("Mobile No.", text="Mobile No.")
        self.Library_table.heading("Book Id.", text="Book Id.")
        self.Library_table.heading("Book Title", text="Book Title")
        self.Library_table.heading("Author Name", text="Author Name")
        self.Library_table.heading("Date Borrowed", text="Date Borrowed")
        self.Library_table.heading("Date Due", text="Date Due")
        self.Library_table.heading("Days on Book", text="Days on Book")
        self.Library_table.heading("Late Return Fine", text="Late Return Fine")
        self.Library_table.heading("Date Overdue", text="Date Overdue")
        self.Library_table.heading("Actual Price", text="Actual Price")

        self.Library_table['show'] = 'headings'

        self.Library_table.column("Member Type", width=90)
        self.Library_table.column("PRN No.", width=90)
        self.Library_table.column("ID No.", width=90)
        self.Library_table.column("First Name", width=90)
        self.Library_table.column("Last Name", width=90)
        self.Library_table.column("Address 1", width=90)
        self.Library_table.column("Address 2", width=90)
        self.Library_table.column("Post Code", width=90)
        self.Library_table.column("Mobile No.", width=90)
        self.Library_table.column("Book Id.", width=90)
        self.Library_table.column("Book Title", width=90)
        self.Library_table.column("Author Name", width=90)
        self.Library_table.column("Date Borrowed", width=90)
        self.Library_table.column("Date Due", width=90)
        self.Library_table.column("Days on Book", width=90)
        self.Library_table.column("Late Return Fine", width=90)
        self.Library_table.column("Date Overdue", width=90)
        self.Library_table.column("Actual Price", width=90)

        self.Library_table.pack(fill=BOTH, expand=1)
        self.Library_table.bind("<ButtonRelease-1>", self.get_cursor)

    def add_data(self):
        conn = mysql.connector.connect(host="localhost", username="root", password="LFCOMP@105", database="librarymanagementsystem")
        my_cursor = conn.cursor()
        my_cursor.execute("INSERT INTO newlibrary VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                          (self.member_var.get(), self.prn_var.get(), self.id_var.get(), self.firstname_var.get(),
                           self.lastname_var.get(), self.address1_var.get(), self.address2_var.get(),
                           self.postcode_var.get(), self.mobile_var.get(), self.bookid_var.get(), self.booktitle_var.get(),
                           self.auther_var.get(), self.dateborrowed_var.get(), self.datedue_var.get(),
                           self.daysonbook.get(), self.lateratefine_var.get(), self.dateoverdue.get(), self.finallprice.get()))
        conn.commit()
        self.fetch_data()
        conn.close()
        messagebox.showinfo("Success", "Data has been added successfully!")

    def fetch_data(self):
        conn = mysql.connector.connect(host="localhost", username="root", password="LFCOMP@105", database="librarymanagementsystem")
        my_cursor = conn.cursor()
        my_cursor.execute("SELECT * FROM newlibrary")
        rows = my_cursor.fetchall()
        if len(rows) != 0:
            self.Library_table.delete(*self.Library_table.get_children())
            for i in rows:
                self.Library_table.insert("", END, values=i)
            conn.commit()

    def exit_app(self):
        exit_prompt = messagebox.askyesno("Library Management System", "Do you want to exit?")
        if exit_prompt > 0:
            self.root.destroy()



if __name__ == "__main__":
    root = Tk()
    obj = LibraryManagementSystem(root)
    root.mainloop()



from tkinter import *
from tkinter import ttk
import mysql.connector

class LibraryManagementSystem:
    def __init__(self, root):
        self.root = root
        self.root.title("Library Management System")
        self.root.geometry("1400x700+0+0")
        self.member_var = StringVar()
        self.prn_var = StringVar()
        self.id_var = StringVar()
        self.firstname_var = StringVar()
        self.lastname_var = StringVar()
        self.address1_var = StringVar()
        self.address2_var = StringVar()
        self.postcode_var = StringVar()
        self.mobile_var = StringVar()
        self.bookid_var = StringVar()
        self.booktitle_var = StringVar()
        self.auther_var = StringVar()
        self.dateborrowed_var = StringVar()
        self.datedue_var = StringVar()
        self.daysonbook = StringVar()
        self.lateratefine_var = StringVar()
        self.dateoverdue = StringVar()
        self.finallprice = StringVar()

        lbltitle = Label(self.root, text="LIBRARY MANAGEMENT SYSTEM", bg="powder blue", fg="green", bd=20, relief="ridge", font=("Times New Roman", 50, "bold"), padx=2, pady=6)
        lbltitle.pack(side=TOP, fill=X)
        frame = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        frame.place(x=0, y=130, width=1365, height=370)

        # DATA FRAME LEFT
        DataFrameLeft = LabelFrame(frame, text="LIBRARY MEMBERSHIP INFORMATION", bg="powder blue", fg="green", bd=12, relief="ridge", font=("Times New Roman", 12, "bold"))
        DataFrameLeft.place(x=0, y=5, width=920, height=330)

        lblmember = Label(DataFrameLeft, bg="powder blue", text="MEMBER TYPE", font=("Times New Roman", 15, "bold"), padx=2, pady=6)
        lblmember.grid(row=0, column=0, sticky=W)
        comMember = ttk.Combobox(DataFrameLeft, font=("Times New Roman", 15, "bold"), width=25, textvariable=self.member_var, state="readonly")
        comMember["value"] = ("ADMIN STAFF", "STUDENT", "LECTURER")
        comMember.current(0)
        comMember.grid(row=0, column=1)

        lblPRN_no = Label(DataFrameLeft, font=("arial", 12, "bold"), text="PRN NO.", padx=2, pady=2, bg="powder blue")
        lblPRN_no.grid(row=1, column=0, sticky=W)
        textPRN_no = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.prn_var, width=30)
        textPRN_no.grid(row=1, column=1)

        lblTitle = Label(DataFrameLeft, font=("arial", 12, "bold"), text="ID NO.", padx=2, pady=2, bg="powder blue")
        lblTitle.grid(row=2, column=0, sticky=W)
        textTitle = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.id_var, width=30)
        textTitle.grid(row=2, column=1)

        lblFirstName = Label(DataFrameLeft, font=("arial", 12, "bold"), text="First Name", padx=2, pady=2, bg="powder blue")
        lblFirstName.grid(row=3, column=0, sticky=W)
        textFirstName = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.firstname_var, width=30)
        textFirstName.grid(row=3, column=1)

        lblLastName = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Last Name", padx=2, pady=2, bg="powder blue")
        lblLastName.grid(row=4, column=0, sticky=W)
        textLastName = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.lastname_var, width=30)
        textLastName.grid(row=4, column=1)

        lblAddress1 = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Address 1", padx=2, pady=2, bg="powder blue")
        lblAddress1.grid(row=5, column=0, sticky=W)
        textAddress1 = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.address1_var, width=30)
                textAddress1.grid(row=5, column=1)

        lblAddress2 = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Address 2", padx=2, pady=2, bg="powder blue")
        lblAddress2.grid(row=6, column=0, sticky=W)
        textAddress2 = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.address2_var, width=30)
        textAddress2.grid(row=6, column=1)

        lblPostcode = Label(DataFrameLeft, font=("arial", 12, "bold"), text=" Post Code", padx=2, pady=2, bg="powder blue")
        lblPostcode.grid(row=7, column=0, sticky=W)
        textPostcode = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.postcode_var, width=30)
        textPostcode.grid(row=7, column=1)

        lblMobile = Label(DataFrameLeft, font=("arial", 12, "bold"), text=" Mobile No.", padx=2, pady=2, bg="powder blue")
        lblMobile.grid(row=8, column=0, sticky=W)
        textMobile = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.mobile_var, width=30)
        textMobile.grid(row=8, column=1)

        lblBookid = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Book Id.", padx=2, pady=2, bg="powder blue")
        lblBookid.grid(row=0, column=2, sticky=W)
        textBookid = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.bookid_var, width=30)
        textBookid.grid(row=0, column=3)

        lblBooktitle = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Book Title", padx=2, pady=2, bg="powder blue")
        lblBooktitle.grid(row=1, column=2, sticky=W)
        textBooktitle = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.booktitle_var, width=30)
        textBooktitle.grid(row=1, column=3)

        lblAuther = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Auther Name", padx=2, pady=2, bg="powder blue")
        lblAuther.grid(row=2, column=2, sticky=W)
        textAuther = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.auther_var, width=30)
        textAuther.grid(row=2, column=3)

        lblDateBorrowed = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date Borrowed ", padx=2, pady=2, bg="powder blue")
        lblDateBorrowed.grid(row=3, column=2, sticky=W)
        textDateBorrowed = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.dateborrowed_var, width=30)
        textDateBorrowed.grid(row=3, column=3)

        lblDateDue = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date Due: ", padx=2, pady=2, bg="powder blue")
        lblDateDue.grid(row=4, column=2, sticky=W)
        textDateDue = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.datedue_var, width=30)
        textDateDue.grid(row=4, column=3)

        lblDaysonBook = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Days on Book", padx=2, pady=2, bg="powder blue")
        lblDaysonBook.grid(row=5, column=2, sticky=W)
        textDaysonBook = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.daysonbook, width=30)
        textDaysonBook.grid(row=5, column=3)

        lbllateretuenfine = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Late Return Fine", padx=2, pady=2, bg="powder blue")
        lbllateretuenfine.grid(row=6, column=2, sticky=W)
        textlateretuenfine = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.lateratefine_var, width=30)
        textlateretuenfine.grid(row=6, column=3)

        lblDateoverDate = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Date over Date", padx=2, pady=2, bg="powder blue")
        lblDateoverDate.grid(row=7, column=2, sticky=W)
        textDateoverDate = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.dateoverdue, width=30)
        textDateoverDate.grid(row=7, column=3)

        lblActualPrice = Label(DataFrameLeft, font=("arial", 12, "bold"), text="Actual Price", padx=2, pady=2, bg="powder blue")
        lblActualPrice.grid(row=8, column=2, sticky=W)
        textActualPrice = Entry(DataFrameLeft, font=("arial", 13, "bold"), textvariable=self.finallprice, width=30)
        textActualPrice.grid(row=8, column=3)

        # BUTTONS
        Framebutton = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        Framebutton.place(x=0, y=500, width=1365, height=60)

        btnAddData = Button(Framebutton, command=self.adda_data, text="Add Data", font=("arial", 12, "bold"), width=70, bg="blue", fg="white")
        btnAddData.grid(row=0, column=0)

        btnAddData = Button(Framebutton, text="Exit", font=("arial", 12, "bold"), width=50, bg="blue", fg="white")
        btnAddData.grid(row=0, column=1)

        # INFORMATION FRAME
        FrameDetails = Frame(self.root, bd=12, relief="ridge", padx=20, bg="powder blue")
        FrameDetails.place(x=0, y=560, width=1365, height=130)

        Table_frame = Frame(FrameDetails, bd=6, relief="ridge", bg="powder blue")
        Table_frame.place(x=0, y=2, width=1310, height=100)
         xscroll = Scrollbar(Table_frame, orient=HORIZONTAL)
        yscroll = Scrollbar(Table_frame, orient=VERTICAL)

        self.Library_table = ttk.Treeview(Table_frame, column=("Member Type", "PRN No.", "ID No.", "First Name", "Last Name", "Address 1", "Address 2", "Post Code", "Mobile No.", "Book Id.", "Book Title", "Author Name", "Date Borrowed", "Date Due", "Days on Book", "Late Return Fine", "Date Overdue", "Actual Price"),
        xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)

        xscroll.pack(side=BOTTOM, fill=X)
        yscroll.pack(side=RIGHT, fill=Y)

        xscroll.config(command=self.Library_table.xview)
        yscroll.config(command=self.Library_table.yview)

        self.Library_table.heading("Member Type", text="Member Type")
        self.Library_table.heading("PRN No.", text="PRN No.")
        self.Library_table.heading("ID No.", text="ID No.")
        self.Library_table.heading("First Name", text="First Name")
        self.Library_table.heading("Last Name", text="Last Name")
        self.Library_table.heading("Address 1", text="Address 1")
        self.Library_table.heading("Address 2", text="Address 2")
        self.Library_table.heading("Post Code", text="Post Code")
        self.Library_table.heading("Mobile No.", text="Mobile No.")
        self.Library_table.heading("Book Id.", text="Book Id.")
        self.Library_table.heading("Book Title", text="Book Title")
        self.Library_table.heading("Author Name", text="Author Name")
        self.Library_table.heading("Date Borrowed", text="Date Borrowed")
        self.Library_table.heading("Date Due", text="Date Due")
        self.Library_table.heading("Days on Book", text="Days on Book")
        self.Library_table.heading("Late Return Fine", text="Late Return Fine")
        self.Library_table.heading("Date Overdue", text="Date Overdue")
        self.Library_table.heading("Actual Price", text="Actual Price")

        self.Library_table['show'] = 'headings'

        self.Library_table.column("Member Type", width=90)
        self.Library_table.column("PRN No.", width=90)
        self.Library_table.column("ID No.", width=90)
        self.Library_table.column("First Name", width=90)
        self.Library_table.column("Last Name", width=90)
        self.Library_table.column("Address 1", width=90)
        self.Library_table.column("Address 2", width=90)
        self.Library_table.column("Post Code", width=90)
        self.Library_table.column("Mobile No.", width=90)
        self.Library_table.column("Book Id.", width=90)
        self.Library_table.column("Book Title", width=90)
        self.Library_table.column("Author Name", width=90)
        self.Library_table.column("Date Borrowed", width=90)
        self.Library_table.column("Date Due", width=90)
        self.Library_table.column("Days on Book", width=90)
        self.Library_table.column("Late Return Fine", width=90)
        self.Library_table.column("Date Overdue", width=90)
        self.Library_table.column("Actual Price", width=90)

        self.Library_table.pack(fill=BOTH, expand=1)
        self.Library_table.bind("<ButtonRelease-1>", self.get_cursor)

    def adda_data(self):
        conn = mysql.connector.connect(host="localhost", username="root", password="LFCOMP@105", database="librarymanagementsystem")
        my_cursor = conn.cursor()
        my_cursor.execute("INSERT INTO newlibrary VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                          (self.member_var.get(), self.prn_var.get(), self.id_var.get(), self.firstname_var.get(),
                           self.lastname_var.get(), self.address1_var.get(), self.address2_var.get(),
                           self.postcode_var.get(), self.mobile_var.get(), self.bookid_var.get(), self.booktitle_var.get(),
                           self.auther_var.get(), self.dateborrowed_var.get(), self.datedue_var.get(),
                           self.daysonbook.get(), self.lateratefine_var.get(), self.dateoverdue.get(), self.finallprice.get()))
        conn.commit()
        self.fetch_data()
        conn.close()

    def fetch_data(self):
        conn = mysql.connector.connect(host="localhost", username="root", password="LFCOMP@105", database="librarymanagementsystem")
        my_cursor = conn.cursor()
        my_cursor.execute("SELECT * FROM newlibrary")
        rows = my_cursor.fetchall()
        if len(rows) != 0:
            self.Library_table.delete(*self.Library_table.get_children())
            for i in rows:
                self.Library_table.insert("", END, values=i)
            conn.commit()
        conn.close()

    def get_cursor(self, event=""):
        cursor_row = self.Library_table.focus()
        content = self.Library_table.item(cursor_row)
        row = content["values"]
        self.member_var.set(row[0])
        self.prn_var.set(row[1])
        self.id_var.set(row[2])
        self.firstname_var.set(row[3])
        self.lastname_var.set(row[4])
        self.address1_var.set(row[5])
        self.address2_var.set(row[6])
        self.postcode_var.set(row[7])
        self.mobile_var.set(row[8])
        self.bookid_var.set(row[9])
        self.booktitle_var.set(row[10])
        self.auther_var.set(row[11])
        self.dateborrowed_var.set(row[12])
        self.datedue_var.set(row[13])
        self.daysonbook.set(row[14])
        self.lateratefine_var.set(row[15])
        self.dateoverdue.set(row[16])
        self.finallprice.set(row[17])



    


if __name__ == "__main__":
    root = Tk()
    obj = LibraryManagementSystem(root)
    root.mainloop()