Информатика, вопрос задал sofisonia2609 , 1 год назад

Написати код на python
Створити програму "табель" за допомогою модуля tkinter у вигляді лінійної таблиці в якій задано предмети, а функціональні клавіші дозволяють визначити бал з певного предмета, найбільший чи найменьший бал, кількість предметів, та середній бал успішності.

Предмети: інформатика, правознавство, українська мова, українська література, англійська мова, геометрія, алгебра, всесвітня історія, фіична культура, трудове навчання, мистецтво, основи здоровʼя, хімія, географія, фізика, зарубіжна література, біологія та історія україни

Оцінки для кожного генерувати рандомним чином в діапазоні від 8 до 12, у різній кількості для кожного предмета у діапазоні від 5 до 15

Ответы на вопрос

Ответил maxtes201082
1

Ответ:

Ось код програми "табель" на Python з використанням модуля tkinter:

```

import tkinter as tk

import random

window = tk.Tk()

window.title("Табель")

subjects = ["інформатика", "правознавство", "українська мова", "українська література", "англійська мова",

           "геометрія", "алгебра", "всесвітня історія", "фізична культура", "трудове навчання", "мистецтво",

           "основи здоров'я", "хімія", "географія", "фізика", "зарубіжна література", "біологія", "історія України"]

# generate random scores for each subject

scores = {}

for subject in subjects:

   num_scores = random.randint(5, 15)

   subject_scores = [random.randint(8, 12) for _ in range(num_scores)]

   scores[subject] = subject_scores

# create labels for each subject

labels = {}

for i, subject in enumerate(subjects):

   label = tk.Label(window, text=subject, font=("Arial", 12))

   label.grid(row=i+1, column=0)

   labels[subject] = label

# create buttons to calculate min, max, num_subjects, and avg

def get_min(subject):

   min_score = min(scores[subject])

   label_min.config(text=f"найменший бал: {min_score}")

def get_max(subject):

   max_score = max(scores[subject])

   label_max.config(text=f"найбільший бал: {max_score}")

def get_num_subjects():

   num_subjects = len(subjects)

   label_num.config(text=f"кількість предметів: {num_subjects}")

def get_avg(subject):

   avg_score = sum(scores[subject]) / len(scores[subject])

   label_avg.config(text=f"середній бал: {avg_score:.2f}")

for i, subject in enumerate(subjects):

   button_min = tk.Button(window, text="найменший", command=lambda s=subject: get_min(s))

   button_min.grid(row=i+1, column=1)

   button_max = tk.Button(window, text="найбільший", command=lambda s=subject: get_max(s))

   button_max.grid(row=i+1, column=2)

   button_avg = tk.Button(window, text="середній", command=lambda s=subject: get_avg(s))

   button_avg.grid(row=i+1, column=3)

# add labels for min, max, num_subjects, and avg

label_min = tk.Label(window, text="найменший бал: -", font=("Arial", 12))

label_min.grid(row=len(subjects)+2, column=1)

label_max = tk.Label(window, text="найбільший бал: -", font=("Arial", 12))

label_max.grid(row=len(subjects)+3, column=1)

label_num = tk.Label(window, text="кількість предметів: -", font=("Arial", 12))

label_num.grid(row=len(subjects)+2, column=2)

label_avg = tk.Label(window, text="середній бал: -", font=("Arial", 12))

label_avg.grid(row=len(subjects)+3, column=2)

window.mainloop()

```

Програма створює вікно з табелем предметів та функціональними кнопками для обчислення мінімального балу, максимального балу, кількості предметів та середнього балу. Для кожного предмета генерується випадкова кількість балів в діапазоні від 8 до 12, у різній кількості в діапазоні від 5 до 15. При натисканні на відповідну кнопку для певного предмета, програма виводить результат обчислення на екран.

Ответил aigazydaulbai
1

Ответ:

Ось приклад коду, що створює програму "табель" за допомогою модуля tkinter у вигляді лінійної таблиці:

```python

import tkinter as tk

import random

# список предметів

subjects = ['інформатика', 'правознавство', 'українська мова', 'українська література',

'англійська мова', 'геометрія', 'алгебра', 'всесвітня історія', 'фізична культура',

'трудове навчання', 'мистецтво', 'основи здоровʼя', 'хімія', 'географія',

'фізика', 'зарубіжна література', 'біологія', 'історія україни']

# функція для генерування оцінок

def generate_grades():

grades = []

for i in range(random.randint(5, 15)):

grades.append(random.randint(8, 12))

return grades

# функція для обрахунку середнього балу

def calculate_average(grades):

return sum(grades) / len(grades)

# створення головного вікна

root = tk.Tk()

root.title("Табель")

# створення таблиці

table = tk.Frame(root)

table.pack()

# створення заголовків стовпців

tk.Label(table, text="Предмет").grid(row=0, column=0)

tk.Label(table, text="Оцінки").grid(row=0, column=1)

# заповнення таблиці даними

for i, subject in enumerate(subjects):

# генерування оцінок для кожного предмета

grades = generate_grades()

# вивід назви предмета в таблиці

tk.Label(table, text=subject).grid(row=i+1, column=0)

# вивід оцінок для кожного предмета в таблиці

for j, grade in enumerate(grades):

tk.Label(table, text=str(grade)).grid(row=i+1, column=j+1)

# вивід середнього балу для кожного предмета в таблиці

average_grade = calculate_average(grades)

tk.Label(table, text="{:.2f}".format(average_grade)).grid(row=i+1, column=len(grades)+1)

# функція для знаходження мінімальної оцінки

def find_min_grade():

min_grade = 12

for grades in grades_list:

if min(grades) < min_grade:

min_grade = min(grades)

return min_grade

# функція для знаходження максимальної оцінки

def find_max_grade():

Новые вопросы