Russian Qt Forum
Ноябрь 23, 2024, 04:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Программа для создания тестов. [Обсуждение программы и кода]  (Прочитано 23492 раз)
xwicked
Гость
« : Август 15, 2011, 17:02 »

Здравствуйте!

Третья моя программа написана по наработкам второй(для создания электронных книг), поэтому содержит некоторые методы такого же названия например "openBookBase", что в последующих версиях будет исправлено на "openTestBase"  Веселый

Программа представляет собой миникомплекс, включающий: создание, тестирование, отчёт(статистика). Версия 0.3.1 - исходник + сборки.

Скрин последней версии:


Ссылка на SourceForge.net. Код под GNU GPL v2 - OpenSource. С++(Qt).

Описание: кроссплатформенная программа для создания и редактирования тестов, с последующим тестированием.
Её могут использовать все, кому понадобиться быстро создать тест и проверить знания. Можно будет создать вопрос типа "Что показано на изображении" и использовать как в школе так и на предприятии, для сдачи квалификационных экзаменов. Все тесты хранятся в базе данных SQLite3. Это позволяет располагать файл базы на любом сервере(Windows, GNU / Linux, и т. д.), без необходимости установки сервера баз данных.

Всё находится в одном исполняемом файле. Для редактирования / тестирования, необходимо переключить соответствующий пункт из меню "Режим". Отчёт о протестировавшихся представлен статистикой.

Внутренняя архитектура: список вопросов хранится в QStringList ListQuestions, список правильных ответов в QStringList ListRightAnswer, варианты ответа при тестировании в QStringList ListCheckRightAnswer. Изображения к тесту находятся в QByteArray ListImages[100000]. Режим редактирования защищён паролем, который пока что, хранится в открытом виде.

Обсуждаем.
Записан
SeverusSnape
Гость
« Ответ #1 : Август 15, 2011, 17:47 »

А у вас еще много программ?
Записан
xwicked
Гость
« Ответ #2 : Август 15, 2011, 21:16 »

А у вас еще много программ?
Есть ещё одна переделка кроссворда под Lazarus  в стадии первой бета-версии. Вроде следующие только в планах...
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #3 : Август 16, 2011, 00:55 »

А у вас еще много программ?
Смеющийся Смеющийся
Записан

kubuntu/Win7/x64/NetBeans
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #4 : Август 17, 2011, 18:27 »

Интерфейс - без бутылки не разберешся...
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
xwicked
Гость
« Ответ #5 : Август 19, 2011, 08:15 »

Интерфейс - без бутылки не разберешся...
Шокированный  Вы значит не видели Mac OS...  Веселый
Записан
surendil
Гость
« Ответ #6 : Август 19, 2011, 10:52 »

Мм.. а как редактирование будет происходить, если все вопросы, ответы и изображения будут в исходниках "зашиты"? Я немного не догоняю похоже Веселый
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #7 : Август 19, 2011, 15:18 »

Интерфейс - без бутылки не разберешся...
Шокированный  Вы значит не видели Mac OS...  Веселый
что-то теперь и не хочется.
ПС. но мне кажется что дело не в макоси.
ПС2. Что-то мне кажется что для таких веток надо другую секцию заводить.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
surendil
Гость
« Ответ #8 : Август 20, 2011, 10:35 »

А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Август 20, 2011, 13:43 »

Шокированный  Вы значит не видели Mac OS...  Веселый
Ну по крайней мере один пользователь Mac попытался посмотреть один из Ваших продуктов.....
Я понимаю как нелегко на незнакомой платформе. Поэтому не вдаваясь в подробности: если нет необходимости - лучше не поддерживать Mac (вместо того чтобы мучать кошек)
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #10 : Август 20, 2011, 16:01 »

А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог Веселый
Да мне бы руки за такой ифейс отбили.
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
surendil
Гость
« Ответ #11 : Август 21, 2011, 00:42 »

А что с интерфейсом? Интерфейс как интерфейс, получше чем у многих бухгалтерских и строительных прог Веселый
Да мне бы руки за такой ифейс отбили.
У вас хорошая работа, правда Улыбающийся
Записан
xwicked
Гость
« Ответ #12 : Август 29, 2011, 23:16 »

Здравствуйте!

Вот новая версия 0.3.5.

Теперь программа предоставляет возможность создавать тесты, используя 4-е новых типа вопроса: много ответов, ввод слова(предложения) с клавиатуры, ввод числа с клавиатуры, установка последовательности ответов.

Хочу обратить Ваше внимание на то, что в данной версии я сделал вот так:
Код:
         if(slotSelectTypeQuestion() == false) return;

         if(sTypeQuestion == tr("One answer")) setOneAnswerType();

         if(sTypeQuestion == tr("Many answers")) setManyAnswerType();

         if(sTypeQuestion == tr("Installation sequence")) setInstallSequenceType();

         if(sTypeQuestion == tr("Enter number")) setEnterNumberType();

         if(sTypeQuestion == tr("Enter word (sentence)")) setEnterWordType();

         slQuestionType << sTypeQuestion;
         SaveState = false;
Функция slotSelectTypeQuestion() отвечает за вывод списка, из которого можно будет выбрать соответствующий тип вопроса.
Далее идёт проверка типа и его применение - функция начинается на "set<Тип_вопроса>". Потом выбранный вариант загоняется в список типов QStringList slQuestionType. Но, здесь есть одно "но":
Код:
sTypeQuestion == tr("One answer")
- тип вопроса взят в "tr()", так что тест, составленный на русском языке не будет работать при использовании английского языка интерфейса программы и наоборот Грустный . Просьба, перед сборкой устранить эту ошибку, так как мной она будет устранена в последующий версиях Улыбающийся .

Дабы быть уверенным в том, что файлы не побились, при закачке, я добавил текстовик с 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, сборки программы уже снова полнофункциональны. Прошу извинить меня за данное неудобство.
Записан
xwicked
Гость
« Ответ #13 : Октябрь 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".
Записан
xwicked
Гость
« Ответ #14 : Ноябрь 07, 2011, 00:52 »

Продолжаем знакомиться с кодом. Версия 0.4.1 Включает в себя следующие изменения:
Цитировать
- Исправлена ошибка в реализации типа вопроса "Ввод числа";
- Исправлена ошибка в реализации типа вопроса "Установка последовательности";
- Добавлена возможность вставки изображения в вопрос теста;
- Добавлены горячие клавиши;
- Добавлена возможность использования баллов;
- Добавлена возможность ввода имени тестируемого;
- Добавлена статистика.
Статистика - это первый вариант журнала отчёта о протестировавшихся студентах, представлена обычным html-файлом:
Код
C++ (Qt)
           QFile file("/tmp/shelk-test-0.4.1/Stat.html");
           QDataStream sfile(&file);
           if(!file.exists())
           {
               file.open(QIODevice::WriteOnly);
               strStat.clear();
               strStat.append("<HTML>\n"
                              " <BODY>\n"
                              "  <TABLE border=\"3\">\n"
                              "   <TR>\n"
                              "    <TD> " + tr("User name") + " </TD>\n"
                              "    <TD> " + tr("Name test") + " </TD>\n"
                              "    <TD> " + tr("Total questions") + " </TD>\n"
                              "    <TD> " + tr("Correct answers") + " </TD>\n"
                              "    <TD> " + tr("Wrong answers") + " </TD>\n"
                              "    <TD> % </TD>\n"
                              "    <TD> " + tr("Total points:") + "  </TD>\n"
                              "    <TD> " + tr("Date") + "  </TD>\n"
                              "    <TD> " + tr("Time end") + "  </TD>\n"
                              "   </TR>\n"
                              "   <TR>\n"
                              "    <TD>" + UserName + "</TD>\n"
                              "    <TD>" + StatNameTest + "</TD>\n"
                              "    <TD>" + sTotalQuestions + "</TD>\n"
                              "    <TD>" + sCorrectAnswer + "</TD>\n"
                              "    <TD>" + sWrongAnswer + "</TD>\n"
                              "    <TD>" + strPercent + "</TD>\n"
                              "    <TD>" + sAllPoint + "</TD>\n"
                              "    <TD>" + strDate + "</TD>\n"
                              "    <TD>" + strTime + "</TD>\n"
                              "   </TR>\n"
                              "  </TABLE>\n"
                              " </BODY>\n"
                              "</HTML>\n");
               sfile << strStat;
               file.close();
               FormStat.StatLabel->setText(strStat);
           }
Есть что-нибудь проще или для начала сойдёт?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.207 секунд. Запросов: 23.