Консультация № 181012
29.11.2010, 10:13
300.00 руб.
0 20 1
Доброго времени суток, уважаемые эксперты!
Требуется написать программу на Delphi.
тема "Написать тест"
нужны файлы проекта и скомпилированный исполняемый файл.
Суть:
Для теста из базы вопросов, содержащей 50 вопросов случайным образом отбираются 20.
Базу можно читать из файла, можно зашить прямо в программу (как удобнее)
Все вопросы однотипные (выбор одного правильного ответа из 3-4 вариантов)
Тест ограничен по времени 10 минут (прошедшее и оставшееся время должно отображаться на форме, например, в виде прогресс-бара)
Критерии оценивания:
"отлично" - не менее 90% правильных ответов
"хорошо" - не менее 75% правильных ответов
"удовлетворительно" - не менее 60%
"неудовлетворительно" - менее 60%

Сценарий:
- При запуске программы запросить имя и фамилию проходящего тест.
- Уведомить экзаменуемого о времени, отведенном на тест, количестве вопросов и критериях оценки.
- Провести тест по случайным 20 из 50 вопросам (во время прохождения отражать пройденное/оставшееся время)
Примечание - тест заканчивается либо когда получены ответы на все 20 вопросов, либо через 10 минут после начала тестирования
- Проинформировать пользователя о результатах (всего вопросов, правильных ответов, процент, оценка) в произвольном виде (текстовое сообщение, диаграмма или еще как)
- добавить итоги теста в файл с итогами (формат "Фамилия - Имя - задано_вопросов - правильных ответов - процент - оценка)
- закончить программу.

Вопросы и ответы здесь
С уважением, Botsman

Обсуждение

давно
Мастер-Эксперт
425
4118
29.11.2010, 13:24
общий
Именно на Delphi? Lazarus, как кроссплатформеное решение всего цивилизованного человечества, не подойдёт?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Мастер-Эксперт
425
4118
29.11.2010, 13:29
общий
Если правильный ответ не выделен в Вашем документе, то все ответы правильные или все ответы неправильные?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
29.11.2010, 14:37
общий
Адресаты:
Спасибо, что откликнулись!
Увы, только Delphi. Помню про Вашу любовь к кросс-платформенному аналогу, поэтому заранее (на всякий случай) уточнил у заказчика. Lazarus не подходит.
По поводу правильных ответов - в конце файла приведен список номеров правильных ответов (там они по порядку, разбиты на группы по 10 шт.) Ориентироваться лучше на них, а не на выделение курсивом.
давно
Мастер-Эксперт
425
4118
29.11.2010, 14:46
общий
Кстати, этот тест только по Adobe Photoshop?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
29.11.2010, 15:17
общий
Адресаты:
ну да.
давно
Профессионал
153662
1070
29.11.2010, 16:27
общий
Делал я такую похожую программу под заказ для подготовки учеников, как раз на дэлфи 7, только там есть ещё и возможность самому составлять тесты, использовать картинки и другие навороты. Как я понял Вам нужно только приложение которое просто выполняет тестирование без возможности редактирования теста. Есть вопрос: Тип хранения вопросов (в моей программе сжатый зашифрованный файл на каждый тест, делался и вариант с базой данных access), как Вам предпочтительней (с шифрованием файлов и сжатие файлов занимается сторонний компонент, да и некоторые другие функции выполняются тоже сторонними компонентами)? Или Вам надо сделать на стандартном наборе компонентов? В принципе упростить до уровня этих вопросов не проблема (хотя нужно перебирать всю логику программы). В каком дэлфи нужно сделать?
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
29.11.2010, 17:10
общий
Адресаты:
Доброго времени суток!
Delphi 7 вполне подойдет.
Да, нужно ТОЛЬКО приложение, которое выполняет тестирование.
По поводу хранения файлов - чем проще тем лучше. Вариант с зашифрованным файлом вполне устроит. Скажу больше, учитывая, что создание редакторов теста не требуется, не шифрованный (как это ни странно) будет даже предпочтительнее.
Можно обойтись и вовсе без файла - согласен, это грубо, не изящно, но не возбраняется :)
А вот использования сторонних компонентов лучше избежать. По возможности надо обойтись стандартными.
Важным является ограничение теста по времени и визуальное информирование об этом пользователя (ну, и другие моменты, отраженные в вопросе)
давно
Профессионал
153662
1070
29.11.2010, 17:25
общий
А крайний срок исполнения, на работе загрузили совсем, не хватает времени на портал.
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
29.11.2010, 17:31
общий
Адресаты:
крайний - вечер субботы, 04.12.2010. Но это крайний. Лучше чуть пораньше - чтобы было чуть-чуть времени на бетатестинг перед сдачей заказчику
давно
Профессионал
153662
1070
29.11.2010, 22:44
общий
Вот для примера что выходит, возможно ещё что то упустил, ну и мусор ещё есть в коде.
Прикрепленные файлы:
f1bb367364472d38252f4e659e1f8c00.rar
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
30.11.2010, 09:56
общий
Адресаты:
Очень похоже на то, что требуется!
Замеченные пути улучшения:
1)Отсчет времени начинается после запуска программы. Возможно ли сделать так, чтобы он начинался после начала тестирования (т.е. после F5 ( Тест-> Начать))?
2) Если запустить программу, выбрать тест, начать тестирование (F5), НО НЕ МЕНЯТЬ предлагаемые по умолчанию имя и фамилию, возникаетошибка
3) учитывая, что тест будет только один, пункт меню файл->открыть (и, соответственно, закрыть) лучше (если можно) убрать и тест подгружать автоматически при запуске программы
4) справка-> просмотр справки тоже немножко излишне.
5) ну и копирайт (в справка-> о программе) надо или убрать или изменить
Вроде пока все.
давно
Профессионал
153662
1070
30.11.2010, 10:14
общий
Цитата: 270167
1)Отсчет времени начинается после запуска программы. Возможно ли сделать так, чтобы он начинался после начала тестирования (т.е. после F5 ( Тест-> Начать))?
Да нет отсчёт теста идёт после начала самого теста, а рядом просто выводится текущее время и дата. Если не нужно текущее время уберу, или ещё надо сделать отсчёт в обратном порядке от 10 мин до 0?

Цитата: 270167
2) Если запустить программу, выбрать тест, начать тестирование (F5), НО НЕ МЕНЯТЬ предлагаемые по умолчанию имя и фамилию, возникает ошибка
Сейчас скачал на работе архив и запустил на рабочей машине, такой ошибке нет. У Вас какая система?
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
30.11.2010, 10:33
общий
Адресаты:
Да нет отсчёт теста идёт после начала самого теста, а рядом просто выводится текущее время и дата. Если не нужно текущее время уберу, или ещё надо сделать отсчёт в обратном порядке от 10 мин до 0?

Виноват, правда Ваша. Пусть остается как есть.
Сейчас скачал на работе архив и запустил на рабочей машине, такой ошибке нет. У Вас какая система?

Windows XP sp3. Ошибка возникает стабильно, но только при первом запуске и не возникает, если в поля Имя и Фамилия ввести хоть что-нибудь. (Что интересно, если ввести "Васечкин Петя" (т.е. в точности то, что там находится по умолчанию) ошибка НЕ возникает. Может, оставить поля пустыми и не давать нажать на кнопку, пока их не заполнят?

И еще заметил, что при прохождении теста кнопке "далее" (т.е.переход к следующему вопросу) активна, даже если не выбран не один из ответов. Это можно поправить?
давно
Профессионал
153662
1070
30.11.2010, 11:10
общий
Цитата: 270167
Windows XP sp3. Ошибка возникает стабильно, но только при первом запуске и не возникает, если в поля Имя и Фамилия ввести хоть что-нибудь. (Что интересно, если ввести "Васечкин Петя" (т.е. в точности то, что там находится по умолчанию) ошибка НЕ возникает. Может, оставить поля пустыми и не давать нажать на кнопку, пока их не заполнят?
Странно, странно, дома посмотрю что за чудеса. Можно и так сделать если хотите.

Цитата: 270167
И еще заметил, что при прохождении теста кнопке "далее" (т.е.переход к следующему вопросу) активна, даже если не выбран не один из ответов. Это можно поправить?
Когда то так и было, теперь если не выбран вариант ответа при нажатии кнопки "Далее" просто ответ считается не верным, так хотел предыдущий заказчик (его слова "Если не выбрали вариант ответа, то это их проблема"), переделать тоже не проблема.

Правда теперь мне уже трудновато вспоминать, что я там наваял, хоть и есть основные комментарии.
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

давно
Профессионал
153662
1070
30.11.2010, 16:40
общий
Вот поправил, посмотрите. Ещё хочу спросить в журнале пишется "задано вопросов", правильно вывести общее количество вопросов (20) или то которое реально было просмотрено?
Прикрепленные файлы:
2b446695fceb46266c8025087b0a7be9.rar
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
30.11.2010, 21:02
общий
Адресаты:
Сложный вопрос. Наверное, правильно было бы писать фактически просмотренные вопросы. НО процент выполнения в любом случае нужно считать от общего числа, т.е. от 20. Поэтому чтобы убить всех возможных зайцев предлагаю в журнале писать количество реально заданных вопросов, но дописывать строковую константу "(из 20)". Такое возможно?
Неизвестный
30.11.2010, 21:20
общий

и еще - только что заметил. Оценка - и в журнале, и в окне результатов - дается числом, тогда как в критериях оценки есть только 4 значения - от "отлично" до "неудовлетворительно". Можно и в итогах (и журнале) выдавать словесную оценку?
давно
Профессионал
153662
1070
01.12.2010, 10:13
общий
Вы так хотели?
Прикрепленные файлы:
1016d85a6e44d3cb46bf36ab89bc7ffc.rar
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Неизвестный
01.12.2010, 11:04
общий
Адресаты:
Все именно так как требуется.
Если добавить файлы проекта, получится исчерпывающий ответ на поставленный вопрос
давно
Профессионал
153662
1070
01.12.2010, 11:49
общий
это ответ
Здравствуйте, Botsman!
Для хранения вопросов и ответов был использован файл. Для правильной работы программы файл теста (3774.tstt) должен находиться в этой же папке, что и сама программа. После запуска приложения происходит загрузка вопросов в компонент RichEdit, который на время работы программы служит для хранения вопросов, поиска нужного вопроса и ответов к нему. Что бы начать тестирование нужно выбрать пункт меню Тест - Начать или нажать клавишу F5 на клавиатуре. Тест можно в любое время остановить, для этого нужно выбрать пункт меню Тест - Закончить или нажать на клавиатуре Alt+X, программа спросит закончить тест или нет, после чего будет выдан результат тестирования или будет продолжен тест. Что бы посмотреть файл результатов нужно в меню Файл выбрать пункт Журнал или на клавиатуре Ctrl+J. Весь проект в прикреплённом файле.
Прикрепленные файлы:
5
Спасибо! То, что нужно. А главное - оперативно.
Об авторе:
Мои программы со статусом freeware для Windows на моём сайте jonix.ucoz.ru

Форма ответа