0 / 0 / 0
Регистрация: 08.01.2023
Сообщений: 7

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

08.01.2023, 14:06. Показов 1014. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru