‼️‼️‼️‼️За допомогою модуля Tkinter створіть програму, яка буде аналізувати ціни учня за такими пунктами: найбільший та найменший бал, середній бал та підраховувати кількість оцінок початкового, середнього, достатнього та високого рівня (у вигляді таблиці)
Answers & Comments
Відповідь:
# функція для підрахунку кількості оцінок різного рівня
def count_grades(grades):
low = 0
medium = 0
high = 0
for grade in grades:
if grade < 4:
low += 1
elif grade < 7:
medium += 1
else:
high += 1
return low, medium, high
# головна функція програми
def main():
# список оцінок учня
grades = [8, 9, 5, 6, 7, 4, 7, 10, 8, 8]
# знаходимо найбільший, найменший та середній бал
max_grade = max(grades)
min_grade = min(grades)
avg_grade = sum(grades) / len(grades)
# підраховуємо кількість оцінок різного рівня
low, medium, high = count_grades(grades)
# виводимо результати на екран у вигляді таблиці
print("Statistics for Student Grades")
print("------------------------------")
print(f"Highest Grade: {max_grade}")
print(f"Lowest Grade: {min_grade}")
print(f"Average Grade: {avg_grade:.2f}")
print(f"Low-level Grades (less than 4): {low}")
print(f"Medium-level Grades (between 4 and 7): {medium}")
print(f"High-level Grades (greater than 7): {high}")
if __name__ == '__main__':
main()
Пояснення:
В цьому коді функція count_grades використовується для підрахунку кількості оцінок різного рівня, яка повертає кортеж з трьох значень - кількість оцінок менше 4 (нижче середнього), кількість оцінок між 4 і 7 (середнього рівня), і кількість оцінок більше 7 (вище середнього).
У головній функції main ми створюємо список оцінок учня, обчислюємо максимальний, мінімальни
Надіюсь добре
import tkinter as tk
class App(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.master = master
self.master.title("Аналіз цін учня")
self.grid()
# Додавання елементів віджетів
tk.Label(self, text="Найбільший бал:").grid(row=0, column=0)
self.max_grade_entry = tk.Entry(self)
self.max_grade_entry.grid(row=0, column=1)
tk.Label(self, text="Найменший бал:").grid(row=1, column=0)
self.min_grade_entry = tk.Entry(self)
self.min_grade_entry.grid(row=1, column=1)
tk.Label(self, text="Середній бал:").grid(row=2, column=0)
self.avg_grade_entry = tk.Entry(self)
self.avg_grade_entry.grid(row=2, column=1)
tk.Label(self, text="Початковий рівень:").grid(row=3, column=0)
self.beg_grade_entry = tk.Entry(self)
self.beg_grade_entry.grid(row=3, column=1)
tk.Label(self, text="Середній рівень:").grid(row=4, column=0)
self.med_grade_entry = tk.Entry(self)
self.med_grade_entry.grid(row=4, column=1)
tk.Label(self, text="Достатній рівень:").grid(row=5, column=0)
self.suf_grade_entry = tk.Entry(self)
self.suf_grade_entry.grid(row=5, column=1)
tk.Label(self, text="Високий рівень:").grid(row=6, column=0)
self.hig_grade_entry = tk.Entry(self)
self.hig_grade_entry.grid(row=6, column=1)
self.analyze_button = tk.Button(self, text="Аналізувати", command=self.analyze_grades)
self.analyze_button.grid(row=7, column=0, columnspan=2)
self.results_label = tk.Label(self, text="")
self.results_label.grid(row=8, column=0, columnspan=2)
def analyze_grades(self):
max_grade = self.max_grade_entry.get()
min_grade = self.min_grade_entry.get()
avg_grade = self.avg_grade_entry.get()
beg_grade = self.beg_grade_entry.get()
med_grade = self.med_grade_entry.get()
suf_grade = self.suf_grade_entry.get()
hig_grade = self.hig_grade_entry.get()
# Розрахунок кількості оцінок по рівнях
beg_count = 0
med_count = 0
suf_count = 0
hig_count = 0
for grade in [beg_grade, med_grade, suf_grade, hig_grade]:
if grade:
grade = int(grade)
if grade >= 90:
hig_count += 1
elif grade >= 70:
suf_count += 1
elif grade >= 50:
med_count += 1
else:
beg_count += 1
# Результати аналізу
results = f"Найбільший бал: {max_grade}\nНайменший бал: {min_grade}\nСередній бал: {avg_grade}\n\n"
results += f"Оцінок початкового рівня: {beg_count}\nОцінок середнього рівня: {med_count}\n"
results += f"Оцінок достатнього рівня: {suf_count}\nОцінок високого рівня: {hig_count}"
self.results_label.config(text=results)