1
0

quiz.py 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import tkinter as tk
  2. from tkinter import ttk
  3. from tkinter import messagebox
  4. questions = {
  5. "Управление": {
  6. "question": "Что включает в себя управление автоматизированной системой (АС)?",
  7. "options": [
  8. "Мониторинг и оптимизация производительности",
  9. "Обеспечение доступа и безопасности",
  10. "Обеспечение безопасности и доступа",
  11. "Все вышеперечисленное"
  12. ],
  13. "answer": "Все вышеперечисленное"
  14. },
  15. "Тестирование": {
  16. "question": "Почему важно проводить тестирование автоматизированной системы?",
  17. "options": [
  18. "Чтобы проверить работоспособность и исправить ошибки",
  19. "Чтобы снизить цену системы",
  20. "Чтобы увеличить количество пользователей",
  21. "Ничего не нужно"
  22. ],
  23. "answer": "Чтобы проверить работоспособность и исправить ошибки"
  24. },
  25. "Эксплуатация": {
  26. "question": "Какие задачи входят в эксплуатацию автоматизированной системы?",
  27. "options": [
  28. "Обеспечение бесперебойной работы",
  29. "Обновление и расширение",
  30. "Обучение пользователей",
  31. "Все перечисленное"
  32. ],
  33. "answer": "Все перечисленное"
  34. }
  35. }
  36. root = tk.Tk()
  37. root.title("Интерактивное обучение АС")
  38. root.geometry("600x400")
  39. selected_section = tk.StringVar()
  40. def start_quiz(section):
  41. for widget in frame_content.winfo_children():
  42. widget.destroy()
  43. q_data = questions[section]
  44. question_label = ttk.Label(frame_content, text=q_data["question"], font=("Arial", 14))
  45. question_label.pack(pady=10)
  46. var = tk.StringVar()
  47. for option in q_data["options"]:
  48. r = ttk.Radiobutton(frame_content, text=option, variable=var, value=option)
  49. r.pack(anchor='w', padx=20)
  50. def check_answer():
  51. answer = var.get()
  52. if answer == q_data["answer"]:
  53. messagebox.showinfo("Верно", "Правильно! Молодец!")
  54. else:
  55. messagebox.showerror("Неправильно", f"Неправильно. Правильный ответ:\n{q_data['answer']}")
  56. submit_btn = ttk.Button(frame_content, text="Проверить ответ", command=check_answer)
  57. submit_btn.pack(pady=10)
  58. frame_top = ttk.Frame(root)
  59. frame_top.pack(pady=10)
  60. ttk.Label(frame_top, text="Выберите раздел для вопроса:", font=("Arial", 12)).pack()
  61. for section in questions.keys():
  62. btn = ttk.Button(frame_top, text=section, command=lambda sec=section: start_quiz(sec))
  63. btn.pack(side='left', padx=10)
  64. frame_content = ttk.Frame(root, relief="sunken", padding=10)
  65. frame_content.pack(fill='both', expand=True, padx=10, pady=10)
  66. root.mainloop()