Разработка программы «Тест по теоретической механике», страница 4

LbOCENKA.Font.Color:=clgreen;

LbOCENKA.Font.Size:=14;

end else

if (ball>=25) and (ball<=30) then

begin

LbOCENKA.Caption:=' Вы отлично справились с тестированием!!!';

LbOCENKA.Font.Color:=clred;

LbOCENKA.Font.Size:=18;

end ;

end;

end.

после завершения тестирования и заполнения анкеты сохраним все данные в файлы, сделаем это при нажатии кнопки ВЫХОД

procedure TFmANKETA.BtZAVERClick(Sender: TObject);

const

linia='------------------------------------------------------------------------';

var

j:integer;

begin

Assignfile(f2,'G:\Поекты\Курсовая\Анкета');//открываем файл "АНКЕТА"

append(f2);// устанавливаем указатель в конец файла

writeln(f2);

begin

writeln(f2,fam,' ',im,' ',och,' ',gr );// записываем ФИО и № группы

writeln(f2,linia);// подчеркиваем

// записываем в файл ответы на вопросы анкеты

writeln(f2,'Сложность вопросов ');

writeln(f2,o);

writeln(f2,'Количество вопросов ');

writeln(f2,o1);

writeln(f2,'Хватило времени ');

writeln(f2,o2);

writeln(f2,'Понравлось тестирование');

writeln(f2,o3);

writeln(f2,linia);// подчеркиваем

CloseFile(f2);// закрываем файл

end;

Assignfile(f1,'G:\Поекты\Курсовая\Результаты');//открываем файл "РЕЗУЛЬТАТЫ"

append(f1);//устанавливаем указатель в конец файла

writeln(f1);

begin

//записываем ФИО и № группы

writeln(f1,fam);

writeln(f1,im);

writeln(f1,och);

writeln(f1,gr);

writeln(f1,linia);// подчеркиваем

//записываем таблицу с №, № выбранных вопросов, № правильных ответов, № ответов студента и правильностью в файл

writeln(f1,'|  №  |Выбранные вопросы|   Ответы  | Ответы студента |  Правльность   |');

writeln(f1,linia);

for j:=0 to n1-1 do // от 0 до 29 записываем в файл строки таблицы

begin

if j>8 then // если номер больше 8, то

write(f1,'|  ',j+1,' |')// поле на один пробел уже

else// иначе

write(f1,'|  ',j+1,'  |');// поле на один пробел шире

if nomer[j]>8 then // если номер выбранного вопроса больше 8, то

write(f1,'       ',nomer[j]+1,'        |')// поле на один пробел уже

else// иначе

write(f1,'       ',nomer[j]+1,'         |');// поле на один пробел шире

write(f1,'      ',otvet2[j],'    |');// записываем правильный ответ в файл

write(f1,'        ',otvet[j],'        |');// записываем ответ студента в файл

write(f1,'       ',otvet1[j],'        |');// записываем правильность в файл

writeln(f1);

end;

writeln(f1,linia);// подчеркиваем

writeln(f1,' Баллы ',ball);// записываем в файл баллы

writeln(f1,linia);// подчеркиваем

end;

closefile(f1);// закрываем файл

// сбрасываем переключатели ответов

RBVAROTV1.Checked:=false;

RBVAROTV2.Checked:=false;

RBVAROTV3.Checked:=false;

RBVAROTV4.Checked:=false;

RBVAROTV5.Checked:=false;

RBVAROTV6.Checked:=false;

RBVAROTV7.Checked:=false;

RBVAROTV8.Checked:=false;

RBVAROTV9.Checked:=false;

RBVAROTV10.Checked:=false;

t1:=1;// чтобы таймер не работал

for j:=0 to n1-1 do// 0 до 29

begin

//обнуляем

otvet1[j]:=0;// массив правильности

otvet[j]:=0;//массив № ответов студента

otvet2[j]:=0;//массив № правильных ответов на вопросы

end;

// стираем переменные с ответами на вопросы анкеты

o:='';

o1:='';

o2:='';

o3:='';

FmANKETA.Close;//закрываем анкету

FmZAS.Show;// показываем заставку

end;


Интерфейсная часть

Напишем свойства только тех компонентов, у которых они менялись

Для всех основных форм  свойство  ALIGN – alClient, BORDERICONS все свойства в false, BORDERSTYLE –bsnone(для вспомогательных – sdialog ) , шрифт – 14, жирный, для всех картинок на формах AVTOSIZE – true и  ALIGN – alClient

На форме заставке

RBPROBN.GBVID – clBtnFace   

RBPROBN.RBPROBN.Checked – true

На форме регистрации для всех надписей цвет – clBlue

Цвет компонентов FmREG.GBREG – clMedGray

Для всех полей и записей компонента FmREG.GBREG

шрифт – 14, Times New Roman

На форме тестирования

Для всех кнопок переключения вопросов

шрифт – 12, жирный

Для всех полей вывода вопросов и ответов

READONLY – true

Для полей ответов

шрифт – 10, жирный

Для поля вопроса

шрифт – 14

На форме анкеты

Цвет компонента GBANKETA – clSilver

шрифт – 14

всех GBVOPR шрифт – 12

цвет всех надписей – clSkyBlue

Размер формы предупреждения 130*210

Размер формы результатов 250*500


Отладка программы  

[Ошибка] Unit1.pas(42): 'END' expected but 'VAR' found – не  закрыта операторная скобка после объявления записи

[Ошибка] Unit1.pas(42): ';' expected but 'VAR' found – нет «;»

[Ошибка] Unit1.pas(82): Incompatible types: 'Integer' and 'Char' – не правильный тип переменной – вместо Char Integer

[Сообщение] File not found – не правильно указано имя файла, поэтому он не найден

[Ошибка] Unit1.pas(111): ';' not allowed before 'ELSE' – перед else стоит «;» - не ставится

[Ошибка] Unit1.pas(81): Undeclared identifier: 'x' – не известная переменная, т.е. она не объявлена

[Ошибка] Unit1.pas(33): '=' expected but ':=' found - не правильно объявлена константа

[Ошибка] Unit1.pas(103): Statement expected but 'PROCEDURE' found – не хватает «end» в предыдущей процедуре

[Ошибка] Unit1.pas(48): Identifier redeclared: 'otvet' – две переменных с одним именем


Руководство пользователя

Данная программа тестирования разрабатывалась на компьютере с операционной системой Microsoft Windows XP Professional Intel Pentium 4 CPU 3.00ГГц, 1.00ГБ ОЗУ

Для установки программы скопируйте каталог «Курсовая» на свой компьютер, пропишите названия файлов с базой вопросов, анкетой и результатами затем в папке «2» запустите  «Project1»


Заключение

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


Список литературы

Иллюстрированный самоучитель по Delphi 7 для начинающих(электронная версия)