ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.11.2023
Просмотров: 135
Скачиваний: 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()