Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подбросте идею, Курсовая 
:(
    Опции темы
Coocky
Дата 27.3.2004, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Дали на курсовую тему:написать прогу,для разработки тестов.Может есть у кого идеи,как сделать(только код не надо давать biggrin.gif ),ну в смысле идея самой проги,может кто где видел или писал.Расмотрю все преждложения smile.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
mr.DUDA
Дата 27.3.2004, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Простой вариант, без геморроя:
- главное окно на базе диалога, сверху вопрос, ниже - варианты ответов в виде радиобатонов, можно картинку над вопросом выводить; ещё ниже можно приводить статистику (сколько вопросов всего, сколько было уже задано, сколько времени прошло и осталось, ФИО и т.п.)
- вопросы и варианты ответов хранить в текстовом файле(-ах), правильные ответы - в отдельном файле, в заXORенном виде wink.gif
- картинки (если есть) - в той же папке, где и текстовики с вопросами, в виде обычных BMP'шек

Для слежения за временем и обновлением его на диалоге, можно завести обработку WM_TIMER, а можно сделать отдельный поток. Радиобатоны (или чекбоксы) создавать динамически, по содержимому текстовых файлов с вопросами; обработку вести с пом. ON_COMMAND_RANGE.


--------------------
user posted image
PM MAIL WWW   Вверх
PILOT
Дата 27.3.2004, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Тест это значит что ест варианты ответов.

Создаешь структуру данных в которой есть:
вопрос
ответ 1
ответ 2
ответ 3
ответ 4
ответ 5
номер правильного ответа

Типы данных выбираешь из зравого смысла и объема текстов.
Эту структуру помещаешь в массив и сохраняешь на диске в нужном формате.

Программа вытаскивает структуру и выводит на экран предлагая пользователю отметить правильный ответ и нажать кнопку "дальше".
Когда данных в файле с вопросами больше нет, программа выводит результаты совпадений ответов пользователя с правильными ответами. В зависимости от этого выставляет оценку или выводит статистику в файл( рпинтер)...

СУВ.
ЗЫ. Про ввод начальных данный, выбор типа теста, времени теста и т.д. ты сам реши...

Добавлено @ 23:11
Ну вот пока отвечаешь тут уже куча ответов...


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Coocky
Дата 29.3.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Я вообще -то думал прогу составить в виде редактора,с котором пользователь может составлять тесты,которые,потом,может использовать,как отдельную прогу.Так вот вопросы был,типа,какой можно придумать интерфейс,какие виды тестов можно составлять,в каком формате сохранять.Ну вообщем,захотел кто-нибудь для кого-нибудь тесты составить,открыл прогу и сделал.Почему совета прошу?Да просто боюсь всего не предусмотреть wink.gif А может кто-то из вас фичу какую подскажет.Вообщем ,ребята,давайте,кто чем....


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
mr.DUDA
Дата 29.3.2004, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
Я вообще -то думааал прогу составить в виде редактора,с котором пользователь может составлять тесты,которые,потом,может использовать,как отдельную прогу.Так вот вопросы был,типа,какой можно придумать интерфейс,какие виды тестов можно составлять,в каком формате сохранять.Ну вообщем,захотел кто-нибудь для кого-нибудь тесты составить,открыл прогу и сделал.Почему совета прошу?Да просто боюсь всего не предусмотреть  А может кто-то из вас фичу какую подскажет.Вообщем ,ребята,давайте,кто чем....

1) интерфейс - простой, в виде окна диалога с кнопками:
- список вопросов
- добавить вопрос
- редактировать вопрос
- удалить вопрос
- сохранить тест
- открыть тест
- а также текстовые поля, определяющие:
а) количество времени на ответы, в секундах
б) количество правильных ответов на оценку "5"
в) то же самое для оценок "4" и ниже
При клике на "добавить вопрос" появляется другой диалог с Rich Edit-ом, где можно ввести текст вопроса, а также поле Edit с количеством ответов, а также тип правильного ответа (единственный, множественный) и кнопка Ок. При клике на Ок, появляется третий диалог с N полями Edit, в которых можно ввести варианты ответа. Слева от каждого Edit-а находится радиобатон (если правильный ответ - единственный) или чекбокс (если правильный ответ может быть множественным, т.е. на вопрос можно ответить сразу несколькими ответами, и они будут правильными). При заполнении этого диалога, соотв. вопрос (краткая его формулировка) добавляется в список вопросов на главном диалоге. Чтобы отредактировать вопрос/ответы, нужно выделить вопрос в списке и нажать "редактировать вопрос". Чтобы удалить, нужно также выделить и нажать "удалить вопрос".

2) При нажатии на кнопку "сохранить вопрос", выводится CFileDialog, в котором предлагается сохранить тест на диск. При вводе имени файла и нажатии Ок, происходит выход из диалога с кодом IDOK, значит тест можно сохранить с выбранным именем файла. Сохраняем таким образом, для простоты:
Код
void CMainDialog::SaveTest()
{
      CString strFileName = "Test";
      CString strFilter = "Test files (*.tst)|*.tst||";
      CFileDialog dlg(FALSE, NULL, strFileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, strFilter);
      if(dlg.DoModal() != IDOK) return;
     
      CString csFileName = dlg.GetFileName();
      if(dlg.GetFileExt().IsEmpty())
            csFileName += ".tst";
     
      CFile file(csFileName, CFile::modeCreate|CFile::modeWrite);
      CArchive ar(&file, CArchive::store);

      ar<<"Test v0.1"; // сохраняем в архив версию файла
      ar<<NumOfQuestions; //сохраняем количество вопросов в тесте
      ar<<TimeForAnswer; // сохраняем время в секундах
      ar<<NumOfAnswersFor5; // сохраняем количество ответов на пятёрку
      ar<<NumOfAnswersFor4; // сохраняем количество ответов на "4"
      ar<<NumOfAnswersFor4; // сохраняем количество ответов на "3"

      for(int i=0; i<NumOfAnswers; i++)   // цикл для сохранения каждого вопроса
      {
          ar<<Question[i];  // сохраняем текст вопроса
          ar<<NumAnswer;  // сохраняем сколько вариантов ответов может быть на этот вопрос
          for(int j=0; j<NumAnswer; j++)
                 ar<<Answer[j]; // сохраняем тексты вариантов ответов
          ar<<NumRightAnswer;  // сохраняем, сколько правильных ответов может быть на этот вопрос
          for(int j=0; j<NumRightAnswer; j++)
                 ar<<RightAnswer[j]; // сохраняем тексты правильных ответов
       }
}

Аналогично реализуем кнопку "загрузить тест". Объяснения нужны ? Или обойдёмся MSDN smile.gif ?

3) Теперь самое интересное - как создаётся программа-тест. Для этого достаточно скомпилировать простую программу, которая будет грузить *.tst-файл и выводить по очереди вопросы/ответы. Чтобы в нашей проге можно было создать готовый дистрибутив теста, можно сделать следующее:
- добавить в главный диалог кнопку "компилировать тест"
- при нажатии на эту кнопку:
а) открывать окно для сохранения файла, или лучше - для выбора директории
б) когда юзер выберет директорию, куда следует компилировать тест,
в) мы сохраняем файл *.tst в эту директорию, а также сохраняем туда программу, которая будет воспроизводить тест. Для того, чтобы создать такую программу, достаточно написать MFC-приложение, состоящее из одного окна диалога с контролами типа "static" (текущий вопрос), "static" (сколько времени осталось на тест), "button" (ответить на вопрос) и "button" (пропустить данный вопрос). Текст вопроса отображается вверху диалога, всё остальное - внизу. В средней части окна диалога мы динамически создаём радиобатоны или чекбоксы (в зависимости от того, единственный или множественный ответ существует на данный вопрос). При нажатии на кнопку "ответить" или "пропустить", соответственно, производится оценка выделенного радиобатона/чекбоксов, либо пропуск, и выставление оценки (при пропуске выставляется низшая оценка - например, 2 балла smile.gif). Следующим действием будет усреднение оценки по количеству уже отвеченных вопросов, и переход к следующему вопросу. Нужны инструкции, как динамически создавать или проверять состояние радиобатонов или чекбоксов ? Могу подогнать smile.gif...
г) после последнего вопроса или по истечении времени, отведённого на тест, производится выставление оценки за тест.
д) !!! для улучшения качества тестирования, следует задавать не все, а например только 50% вопросов, и "перемешивать" их порядок следования...

Вот в принципе и всё. На выходе получается программа для тестирования и *.tst-файл с вопросами/ответами и настройками теста - готовый продукт, который можно запускать и юзать wink.gif...

Если будут вопросы или пожелания - пиши...


--------------------
user posted image
PM MAIL WWW   Вверх
Coocky
Дата 29.3.2004, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Спасибо,mr.DUDA,(в который раз).Интересно.Осталось только написать biggrin.gif Так что вопросов впереди-готовся! biggrin.gif Но обязательно в About_e укажу благодарность программистам России ,в частности mr.DUDA smile.gif Ну что,будем дерзать.Еще раз спасибо smile.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
mr.DUDA
Дата 29.3.2004, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
благодарность программистам России

Coocky, а белорусским программерам значит прозябать tounge.gif biggrin.gif wink.gif ?...


--------------------
user posted image
PM MAIL WWW   Вверх
Coocky
Дата 30.3.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 2
Всего: 62



Прости,дружище,не думал,не гадал hehe.gif Значит упомянем "батьковских" программеров biggrin.gif


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0815 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.