Программа для создания тестов, Обсуждение программы и кода |
Здравствуйте, гость ( Вход | Регистрация )
Программа для создания тестов, Обсуждение программы и кода |
xwicked |
26.1.2012, 20:15
Сообщение
#11
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
0.4.3 - это новая версия программы.
Здравствуйте! Цитата - Добавлено шифрование и сжатие экспортируемого файла теста в формате xwt; - Исправлена ошибка, когда пароль режима программы хранился и проверялся в открытом виде; - Добавлена возможность работать с несколькими хранилищами тестов; - Добавлена возможность резервировать хранилище тестов(со сжатием до 5-ти раз(!)); - Добавлена возможность запроса на сохранение теста, при его закрытии; Для шифрования используется алгоритм Base64, для сжатия функция qCompress. Этот код может быть реверсирован и получен изначальный пароль фактически в 100%-ом виде. В будущем он будет заменён на md5 хеш или похожий.А вот следующая проблема - это шифрование самого теста. Алгоритмы те же. При наличии у студента(/пользователя) кода все тесты предстают в абсолютно первозданном виде . Шифрование по ключу думаю будет слишком хорошая защита, которую мне одному не реализовать. Найти другой вариант за ~2-а месяца у меня не получилось. Какие есть варианты? Благодарю! ЗЫ: Всего 25 изменений. Сообщение отредактировал xwicked - 26.1.2012, 20:27 |
|
|
xwicked |
6.2.2012, 1:54
Сообщение
#12
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
0.4.4. Исправлено 15 ошибок(!). Появились 2-е структуры:
Их было решено использовать сразу, после выхода кроссворда за предел стека Введение вектора типа QVariant позволило функцию проверки ответов максимально упростить и вынести отдельно: Несмотря на то, что QVariant не рекомендуется использовать из за большого потребления памяти, так как он позволяет хранить даже контейнеры(!), я решил сделать это. Использование один раз в масштабах простой программы для создания тестов показала свою рентабельность.Скачать |
|
|
Алексей1153 |
6.2.2012, 8:24
Сообщение
#13
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
0.4.4. Исправлено 15 ошибок(!). Появились 2-е структуры: //Структура файла свойств struct sFileSettings { bool gRegimeViewing,//true - Режим просмотра, false - Режим редактирования LanguageProgram,//Язык программы bStandardPanel,//Состояние показа стандартной панели bEditPanel,//Состояние показа панели редактирования bFormatPanel,//Состояние показа панели форматирования bTimePanel,//Состояние показа панели времени bPointPanel,//Состояние показа панели баллов bLimitTime,//Ограничение времени bAutoStartTest;//Автоматический запуск QString RegimePassword;//Пароль режима }; ой ой! Исправлено 15 ошибок, а добавлено ещё 15 Совсем-совсем не советую так оформлять структуры. Более того - не только структуры, а даже просто так объявлять переменные! Правильно так:
Но у меня это всё выглядело бы так (не из стремления экономить, а для удобства обнуления флагов): Раскрывающийся текст
QString str1, str2; QByteArray ba1, ba2; - та же мигня! Что экономишь то ? а в структуре sShelkTestVar у тебя не инициализированные в конструкторе указатели - это вообще ахтунг ) Сообщение отредактировал Алексей1153 - 6.2.2012, 8:22 |
|
|
xwicked |
6.2.2012, 13:24
Сообщение
#14
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Алексей1153, благодарю, но конструкторы я буду осваивать для классов, с приходом полного ООП в эту программу
|
|
|
Алексей1153 |
6.2.2012, 13:48
Сообщение
#15
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
xwicked, да не, начинай уже осваивать ) Потом же исправлять и глюки вылавливать придётся.
Открою маленький секрет: для компилятора C++ нет разницы, class это, struct или union - у них всех всё одинаково работает, они имеют конструктор и деструктор. Тонкости в различии : union и struct по умолчанию устанавливают доступ public своему содержимому, а class - private. Ну и в union у объединённых переменных вроде не может быть явного конструктора/деструктора, но это уже к нашему случаю не относится, так как это внутренние данные, а не сама структура. |
|
|
xwicked |
14.2.2012, 23:03
Сообщение
#16
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте! Представляю новую версию программы 0.4.7. Добавился файл с константами:
Добавилась новая структура, но в коде она пока не задействована: Оптимизирована функция изменения шрифта(была 195 строк): Скачать
|
|
|
xwicked |
19.2.2012, 1:22
Сообщение
#17
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
Новая и последняя на данный момент версия 1.0.0. Здесь я постарался конкретно. Изменения:
Цитата - Добавились новые возможности: проверка наличия новой версии через интернет; печать теста; печать статистики; экспорт тестов в HTML, RTF, PDF, PostScript, простой текстовый формат; - Добавлено использование системных временных каталогов для размещения временных файлов; - Изменилось расположение файла статистики по-умолчанию на домашний каталог пользователя; - Изменилась кодировка файла статистики на UTF-8: - Изменилась кодировка импортируемого текстового файла на UTF-8;
Далее, задействовал webkit: , так как QTextEdit и QTextBrowser не могут отображать элементы ввода(текст, переключатель, флажок), для формирования правильной html-ки. Раз уж было принято решение добавить новую зависимость от библиотеки QtWebkit, то на его же основе я сделал проверку наличия новой версии через интернет, смотрим: Как видно - всё просто. Если текст "new_version" найден в загруженной html-ке, то есть новая версия Чтобы сделать всё так, как я задумал - пришлось использовать новый метод disconnect, который я ранее не использовал и всё получилось. Теперь за кодом можно наблюдать не дожидаясь релиза. В git создана новая ветка current. Скачать. |
|
|
xwicked |
17.11.2012, 18:42
Сообщение
#18
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
1.5.2 - скачать
Цитата - Теперь сохранение свойств программы происходит при каждом их изменении; В следующей версии я хочу прикрутить веб-интрефейс тестируемого. Собираюсь использовать JavaScript(или Java? а возможно C++?) + свой простейший веб-сервер(на C++ для AJAX). Какие вопросы / проблемы меня могут поджидать?- Убрана чувствительность регистра ответа в вопросе типа "Ввод слова(предложения)"; - Исправлена ошибка ограничения количества вопросов в режиме редактирования; - Добавлено новое поле статистики "Количество заданных вопросов из общего числа"; - Исправлена ошибка, когда нельзя было ввести вариант ответа, при увеличении и обратном уменьшении изображения, в вопросе "Ввод слова(предложения)"; - Изменено и отлажено автоматическое определение пропущенных вопросов, при тестировании; - Добавлена дополнительная детализация к статистике протестировавшихся; Благодарю за ответы! Сообщение отредактировал xwicked - 17.11.2012, 21:01 |
|
|
xwicked |
3.11.2013, 20:58
Сообщение
#19
|
Студент Группа: Участник Сообщений: 66 Регистрация: 2.8.2011 Из: Старый Оскол Пользователь №: 2781 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Гость_Гость_* |
5.11.2014, 8:26
Сообщение
#20
|
Гости |
если сделаешь возможность компиляции в exe, цены тебе не будет)
|
|
|
Текстовая версия | Сейчас: 27.11.2024, 16:29 |