Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Разаработка программы для тестирования людей. / 21 сообщений из 21, страница 1 из 1
24.08.2013, 15:37
    #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
24.08.2013, 15:48
    #38376574
greshnik_05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
Ах да вот еще вспомнил. Для каждого типа вопроса думаю создать класс и использовать сериализацию и десериализацию. На сколько это возможно учитывая то что у каждого типа вопроса свой класс. А в тесте могут быть разного типа вопросы.
...
Рейтинг: 0 / 0
24.08.2013, 20:52
    #38376665
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
greshnik_05Вопрос 1.
Делал. Ничего сложного. Ничего там разнотипного нет. Вопрос, варианты ответов. У вопроса имеется атрибут, есть ли мултиселект?

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


Дело в том, что тест может содержать как вопрос и с мультиселектом и одиночным выбором и вопрос ответ на который "да" или "нет" ну и вопросы с другим типом ответа. То есть один тест может содержать вопросы разнотипного характера, ответы на которые тоже разнотипные.
...
Рейтинг: 0 / 0
24.08.2013, 21:27
    #38376678
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
greshnik_05Дело в том, что тест может содержать как вопрос и с мультиселектом и одиночным выбором и вопрос ответ на который "да" или "нет" ну и вопросы с другим типом ответа. То есть один тест может содержать вопросы разнотипного характера, ответы на которые тоже разнотипные.
Ну и что? Я же писал, что среди атрибутов вопроса должен быть "используется ли при ответе мультиселект?"
...
Рейтинг: 0 / 0
24.08.2013, 21:27
    #38376679
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
TorreКакая интересная задача!
Главное - свежая!
...
Рейтинг: 0 / 0
24.08.2013, 21:49
    #38376689
greshnik_05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
Cat2 может поделитесь опытом того как вы решили эту задачу. И еще за какую цену её можно сделать, то есть сколько за неё можно попросить учитывая то что я малоопытный программист.
...
Рейтинг: 0 / 0
25.08.2013, 14:50
    #38376909
wamaco
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
greshnik_05,
2. Вопрос.
Я бы использовал вместо xml - SQLite!
...
Рейтинг: 0 / 0
27.08.2013, 10:44
    #38378239
greshnik_05
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
wamaco, я бы сам рад вместо xml использовать SQL. Вот правда не могу представить как будут выглядеть таблицы. Ведь структура таблицы статична, то есть должен быть набор таблиц которые давали бы хранить вопросы в БД. НО! Количество вариантов ответов динамично, то есть у одного вопроса 4 у другого 2 и тд. как быть?
...
Рейтинг: 0 / 0
27.08.2013, 10:58
    #38378267
Syrex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
Перечисляйте номера ответов через запятую в столбце.
Либо сделайте столько столбцов, сколько максимально может быть ответов
...
Рейтинг: 0 / 0
27.08.2013, 11:35
    #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
29.08.2013, 08:30
    #38380570
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
SyrexПеречисляйте номера ответов через запятую в столбце.
Либо сделайте столько столбцов, сколько максимально может быть ответов
Понятие нормализации данных ещё никто не отменял....
...
Рейтинг: 0 / 0
29.08.2013, 09:20
    #38380587
Alex Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разаработка программы для тестирования людей.
greshnik_05wamaco, я бы сам рад вместо xml использовать SQL. Вот правда не могу представить как будут выглядеть таблицы. Ведь структура таблицы статична, то есть должен быть набор таблиц которые давали бы хранить вопросы в БД. НО! Количество вариантов ответов динамично, то есть у одного вопроса 4 у другого 2 и тд. как быть?
а вот так:
Вопрос
ИДТипТекст

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

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

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

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

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

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

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

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

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

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



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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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