Универсальная тестовая оболочка. Как лучше поступить?

Тема в разделе "WASM.ZEN", создана пользователем execoma, 5 фев 2009.

  1. execoma

    execoma New Member

    Публикаций:
    0
    Регистрация:
    27 май 2005
    Сообщения:
    57
    Требуется реализовать унивeрсaльную тeстoвую oбoлoчку (УТО). Это комплекс программ для создания любых видов тестов (ЕГЭ, психологические и т.д.), проведения процесса тестирования, анализа и генерации результатов. Так вот, на этапах создания теста и проведения тестирования требуется отображать вопросы и варианты ответа. Вопросы в рамках одного теста могут быть различных типов, вот они:

    1. Может быть выбран только один вариант ответа.
    2. Может быть выбрано несколько вариантов ответа.
    3. Ответ осуществляется путем ввода с клавиатуры.
    4. Дано одно графическое изображение, необходимо осуществить ввод ответа на поставленный вопрос.
    5. Дано одно графическое изображение, необходимо осуществить выбор одного варианта ответа на поставленный вопрос.
    6. Дано несколько (2..n) графических изображений, необходимо осуществить выбор одного изображения в качестве ответа на поставленный вопрос.
    7. Дано несколько (2..n) графических изображений, необходимо осуществить выбор одного или нескольких изображений в качестве ответа на поставленный вопрос.

    Разработка будет вестись в среде Borland Developer Studio 2006 (C++ Builder), либо CodeGear RAD Studio 2009 на C++. Меня смущают изображения. Ладно если бы это был просто текст, фигачем ComboBox'ы или RadioButton'ы и делов-то. Я не знаю как лучше поступить в этой ситуации. Была идея использовать компонент WebBrowser (использование ядра IE) и выводить HTML-ые формочки, т.е. вопросы теста генерировались бы программой создания тестов в виде ряда кусочков HTML. Это дало бы гибкость так как в этом случае в программе создания тестов появляется возможность управлять внешним видом теста (например, применение стилей CSS, изменение атрибутов текста и т.п.). Но я не понимаю как организовать получение результатов ответа пользователя, когда он щелкает на HTML-формочки отображаемые через компонент WebBrowser. И как бы не было проблем с этим импортируемым IE на различных тачках. И вообще мне кажется, что тут кроются различные проблемы. Поэтому перед программированием я решил узнать Ваше мнение по этому поводу. Может быть есть какие-либо другие способы достижения задуманного? И какие тут могут быть грабли?
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Тесты зло (особенно тесты в ЕГЭ) - замените на собеседование и/или решение практически осмысленных задач :))
     
  3. BLiTZ

    BLiTZ Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    54
    Вы сами ответили на свой вопрос. Удобнее всего через WebBrowserControl -легко, быстро, универсально. В качестве бяки огребете проблемы с версиями ИЕ. Рулить контролом можно через это.

    UPD. Тьфу, у вас не .Net ...
     
  4. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    Если уж WebBrowser, то и результаты на сервере обрабатывать. Тем более от локальных тестов толку мало
     
  5. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    execoma, не надо писать windows прогу, не надо реализовывать базу вопросов, залив ответов, и т.д. У тебя просто классический случай web app, где клиент это web browser.

    Ну а раз так, то минимум это php+apache (или IIS+asp) ну а максимум - java на сервере и понеслась.
     
  6. execoma

    execoma New Member

    Публикаций:
    0
    Регистрация:
    27 май 2005
    Сообщения:
    57
    s0larian, у меня не классический случай. Опишу суть...
    В конечном итоге я результат вижу как комплекс из 4-ех программ:

    1. конфигуратор тестов,
    2. программа проведения тестирования,
    3. программа получения результатов,
    4. сервер.

    Тест представляет из себя файл хранящий перечень вопросов (html-ых формочек). Тесты создаются в программе (1). Тестирование проводится в программе (2). Причем (2) может работать как локально, так и с помощью сервера. Если рядышком с программой (2) лежит n файлов тестов, то предоставляется выбор теста. Если рядом с (2) 1 файл теста, то сразу начинается тестирование. Если рядом с (2) 0 файлов тестов, то производится попытка подключения к серверу (4) по заданным параметрам (например, в ini IP/hostname:port). Если подключение осуществлено, то сервер передает клиенту на выбор перечень всех имеющихся у него тестов. После выбора теста осуществляется передача сервером программе тестирования полностью весь файл тестов. После тестирования (2) передает серверу файл результатов. Если была [!!!] потеря связи с сервером, то клиент сохраняет результаты локально. Зачем это надо?! - (2) может тестить и собирать результаты централизованно, либо если нет такой возможности или она теряется, то работа идет локально, но результаты тогда прийдется с тачек собирать вручную. А что касается web-приложений... Тут такая штука, что подразумевается что этот проект позволит создавать не просто тесты, а это что-то типа универсального опросника. Результаты тестирования могут быть представлены в XML формате и сторонний разработчик может написать свой [!!!] DLL-модуль для программы (3). Это позволит использовать этот опросник для экспертных систем, для тестов где надо делать анализ для построения выводов, ну и т.п. вполь до того что эти DLL-модули смогут осуществлять экспорт результатов, класть их в БД, и т.д. и т.п. Т.е. это штука достаточно универсальная и гибкая. Причем будет сделана фишка - адаптивное ветвление вопросов, т.е. последующая цепочка вопросов, может зависить от вариантов ответа данных на текущий и предыдущие вопросы (это как раз нужно для пострения экспертных систем). Что думаете? (пишу это для своей девушки, защита диплома на бакалавра).