Программа для создания тестов ([Обсуждение программы и кода])
Модератор: Модераторы разделов
Re: Программа для создания тестов
Кривость той или иной ОС я покрывать функциями своей программы не буду. Проще будет не покупать ОС от M$, но использовать unix. А времени у меня предостаточно. Те кто хотели всего и сразу давно сдулись или сдуваются по-тихоньку, я же настроен серьёзно
Re: Программа для создания тестов
так дело то не в кривости какой либо из ОС. (artMoney - просто единственный пример, который пришел в голову и который знают многие геймеры, которые ни в каких it тонкостях "ни бум-бум").
Вы определитесь для кого вы эту программу пишите. Если для самообучения пользователей, то шифровать ни чего не надо: так как это самообразование и пользователь желает пройти тест нормально. Если для учебного процесса где есть учитель и ученик(и) то сетевая сущность просто напрашивается. И тут опять шифрование совершенно не нужно. Т.к. переложить контролирующую функцию на серверную часть гораздо легче, чем мучатся с выбором чего и как шифровать и на сколько это устойчиво.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Я не пользовался SQLight . Но в чуть более продвинутых СУБД. Можно было бы отправлять ответ пользователя серверу примерно так
Где set_new_answer процедура на стороне сервера вставляющая ответ в базу, сразу проверяющую его обычным селектом и возвращающая всего одно поле со значениями 1 или 0 (правильно или нет). Как вариант еще и дополнительную инфу: процент пройденных вопросов, процент верных вопросов, и .т.п.
Код: Выделить всё
select rating from set_new_answer(<user_id>,<question_id>,<user_ansewer_id>)
Где set_new_answer процедура на стороне сервера вставляющая ответ в базу, сразу проверяющую его обычным селектом и возвращающая всего одно поле со значениями 1 или 0 (правильно или нет). Как вариант еще и дополнительную инфу: процент пройденных вопросов, процент верных вопросов, и .т.п.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Не может этого быть, т.к. БД sqlite всегда находится на том же компьютере что и программа её использующая. Это ключевая особенность sqlite.
Тогда получится очередной аналог Moodle, ILIAS и т.п.
Впрочем, если ТС нравится наступать на грабли, то пусть так и будет.
Re: Программа для создания тестов
Хм. На сколько я понимаю Moodle, ILIAS это немного другая категория. А во-вторых: а чем плохо, что на клиенте отсутствует функционал влияющий на контроль?
Или я не так понял мысль?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Всё равно система тестирования там основная фича.
Наоборот, хорошо. Но именно так и сделано в том же Moodle.
Re: Программа для создания тестов
0.4.4. Исправлено 15 ошибок(!). Появились 2-е структуры:Их было решено использовать сразу, после выхода кроссворда за предел стека
Введение вектора типа QVariant позволило функцию проверки ответов максимально упростить и вынести отдельно:Несмотря на то, что QVariant не рекомендуется использовать из за большого потребления памяти, так как он позволяет хранить даже контейнеры(!), я решил сделать это. Использование один раз в масштабах простой программы для создания тестов показала свою рентабельность.
Скачать
Код: Выделить всё
//Структура файла свойств
struct sFileSettings
{
bool gRegimeViewing,//true - Режим просмотра, false - Режим редактирования
LanguageProgram,//Язык программы
bStandardPanel,//Состояние показа стандартной панели
bEditPanel,//Состояние показа панели редактирования
bFormatPanel,//Состояние показа панели форматирования
bTimePanel,//Состояние показа панели времени
bPointPanel,//Состояние показа панели баллов
bLimitTime,//Ограничение времени
bAutoStartTest;//Автоматический запуск
QString RegimePassword;//Пароль режима
};
//Структура теста
struct sShelkTestVar
{
QString sNameTest,//Название теста
sAllPoint,//Все баллы строкой
sMidPoint,//Средний балл строкой
sCurrentPoint,//Текущий балл строкой
sTypeQuestion,//Тип вопроса
TestPassword,//Пароль теста
StatNameTest,//Имя пользователя в статистике
sQuestion,//Текст вопроса
sTimeStart;//Время начала
int CountQuestion,//Количество вопросов
iNumberQuestion,//Номер вопроса
iNumberTest,//Номер теста
AllPoint,//Общий балл
MidPoint,//Средний балл
CurrentPoint,//Текущий балл
AllPointCheck,//Общий балл для проверки
AllTime,//Общее время
MidTime,//Среднее время
CurrentTime,//Текущее время
i5First;//Номер прошлого выделенного ответа (установка последовательности)
QVector<double> *iRangeFirst,//Начальное значение диапазона (ввод числа)
*iRangeLast;//Конечное значение диапазона (ввод числа)
QStringList ListQuestions,//Список вопросов
slTableNumber,//Список номеров таблиц в базе тестов
slQuestionType,//Список типов вопросов
slPoint,//Список баллов
slTime;//Список времени
QVector<QVariant> *ListRightAnswer,//Список правильных ответов
*ListCheckRightAnswer;//Список правильных ответов для проверки
QVector<QStringList> *ListAnswers;//Список ответов
QVector<QByteArray> *ListImages;//Список изображений
QVector<QFont> *ListFonts;//Список шрифтов
QSqlDatabase db;//База данных тестов
QTimer TimerTest,
TimerTestLabel;
QTime TimeTestCurrent,
TimeTestAll;
};
Введение вектора типа QVariant позволило функцию проверки ответов максимально упростить и вынести отдельно:
Код: Выделить всё
bool ShelkTest::MakeCheckRightAnswer(int iIndex)
{
int iTypeR;
QString str1, str2;
QByteArray ba1, ba2;
iTypeR = vShelkTestVar->ListRightAnswer->at(iIndex).type();
if(iTypeR == QVariant::Int)
{
if(vShelkTestVar->ListRightAnswer->at(iIndex).toInt()
== vShelkTestVar->ListCheckRightAnswer->at(iIndex).toInt())
return true;
else return false;
}
if(iTypeR == QVariant::Double)
{
if(vShelkTestVar->ListRightAnswer->at(iIndex).toDouble()
== vShelkTestVar->ListCheckRightAnswer->at(iIndex).toDouble())
return true;
else return false;
}
if(iTypeR == QVariant::String)
{
if(vShelkTestVar->ListRightAnswer->at(iIndex).toString()
== vShelkTestVar->ListCheckRightAnswer->at(iIndex).toString())
return true;
else return false;
}
if(iTypeR == QVariant::ByteArray)
{
ba1.append(vShelkTestVar->ListRightAnswer->at(iIndex).toByteArray());
ba2.append(vShelkTestVar->ListCheckRightAnswer->at(iIndex).toByteArray());
str1.append(vShelkTestVar->ListRightAnswer->at(iIndex).toByteArray());
str2.append(vShelkTestVar->ListCheckRightAnswer->at(iIndex).toByteArray());
if(vShelkTestVar->ListRightAnswer->at(iIndex).toByteArray()
== vShelkTestVar->ListCheckRightAnswer->at(iIndex).toByteArray())
return true;
else return false;
}
if(iTypeR == QVariant::StringList)
{
if(vShelkTestVar->ListRightAnswer->at(iIndex).toStringList()
== vShelkTestVar->ListCheckRightAnswer->at(iIndex).toStringList())
return true;
else return false;
}
return false;
}
Скачать
Re: Программа для создания тестов
Здравствуйте! Представляю новую версию программы 0.4.7. Добавился файл с константами:
Добавилась новая структура, но в коде она пока не задействована:Оптимизирована функция изменения шрифта(была 195 строк):Скачать
Код: Выделить всё
//const.h
//Определение путей констант, в соответствии с системой
#if defined(Q_WS_WIN)
#define PATH_TMP_SET QApplication::applicationDirPath() + "/settings.xwst"
#define PATH_SHARE_DOC QApplication::applicationDirPath()
#define PATH_SHARE_APP QApplication::applicationDirPath()
#define PATH_TMP QApplication::applicationDirPath()
#elif defined(Q_WS_X11)
#define PATH_TMP_SET "/tmp/shelk-test-0.4.7/settings.xwst"
#define PATH_SHARE_DOC "/usr/share/doc/shelk-test-0.4.7"
#define PATH_SHARE_APP "/usr/share/shelk-test-0.4.7"
#define PATH_TMP "/tmp/shelk-test-0.4.7"
#elif defined(Q_WS_MAC)
#define PATH_TMP_SET QApplication::applicationDirPath() + "/settings.xwst"
#define PATH_SHARE_DOC QApplication::applicationDirPath()
#define PATH_SHARE_APP QApplication::applicationDirPath()
#define PATH_TMP QApplication::applicationDirPath()
#endif
#define MODE_VIEW true
#define MODE_EDIT false
#define LANGUAGE_RUSSIAN true
#define LANGUAGE_ENGLISH false
#define TOOLBAR_SHOW true
#define TOOLBAR_HIDE false
#define STATISTICS_FIELD_SHOW true
#define STATISTICS_FIELD_HIDE false
#define VIEW_RUSSIAN 0
#define VIEW_ENGLISH 1
#define EDIT_RUSSIAN 2
#define EDIT_ENGLISH 3
//Типы вопросов
#define TYPE_ONE_ANSWER "1"
#define TYPE_MANY_ANSWERS "2"
#define TYPE_ENTER_WORD "3"
#define TYPE_ENTER_NUMBER "4"
#define TYPE_INSTALLATION_SEQUENCE "5"
Добавилась новая структура, но в коде она пока не задействована:
Код: Выделить всё
//Структура показа полей статистики
struct TStateFieldStatistics
{
bool bUserName,//Имя пользователя
bNameTest,//Название теста
bTotalQuestions,//Всего вопросов
bCorrectAnswers,//Правильных ответов
bWrongAnswers,//Неправильных ответов
bTotalPoints,//Всего баллов
bScore,//Оценка
bDate,//Дата
bTimeBegin,//Время начала
bTimeEnd,//Время окончания
bElapsedTime;//Прошедшее время
};
Код: Выделить всё
bool Accept;
QFont TextFont;
TextFont = TextQuestion->textCursor().charFormat().font();
TextFont = QFontDialog::getFont(&Accept, TextFont);
if(Accept)
{
QTextCharFormat tcf;
tcf.setFont(TextFont);
TextQuestion->textCursor().setCharFormat(tcf);
cbFont.setCurrentFont(TextFont);
}
else return 1;
Re: Программа для создания тестов
Новая и последняя на данный момент версия 1.0.0. Здесь я постарался конкретно. Изменения:
Далее, задействовал webkit:, так как QTextEdit и QTextBrowser не могут отображать элементы ввода(текст, переключатель, флажок), для формирования правильной html-ки. Раз уж было принято решение добавить новую зависимость от библиотеки QtWebkit, то на его же основе я сделал проверку наличия новой версии через интернет, смотрим:Как видно - всё просто. Если текст "new_version" найден в загруженной html-ке, то есть новая версия
Чтобы сделать всё так, как я задумал - пришлось использовать новый метод disconnect, который я ранее не использовал и всё получилось.
Теперь за кодом можно наблюдать не дожидаясь релиза. В git создана новая ветка current. Скачать.
- Добавились новые возможности: проверка наличия новой версии через интернет; печать теста; печать статистики; экспорт тестов в HTML, RTF, PDF, PostScript, простой текстовый формат;
- Добавлено использование системных временных каталогов для размещения временных файлов;
- Изменилось расположение файла статистики по-умолчанию на домашний каталог пользователя;
- Изменилась кодировка файла статистики на UTF-8:
- Изменилась кодировка импортируемого текстового файла на UTF-8;
Код: Выделить всё
//Новые константы
//Типы вопросов для определения содержимого переменной QVariant
#define V_TYPE_ONE_ANSWER QVariant::Int
#define V_TYPE_MANY_ANSWERS QVariant::ByteArray
#define V_TYPE_ENTER_WORD QVariant::String
#define V_TYPE_ENTER_NUMBER QVariant::Double
#define V_TYPE_INSTALLATION_SEQUENCE QVariant::StringList
//Перевод слов в rtf-unicode
QString ShelkTest::WordToUnicode(QString sWord)
{
QString sTemp,
sNum;
sTemp.clear();
for (int i = 0; i < sWord.length(); i++)
{
sNum.setNum(sWord.at(i).unicode());
sTemp.append("\\u" + sNum + "?");
}
return sTemp;
}
Далее, задействовал webkit:
Код: Выделить всё
private: QWebView *wvUpdate;//Для обновления и печати :)
Код: Выделить всё
void ShelkTest::slotCheckForUpdates()
{
connect(wvUpdate, SIGNAL(loadFinished(bool)), SLOT(slotMakeCheckUpdates(bool)));
wvUpdate->load(QUrl("http://labfreetech.org/shelk_1.0.0.html"));
}
void ShelkTest::slotMakeCheckUpdates(bool bError)
{
if (bError && wvUpdate->page()->findText("new_version")) QMessageBox::information(0, tr("Information"), tr("On the official website available a new version!"));
else QMessageBox::information(0, tr("Information"), tr("You have the latest version!"));
disconnect(wvUpdate, SIGNAL(loadFinished(bool)), 0, 0);
}
Чтобы сделать всё так, как я задумал - пришлось использовать новый метод disconnect, который я ранее не использовал и всё получилось.
Теперь за кодом можно наблюдать не дожидаясь релиза. В git создана новая ветка current. Скачать.
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Программа для создания тестов
Нужно только виндузятникам.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Программа для создания тестов
Что сделаешь, на этот скромный сегмент пользователей мне тоже приходится делать акцент
Re: Программа для создания тестов
Если речь идет о пакете принятом в репозитории то согласен.... Пока нет - нужно не зависимо от ОС.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Программа для создания тестов
Репозитории бывают и неофициальные. Если бы ТС вместо реализации сей фичи сделал репозитории под наиболее распространённые дистрибутивы - линуксоидам было бы много больше пользы. При условии, конечно, что эта программа кому-то интересна.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Программа для создания тестов
Здравствуйте знатоки мира OpenSource и Unix-систем в частности! Есть один вопрос, касающийся и моих программ тоже.
Что нужно, для того, чтобы проект( / отдельную программу) могли признать как свободную и начали размещать новости на таких сайтах как OpenNet.ru, LinuxCenter.ru и подобных?
Если время, то есть много новостей типа "Недавно стартовал такой-та проект(программа), версия 0.0.1, а она уже из себя кое-что представляет. Продолжаем пристально за этим следить..."
Если законченность и многообразие функций, то есть информация в журнале LinuxFormat, что "Была такая программа - автор потом не смог выхлоп ld разобрать(не линковалось что-то) и проект встал - очень жаль...".
Если закрытый код, то в моих всех программах он уже открыт - используется git и bug-трекер, есть форум, всё это хостится на SourceForge.net.
Благодарю за ответы!
Что нужно, для того, чтобы проект( / отдельную программу) могли признать как свободную и начали размещать новости на таких сайтах как OpenNet.ru, LinuxCenter.ru и подобных?
Если время, то есть много новостей типа "Недавно стартовал такой-та проект(программа), версия 0.0.1, а она уже из себя кое-что представляет. Продолжаем пристально за этим следить..."
Если законченность и многообразие функций, то есть информация в журнале LinuxFormat, что "Была такая программа - автор потом не смог выхлоп ld разобрать(не линковалось что-то) и проект встал - очень жаль...".
Если закрытый код, то в моих всех программах он уже открыт - используется git и bug-трекер, есть форум, всё это хостится на SourceForge.net.
Благодарю за ответы!
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Программа для создания тестов
Запостите на freecode.com, если программой кто-нибудь заинтересуется, то и новости будут.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Программа для создания тестов
> Что нужно, для того, чтобы проект( / отдельную программу) могли признать как свободную и начали размещать новости на таких сайтах как OpenNet.ru, LinuxCenter.ru и подобных?
В чём проблема? Сам новости пости
В чём проблема? Сам новости пости
Re: Программа для создания тестов
Подскажите какой пароль для того чтобы перейти в режим редактирования ???
AvReg - По для организации Видеонаблюдения на Linux.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
ДЭНСИ:КАССА - Рабочее место кассира под Linux.
Терминальные решения под Linux
Консультации по установке 1с+PostgreSQL+Ubuntu.
Re: Программа для создания тестов
Очередная версия программы 1.5.1. Часть переменных сгруппирована и выделена в отдельные классы:
TAnswer,//Ответ
TQuestion,//Вопрос
TTest,//Тест
TDepository,//Хранилище
TFileOptions//файл свойств
Всё работает нормально, но память очищается не вся. Вектора списков вопросов и ответов, при вызове стандартного метода clear(), возможно неполностью очищают своё содержимое. Сделал так:
всё равно после недолгой работы(открытий / закрытий тестов) с программой. Остаётся, при закрытии ~3 МБ не выгружено. По, что это мелочь, но ...
Изменения:
TAnswer,//Ответ
TQuestion,//Вопрос
TTest,//Тест
TDepository,//Хранилище
TFileOptions//файл свойств
Код: Выделить всё
...
QString s_NameTest;//Название теста
QByteArray ba_TestPassword;//Пароль теста
public:
QVector<TQuestion> vListQuestions;//Список вопросов
QVector<TAnswer> vListAnswers;//Список ответов
QTimer TimerTest;
QTimer TimerTestLabel;
QTime TimeTestCurrent;
QTime TimeTestAll;
TTest();
~TTest();
int countQuestions() const;//Получить количество вопросов
void setCountQuestions(int iCountQuestions);//Задать количество вопросов ...
Код: Выделить всё
for (int i = 0; i < TestDepository->Test->vListQuestions.count(); i++)
{
TestDepository->paTemp[i].clear();//Указатель на TestDepository->Test->vListAnswers
TestDepository->pqTemp[i].clear();//Указатель на TestDepository->Test->vListQuestions
}
TestDepository->TestAnswer.clear();
TestDepository->TestQuestion.clear();
TestDepository->Test->vListAnswers.clear();
TestDepository->Test->vListQuestions.clear();
всё равно после недолгой работы(открытий / закрытий тестов) с программой. Остаётся, при закрытии ~3 МБ не выгружено. По, что это мелочь, но ...
Изменения:
Скачать- Оптимизация процесса сохранения теста(~10 раз(!)) в базу хранилища;
- Декомпозиция программы на отдельные классы, с занесением части переменных в секцию private;
- Добавлена возможность использовать дифференцированную или недифференцированную систему оценивания;
- Добавлены возможности: удалённого расположения файла свойств программы; ограничивать время для всего теста; пропуска вопросов, при тестировании; перемешивания вопросов; настраиваемого показа полей статистики; запоминать последнюю открытую базу хранилища; не показывать результаты тестируемому; ограничивать количество задаваемых вопросов из общего числа;
Спасибо сказали:
Re: Программа для создания тестов
1.5.2 - скачать
Благодарю за ответы!
В следующей версии я хочу прикрутить веб-интрефейс тестируемого. Собираюсь использовать JavaScript(или Java? а возможно C++?) + свой простейший веб-сервер(на C++ для AJAX). Какие вопросы / проблемы меня могут поджидать?- Теперь сохранение свойств программы происходит при каждом их изменении;
- Убрана чувствительность регистра ответа в вопросе типа "Ввод слова(предложения)";
- Исправлена ошибка ограничения количества вопросов в режиме редактирования;
- Добавлено новое поле статистики "Количество заданных вопросов из общего числа";
- Исправлена ошибка, когда нельзя было ввести вариант ответа, при увеличении и обратном уменьшении изображения, в вопросе "Ввод слова(предложения)";
- Изменено и отлажено автоматическое определение пропущенных вопросов, при тестировании;
- Добавлена дополнительная детализация к статистике протестировавшихся;
Благодарю за ответы!
Re: Программа для создания тестов
Ну первый вопрос вас уже наше: разобраться где, для чего и какой язык годен. Да и вообще навести порядок в знаниях:
1. Упомянутый Ajax намекает на использование JavaScript.
2. Использование JavaScript для создания сервера - это и области фантастики (не нужной)... Хотя как знать, мож кто сумел прикрутить
3. Я уже потерялся на чем вы пишете проекты, потому для написания сервера придется использовать c++ (или pascal если вы на нем пишете) или с. Возможно наверное и Java.... Но на мой личный и скромный взгляд - Java для таких целей...... ненадо....
4. Веб сервер для аякс..... А почему тогда именно для аякс? А не вообще для веб интерфейса? Вашим пользователям ведь не надо будет скачивать на комп гору htmlек?
5. Почему не использовать готовый сервер? Это было бы грамотным решением.
ИМХО
офтоп.
Ну когда же уже кофе можно будет сварить ?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Voral писал(а): ↑17.11.2012 20:47Ну первый вопрос вас уже наше: разобраться где, для чего и какой язык годен. Да и вообще навести порядок в знаниях:
1. Упомянутый Ajax намекает на использование JavaScript.
2. Использование JavaScript для создания сервера - это и области фантастики (не нужной)... Хотя как знать, мож кто сумел прикрутить
3. Я уже потерялся на чем вы пишете проекты, потому для написания сервера придется использовать c++ (или pascal если вы на нем пишете) или с. Возможно наверное и Java.... Но на мой личный и скромный взгляд - Java для таких целей...... ненадо....
4. Веб сервер для аякс..... А почему тогда именно для аякс? А не вообще для веб интерфейса? Вашим пользователям ведь не надо будет скачивать на комп гору htmlек?
5. Почему не использовать готовый сервер? Это было бы грамотным решением.
1. Если динамическая подгрузка не реализована для других языков, то тогда понятно.
2. Поправил сообщение для создания веб-сервера я буду использовать всё тот же C++(Qt), конечно же.
3. Пока на мой проект никто не обращает внимания. Поэтому и приходится делать невозможное для того, чтобы кто-нибудь хотя бы сделал вид, что программы действительно нужные
4. Ну а как же шагание в ногу со временем? Тем более для такой мелочи можно сделать всё шикарно. Это как 19 сборок для простого кроссворда
5. Преподаватели просто не будут возиться с настройкой "ещё и какого-то веб-сервера" для удобства. Им такое мнимое упрощение не нужно.
Но, меня все же интересует вопрос, когда может возникнуть необходимость в "кроссбраузерной вёрстке" если я буду передавать чистый html без css и другой ерунды. Ещё JavaScript на странице будет таймер считать, например, для автоматического окончания тестирования.
Re: Программа для создания тестов
xwicked писал(а): ↑17.11.2012 22:261. Если динамическая подгрузка не реализована для других языков, то тогда понятно.
4. Ну а как же шагание в ногу со временем? Тем более для такой мелочи можно сделать всё шикарно. Это как 19 сборок для простого кроссворда
5. Преподаватели просто не будут возиться с настройкой "ещё и какого-то веб-сервера" для удобства. Им такое мнимое упрощение не нужно.
1 Конкретно Ajax - Asynchronous Javascript and XML. Разве нет?
4. Я не об этом. Вашу фразу "сделать вебсервер для аякс" я воспринимаю следующим образом: пользователь тем или иным образом копирует себе набор html/js/css файлов. Из которых идет обращение к вашему серверу с использованием ajax. Но тгда вообще зачем эти страницы тащить пользователю к себе на комп? Пусть ваш сервер их и генерит и отдает. В итоге все что нужно пользователю - закладка в его браузере с url вашего сервера. тогда фраза "сервер для аякс теряет смысл".
5. Ну что значит "не будут". Минимально и ваш сервер придется настроить. В конце концов можете просто вывести необходимые и достаточные настройки в окно настройки вашей программы. И пользователь практически может и не знать, что работает апач. С другой стороны. Если у пользователя уже стоит апач и слушает 80 и 8080 порт. То вашему серверу уже слушать другой порт, а тут какой нить злобный админ приходящий в школу раз в пятилетку может зарубить все "лишние"....
хм.. "чистый html без css" - это хардкор и уж точно не шагание в ногу со временем. Ну а необходимость "кроссбраузерной верстки" возникнет сразу как только вы начнете сделать вебморду...... Просто может вы и не наткнетесь на проблемы связанные с этим. А проверять во всех браузерах, имхо, стоит с самого начала. Включая всякие андроидные и айосные. И тут только вам решать какова ваша целевая аудитория.
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
1. Глава 47. Динамическая загрузка данных(AJAX). Д. Котеров. Так что AJAX - это всего лишь одна из реализаций технологиии динамической подгрузки данных. Есть уже другие на php и на других языках, но они вроде как сырые. Это я от тебя и хотел услышать.Voral писал(а): ↑20.11.2012 00:54...
1 Конкретно Ajax - Asynchronous Javascript and XML. Разве нет?
4. Я не об этом. Вашу фразу "сделать вебсервер для аякс" я воспринимаю следующим образом: пользователь тем или иным образом копирует себе набор html/js/css файлов. Из которых идет обращение к вашему серверу с использованием ajax. Но тгда вообще зачем эти страницы тащить пользователю к себе на комп? Пусть ваш сервер их и генерит и отдает. В итоге все что нужно пользователю - закладка в его браузере с url вашего сервера. тогда фраза "сервер для аякс теряет смысл".
5. Ну что значит "не будут". Минимально и ваш сервер придется настроить. В конце концов можете просто вывести необходимые и достаточные настройки в окно настройки вашей программы. И пользователь практически может и не знать, что работает апач. С другой стороны. Если у пользователя уже стоит апач и слушает 80 и 8080 порт. То вашему серверу уже слушать другой порт, а тут какой нить злобный админ приходящий в школу раз в пятилетку может зарубить все "лишние"....
...
хм.. "чистый html без css" - это хардкор и уж точно не шагание в ногу со временем. Ну а необходимость "кроссбраузерной верстки" возникнет сразу как только вы начнете сделать вебморду...... Просто может вы и не наткнетесь на проблемы связанные с этим. А проверять во всех браузерах, имхо, стоит с самого начала. Включая всякие андроидные и айосные. И тут только вам решать какова ваша целевая аудитория.
4. Д. Котеров PHP 5. Глава 47. Страница 1013.
Я когда конпилил фряху познакомился с основами AJAX.Серверная часть системы (назовём её backend приложения) - это сценарий, который запускается на сервере в ответ на тот или иной запрос пользователя. Мы будем рассматривать только php-сценарии, однако,конечено вы можете использовать любой другой язык программирования (Perl, Ruby или даже C++)
5. Собирать Apache в Solaris, компоновать его потом в архив?????? позвольте!!! Я не мозохист
В одной школе я видел демократию, со включёнными всеми сидюками и флешками, так что, ситуация возможна, но крайне сомнительна. В любом случае я смогу, если понадобится, узнать как с этим дела обстоят в 10-ти школах, для верности.
Чистый html - это как и в самой программе на C++, для вылизования кода. Сдавать тесты с айфона, я думаю никому не разрешат, хотя, может если будет возможность, то почему бы и нет?
Re: Программа для создания тестов
Ну значит я не понял предмета вопроса. В исходном сообщении было четко об ajax. С учетом того, что вам требуется чтоб динамические данные подгружались по команде от клиента. А клиент, как я вас понял, в нашем случае браузер (иначе при чем тут html). И именно некий скрипт на стороне клиента должен отработать и запросить данные с сервера и тут сразу появляется ограничение: какие языки можно использовать в рамках браузеров в расчете на максимально большой круг пользователей? все просто, как минимум по стандарту: JavaScript и VBScript. Чтобы оно работало на стороне клиента нужен интерпретатор, т.е. если и есть технологии с реализацией на php - то их использование это дополнительные сложности.
xwicked писал(а): ↑21.11.2012 01:484. Д. Котеров PHP 5. Глава 47. Страница 1013.Я когда конпилил фряху познакомился с основами AJAX.Серверная часть системы (назовём её backend приложения) - это сценарий, который запускается на сервере в ответ на тот или иной запрос пользователя. Мы будем рассматривать только php-сценарии, однако,конечено вы можете использовать любой другой язык программирования (Perl, Ruby или даже C++)
Этот ответ меня вообще загнал в ступор. Мы на разной волне. Тезис 4 был о следующем:
как я понял вы хотите создать веб-сервер в рамках проекта только для технологии динамической подгрузки данных. Я лишь спросил зачем ограничивать готовый функционал одними только ответами на запросы скриптов для динамической подгрузке данных? Пусть они вообще и сами страницы отдают. Т.е. имея голый комп со свежестанолвенной ос. Мы просто в браузере вводим http://kross-server/ и сразу начинаем разгадывать кроссворды.
Я уже начинаю сомневаться, что я правильно понимаю вашу задумку: вы хотите чтоб можно было разгадывать кроссворды в браузере?
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Именно так. Веб-сервер будет выполнять всё . Хорошо, тогда следующий вопрос. Я хочу сделать разделение на обычный клиент-сервер. Может мне сделать веб-сервер с отдачей html-ок и функционирования AJAX и написать клиент по типу браузера, тогда я убиваю 2-ух зайцев одним сервером.То есть и браузер будет работать с моим веб-сервером и мой десктопный клиент тоже с ним же и будет работать?Voral писал(а): ↑21.11.2012 09:17... Т.е. имея голый комп со свежестанолвенной ос. Мы просто в браузере вводим http://kross-server/ и сразу начинаем разгадывать кроссворды. ...
Re: Программа для создания тестов
xwicked писал(а): ↑21.11.2012 11:47Я хочу сделать разделение на обычный клиент-сервер. Может мне сделать веб-сервер с отдачей html-ок и функционирования AJAX и написать клиент по типу браузера, тогда я убиваю 2-ух зайцев одним сервером.То есть и браузер будет работать с моим веб-сервером и мой десктопный клиент тоже с ним же и будет работать?
Если вы будете делать вариант для работы с браузером то, имхо, нет ни какого смысла в собственном клиенте. По сути это будет просто урезанный браузер который на Qt делается за 5 минут за чашкой чая. В собственном клиенте мог бы быть в этом случае смысл в одном случае - когда можно получить значительный и, что главное, существенный для юзера трафик. В вашем случае клиент может избавить от необходимости передавать по сети только интерфейс. Если без наворотов и экранов велком. это 1 страница html..... Ну если совсем совсем вы ее накрутите ну килобайт 100...... А данные по сканворду будут передаваться в любом случае - а это основной трафик данной программы.
В прочем исходя из моего понимания вашей тактики - сделайте .....
Но уж точно тогда разделяйте по пакетам примерно так:
- cross-core - ядро системы, которая обрабатывает сами кроссворды. Которое цепляют и обычная локальная программа и сервер
- cross-local - обычная локальная программа
- cross-server - сервер который общается с клиентами
- cross-server-mod-gui - модуль к серверу который гененрирует гуи. если подключен - можно работать из браузера. В свою очередь круто (это идея абсолютный сырец) предусмотреть воззможность подключения к этому модулю и ваш бинарный вариант реализации вебгуя и например обычные php скрипты - тогда красноглазый юзер сможет рисовать свои интерфейсы и/или встраивать в свои сайты в общем дизайне
- corss-client - бинарный клиент который сам рисует ГУИ а от сервера получает только данные
Таким образом при любом варианте установке надо устанавливать как минимум 2 пакета:
- core + local - обычное приложение
- core + server + mod-gui - ориентируемся на браузеры
- core + client - ориентируемся на своего клиента
ну и естественно любая комбинация этих вариантов. главное core обязателен и един
То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Re: Программа для создания тестов
Тут опять требуется пояснение. Клиент уже есть. Сейчас это режим тестирования. Он отделяется и к нему прикручивается общение с сервером запросами веб-браузера. А нужен он на компах, где нет сети, чтобы можно было из файла открыть тест и протестироваться. Учитель отдельно потом подойдёт к тому компу и посмотрит на результаты, какие получились.
Я ещё подумаю, как сделать и сколько времени у меня будет. Вообщем, благодарю! Я к этому вопросу теперь вернусь не раньше января месяца.
Re: Программа для создания тестов
Насчет варнингов: в файле tdepository.cpp более правильно писать
вместо присваивания указателю значения false. К тому же, false это не обязательно 0.
В файле TShelkTest.cpp похожая проблема. С ходу непонятно, что именно вы хотели сказать этим FormListTests.ui->tvListTests->setEditTriggers(false) но, если хотели в функцию передать 0, то можно было передать то, что описано в документации. Например QAbstractItemView::NoEditTriggers. По смыслу это тоже 0, но читается лучше.
P.S. Даже не думал поучать.
Код: Выделить всё
bool bOk;
bOk = false;
iTableNumber = strTest.toInt(&bOk, 10);
вместо присваивания указателю значения false. К тому же, false это не обязательно 0.
В файле TShelkTest.cpp похожая проблема. С ходу непонятно, что именно вы хотели сказать этим FormListTests.ui->tvListTests->setEditTriggers(false) но, если хотели в функцию передать 0, то можно было передать то, что описано в документации. Например QAbstractItemView::NoEditTriggers. По смыслу это тоже 0, но читается лучше.
P.S. Даже не думал поучать.
Re: Программа для создания тестов
Благодарю! Мне уже приходило письмо в техподдержку, я успешно про него забыл. Просто не на всех платформах компилятор ругается такими словами.
Re: Программа для создания тестов
Пост на freecode.com мне особо ничего не дал. Просто ещё один каталог программ... Ближе к делу:
По-тихоньку идёт совершенствование программы. И сейчас от основного кода был отделён модуль Тестирование.
Пршу протестировать на наличие ошибок первую бета-версию: 1.6.2.0. Для полноценной проверки может потребоваться прошлая версия 1.5.2. Снепшот
Благодарю за ответы!
По-тихоньку идёт совершенствование программы. И сейчас от основного кода был отделён модуль Тестирование.
Пршу протестировать на наличие ошибок первую бета-версию: 1.6.2.0. Для полноценной проверки может потребоваться прошлая версия 1.5.2. Снепшот
Благодарю за ответы!