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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 18:10   #1
PSK785
 
Регистрация: 21.05.2011
Сообщений: 3
Вопрос разобраться в коде....программа тестирования

const
TestName='Test_'; // имя файла теста
max=1000; // максимальное количесво вопросов
var
Form1: TForm1;
QuestionText: array [0..max] of string; // текст вопроса
AnswerQuestion: array [0..max] of byte; // правильный вариант ответа
QuestionText1: array [0..max] of string;// первый вопрос
QuestionText2: array [0..max] of string;// второй вопрос
QuestionText3: array [0..max] of string;// третий вопрос

Ball: integer=0; // оценка
now: integer=0; // текущий вопрос
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if AnswerQuestion[now]=AnswerGroup.ItemIndex+1 then // сравниваем значение ответа и выбранного значения
inc(ball);
AnswerGroup.ItemIndex:=-1; // убираем выдаление с группы ответов
inc(now); // увеличиваем вопрос на 1+
LoadQuestion(now); // загружаем его
end;

procedure TForm1.FormCreate(Sender: TObject);
var
s: Tstrings;
i: Integer;
begin
i:=0;
while FileExists(ExtractFilePath(applicat ion.ExeName)+TestName+inttostr(i)+' .txt') do // проверяем файлы тестов
begin
application.ProcessMessages; // что б не тормозило
s:=tstringlist.Create; // создаем переменную
s.LoadFromFile(ExtractFilePath(appl ication.ExeName)+TestName+inttostr( i)+'.txt') ; // загружаем файл
if s.Text<>'' then // если не пуст то
TestBox.Items.Add(s.Strings[0]); // добавляем в группу тестов название теста
s.Free; // уничтожаем переменную
inc(i); // увеличиваем счетчик
end;
end;

procedure TForm1.LoadTest(Index: integer); // загружаем выбранный тест
var
s: Tstrings;
j, h: Integer;
begin
h:=0;
s:=tstringlist.Create; // создаем переменную
s.LoadFromFile(ExtractFilePath(appl ication.ExeName)+TestName+inttostr( Index)+'.t xt'); // загружаем
if s.Text<>'' then // если не пустая то
begin
form1.Caption:=s.Strings[0]; // название теста
for j := 1 to s.Count - 1 do // начинаем присваивать значения
begin
if s.Strings[j]='__________' then // это разделитель который мы ищем
begin
QuestionText[h]:=s.Strings[j+1]; // текст вопроса
QuestionText1[h]:=s.Strings[j+2];// текст первого вариант ответа
QuestionText2[h]:=s.Strings[j+3];// текст второго варианта ответа
QuestionText3[h]:=s.Strings[j+4];// текст третьего варианта ответа

AnswerQuestion[h]:=strtoint(s.Strings[j+5]); // номер ответа
inc(h); // увеличиваем счетчик для того что бы записывать в новый элемент массива
end;
end;
end;
s.Free; // уничтожаем переменную
LoadQuestion(now);// загружаем вопрос здесь он всегда = 0
end;

procedure TForm1.TestBoxCloseUp(Sender: TObject);
begin
// при выборе теста обнуляем все значения
ball:=0;
now:=0;
button1.Enabled:=true;
LoadTest(TestBox.ItemIndex);// загружаем выбранный тест
end;

procedure TForm1.LoadQuestion(Index: integer);
begin
if QuestionText[Index]<>'' then// если выбранный вопрос существует то грузим его
begin
AnswerGroup.Items.Clear;// очищаем поле ответов
Question.Caption:=QuestionText[Index];// задаем запрос
AnswerGroup.Items.Add(QuestionText1[index]);// добавляем ответы
AnswerGroup.Items.Add(QuestionText2[index]);
AnswerGroup.Items.Add(QuestionText3[index]);

end
else // иначе сообщаем что тест завершен
begin
showmessage('Тест завершен'+#13+'Правильных ответов: '+inttostr(ball)); // сообщение что типа тест окончен и выдаем количесво правильных ответов
button1.Enabled:=false; // делаем неактивной кнопку что бы не тыкали
end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Close;
end;

end.


ЦЕЛЬ:
1) как сделать так, чтобы задавалось четыре варианта ответа, а не три;
2) как сделать так, чтобы в конце теста выводилась оценка за тестирование;
3) если возможно чтобы оценка записывалась в базу данных(БД уже создана)
PSK785 вне форума Ответить с цитированием
Старый 28.05.2011, 18:44   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Оформи правильно тему. Нечитабельный код - 40% того что тебе никто не ответит.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа тестирования My Test qwer12 Помощь студентам 0 08.12.2010 15:44
Программа тестирования дисковода swatkiev Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 13.09.2010 22:51
Программа тестирования dani92 Общие вопросы Delphi 5 26.01.2010 11:05
Помогите разобраться в коде fate Общие вопросы по Java, Java SE, Kotlin 5 17.03.2009 22:10
Программа Тестирования. Spiker01 Паскаль, Turbo Pascal, PascalABC.NET 3 06.01.2009 13:14