|
@@ -0,0 +1,72 @@
|
|
|
+import tkinter as tk
|
|
|
+from tkinter import messagebox
|
|
|
+import random
|
|
|
+
|
|
|
+def calculate_grades():
|
|
|
+ """Подсчитывает количество хороших оценок (4 и 5)."""
|
|
|
+ try:
|
|
|
+ grades_str = grades_entry.get() # Получаем оценки из текстового поля
|
|
|
+ grades = [int(grade.strip()) for grade in grades_str.split(',')] # Разделяем и преобразуем в числа
|
|
|
+
|
|
|
+ if len(grades) != 10:
|
|
|
+ messagebox.showerror("Эм, ошибка!", "Нужно ввести ровно 10 оценок, а не больше и не меньше.")
|
|
|
+ return # Выходим из функции, если что-то не так
|
|
|
+
|
|
|
+ # Считаем, сколько у нас четверок и пятерок
|
|
|
+ count_4 = grades.count(4)
|
|
|
+ count_5 = grades.count(5)
|
|
|
+
|
|
|
+ # Выводим результат на экран
|
|
|
+ result_text = f"Четверок: {count_4}\nПятерок: {count_5}"
|
|
|
+ result_label.config(text=result_text)
|
|
|
+
|
|
|
+ except ValueError:
|
|
|
+ messagebox.showerror("Ой-ой!", "Кажется, ввели что-то не то. Нужны только числа от 2 до 5, разделенные запятыми.")
|
|
|
+
|
|
|
+
|
|
|
+def generate_random_data():
|
|
|
+ """Создает случайные оценки для примера."""
|
|
|
+ random_marks = [random.randint(2, 5) for _ in range(10)] # Генерируем 10 случайных оценок (2-5)
|
|
|
+ grades_entry.delete(0, tk.END) # Очищаем поле
|
|
|
+ grades_entry.insert(0, ", ".join(map(str, random_marks))) # Заполняем строку случайными оценками
|
|
|
+
|
|
|
+
|
|
|
+# Создаем окошко
|
|
|
+main_window = tk.Tk()
|
|
|
+main_window.title("Считалка оценок (by Student)") # Пометка "by Student", типично
|
|
|
+main_window.geometry("380x280") # Немного увеличим окно
|
|
|
+
|
|
|
+# Описание, что нужно делать
|
|
|
+instruction_label = tk.Label(main_window,
|
|
|
+ text="Введи свои оценки по 10 предметам (от 2 до 5), через запятую:",
|
|
|
+ wraplength=360,
|
|
|
+ justify="left") # Поясняющий текст
|
|
|
+instruction_label.pack(pady=10)
|
|
|
+
|
|
|
+# Поле для ввода оценок
|
|
|
+grades_entry = tk.Entry(main_window, width=40) # Создаем текстовое поле
|
|
|
+grades_entry.pack(pady=5)
|
|
|
+
|
|
|
+# Кнопка "Посчитать"
|
|
|
+calculate_button = tk.Button(main_window,
|
|
|
+ text="Посчитать хорошие оценки!",
|
|
|
+ command=calculate_grades,
|
|
|
+ bg="#2196F3",
|
|
|
+ fg="white") # Делаем кнопку синей, чтобы было красиво
|
|
|
+calculate_button.pack(pady=10)
|
|
|
+
|
|
|
+# Кнопка "Сгенерировать"
|
|
|
+generate_button = tk.Button(main_window,
|
|
|
+ text="Сгенерировать пример оценок",
|
|
|
+ command=generate_random_data,
|
|
|
+ bg="#FFC107",
|
|
|
+ fg="black") # Делаем кнопку желтой
|
|
|
+generate_button.pack(pady=5)
|
|
|
+
|
|
|
+# Лейбл для вывода результата
|
|
|
+result_label = tk.Label(main_window, text="")
|
|
|
+result_label.pack(pady=10)
|
|
|
+
|
|
|
+
|
|
|
+# Запускаем программу
|
|
|
+main_window.mainloop()
|