Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.01.2023
Сообщений: 7

Приложение для оценки результатов теста

08.01.2023, 14:06. Показов 1007. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Так уж сложилось, что мне нужно сделать оконное приложение на Python, но с программированием кроме школьного курса не сталкивался.

Описание:
1. Окно приложения поделено на две части
2. В каждой части есть набор вопросов с вариантами ответов, которые будут как-то отмечаться или фиксироваться (количество вариантов ответов варьируется от 3 до 4)
3. Каждому варианту ответа присваивается некий вес в баллах (от 0 до 4)
4. Результат кода каждой из двух частей приложения - значение, обозначающееся как "высокое", "среднее" или "низкое", рассчитываемое в зависимости от количества суммы баллов (пункт 3), к примеру от 0 до 3 "низкое", от 4 до 6 "среднее", от 7 до 9 "высокое"
5. Результат кода приложения в целом - информационное окно, в котором отображается информация об оценке каждой из двух тестовых частей, а также об итоговой оценке, рассчитываемой в зависимости от сочетания значений "высокое", "среднее" или "низкое"
К примеру:
"низкое" и "низкое" = " не существенное"
"низкое" и "среднее" = "не существенное"
"среднее" и "среднее" = "существенное"
"среднее" и "высокое" = "существенное"
"высокое" и "высокое" = "существенное"
В конечном информационном окне данные отображаются примерно так:
Значение 1 - "низкое/среднее/высокое"
Значение 2 - "низкое/среднее/высокое"
Итоговое значение - "не существенное/существенное"

Буду очень благодарен за любую помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2023, 14:06
Ответы с готовыми решениями:

Создание программы-теста(оценивание знаний) и вывод теста в форму, с подсчетом оценки(балл за правильный ответ)
Здравствуйте, уважаемые форумчане. У меня назрел еще один вопрос: -Есть задание написать приложение, которое осуществляет...

Пргораммист для оценки качества теста на знание Java 8
Необходимо оценить качество вопросов в тесте на знание Java8 сайта testd.ru. Мы работаем над стартапом – сайтом по тестированию знаний...

Построить доверительный интервал для оценки теста с вероятностью ошибки 0,025
Помогите пожалуйста с решением, можно подробно расписать? Ученик, сдавая тест из 7 вопросов, получил следующие баллы: 5,6; 7,1; 3,2;...

6
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
08.01.2023, 14:52
а это не подойдет?
https://soft.mydiv.net/win/col... naniy.html
написать не проблема, но лично я помогаю тем, кто сам что-то делает
может вам на фриланс обратиться?
https://www.cyberforum.ru/freelance/
0
0 / 0 / 0
Регистрация: 08.01.2023
Сообщений: 7
08.01.2023, 14:59  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import tkinter as tk
 
window = tk.Tk()
window.title('Тестовая оценка')
window.geometry('1200x600')
 
selected = tk.IntVar()
 
tk.Label(window, text="1. Вопрос 1").pack()
tk.Radiobutton(window, text="Высокая", variable=selected, value=1).pack()
tk.Radiobutton(window, text="Средняя", variable=selected, value=2).pack()
tk.Radiobutton(window, text="Низкая", variable=selected, value=3).pack()
 
window.mainloop()
Подскажите, пожалуйста, тогда как присвоить балльные значения при описании radiobutton?
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
08.01.2023, 17:35
https://metanit.com/python/tkinter/2.10.php
тут неплохой курс по tk
1
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
09.01.2023, 13:02
Лучший ответ Сообщение было отмечено chnsw_mn как решение

Решение

даю инфо для размышления
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import tkinter as tk
from tkinter import ttk
from random import shuffle
 
_data = {
        "question":"Вопрос 1",
        "answers":
        [
        ("ответ 1",1),
        ("ответ 2",2),
        ("ответ 3",3),
        ("ответ 4",4),
        ("ответ 5",5),
        ],
        }
 
class Frame(ttk.Frame):
    def __init__(self,name,data):
        super().__init__()
        self.name = name
        self.result = 0
        self.config(borderwidth=1, relief=tk.SOLID, padding=[8,10])
        self.sv = tk.StringVar()
        self.header = ttk.Label(self,text=data['question'])
        self.header.pack(padx=4, pady=4, anchor=tk.NW)
        lst = data['answers']
        shuffle(lst)
        for text,value in lst:
            btn = ttk.Radiobutton(self, 
                text=text, 
                value=value, 
                variable=self.sv,
                command = self.on_btn 
                )
            btn.pack(padx=4, pady=4, anchor=tk.NW)
    
    def on_btn(self):
        self.result = int(self.sv.get())
        print(self.name, self.result)
        
class App(tk.Tk):
    def __init__(self,data):
        super().__init__()
        self.title('TEST')
        self.geometry("600x400+100+100")
        l_frame = Frame('left',data)
        l_frame.pack(side=tk.LEFT, fill=tk.BOTH, padx=4, pady=4,expand=True)
        r_frame = Frame('right',data)
        r_frame.pack(side=tk.RIGHT, fill=tk.BOTH, padx=4, pady=4,expand=True)
 
if __name__=="__main__":
    app = App(_data)
    app.mainloop()
хотя КМК все что в ткинтере хорошего - то что он встроенный
0
0 / 0 / 0
Регистрация: 08.01.2023
Сообщений: 7
09.01.2023, 14:50  [ТС]
СПАСИБО!!!
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
09.01.2023, 15:51
Лучший ответ Сообщение было отмечено chnsw_mn как решение

Решение

Не по теме:

начав стрелять писать - не забудь остановиться


думаю дальше сами разберетесь
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showerror, showwarning, showinfo
from random import shuffle
 
_data = [
            {
                "question":"Вопрос 1",
                "answers":
                [
                    ("ответ 1",1),
                    ("ответ 2",2),
                    ("ответ 3",3),
                    ("ответ 4",4),
                    ("ответ 5",5),
                ],
            },        
            {
                "question":"Вопрос 2",
                "answers":
                [
                    ("ответ 1",1),
                    ("ответ 2",2),
                    ("ответ 3",3),
                    ("ответ 4",4),
                    ("ответ 5",5),
                ],
            }
        
]
 
class Frame(ttk.Frame):
    def __init__(self,data):
        super().__init__()
        self.result = 0
        self.config(borderwidth=1, relief=tk.SOLID, padding=[8,10])
        self.sv = tk.StringVar()
        self.header = ttk.Label(self,text=data['question'])
        self.header.pack()
        lst = data['answers']
        shuffle(lst)
        for text,value in lst:
            btn = ttk.Radiobutton(self, 
                text=text, 
                value=value, 
                variable=self.sv,
                command = self.on_btn 
                )
            btn.pack(anchor=tk.NW)
                    
    def on_btn(self):
        self.result = int(self.sv.get())
        
class App(tk.Tk):
    def __init__(self,name,data):
        super().__init__()
        self.name = name
        btnResult = ttk.Button(self,
            text="Результат",
            command=self.on_result
            )
        
        btnResult.pack(side=tk.BOTTOM)
        
        self.frames = []
        for d in data:
            f = Frame(d)
            f.pack(fill= tk.BOTH,expand=True)
            self.frames.append(f)
 
    def on_result(self):
        for f in (self.frames):
            if not f.sv.get():
                showerror(title="Ошибка",message="Нет ответов на все вопросы")
                return
        res = sum(f.result for f in self.frames)
        showinfo(title="Результат",message=self.name+ ': ' + str(res))
 
if __name__=="__main__":
    app = App('Вася',_data)
    app.title('TEST')
    app.geometry("300x400+300+300")
    app.mainloop()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2023, 15:51
Помогаю со студенческими работами здесь

Приложение для прохождения теста
Подскажите, пожалуйста, идеи для создания приложения теста. То есть идея есть, никак не могу найти как реализовать такое как в обычных...

Как собрать приложение доступно для доступных платформ для теста?
Получил задание... Пока выясняю детали... Вопросы 1. Как понимать: Кросплатформенное приложения на C# WinForms: Это NET Core...

Приложение для ввода результатов сессии
Нашла сайт с примерным образцом программки. Переработала его, но работает все не так как надо помогите разобраться. Моя задача: ...

Приложение для отображения результатов Select
Привет всем. У меня просьба,хочу создать приложение(для себя) которое будет подключаться к СУБД (в моем случае MS SQL) И будет...

Вопрос из теста: Разработать приложение для регистрации гостей отеля...
Вы разрабатываете приложение для регистрации гостей отеля. На главной форме расположен ряд текстовых полей, в которые вводится информация....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru