Название: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Август 15, 2011, 17:02 Здравствуйте!
Третья моя программа написана по наработкам второй(для создания электронных книг), поэтому содержит некоторые методы такого же названия например "openBookBase", что в последующих версиях будет исправлено на "openTestBase" :D Программа представляет собой миникомплекс, включающий: создание, тестирование, отчёт(статистика). Версия 0.3.1 - исходник + сборки (http://sourceforge.net/projects/shelk-test/files/0.3.1/). Скрин последней версии: (http://labfreetech.org/shelk.gif) Ссылка (http://sourceforge.net/projects/shelk-test) на SourceForge.net. Код под GNU GPL v2 - OpenSource. С++(Qt). Описание: кроссплатформенная программа для создания и редактирования тестов, с последующим тестированием. Её могут использовать все, кому понадобиться быстро создать тест и проверить знания. Можно будет создать вопрос типа "Что показано на изображении" и использовать как в школе так и на предприятии, для сдачи квалификационных экзаменов. Все тесты хранятся в базе данных SQLite3. Это позволяет располагать файл базы на любом сервере(Windows, GNU / Linux, и т. д.), без необходимости установки сервера баз данных. Всё находится в одном исполняемом файле. Для редактирования / тестирования, необходимо переключить соответствующий пункт из меню "Режим". Отчёт о протестировавшихся представлен статистикой. Внутренняя архитектура: список вопросов хранится в QStringList ListQuestions, список правильных ответов в QStringList ListRightAnswer, варианты ответа при тестировании в QStringList ListCheckRightAnswer. Изображения к тесту находятся в QByteArray ListImages[100000]. Режим редактирования защищён паролем, который пока что, хранится в открытом виде. Обсуждаем. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: SeverusSnape от Август 15, 2011, 17:47 А у вас еще много программ?
Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Август 15, 2011, 21:16 А у вас еще много программ? Есть ещё одна переделка кроссворда под Lazarus в стадии первой бета-версии. Вроде следующие только в планах...Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: serg_hd от Август 16, 2011, 00:55 А у вас еще много программ? ;D ;DНазвание: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: panAlexey от Август 17, 2011, 18:27 Интерфейс - без бутылки не разберешся...
Название: Минималистичный интерфейс Отправлено: xwicked от Август 19, 2011, 08:15 Интерфейс - без бутылки не разберешся... :o Вы значит не видели Mac OS... :DНазвание: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: surendil от Август 19, 2011, 10:52 Мм.. а как редактирование будет происходить, если все вопросы, ответы и изображения будут в исходниках "зашиты"? Я немного не догоняю похоже :D
Название: Re: Минималистичный интерфейс Отправлено: panAlexey от Август 19, 2011, 15:18 Интерфейс - без бутылки не разберешся... :o Вы значит не видели Mac OS... :DПС. но мне кажется что дело не в макоси. ПС2. Что-то мне кажется что для таких веток надо другую секцию заводить. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: surendil от Август 20, 2011, 10:35 А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог :D
Название: Re: Минималистичный интерфейс Отправлено: Igors от Август 20, 2011, 13:43 :o Вы значит не видели Mac OS... :D Ну по крайней мере один пользователь Mac попытался посмотреть один из Ваших продуктов.....Я понимаю как нелегко на незнакомой платформе. Поэтому не вдаваясь в подробности: если нет необходимости - лучше не поддерживать Mac (вместо того чтобы мучать кошек) Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: panAlexey от Август 20, 2011, 16:01 А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог :D Да мне бы руки за такой ифейс отбили.Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: surendil от Август 21, 2011, 00:42 А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог :D Да мне бы руки за такой ифейс отбили.Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Август 29, 2011, 23:16 Здравствуйте!
Вот новая версия (http://sourceforge.net/projects/shelk-test/files/0.3.5/) 0.3.5. Теперь программа предоставляет возможность создавать тесты, используя 4-е новых типа вопроса: много ответов, ввод слова(предложения) с клавиатуры, ввод числа с клавиатуры, установка последовательности ответов. Хочу обратить Ваше внимание на то, что в данной версии я сделал вот так: Код: if(slotSelectTypeQuestion() == false) return; Далее идёт проверка типа и его применение - функция начинается на "set<Тип_вопроса>". Потом выбранный вариант загоняется в список типов QStringList slQuestionType. Но, здесь есть одно "но": Код: sTypeQuestion == tr("One answer") Дабы быть уверенным в том, что файлы не побились, при закачке, я добавил текстовик с md5-контрольными суммами. Git-репозиторий: Цитировать git://shelk-test.git.sourceforge.net/gitroot/shelk-test/shelk-test (read-only) P.S. Ещё один очень важный момент: версии 0.3.5, 0.4.1, 0.4.2 - сборки являются минимальными. То есть, чтобы посмотреть на все функции, необходимо программу собрать из исходника :) . Это делалось для проверки аудитории пользователей на заинтересованность в программе, путем отправки мне запроса на получение исходного кода. Что было не очень удачной идеей и, с версии 0.4.3, сборки программы уже снова полнофункциональны. Прошу извинить меня за данное неудобство. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Октябрь 21, 2011, 16:31 Для распространения программы между RPM-дистрибутивами, воспользуйтесь следующим спекфайлом:
Цитировать Summary: On Qt-based, cross-platform software is designed for creating and editing tests, followed by tests of knowledge. Но, в нём есть небольшая ошибка или, даже скорей недочёт: Summary(ru): Кроссплатформенная программа для создания и редактирования тестов, с последующим тестированием. Основана на Qt. %define version 0.3.5 Group: Education Name: shelk-test BuildRequires: gcc-c++, libqt4-sql-sqlite >= 4.4.3, libqtgui4 >= 4.4.3, libqt4-core >= 4.4.3 BuildArch: %ix86 Provides: shelk-test Release: alt1 Source: shelk-test-%{version}.tar.gz Url: http://labfreetech.org/index_e.html Version: %{version} License: GPLv2 Packager: LabFreeTech.org admin@labfreetech.org %description On Qt-based, cross-platform software is designed for creating and editing tests, followed by tests of knowledge. Supported features: - Creation of a test; - Editing of the test; - Testing; - Adding / removing tests from the database; - Rich editing the test of the tests; - Password protection regime editing; %description -l ru Кроссплатформенная программа для создания и редактирования тестов, с последующим тестированием. Основана на Qt. Поддерживаемые функции: - Создание теста; - Редактирование теста; - Тестирование; - Добавление / удаление тестов из базы данных; - Расширенное редактирование текста вопросов теста; - Защита паролем режима редактирования; %prep %setup -q %build %make_build %install cp -Rv shelk/ %buildroot/ %clean rm -rf $RPM_BUILD_ROOT %files /usr/bin/* /usr/share/* %post test -e /usr/bin/xwts-0.3.5 || ln -s /usr/bin/xwts-0.3.5 /usr/bin/shelk-test-0.3.5 if (test -d $HOME/Desktop) then test -e $HOME/Desktop/xwts.desktop || cp -r /usr/share/applications/xwts.desktop $HOME/Desktop/shelk-test.desktop else echo "Use command \"/usr/bin/xwts-0.3.5\"" fi %postun test -L /usr/bin/shelk-test-0.3.5 && rm -r /usr/bin/shelk-test-0.3.5 test -e $HOME/Desktop/shelk-test.desktop && rm -r $HOME/Desktop/shelk-test.desktop Цитировать BuildRequires: gcc-c++, libqt4-sql-sqlite >= 4.4.3, libqtgui4 >= 4.4.3, libqt4-core >= 4.4.3 Непонятно почему при установке собранного пакета с этим спекфайлом, происходит игнорирование выделенной библиотеки :( , но libqt4-sql устанавливается, хотя явного указания её нет. Кто знает причину, прошу ответить.Этот спекфайл находится в архиве shelk-test-0.3.5-rpm, расположенный по ссылке в предыдущем посте. Там же находится архив исходного кода и для дитрибутивов GNU / Linux Debian(/Ubuntu), с пометкой "deb". Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Ноябрь 07, 2011, 00:52 Продолжаем знакомиться с кодом (http://sourceforge.net/projects/shelk-test/files/0.4.1/). Версия 0.4.1 Включает в себя следующие изменения:
Цитировать - Исправлена ошибка в реализации типа вопроса "Ввод числа"; Статистика - это первый вариант журнала отчёта о протестировавшихся студентах, представлена обычным html-файлом:- Исправлена ошибка в реализации типа вопроса "Установка последовательности"; - Добавлена возможность вставки изображения в вопрос теста; - Добавлены горячие клавиши; - Добавлена возможность использования баллов; - Добавлена возможность ввода имени тестируемого; - Добавлена статистика. Код Есть что-нибудь проще или для начала сойдёт? Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Ноябрь 22, 2011, 22:28 Здравствуйте! Программа продолжает совершенствоваться и версия 0.4.2 (http://"http://sourceforge.net/projects/shelk-test/files/0.4.2/") включает 25 изменений. Было изменено отображение картинки в тесте. Теперь используется рисование непосредственно на виджите:
Код Как я предполагаю, что есть проще и правильнее способ, но времени найти его нет :( прошу помочь. Ещё интересует вопрос по отлавливанию ошибок try catch. Это первая реализация. Что кроме вынесения в один метод обработчиков, во избежании наличия копированного кода, там можно сделать? Благодарю! :) Ещё изменения: Цитировать - Добавлен учёт времени тестируемого; - Добавилась возможность ручного запуска теста, по нажатию на клавишу; - Добавлена возможность остановки теста, с занесением информации о тестируемом в статистику; - Добавилась возможность экспорта в файл XWT; - Добавилась возможность импорта из файла XWT; Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Январь 26, 2012, 20:15 0.4.3 - это новая версия программы.
Здравствуйте (http://"http://sourceforge.net/projects/shelk-test/files/0.4.3/")! :) Цитировать - Добавлено шифрование и сжатие экспортируемого файла теста в формате xwt; - Исправлена ошибка, когда пароль режима программы хранился и проверялся в открытом виде; - Добавлена возможность работать с несколькими хранилищами тестов; - Добавлена возможность резервировать хранилище тестов(со сжатием до 5-ти раз(!)); - Добавлена возможность запроса на сохранение теста, при его закрытии; Код Для шифрования используется алгоритм Base64, для сжатия функция qCompress. Этот код может быть реверсирован и получен изначальный пароль фактически в 100%-ом виде. В будущем он будет заменён на md5 хеш или похожий. А вот следующая проблема - это шифрование самого теста. Алгоритмы те же. При наличии у студента(/пользователя) кода все тесты предстают в абсолютно первозданном виде :( . Шифрование по ключу думаю будет слишком хорошая защита, которую мне одному не реализовать. Найти другой вариант за ~2-а месяца у меня не получилось. Какие есть варианты? Благодарю! ЗЫ: Всего 25 изменений. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Февраль 06, 2012, 01:52 0.4.4. Исправлено 15 ошибок(!). Появились 2-е структуры:
Код Их было решено использовать сразу, после выхода кроссворда за предел стека ;D Введение вектора типа QVariant позволило функцию проверки ответов максимально упростить и вынести отдельно: Код Несмотря на то, что QVariant не рекомендуется использовать из за большого потребления памяти, так как он позволяет хранить даже контейнеры(!), я решил сделать это. Использование один раз в масштабах простой программы для создания тестов показала свою рентабельность. Скачать (http://sourceforge.net/projects/shelk-test/files/0.4.4/) Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Февраль 14, 2012, 22:58 Здравствуйте! Представляю новую версию программы 0.4.7. Добавился файл с константами:
Код Добавилась новая структура, но в коде она пока не задействована: Код Оптимизирована функция изменения шрифта(была 195 строк): Код Скачать (http://"http://sourceforge.net/projects/shelk-test/files/0.4.7/") Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: kambala от Февраль 15, 2012, 01:44 a перечисления не любишь?
Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Февраль 16, 2012, 17:53 a перечисления не любишь? Я люблю всё, что не противоречит здравому смыслу(о как завернул 8) ), оптимизировать буду обязательно ;DНазвание: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Февраль 19, 2012, 01:13 Новая и последняя на данный момент версия 1.0.0. Здесь я постарался конкретно. Изменения:
Цитировать - Добавились новые возможности: проверка наличия новой версии через интернет; печать теста; печать статистики; экспорт тестов в HTML, RTF, PDF, PostScript, простой текстовый формат; - Добавлено использование системных временных каталогов для размещения временных файлов; - Изменилось расположение файла статистики по-умолчанию на домашний каталог пользователя; - Изменилась кодировка файла статистики на UTF-8: - Изменилась кодировка импортируемого текстового файла на UTF-8; Код Далее, задействовал webkit: Код , так как QTextEdit и QTextBrowser не могут отображать элементы ввода(текст, переключатель, флажок), для формирования правильной html-ки. Раз уж было принято решение добавить новую зависимость от библиотеки QtWebkit, то на его же основе я сделал проверку наличия новой версии через интернет, смотрим: Код Как видно - всё просто. Если текст "new_version" найден в загруженной html-ке, то есть новая версия :) Чтобы сделать всё так, как я задумал - пришлось использовать новый метод disconnect, который я ранее не использовал и всё получилось. Теперь за кодом можно наблюдать не дожидаясь релиза. В git создана новая ветка current (http://sourceforge.net/scm/?type=git&group_id=556929). Скачать (http://sourceforge.net/projects/shelk-test/files/1.0.0/). Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: kambala от Февраль 19, 2012, 01:43 для типов существует typedef.
зачем в методы передавать объекты по значению? очищать заведомо пустую строку - гениально. в английском языке с порядком слов всё куда более строго, чем в русском, да и глагол там должен присутствовать, так что "A new version is available on the official website!". ну и неплохо бы собственно показывать номер новой версии. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Февраль 19, 2012, 03:52 для типов существует typedef. Объекты по значению - это первый вариант реализации.зачем в методы передавать объекты по значению? очищать заведомо пустую строку - гениально. в английском языке с порядком слов всё куда более строго, чем в русском, да и глагол там должен присутствовать, так что "A new version is available on the official website!". ну и неплохо бы собственно показывать номер новой версии. Про очистку, возможно был прецедент или я до сих пор чего-то не знаю :( "A new version is available on the official website!" - Звучит возможно лучше, но если что-то и менять, то только весь перевод, а так пусть пока будет как есть. Про номер версии - это пока для меня слишком жирно будет - я не написал ещё ни строчки кода для работы с сетью, поэтому буду изучать сеть много позже. Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Июль 31, 2012, 22:46 Очередная версия программы 1.5.1. Часть переменных сгруппирована и выделена в отдельные классы:
TAnswer,//Ответ TQuestion,//Вопрос TTest,//Тест TDepository,//Хранилище TFileOptions//файл свойств Код Всё работает нормально, но память очищается не вся. :( Вектора списков вопросов и ответов, при вызове стандартного метода clear(), возможно неполностью очищают своё содержимое. Сделал так: Код всё равно после недолгой работы(открытий / закрытий тестов) с программой. Остаётся, при закрытии ~3 МБ не выгружено. По, что это мелочь, но ... Изменения: Цитировать - Оптимизация процесса сохранения теста(~10 раз(!)) в базу хранилища; Скачать (http://"http://sourceforge.net/projects/shelk-test/files/1.5.1/")- Декомпозиция программы на отдельные классы, с занесением части переменных в секцию private; - Добавлена возможность использовать дифференцированную или недифференцированную систему оценивания; - Добавлены возможности: удалённого расположения файла свойств программы; ограничивать время для всего теста; пропуска вопросов, при тестировании; перемешивания вопросов; настраиваемого показа полей статистики; запоминать последнюю открытую базу хранилища; не показывать результаты тестируемому; ограничивать количество задаваемых вопросов из общего числа; Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Ноябрь 17, 2012, 18:36 1.5.2 - скачать (http://"http://sourceforge.net/projects/shelk-test/files/1.5.2")
Цитировать - Теперь сохранение свойств программы происходит при каждом их изменении; В следующей версии я хочу прикрутить веб-интрефейс тестируемого. Собираюсь использовать JavaScript(или Java? а возможно C++?) + свой простейший веб-сервер(на C++ для AJAX). Какие вопросы / проблемы меня могут поджидать?- Убрана чувствительность регистра ответа в вопросе типа "Ввод слова(предложения)"; - Исправлена ошибка ограничения количества вопросов в режиме редактирования; - Добавлено новое поле статистики "Количество заданных вопросов из общего числа"; - Исправлена ошибка, когда нельзя было ввести вариант ответа, при увеличении и обратном уменьшении изображения, в вопросе "Ввод слова(предложения)"; - Изменено и отлажено автоматическое определение пропущенных вопросов, при тестировании; - Добавлена дополнительная детализация к статистике протестировавшихся; Благодарю за ответы! Название: Re: Программа для создания тестов. [Обсуждение программы и кода] Отправлено: xwicked от Ноябрь 03, 2013, 20:50 По-тихоньку идёт совершенствование программы. И сейчас от основного кода был отделён модуль Тестирование.
Пршу протестировать на наличие ошибок первую бета-версию: 1.6.2.0 (http://sourceforge.net/projects/shelk-test/files/1.6.2/). Для полноценной проверки может потребоваться прошлая версия 1.5.2 (http://sourceforge.net/projects/shelk-test/files/1.5.2/). Благодарю за ответы! |