Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2015, 13:56   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Помогите советом по тестеру

Помогите, пожалуйста, с идей о том, как упростить работу с программой-тестером.

Есть список из 10 вопросов, случайно выбирается один из номеров, по каждому номеру, в свою очередь также возможно 2 варианта вопросов. Выглядит конструкция так:

Код:
case n of
1: begin
randomize;
sluch:=1+random(2);
if sluch=1 then begin
Image4.Picture.LoadFromFile('w1/5/1.jpg');
sSpeedButton1.Caption:='вежливый';
sSpeedButton2.Caption:='честный';
sSpeedButton3.Caption:='ленивый';
right:=1;
Label2.Caption:='polite';
Label2.Left:=round((ClientWidth-Label2.Width)/2);
text1:='sounds/all/polite.wav';
end;
if sluch=2 then begin
Image4.Picture.LoadFromFile('w1/5/2.jpg');
sSpeedButton1.Caption:='ленивый';
sSpeedButton2.Caption:='честный';
sSpeedButton3.Caption:='вежливый';
right:=1;
Label2.Caption:='lazy';
Label2.Left:=round((ClientWidth-Label2.Width)/2);
text1:='sounds/all/lazy.wav';
end;
end;
2: begin
...
Но вбивая большие количества вопросов - можно сойти с ума, ибо очень много всего лишнего писать. Как можно упростить возможность ввода вариантов ответа, чтобы не очень сложно? Легче всего было бы через Эксель, где в 3х ячейках прописываются варианты, в 4й правильный ответ, но на сколько я понимаю, если экселя не окажется на компьютере клиента, быть беде.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 02.01.2015, 14:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Верно понимаешь. Можно в DBF все хранить. DBF почти везде поддерживается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.01.2015, 15:16   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

В моей системе тестирования есть вариант с хранением всякой информации: как вопросов с ответами и картинками с заголовочными данными теста (тема описание время прохождения и т.п.), так и всяких данных по авторизации тестируемых и прочих лиц в файлах с шифрованием, с чтением-записью через TStream, так и через базу данных.
Также есть вариант с хранением просто в инифайле с закодированным значением номера правильного вопроса.

Способ хранения и внесения всецело зависит от Вас, ну и требований к задаче. Если нужна централизованная работа с подключением нескольких клиентских машин - целесообразно использовать клиент-серверную или, на крайний случай, файл-серверную БД. Если требуется высокая защищённость от шаловливых ручек - то шифрование на файлы или защищённый доступ к БД. Если требуется внесение тестов и т.п. информации сторонним человеком - "составителем", преподавателем - то стоит сделать интерфейс для редактора и подсистему загрузки-сохранения этих данных через редактор, и в коде уже точно никак нельзя делать занесение инфы.

На жёстко прописанных спидбатонах я бы не советовал делать вопросы, если будет требование с разным количеством ответов в вопросе, стоит задуматься о динамическом создании компонентов, или использовать контейнерные компоненты - TRadioGroup TStringGrid.
Код из лапши кейсов лучше не делать, на это есть много причин. Выносить одинаковый код в подпрограммы. Давать контролам и переменным и подпрограммам осмысленные имена и не допускать однобуквенных и стандартных дельфи-сгенерированных названий.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите советом! Гален HTML и CSS 3 09.10.2013 12:46
Помогите советом Alex9935 Свободное общение 10 28.09.2009 13:37
Помогите советом Hanickii Общие вопросы C/C++ 24 10.09.2009 19:28
Помогите советом AlexTIX Помощь студентам 2 25.11.2007 19:58