powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Разаработка программы для тестирования людей.
21 сообщений из 21, страница 1 из 1
Разаработка программы для тестирования людей.
    #38376571
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый!
Нужно написать прогу для тестирования людей.(психологические тесты, тестирование знаний и тд) Программа нужна кадровому агентству. Буду писать на С# WinForms.
Нюанс в том что в тесте могут быть вопросы разного характера, соответственно типы ответов тоже разные("Да или Нет", одиночный или множественный выбор и тд).
Я думаю хранить данные о тесте в XML файле. Один тест один XML файл.
Вот пример.


Код: xml
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.
<?xml version="1.0" encoding="utf-8"?>
<Configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<Name>Abra-Kadabra</Name>
<About>Eto test Abra-Kadabra</About>
<Time>20</Time>
<MaxId>10</MaxId>

<TestQuestions>
	<Question>
		<Text>Quest 1</Text>
		<Answers>
			<string>answer 1</string>
			<string>answer 2</string>
			<string>answer 3</string>
			<string>answer 4</string>
		</Answers>
		<TrueAnswer>a</TrueAnswer>
		<Marks>
			<string>2</string>
			<string>4</string>
			<string>5</string>
			<string>1</string>
		</Marks>
		<Type>OneChoise</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>30</TimeToAnswer>
	</Question>

	<Question>
		<Text>Quest 2</Text>
		<Answers>
			<string>answer 1</string>
			<string>answer 2</string>
			<string>answer 3</string>
			<string>answer 4</string>
		</Answers>
		<TrueAnswer>
			<string>a</string>
			<string>b</string>
			<string>c</string>
		</TrueAnswer>
		<Mark>5</Mark>
		<Type>SetChoise</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>60</TimeToAnswer>
	</Question>

	<Question>
		<Text>Quest 3</Text>
		<Answer>
			<string>Yes</string>
			<string>No</string>
		</Answer>
		<Marks>
			<string>1</string>
			<string>0</string>
		</Marks>
		<Type>YesNo</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>0</TimeToAnswer>
	</Question>
</TestQuestions>
</Configuration>



В приведенном примере XML файл имеет 3 разных типа вопроса. 1) одиночный выбор 2) Множественный выбор 3) Ответ "Да" или "Нет"
Для вопроса типа "одиночный выбор" структура такова
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<Question>
		<Text>Quest 1</Text>
		<Answers>
			<string>answer 1</string>
			<string>answer 2</string>
			<string>answer 3</string>
			<string>answer 4</string>
		</Answers>
		<TrueAnswer>a</TrueAnswer>
		<Marks>
			<string>2</string>
			<string>4</string>
			<string>5</string>
			<string>1</string>
		</Marks>
		<Type>OneChoise</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>30</TimeToAnswer>
	</Question>



Для вопроса типа "множественный выбор" структура такова
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<Question>
		<Text>Quest 2</Text>
		<Answers>
			<string>answer 1</string>
			<string>answer 2</string>
			<string>answer 3</string>
			<string>answer 4</string>
		</Answers>
		<TrueAnswer>
			<string>a</string>
			<string>b</string>
			<string>c</string>
		</TrueAnswer>
		<Mark>5</Mark>
		<Type>SetChoise</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>60</TimeToAnswer>
	</Question>



Для вопроса типа "Да или Нет" структура такова
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Question>
		<Text>Quest 3</Text>
		<Answer>
			<string>Yes</string>
			<string>No</string>
		</Answer>
		<Marks>
			<string>1</string>
			<string>0</string>
		</Marks>
		<Type>YesNo</Type>
		<prompt>tra la la</prompt>
		<TimeToAnswer>0</TimeToAnswer>
	</Question>



Вопрос 1. Если кто делал подобные программы поделитесь опытом. ЗЫ. Я делал прогу тестирования знаний клиент серверную, но та легче была на много, вопрос и варианты ответов. А тут разнотипные вопросы. Нужно придумать что - то типа конструктора для создания тестов. И прогу клиент которая будет правильно распознавать XML файл и тестировать людей.
Вопрос 2. Подходит ли мой вариант хранения теста в XML файле? Какие есть варианты у вас?
На пока вопросов нет. Спасибо!
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376574
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ах да вот еще вспомнил. Для каждого типа вопроса думаю создать класс и использовать сериализацию и десериализацию. На сколько это возможно учитывая то что у каждого типа вопроса свой класс. А в тесте могут быть разного типа вопросы.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376665
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
greshnik_05Вопрос 1.
Делал. Ничего сложного. Ничего там разнотипного нет. Вопрос, варианты ответов. У вопроса имеется атрибут, есть ли мултиселект?

greshnik_05Вопрос 2.
Подходит, если тестов будет 2-3 и они не будут никогда изменятся.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376667
Фотография Torre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая интересная задача!
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376673
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2greshnik_05Вопрос 1.
Делал. Ничего сложного. Ничего там разнотипного нет. Вопрос, варианты ответов. У вопроса имеется атрибут, есть ли мултиселект?


Дело в том, что тест может содержать как вопрос и с мультиселектом и одиночным выбором и вопрос ответ на который "да" или "нет" ну и вопросы с другим типом ответа. То есть один тест может содержать вопросы разнотипного характера, ответы на которые тоже разнотипные.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376678
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
greshnik_05Дело в том, что тест может содержать как вопрос и с мультиселектом и одиночным выбором и вопрос ответ на который "да" или "нет" ну и вопросы с другим типом ответа. То есть один тест может содержать вопросы разнотипного характера, ответы на которые тоже разнотипные.
Ну и что? Я же писал, что среди атрибутов вопроса должен быть "используется ли при ответе мультиселект?"
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376679
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
TorreКакая интересная задача!
Главное - свежая!
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376689
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cat2 может поделитесь опытом того как вы решили эту задачу. И еще за какую цену её можно сделать, то есть сколько за неё можно попросить учитывая то что я малоопытный программист.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38376909
wamaco
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greshnik_05,
2. Вопрос.
Я бы использовал вместо xml - SQLite!
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38378239
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wamaco, я бы сам рад вместо xml использовать SQL. Вот правда не могу представить как будут выглядеть таблицы. Ведь структура таблицы статична, то есть должен быть набор таблиц которые давали бы хранить вопросы в БД. НО! Количество вариантов ответов динамично, то есть у одного вопроса 4 у другого 2 и тд. как быть?
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38378267
Syrex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перечисляйте номера ответов через запятую в столбце.
Либо сделайте столько столбцов, сколько максимально может быть ответов
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38378340
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<questionnaire>
  <metadata>
    <title>Название</title>
    <time-limit>1h</time-limit>
  </metadata>
  <sections>
    <!-- Отдельная логическая секция -->
    <section>
      <title>Название секции</title>
      <question type="single-select|multi-select|free-text" time-limit="30s">
        <text>
          Текст вопроса. Возможно, тут будет CDATA
        </text>
        <responses>
          <response valid="true" score="1">Ответ 1</response>
          <response valid="true" score="2">Ответ 2</response>
        </responses>
      </question>
    </section>
  </sections>
  <questions>
  </questions>
</questionnaire>
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38380570
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SyrexПеречисляйте номера ответов через запятую в столбце.
Либо сделайте столько столбцов, сколько максимально может быть ответов
Понятие нормализации данных ещё никто не отменял....
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38380587
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greshnik_05wamaco, я бы сам рад вместо xml использовать SQL. Вот правда не могу представить как будут выглядеть таблицы. Ведь структура таблицы статична, то есть должен быть набор таблиц которые давали бы хранить вопросы в БД. НО! Количество вариантов ответов динамично, то есть у одного вопроса 4 у другого 2 и тд. как быть?
а вот так:
Вопрос
ИДТипТекст

Ответы
ИДИДВопросаПорядковый номерТекст

ПравильныеОтветы

ИДВопросаИДОтвета

Тест
ИД НаименованиеВремя на тест

ВопросыДляТеста
ИДТестаИДВопроса

А далее формочка строится динамически в зависимости от типа вопроса.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383096
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за свой долгий офф лайн. Был занят немного другими делами.

Вариант с БД Alex 'a Kuznetsov 'a очень даже подходит, спс. Попробую развиваться в этом направлении. В моём случае использование БД лучший вариант.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383252
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
greshnik_05,

Изучение теории БД и нормализации данных очень даже может помочь

Рад, что смог натолкнуть на нужную мысль.
Удачи.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383266
greshnik_05
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsovgreshnik_05,

Изучение теории БД и нормализации данных очень даже может помочь



Будет время повторю))) СПС
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383427
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alex Kuznetsovgreshnik_05wamaco, я бы сам рад вместо xml использовать SQL. Вот правда не могу представить как будут выглядеть таблицы. Ведь структура таблицы статична, то есть должен быть набор таблиц которые давали бы хранить вопросы в БД. НО! Количество вариантов ответов динамично, то есть у одного вопроса 4 у другого 2 и тд. как быть?
а вот так:
Вопрос
ИДТипТекст

Ответы
ИДИДВопросаТекст


ПравильныеОтветы

ИДВопросаИДОтвета

Тест
ИД НаименованиеВремя на тест

ВопросыДляТеста
ИДТестаИДВопроса

А далее формочка строится динамически в зависимости от типа вопроса.

Не так. А примерно так

Вопрос
ИДТекстЕсть_мультиселект

Ответы
ИДИДВопросаТекст Это_правильный_ответ


ПравильныеОтветы

ИДВопросаИДОтвета

Тест
ИД НаименованиеВремя на тест

ВопросыДляТеста
ИДТестаИДВопроса
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383548
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

На вкус и цвет, все фломастеры разные
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383594
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Alex KuznetsovCat2,

На вкус и цвет, все фломастеры разные
Это да. Но таблицы с отношением 1 к 1 (ПравильныеОтветы у Вас) - лишние.
...
Рейтинг: 0 / 0
Разаработка программы для тестирования людей.
    #38383632
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Alex KuznetsovCat2,

На вкус и цвет, все фломастеры разные
Это да. Но таблицы с отношением 1 к 1 (ПравильныеОтветы у Вас) - лишние.Да, согласен, есть в этой таблице избыточность...
А теперь предположим, что к примеру нам потребуется сделать так, что варианты ответов могут повторяться в разных вопросах, и соответственно нужно вести ответы отдельно от вопросов и иметь возможность комбинировать различные варианты ответов, при этом один и тот же ответ в разных вопросах может быть правильным или нет.
Что тогда?

Тогда мы просто удаляем из таблицы Ответы два поля: ИДВопроса и ПорядковыйНомер и выносим всё это безобразие в отдельную таблицу "ОтветыНаВопросы". Конечно, можно в эту же таблицу добавить признак того, является-ли ответ правильным, а также другие характеристики, такие как, например, бальность и т.д.

В общем Ваше замечание принимается. Спасибо.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Разаработка программы для тестирования людей.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]