123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 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()
|