Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/54: Рейтинг темы: голосов - 54, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 13
1

Создать программу тестирования, как организовать логику

28.02.2012, 22:51. Показов 10450. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые ФОРУМЧАНЕ!
Нужна помощь. Работаю в ВУЗе. Надо сделать программу по тестированию знаний. Купить, как обычно в бюджетной организации, денег нет. Пиратские устанавливать нельзя. Пересмотрел бесплатных программ штук 50, не меньше. Нет такой, которая подходила бы по задуманным параметрам. Пока пользуюсь одной бесплатной, но в ней много недоработок. Буду писать на C# , Visual Studio 2010. Есть небольшой опыт на QBasic.
Есть класс с 14 компьютерами. На всех WinXP SP3. Компьютеры уровня Pentium 2 и 3, только один у преподавателя Pentium 4. Есть одноранговая сеть. КОМП преподавателя – условно сервер, но сеть надо изменить, т.к. к одному КОМПу по лицензии WinXP нельзя подключать более 10 КОМПов (нарушать нельзя), да и начинаются глюки (несколько КОМПов перестают видеть сеть), если включить все 14 КОМПов одновременно. Win7, наверное, не потянут. Подскажите по структуре, в целом, как не ошибиться и правильно сделать так, чтобы потом не пришлось принципиально менять программу?
Предполагаю, что будут 2 программы: для администратора (преподавателя) и для студента. В администраторе (на Pentium 4) будет ввод групп, фамилий, предметов, тем, вопросов, правильных ответов, подсчёт результатов, ограничение по количеству попыток, время на тест и другие обычные для тестов установки. На всех других КОМПах – только программа для тестирования: выбор группы, фамилии, темы и само тестирование, без возможности редактирования, просмотра ответов и прочее. Результаты вместе с заданными вопросами и полученными ответами должны сохраняться. Где? На КОМПе администратора? Сразу в общей базе? Наверное, будет одна общая база данных SQL Server. Или можно обойтись без SQL Server, а использовать локальную базу данных Access на КОМПе администратора? А как обойти ограничение в 10 КОМПов? Надо ставить Wind Server? Только на КОМП администратора, а на других оставить WinXP SP3? И как будет взаимо-действовать программа администратора и программа на студенческом КОМПе (например, время доступности теста, ограничение по количеству попыток)? Прошу помощи. Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2012, 22:51
Ответы с готовыми решениями:

Как создать программу тестирования
Доброго времени суток, вопрос в том как сделать программы чтобы я мог создать тест, а потом и...

Как создать программу тестирования
Уважаемые программисты! Нужна ваша помощь! Задали сделать психологический тест в Microsoft Visual...

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

Как организовать логику приложения WebView
Здравствуйте, подскажите пожалуйста как организовать методы в коде (куда, какой) так, чтобы webview...

22
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 6
28.02.2012, 23:46 2
Цитата Сообщение от LEO NIK Посмотреть сообщение
А как обойти ограничение в 10 КОМПов?
Никак, если не нарушать лицензии использования операционной системы, желательно ставить один сервер, а остальные под xp, ну это скорее всего вопрос не в этот раздел форума
0
637 / 415 / 27
Регистрация: 03.11.2009
Сообщений: 1,855
29.02.2012, 01:43 3
http://opentest.com.ua/ может такое подойдет
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
29.02.2012, 18:10 4
Ставьте себе сервер,остальным хр.На сервер бд ms access,откуда программа для студента будет считывать время доступности теста, ограничение по количеству попыток итп..А вы через программу администратора будете записывать эти значение в общую бд..
Да и могу поучаствовать в написании программы,если требуется помощь)
1
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
29.02.2012, 18:34 5
Сейчас пишу программу для тестирования, работает она с *.xml - файлами. В вашем случае нужно создавать БД, хотя можно и *.xml - тут как в ам удобнее, мы не видим всей картины.
Что касается компов, наверно придется ставить Server, он все таки для такой работы и предназначен. Базы наверно Ms Access выбрать нужно, попроще с ними будет.

Огромное спасибо sniper_lunev, очень помог мне в написании данной программы присоеденяюсь к нему и с радостью вам помогу.

Не по теме:

Вопросик
Хотел создавать тему, но может кто знает по какой формуле высчитать средний балл за тест?!

1
84 / 84 / 14
Регистрация: 15.02.2011
Сообщений: 252
29.02.2012, 19:50 6
Говорить, что снова велосипед изобретают не буду. Посоветую посмотреть вот этот проект.
Огромный функционал. Разные типы вопросов, много чего.
Вот только не помню как там с клиентской частью... скорее всего через браузер.

Насчет доп. вопроса: Ну тут несколько вариантов. Будут ли вопросы с одним верным, или же могут быть "мульти-ответные"
Для одного верного ответа: вес_ответа = 100 \ кол-во_вопросов; бал = вес_ответа * кол-во_верных_ответов.
2
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
29.02.2012, 20:03 7
Цитата Сообщение от GOID Посмотреть сообщение
Насчет доп. вопроса: Ну тут несколько вариантов. Будут ли вопросы с одним верным, или же могут быть "мульти-ответные"
Для одного верного ответа: вес_ответа = 100 \ кол-во_вопросов; бал = вес_ответа * кол-во_верных_ответов.
Спасибо большое!
0
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 13
08.03.2012, 15:53  [ТС] 8
Всем добрый день или ночь!
Проясню, почему изобретаю тест-«велосипед». Привожу требования, которые мне нужны в тестировании. Они разрозненно встречаются во множестве тестовых программ, но все в одном «флаконе» – не нашел. Если есть такая программа – подскажите, с удовольствием воспользуюсь. Либо есть исходники близкой программы, которую легче доработать, чем писать самому. Пока же проще писать программу под себя.
1. Вход студента в тестирование – только по ярлыку на рабочем столе. Проводник, мой компьютер, наполнение кнопки ПУСК, «горячие» клавиши клавиатуры и т.п. - скрыто.
2. Авторизация – путём выбора группы и своей фамилии из заранее подготовленных преподавателем соответствующих списков.
3. Предварительная установка преподавателем разрешений на дату и время тестирования (с … по …) по каждому тесту отдельно. Желательно иметь режим «расписание» по дням недели.
4. ВАЖНО! Предварительная установка преподавателем количества попыток прохождения теста. Например, после трёх неудачных попыток повторная сдача теста несдавшим студентом возможна только после установленного (заранее в настройках) преподавателем количества дней. Студент уходит, а на его место садится другой и для него все возможные тесты доступны. Блокируется не компьютер или тест (как в некоторых программах), а конкретный студент, исчерпавший установленное ко-личество попыток!
5. Возможность установки ограничения времени на прохождение теста.
6. Сохранение результатов тестирования (дата, время, имя теста, процент правильных ответов, оценка, количество попыток), включая текст всех вопросов, на которые даны неправильные ответы, сами ответы студента и правильные ответы по этим вопросам (расширенная апелляция).
7. К каждой теме имеется банк вопросов, например 100 штук. Возможность установки последовательного или случайного выбора определённого количества вопросов для тестирования, например, 25 штук.
8. Возможность пометки вопросов, временно не включаемых в тестирование (они не удаляются, а лишь не включаются в тест).
9. Случайный порядок предлагаемых ответов в вопросе при каждом его появлении.
10. Типы вопросов: не менее 7…8 вариантов ответов, любое количество правильных ответов, на соответствие, на определённый порядок следования.
11. Возможность включения формул и графиков (из Word), рисунков в вопрос и, жела-тельно, также в ответ.
12. Возможность включения/отключения «помощи» (фрагмент любого объёма мате-риала из Word, на весь экран монитора) в каждом вопросе, либо до или после тестирования.
13. Включение/выключение режима индикации правильного или неправильного ответа на каждый вопрос.
14. Включение/выключение возможности возвращаться к вопросам, на которые уже даны ответы и изменение их.
15. Оценка теста на 5, 4, 3 и 2 или ЗАЧЕТ с возможностью расчета, установки для каж-дой оценки и индикации после тестирования как оценки, так и процента правильных ответов.
16. Желательно иметь режим «досрочной двойки» и прерывание тестирования, если дано много неправильных ответов и даже все последующие правильные уже не дадут положительной оценки.
17. Возможность свернуть или развернуть тестирование в полный экран монитора.
18. Желательно иметь «рейтинговое» тестирование, присваивая баллы (от 1 до 5…10) каждому вопросу.
19. Возможность «импорта-экспорта» теста: установка теста, подготовленного, напри-мер, на домашнем компьютере, на рабочий.

А теперь вопрос по программе.
Режим редактирования. Имеется tabControl1. Там 2 сетки - dataGridView1 и dataGridView2. На первой – список групп, которые нужно редактировать, удалять, вносить но-вые или отменять сделанные изменения. Как сделать, чтобы при выборе курсором любой группы в dataGridView1 (или с помощью дополнительного comboBox с разворачивающимся списком всех групп) во второй сетке появлялся список фамилий сту-дентов именно выбранной группы для дальнейшего корректирования, удаления, до-полнения новыми записями? Чем проще, тем лучше. Спасибо всем, кто помогает.
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
08.03.2012, 17:08 9
А список фамилий студентов каждой группы где храниться? в разных таблицах или в одной?
Есть свойство SelectedRows,можно получить значение из выбранного рядка и получить данные из нужной таблицы,столбца...т.е. в первой сетке Вы выбрали группу П-3(допустим),с помощью свойства SelectedRows получаем это значение и в другой сетке открываем таблицу с именем П-3...,или если все в одной таблице,то получаем все рядки из столбца П-3...

Не по теме:

Еще раз предложу свою помощь,если интересно напишите в ЛС)

0
104 / 105 / 18
Регистрация: 18.08.2012
Сообщений: 308
08.03.2012, 17:24 10
LEO NIK, не хочешь поделится своей разработкой?
0
19 / 19 / 4
Регистрация: 08.03.2012
Сообщений: 72
08.03.2012, 18:40 11
Попробуй спец систему Moodle
0
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 13
08.03.2012, 21:02  [ТС] 12
Сейчас в таблице 1 – только список групп. Сама группа и есть первичный ID. Во второй таблице две колонки: группа (вторичный ключ) и фамилии (по всем группам). Получается, что перед каждой фамилией соответствующая группа. Пока так. Если будет проще, то можно сделать много таблиц (думаю и об этом), в каждой только по одой колонке: группа (таблица ГРУППЫ), фамилии (привязанные к конкретной группе по названию таблицы, например ГРУППА П-3), учебные дисциплины (таблица ДИСЦИПЛИНЫ), темы по дисциплине (также привязанные к конкретной дисциплине по названию таблицы, например МАТЕМАТИКА), вопросы по теме (привязка к теме – по названию таблицы, например, РЯДЫ).
Что касается «поделиться программой», то её ещё нет. Есть только идеи и набросок формы для ввода через tabControl1, tabControl2 и т.д. групп, фамилий, дисциплин… И всё пока.
0
128 / 128 / 8
Регистрация: 24.11.2010
Сообщений: 237
08.03.2012, 21:14 13
базу MS Access не используй, она однопользовательская. Или mySql или sqlite используй
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
08.03.2012, 21:27 14
Ага,ну тогда как-то так:при нажатии тем свойством получаем название выбранной группы или id группы(например П-3) ,потом во-второй таблице в колонке групп ищем все рядки с таким же id или названием группы(т.е П-3),если таковые имеются записываем их индексы,и заполняем комбобокс из колонки с фамилиями с такими же индексами...ну допустим нажали по группе П-3,в другой таблице в колонке "группы"нашли такую,записали ее индекс,допустим 7,потом в комбобокс добавляем значение из 2 таблицы из колонки "фамилии" и по записанному индексу,т.е 7
делается это примерно так

C#
1
comboBox1.Items.Add(dataset.mytable.Rows[index]["Фамилия"].ToString());
index-это индекс совпавших рядов,у нас это 7
Фамилия-название колонки..
0
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 13
09.03.2012, 01:11  [ТС] 15
Пытался дать этот ответ, но его куда-то не туда вставил. Ещё раз уточню.
Создал базу в SQLEXPRESS, ОС Win XP SP3, Visual Studio 2010. Сейчас у меня 2 таблицы. В первой – только список групп. Сама группа (например, П-3) и есть первичный ID. Во второй таблице две колонки: группа (вторичный ключ) и фамилии (по всем группам). Получается, что перед каждой фамилией соответствующая группа. Пока так. Если будет проще, то можно сделать много таблиц (думаю и об этом), в каждой только по одой колонке: группа (таблица ГРУППЫ), фамилии (привязанные к конкретной группе по названию таблицы, например ГРУППА П-3), учебные дисциплины (таблица ДИСЦИПЛИНЫ), темы по дисциплине (также привязанные к конкретной дисциплине по названию таблицы, например МАТЕМАТИКА), вопросы по теме (привязка к теме – по названию таблицы, например, РЯДЫ).
Что касается «поделиться программой», то её ещё нет. Есть только идеи и набросок формы для ввода через tabControl1, tabControl2 и т.д. групп, фамилий, дисциплин… И всё пока.
Спасибо за ответы, но большая просьба давать их поподробнее, какой класс надо создать и как, как указать объекты ... Как указать источник данных для dataGridView2 (фамилии), привязанный к положению курсора в dataGridView1 (к конкретной группе)? Подсказка sniper_lunev с SelectedRows понятна, но что делать конкретно – ? Наберусь опыта, буду писать и на уровне идей.
0
84 / 84 / 14
Регистрация: 15.02.2011
Сообщений: 252
09.03.2012, 13:27 16
Повторюсь. Посмотрите проект Moodle. Большая часть функционала, который Вы хотите сделать уже реализована в нём. Функионал, которого нет в релизе дополняется плагинами для этой системы.
В купе с поддержкой (Экспорт\импорт) нескольких стандартов Международного Электронного Обучения - мощная система, позволяющая использовать, разработанные в других учебных заведениях, курсы\тесты.

Статистика внедрения Moodle
0
313 / 176 / 25
Регистрация: 30.04.2011
Сообщений: 1,469
09.03.2012, 18:25 17
selectedrow тут не очень уместен будет,так что как-то так
C#
1
2
3
4
5
6
7
8
9
10
  string getGroup;
        public Form1()
        {
            InitializeComponent();
        }
        
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
             getGroup = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString();//получаем название выбранной группы..
        }
потом во второй таблице в колонке "группы" ищем группы по метке getGroup.
C#
1
2
3
4
5
6
7
foreach(DataRow row in myDataSet.Table2.Rows)
{
if(row["Группы"]==getGroup)//если выбранная группа совпала
{
combobox.Items.Add(myDataSet.Table2.Rows[myDataSet.Table2.Rows.IndexOf(row)]["Фамилия"]);//добавляем в комбобокс значения с тем же индесом,но из другой колонки..
}
}
как-то так можно получить в комбобокс все фамилии по нужной Вам группе..
Во общем так трудно что либо сделать,нужно хотя бы увидеть что у Вас там сделано...надеюсь что помог..)
0
0 / 0 / 0
Регистрация: 28.02.2012
Сообщений: 13
09.03.2012, 23:46  [ТС] 18
Привет! Возможно, не в тему, но относительно MOODLE.
Спасибо GOID за напоминание. Я знаю об этой системе дистанционного обучения, но не связывал её с возможностью использования для тестирования. Зашел на сайт, почитал, вроде неплохо. Если кто-то работал с ней, проясните след. вопросы.
1. Что надо скачивать? Возможно ли скачать одну программную оболочку для тестирования или надо скачивать ВСЮ систему MOODLE?
2. Если скачивать MOODLE, то какую версию? Какая на русском языке?
3. Возможно ли использовать MOODLE для тестирования в локальной сети (13 КОМПов студентов и один КОМП-сервер преподавателя)?
4. Видимо, саму систему MOODLE надо устанавливать на КОМПе-сервере преподавателя?
5. Возможно ли студентам зайти в тестирование только по ярлыку на их КОМПе (без использования недоступных им сегодня проводника, МОЙ КОМПЬЮТЕР, кнопки ПУСК…)?
Спасибо!
0
84 / 84 / 14
Регистрация: 15.02.2011
Сообщений: 252
10.03.2012, 10:31 19
1. Скачивается один пакет (http://download.moodle.org/dow... est-22.zip). Вся система включает в себя администраторскую панель (где подготавливают курсы\тесты) и систему тестирования. То, что откроется человеку зависит от его роли (Студент или Админ).
2. Во время установки будет предложено выбрать язык.
3. Да;
4. Да;
5. Да. Ярлык откроется в браузере.
1
170 / 170 / 56
Регистрация: 10.07.2011
Сообщений: 251
10.03.2012, 16:48 20

Не по теме:

Вопросик
Хотел создавать тему, но может кто знает по какой формуле высчитать средний балл за тест?!


1)за каждый правильный ответ начисляете баллы
2)складываете сумму баллов
3)делите на кол-во вопросов
0
10.03.2012, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2012, 16:48
Помогаю со студенческими работами здесь

Symfony 2: как правильно организовать бизнес-логику?
Всем привет! Вот я недавно начал один проект на Symfony 2 и сразу же столкнулся одной проблемой -...

Как организовать подобную логику страниц/рубрик
Коллеги, подскажите схему реализации такой логики расположения материалов, как на сайте вилгуд. ...

Как организовать логику работы двух CheckBox
Пишу программу, которая ищет музыку или видио(или и то и то ) по компьютеру. имеется два CheckBox'a...

Пишу шашки на C#, как организовать логику игры
Я пишу шашки, но пока что я начинающий сишарпер и мне нужно сформировать условие, а заключается оно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru