ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 06.11.2023

Просмотров: 134

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторный практикум 22 | «Создание проекта с использованием компонентов для работы с текстом»
7.    Провести социологический опрос. Студент указывает фамилию (Edit), она заносится в список. Задается вопрос: «Любите ли Вы читать книги». Ответы: да или нет. Если «да», то появляется запись –«молодец», если «нет», то – «надо, надо читать». Составить программу, чтобы было видно, кто читает, а кто нет. Также подсчитать, сколько  процентов студентов любить читать книги, а сколько – нет.import tkinter as tkclass SurveyApp:    def __init__(self, master):        self.master = master        master.title("Социологический опрос")        # создаем компоненты        self.label_name = tk.Label(master, text="Введите фамилию:")        self.entry_name = tk.Entry(master)        self.button_add = tk.Button(master, text="Добавить фамилию", command=self.add_name)        self.label_question = tk.Label(master, text="Любите ли Вы читать книги?")        self.button_yes = tk.Button(master, text="Да", command=lambda:self.show_message("молодец"))        self.button_no = tk.Button(master, text="Нет", command=lambda:self.show_message("надо, надо читать"))        self.text_area = tk.Text(master)        self.button_finish = tk.Button(master, text="Завершить опрос", command=self.finish)        # размещаем компоненты на форме        self.label_name.grid(column=0, row=0, padx=10, pady=10)        self.entry_name.grid(column=1, row=0, padx=10, pady=10)        self.button_add.grid(column=2, row=0, padx=10, pady=10)        self.label_question.grid(column=0, row=1, padx=10, pady=10)        self.button_yes.grid(column=1, row=1, padx=10, pady=10)        self.button_no.grid(column=2, row=1, padx=10, pady=10)        self.text_area.grid(column=0, row=2, columnspan=3, padx=10, pady=10)        self.button_finish.grid(column=1, row=3, padx=10, pady=10)        # создаем переменные для подсчета результатов опроса        self.total_students = 0        self.likes_reading = 0        self.dislikes_reading = 0    def add_name(self):        # добавляем фамилию студента в список        name = self.entry_name.get()        if name:            self.text_area.insert(tk.END, f"{name}: ")            self.total_students += 1        self.entry_name.delete(0, tk.END)    def show_message(self, message):        # выводим сообщение в таблицу        self.text_area.insert(tk.END, f"{message}\n")
        if message == "молодец":            self.likes_reading += 1        else:            self.dislikes_reading += 1    def finish(self):        # подсчитываем результаты опроса и выводим информацию на экран        likes_percent = round(self.likes_reading / self.total_students * 100)        dislikes_percent = round(self.dislikes_reading / self.total_students * 100)        self.text_area.insert(tk.END, f"\nВсего опрошено студентов: {self.total_students}\n")        self.text_area.insert(tk.END, f"Любят читать книги: {likes_percent}% ({self.likes_reading} студентов)\n")        self.text_area.insert(tk.END, f"Не любят читать книги: {dislikes_percent}% ({self.dislikes_reading} студентов)\n")        self.button_add.config(state=tk.DISABLED)        self.button_yes.config(state=tk.DISABLED)        self.button_no.config(state=tk.DISABLED)root = tk.Tk()app = SurveyApp(root)root.mainloop()