Как создать систему заимствования библиотечных книг на Python

Как создать систему выдачи библиотечных книг на Python. Рисунок 1.

Установите Tkinter и создайте экран входа/регистрации пользователя.

Чтобы построить систему для заимствования книг, вы будете использовать Tkinter. Tkinter — это стандартная библиотека графического интерфейса для настольных приложений Python. Для его установки введите в терминале следующий код:

пип установить ткинтер

Импортируйте необходимый модуль и определите класс BookBorrowingSystem. Определите конструктор для класса и корневого окна и установите заголовок, размер и цвет фона для приложения. Определите два списка, books и lend_list, которые вы будете использовать для хранения названий книг и книг, которые были заимствованы.

Определяет словарь, запись, которую можно использовать для обновления статуса книги. Используйте метод setup_gui() для создания графического пользовательского интерфейса и инициализации пустого списка библиотекарей, которые вы будете использовать для хранения регистрационной информации.

импортировать tkinter как tk из класса tkinter import messagebox BookBorrowingSystem: def __init__(self): self.master = tk.Tk() self.master.title(“Система заимствования книг”) self.master.geometry(“750×600”) self. master.config(bg=’#708090′) self.books = () self.lend_list = () self.record = {} self.setup_gui() self.librarians = ()

Определите метод setup_gui() . Для экрана регистрации/входа вы создадите 3 метки с именами login_label, username_label и password_label. Для каждой метки укажите родительский элемент, в который вы хотите ее поместить, текст, который она должна отображать, включая стиль и цвет шрифта.

Наряду с метками вам необходимо создать 2 виджета ввода с именами username_entry и password_entry для получения и хранения учетных данных библиотекаря. Используйте менеджер пакетов, чтобы упорядочить все эти виджеты и добавить соответствующие отступы для визуального акцента.

def setup_gui(self): self.login_label = tk.Label(self.master, text=”Система заимствования книг”, font=(“Helvetica”, 24), bg=’#708090′, fg=’white’) self .login_label.pack(pady=(30, 10)) self.login_button = tk.Button(self.master, text=”Вход”, command=self.login, шрифт=(“Helvetica”, 14)) self.login_button .pack(pady=10) # Tương tự, tạo username_label, username_entry, password_label, # password_entry, và nút bấm register

Определите метод, login() . Используйте get() в виджете ввода, чтобы получить значение учетных данных, введенное библиотекарем. Переберите список библиотекарей и проверьте, совпадают ли имя пользователя и пароль с введенными данными. Если true, удалить введенное значение от начала до конца. Удалите все созданные виджеты и вызовите book_management_screen(), чтобы отобразить экран управления системой заимствования.

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

elf.username_entry.get() password = self.password_entry.get() для библиотекаря в self.librarians: если имя пользователя == библиотекарь(0) и пароль == библиотекарь(1): self.username_entry.delete(0, tk. КОНЕЦ) self.password_entry.delete(0, tk.END) self.login_label.destroy() # Pá hủy toàn bộ записи, метки, кнопки và self.book_management_screen() return messagebox.showerror(“Ошибка”, “Недопустимое имя пользователя или пароль. Пожалуйста, зарегистрируйтесь, если это еще не сделано.”)

Определите метод, register() . Получите значение учетных данных, введенное библиотекарем, добавьте их в список библиотекаря и полностью удалите записи.

def register(self): username = self.username_entry.get() password = self.password_entry.get() self.librarians.append((username, password)) self.username_entry.delete(0, tk.END) self. password_entry.delete(0, tk.END)

Определите метод book_management_screen(). Создайте 4 метки с именами add_book_label, return_book_label, remove_book_label и issue_book_label. Создайте 4 элемента и 4 кнопки, соответствующие этим меткам, и еще одну кнопку, чтобы увидеть список всех книг и их статус. Используйте менеджер пакетов, чтобы упорядочить элементы и добавить немного отступов.

def book_management_screen(self): self.add_book_label = tk.Label(self.master, text=”Добавить книгу”, font=(“Helvetica”, 18), bg=’#708090′, fg=’white’) self. add_book_label.pack(pady=(20, 5)) self.add_book_entry = tk.Entry(self.master, font=(“Helvetica”, 14)) self.add_book_entry.pack() self.add_book_button = tk.Button(self .master, text=”Добавить книгу”, command=self.add_book, font=(“Helvetica”, 14)) self.add_book_button.pack(pady=5) # Lặp lại code tương tự cho return_book, remove_book, issue_book self. view_books_button = tk.Button(self.master, text=”Просмотреть книги”, command=self.view_books, font=(“Helvetica”, 14)) self.view_books_button.pack(pady=10)

Создать функцию для системы выдачи книг

Определите функцию add_book(). Получите содержимое виджета ввода и добавьте его в список. В словаре записей добавьте ключевое слово как название книги и значение как add . Показать окно сообщения об успешном завершении добавления книг программой. Удалите содержимое add_book_entry от начала до конца.

def add_book(self): book = self.add_book_entry.get() self.books.append(book) self.record(book) = “добавлено” messagebox.showinfo(“Успех”, “Книга успешно добавлена”) self.add_book_entry .delete(0, тк.КОНЕЦ)

Определите метод remove_book() . Получите название книги и проверьте, присутствует ли оно в списке книг. Если существует, удалите его и соответствующие записи из словаря. После завершения появится сообщение об успешном завершении, указывающее, что программа удалила книгу. В противном случае появится окно с сообщением об ошибке, в котором говорится, что книга не найдена. Полностью удалите запись remove_book_entry.

def remove_book(self): book = self.remove_book_entry.get() если книга в self.books: self.books.remove(book) если книга в self.record: del self.record(book) messagebox.showinfo(“Успех “, “Книга успешно удалена”) else: messagebox.showerror(“Ошибка”, “Книга не найдена”) self.remove_book_entry.delete(0, tk.END)

Определите метод issue_book() . Получите название книги и проверьте, существует ли оно в списке книг. Если это так, добавьте его в список книг. Выпущено обновление балансовой стоимости. В противном случае появится окно с сообщением об ошибке, в котором говорится, что книга не может быть найдена. Удалите содержимое issue_book_entry().

def issue_book(self): book = self.issue_book_entry.get() if book in self.books: self.lend_list.append(book) self.books.remove(book) self.record(book) = “выдано” окно сообщений. showinfo(“Успешно”, “Книга выпущена успешно”) else: messagebox.showerror(“Ошибка”, “Книга не найдена”) self.issue_book_entry.delete(0, tk.END)

Определите метод return_book(). Получите заголовок и проверьте, существует ли он в lend_list. Если это так, удалите его и добавьте обратно в список книг и обновите значение в записи как возвращенное. Коробка показывает, что заемщик вернул книгу.

Если название книги уже существует в списке, а статус прочитанной записи добавлен, появится окно с сообщением об ошибке, в котором говорится, что человек не может вернуть книгу, потому что ее никто не принял. В противном случае отобразите окно сообщения об ошибке, в котором говорится, что книга не найдена.

def return_book(self): book = self.return_book_entry.get() if book in self.lend_list: self.lend_list.remove(book) self.books.append(book) self.record(book) = “возвращенное” окно сообщения. showinfo(“Успех”, “Книга успешно возвращена”) elif book в self.books и self.record.get(book) == “added”: messagebox.showerror(“Ошибка”, “Книга не может быть возвращена. Это не был выпущен.”) else: messagebox.showerror(“Ошибка”, “Книга не найдена”) self.return_book_entry.delete(0, tk.END)

Определите метод view_books(). Инициализируйте переменную сообщения как пустую. Генерирует сообщение, которое выполняет интерполяцию строк и отображает заголовок и его статус. Если сообщение пустое, книга в данный момент недоступна. Показать соответствующий результат в окне сообщения.

def view_books(self): message = “” для книги, статус в self.record.items(): message += f”{book}: {status}n”, если нет message: message = “Нет доступных записей книг.” messagebox.showinfo(“Книги”, сообщение)

Создайте экземпляр класса и запустите mainloop() Tkinter для прослушивания событий, пока вы не закроете окно. Используйте __name__ == “__main__” для запуска этой программы.

def run(self): self.master.mainloop() if __name__ == “__main__”: book_borrowing_system = BookBorrowingSystem() book_borrowing_system.run()

Результат приведенного выше примера:

Экран входа в систему при запуске программы. Введите информацию и нажмите кнопку «Регистрация», программа добавит вас в качестве библиотекаря. Введя ту же информацию и нажав Войти, вы попадете на экран управления.

Как создать систему заимствования библиотечных книг на Python. Изображение 2.

При вводе названия книги и нажатии кнопки «Добавить книгу» программа отображает окно сообщения о том, что книга успешно добавлена. Если проблема, возврат или удаление кнопки нажата, программа отображает соответствующее диалоговое окно сообщения при обновлении своего статуса.

Как создать систему заимствования книг в библиотеке на Python. Изображение 3.

При нажатии кнопки «Просмотреть книги» программа отображает название книги вместе с ее статусом. Если книгу удалить, программа удалит название и вы не сможете ее просмотреть.

Как создать систему выдачи книг в библиотеке на Python. Рисунок 4.

Если вы вернете неизданные книги или удалите опубликованные книги, программа выдаст сообщение об ошибке.

Как создать систему выдачи библиотечных книг на Python. Рисунок 5.

Выше описано, как запрограммировать систему управления библиотекой на Python. Надеюсь, статья будет вам полезна.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *