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 для начинающих(электронная версия)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.