На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

Учёт выпускников (Python, Tkinter, Sqlite)

Скриншот архива с проектом

Структура проекта

Задание

Разработать программу на языке Python для учёта выпускников. В качестве графического интерфейса использовать  Tkinter.

Функционал программы

  • добавление выпускника;
  • редактирование данных;
  • удаление данных;
  • поиск  выпускника по его фамилии;
  • обновление данных

Фрагмент программного кода

import tkinter as tk
from tkinter import ttk
import sqlite3
from PIL import ImageTk
import customtkinter


# customtkinter.set_appearance_mode("dark")
# customtkinter.set_default_color_theme("dark-blue")


# Класс Main
def open_update_dialog():
    Update()


class Main(customtkinter.CTkFrame):
    def __init__(self, root):
        super().__init__(root)
        self.tree = None
        self.refresh_img = ImageTk.PhotoImage(file='refresh.png')
        self.search_img = ImageTk.PhotoImage(file='search.png')
        self.delete_img = ImageTk.PhotoImage(file='delete.png')
        self.edit_img = ImageTk.PhotoImage(file='new_edit.png')
        self.add_img = ImageTk.PhotoImage(file='new_add.png')
        self.init_main()
        self.db = db
        self.view_records()

    # Главное окно
    def init_main(self):
        title_label = tk.Label(root, text="Выпускники", font=("Arial", 15, "bold"),
                               border=12, relief=tk.GROOVE, bg="blue", foreground="yellow")

        title_label.pack(side=tk.TOP, fill=tk.X)

        toolbar = tk.Frame(bg='beige', bd=2)
        toolbar.pack(side=tk.TOP, fill=tk.X)

        btn_open_dialog = tk.Button(toolbar, text='Добавить выпускника', command=self.open_dialog, bg='beige',
                                    bd=0, compound=tk.TOP, image=self.add_img)
        btn_open_dialog.pack(side=tk.LEFT)

        btn_edit_dialog = tk.Button(toolbar, text='Редактировать', bg='beige', bd=0, image=self.edit_img,
                                    compound=tk.TOP, command=open_update_dialog)
        btn_edit_dialog.pack(side=tk.LEFT)

        btn_delete_dialog = tk.Button(toolbar, text='Удалить', bg='beige', bd=0, image=self.delete_img,
                                      compound=tk.TOP, command=self.delete_records)
        btn_delete_dialog.pack(side=tk.LEFT)

        btn_search = tk.Button(toolbar, text='Поиск', bg='beige', bd=0, image=self.search_img,
                               compound=tk.TOP, command=self.open_search_dialog)

        btn_search.pack(side=tk.LEFT)

        btn_refresh = tk.Button(toolbar, text='Обновить', bg='beige', bd=0, image=self.refresh_img,
                                compound=tk.TOP, command=self.view_records)
        btn_refresh.pack(side=tk.LEFT)

        columns = ('ID', 'full_name', 'position', 'salary')

        self.tree = ttk.Treeview(self, columns=columns, height=15, show='headings')

        self.tree.column('ID', width=30, anchor=tk.CENTER)
        self.tree.column('full_name', width=365, anchor=tk.CENTER)
        self.tree.column('position', width=120, anchor=tk.CENTER)
        self.tree.column('salary', width=110, anchor=tk.CENTER)

        self.tree.heading('ID', text='ID')
        self.tree.heading('full_name', text='Выпускник')
        self.tree.heading('position', text='Должность')
        self.tree.heading('salary', text='Зарплата')

        self.tree.pack(side=tk.LEFT)

        scroll = tk.Scrollbar(self, command=self.tree.yview)
        scroll.pack(side=tk.LEFT, fill=tk.Y)
        self.tree.configure(yscrollcommand=scroll.set)

    # Добавление данных
    def records(self, full_name, position, salary):
        self.db.insert_data(full_name, position, salary)
        self.view_records()

    # Обновление данных
    def update_record(self, full_name, position, salary):
        self.db.c.execute('''UPDATE graduates SET full_name=?, position=?, salary=? WHERE ID=?''',
                          (full_name, position, salary, self.tree.set(self.tree.selection()[0], '#1')))
        self.db.conn.commit()
        self.view_records()

    # Вывод данных
    def view_records(self):
        self.db.c.execute('''SELECT * FROM graduates''')
        [self.tree.delete(i) for i in self.tree.get_children()]
        [self.tree.insert('', 'end', values=row) for row in self.db.c.fetchall()]

    # Удаление данных
    def delete_records(self):
        for selection_item in self.tree.selection():
            self.db.c.execute('''DELETE FROM graduates WHERE id=? ''', (self.tree.set(selection_item, '#1'),))
            self.db.conn.commit()
            self.view_records()

    # Поиск данных
    def search_records(self, full_name):
        full_name = ('%' + full_name + '%',)
        self.db.c.execute('''SELECT * FROM graduates WHERE full_name LIKE ?''', full_name)
        [self.tree.delete(i) for i in self.tree.get_children()]
        [self.tree.insert('', 'end', values=row) for row in self.db.c.fetchall()]

    # Открытие дочернего окна
    @staticmethod
    def open_dialog():
        Child()

    @staticmethod
    def open_search_dialog():
        Search()

# Основной код для запуска
if __name__ == "__main__":
    root = customtkinter.CTk()
    db = DB()
    app = Main(root)
    app.pack()
    root.geometry("665x500+300+200")
    root.title("Учет выпускников")
    root.resizable(False, False)
    root.mainloop()

Пояснения по запуску программы

С оффициального сайта скачать и установить Python, с оффициального сайта скачать и установить PyCharm. Открыть проект. Запустить программу. 

Купить 1000,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (0)

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

1000,00 

Покупается впервые!
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

Выпускники.rar
7883622
Оцени работу

рейтинг

Учёт выпускников (Python, Tkinter, Sqlite)
Программа учета выпускников на языке Python, графический интерфейс выполнен на Tkinter.
Категория: Образование
Стоимость: 1000,00