import tkinter as tk from tkinter import messagebox questions = [ { "question": "Что такое технические средства защиты от незаконного доступа (НСД)?", "answers": [ "Только программные средства, предназначенные для защиты информации.", "Комплекс программных и аппаратных средств, предотвращающих несанкционированное проникновение.", "Совокупность средств, предназначенных для защиты данных и обнаружения вторжений.", "Только аппаратные устройства, использующиеся в системах безопасности." ], "correct": 2 }, { "question": "Какие основные характеристики имеют средства защиты от НСД?", "answers": [ "Уровень защиты, устойчивость к взлому, возможность обнаружения вторжений, удобство использования, масштабируемость.", "Только скорость работы и простота установки.", "Цена и внешняя привлекательность устройств.", "Уровень защиты, устойчивость к взлому, возможность обнаружения вторжений, удобство использования и масштабируемость." ], "correct": 3 }, { "question": "Что включает в себя понятие «многоуровневая система защиты»?", "answers": [ "Использование только программных средств защиты.", "Использование криптографических модулей и межсетевых экранов.", "Комбинацию программных и аппаратных решений, позволяющих повысить уровень защиты.", "Обновление программного обеспечения один раз в год." ], "correct": 2 }, { "question": "Почему важна регулярная настройка и обновление средств защиты?", "answers": [ "Для повышения стоимости оборудования.", "Для исключения необходимости обучения персонала.", "Для повышения эффективности защиты и противодействия новым киберугрозам.", "Для снижения затрат на безопасность." ], "correct": 2 } ] class QuizApp: def __init__(self, master): self.master = master self.master.title("Викторина по защите от НСД") self.score = 0 self.current_question = 0 self.question_label = tk.Label(self.master, text="", font=("Arial", 14), wraplength=600) self.question_label.pack(pady=20) self.var = tk.IntVar() self.radio_buttons = [] for i in range(4): rb = tk.Radiobutton(self.master, text="", variable=self.var, value=i, font=("Arial", 12)) rb.pack(anchor='w', padx=20, pady=5) self.radio_buttons.append(rb) self.next_button = tk.Button(self.master, text="Следующий вопрос", command=self.next_question, font=("Arial", 12)) self.next_button.pack(pady=20) self.load_question() def load_question(self): question = questions[self.current_question] self.question_label.config(text=question["question"]) self.var.set(-1) for i, answer in enumerate(question["answers"]): self.radio_buttons[i].config(text=answer) def next_question(self): selected = self.var.get() if selected == -1: messagebox.showwarning("Внимание", "Пожалуйста, выберите ответ") return correct_answer = questions[self.current_question]["correct"] if selected == correct_answer: messagebox.showinfo("Правильно!", "Верно!") self.score += 1 else: correct_text = questions[self.current_question]["answers"][correct_answer] messagebox.showinfo("Неверно", f"Неправильно! Правильный ответ:\n{correct_text}") self.current_question += 1 if self.current_question < len(questions): self.load_question() else: messagebox.showinfo("Конец викторины", f"Вы прошли викторину!\nВаш счет: {self.score}/{len(questions)}") self.master.quit() if __name__ == "__main__": root = tk.Tk() app = QuizApp(root) root.mainloop()