Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 16.02.2015, 22:06
Vit614 Vit614 вне форума
Прохожий
 
Регистрация: 15.02.2015
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Вот предварительный набросок лайт, посмотрите пжлст
Большое спасибо за помощь. Буду разбирать понемногу код. Завтра выложу оригинал программы. Сегодня не получилось.
Ответить с цитированием
  #17  
Старый 16.02.2015, 22:13
Vit614 Vit614 вне форума
Прохожий
 
Регистрация: 15.02.2015
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Создание теста

У меня еще один вопрос возник. Если я не ошибаюсь то в Delphi можно создать свой тип файла со своей структурой. Возможно ли в нем сохранять результаты тестирования на каждого тестируемого человека отдельно, и в случае надобности просто из него вытаскивать информацию например для создания отчета и последующей распечатки? И возможно ли в структуре такого файла указать таблицу с закрашенными ответами?
Ответить с цитированием
  #18  
Старый 17.02.2015, 05:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Поскольку тип файла определяешь ты сам, то, соответсвенно, в файле будет храниться то, что ты напишешь там хранить. Простейший вариант - файл с записями (record). В этом случае ты в программе создаешь запись для хранения данных об одном объекте (тестируемом), а для хранения данных о всех тестируемых создаешь массив. Одно замечание. Размер записи в таком случае должен быть фиксированный, т.е. например динамические массивы и AnsiString использовать нельзя.
Пример:
Код:
type
  MyRecord = record
    Name : String[80]; // Pascal-строка, такие можно
    Result : Integer;
    Answer1 : Boolean;
    Answer2 : Boolean;
    ...
  end;

var
  A :Array Of MyRecord; // массив для хранения данных
  F : File Of Myrecord; // файл для сохранения результатов

...

// Запись в файл
var
  I : Integer;
begin
  AssignFile(F,'myfile.dat');
  Rewrite(F);
  For I := Low(A) To High(A) Do Write(F,A[i]);
  CloseFile(F);
end;

С другой стороны можно использовать файловые потоки (TFileStream) для записи/чтения. Тут возможностей больше, но ты сам должен побеспокоиться об обепечении правильной записи/чтения данных. Например, сохраняя строку, сначала надо записать ее длинну, потом сами данные. Ну и при считывании в обратном порядке - сначала вычитывем сколько данных у нас хранится в файле, а потом читаем сами данные.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Vit614 (17.02.2015)
  #19  
Старый 17.02.2015, 15:14
Vit614 Vit614 вне форума
Прохожий
 
Регистрация: 15.02.2015
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Создание теста

Вот программа на основе которой я хочу сделать тест. В этой программе есть несколько тестов. Меня интересует Кетелл.

Последний раз редактировалось Vit614, 20.02.2015 в 12:16.
Ответить с цитированием
  #20  
Старый 17.02.2015, 15:15
Vit614 Vit614 вне форума
Прохожий
 
Регистрация: 15.02.2015
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Создание теста

Пароль для вывода результата и просмотра архива ПСИХОЛОГ
Ответить с цитированием
  #21  
Старый 17.02.2015, 15:16
Vit614 Vit614 вне форума
Прохожий
 
Регистрация: 15.02.2015
Сообщения: 14
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Создание теста

Возможно ли сделать программу чтобы она была запущена на нескольких компьютерах одновременно? Хочу разместить её в локальной сети, чтобы можно было тестировать несколько человек одновременно на разных компьютерах.
Ответить с цитированием
  #22  
Старый 17.02.2015, 20:50
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Vit614
Возможно ли сделать программу чтобы она была запущена на нескольких компьютерах одновременно? Хочу разместить её в локальной сети, чтобы можно было тестировать несколько человек одновременно на разных компьютерах.

Тогда либо городить свой сервер (в принципе, нужен только для работы с результатами тестов), либо использовать СУБД, можно какую-нить легковесную, типа FireBird (кстати, у нее есть как нормальная редакция, так и Embedded, соответсвенно, можно не меняя прогрпмму сделать как локальную версию, так и распределенную) или MS SQL Server (Express бесплатный, так же есть локальная редакция, раньше называлась MSDE, хотя, если не ошибаюсь, она все-таки требует установки, в отличии от Embedded Firebird, который достаточно просто "бросить" рядом). Но тогда можно и вопросы теста хранить в БД, не нужно будет обновлять все клиентские копии, обновил БД и у всех уже новая версия.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Vit614 (18.02.2015)
  #23  
Старый 18.02.2015, 12:45
phomm phomm вне форума
Новичок
 
Регистрация: 07.10.2013
Адрес: Тюмень
Сообщения: 50
Версия Delphi: 7/2007/XE+/FPC
Репутация: 22
По умолчанию

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

Самым хитрым считаю вопрос персистентности сущности теста - если тест сделали на Н вопросов, люди прошли тест, потом вопросы добавились - и уже заново картину тестирования тех людей получить проблематично, надо придумывать механизмы фиксации фактов прохождения тестов (сохранять какие-то данные из теста в сущности "результатов теста" для их фиксации).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter