Разработка программы для оценки через систему тестирования знаний
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
9;:0+IntToStr(aa.Sec)result:=result+:+IntToStr(aa.Sec);;
0 then(aa.Min);.Sec:=59;PrTimeOut(Sender)dec(aa.Sec);:=PrFormatConvert(aa);">// Изменение времени.TForm1.DecTime(Var aa:TPrTime; Sender: TObject): string;aa.Sec=0 thenaa.Min>0 then(aa.Min);.Sec:=59;PrTimeOut(Sender)dec(aa.Sec);:=PrFormatConvert(aa);
end;
// Действия при отсутсвии времени или досрочном ответе
procedure TForm1.PrTimeOut(Sender: TObject);
// --- Вывод Стат. инф. о проведени теста ---
if NomQuestion=PrKolQuestionTestData then.Enabled:=False;.Visible:=False; // Отключение клавиш ответов.(Ответов (общее кол-во\правильных):+#13+#10
+IntToStr(NomQuestion)+\+IntToStr(PrVAnsverOK)); //PrStatisticsTest(Sender);.Text:= IntToStr(PrVAnsverOK);.Text:= IntToStr(NomQuestion-PrVAnsverOK);.Text:= IntToStr(NomQuestion);;;
// --- Восстановление времени на вопрос ---
PrTimeLast:=PrTimeTestData;
// Увеличение номера вопроса на 1
inc(NomQuestion);(Sender);;TForm1.Timer1Timer(Sender: TObject);
// --- Уменьшить время на ответ на 1 секунду ---
Lbl_Last.Caption:=DecTime(PrTimeLast,Sender);;TForm1.MIOpenFileClick(Sender: TObject);(Sender);.InitialDir:=ExtractFilePath(Application.ExeName);OpenDialog1.Execute then_Temp.Lines.LoadFromFile(OpenDialog1.FileName);;TForm1.MIAboutClick(Sender: TObject);
ShowMessage(Разработчик: Хаитов И;+#13+#10+
+#13+#10+
Благодарности+#13+#10+
+#13+#10+
* за разработку блока шифрования и интерфейса:+#13+#10+
Ikrom;+#13+#10+
+#13+#10+
* за помощь в разработке:+#13+#10+
}{ak,+#13+#10+
+#13+#10+
e-mail: ikrom1989_80@mail.ru);;
// Заполение полей тестаTForm1.PrFillFileds(Sender: TObject);
// Очистка поля теста.Clear;.Clear;.Clear;.Clear;.Clear;.Lines[0]:=decrypt(Memo_Temp.Lines[2+6*(PrOrderQuestion[NomQuestion]-1)], 30000);.Lines[0]:=decrypt(Memo_Temp.Lines[3+6*(PrOrderQuestion[NomQuestion]-1)], 30000);.Lines[0]:=decrypt(Memo_Temp.Lines[4+6*(PrOrderQuestion[NomQuestion]-1)], 30000);.Lines[0]:=decrypt(Memo_Temp.Lines[5+6*(PrOrderQuestion[NomQuestion]-1)], 30000);.Lines[0]:=decrypt(Memo_Temp.Lines[6+6*(PrOrderQuestion[NomQuestion]-1)], 30000);_NomQuestion.Caption:=decrypt(IntToStr(NomQuestion), 30000);
// Управление полосой прокрутки в полях теста
=3thenMQuestion.scrollbars:=ssVerticalelseMQuestion.scrollbars:=ssNone;MV1.Lines.Count>=3thenMV1.scrollbars:=ssVerticalelseMV1.scrollbars:=ssNone;MV2.Lines.Count>=3thenMV2.scrollbars:=ssVerticalelseMV2.scrollbars:=ssNone;MV3.Lines.Count>=3thenMV3.scrollbars:=ssVerticalelseMV3.scrollbars:=ssNone;MV4.Lines.Count>=3thenMV4.scrollbars:=ssVerticalelseMV4.scrollbars:=ssNone;;">if MQuestion.Lines.Count>=3 then MQuestion.scrollbars:=ssVertical else MQuestion.scrollbars:=ssNone;MV1.Lines.Count>=3 then MV1.scrollbars:=ssVertical else MV1.scrollbars:=ssNone;MV2.Lines.Count>=3 then MV2.scrollbars:=ssVertical else MV2.scrollbars:=ssNone;MV3.Lines.Count>=3 then MV3.scrollbars:=ssVertical else MV3.scrollbars:=ssNone;MV4.Lines.Count>=3 then MV4.scrollbars:=ssVertical else MV4.scrollbars:=ssNone;;
// Пункт из меню "Начать тестирование"
procedure TForm1.MITBeginClick(Sender: TObject);, i, j: byte;
// Проверка был ли открыт файл с тестом
if Memo_Temp.Lines.Count<4 then(Откройте файл теста);;
end;
// --- Узнаем данные о тесте (кол. вопросов и т.д.) ---
PrGetDataTest(Sender);:=PrTimeTestData;.Min:=PrKolQuestionTestData *PrTimeTestData.Min
+PrKolQuestionTestData *PrTimeTestData.Sec div 60;.Sec:=PrKolQuestionTestData *PrTimeTestData.Sec mod 60;
// --- Очистка произвольного порядка вопроса ---
for i:=1 to 255 do
PrOrderQuestion[i]:=0;
tempNomQuestion:=0;
// --- Выбор вопросов в случайном порядке ---
while tempNomQuestion<PrKolQuestionTestData do;:=1+random(PrSymKolQuestionTestData);j:=tempNomQuestion+1 downto 1 doPrOrderQuestion[j]=i then:=0;;;not (i=0) then[tempNomQuestion+1]:=i;(tempNomQuestion);;;(Sender);
// Заполнение полей формы.Caption:=(Memo_Temp.Lines[0]);_FQuestion.Caption:=PrFormatConvert(PrTimeFull);_Last.Caption:=PrFormatConvert(PrTimeLast);:=1;.Enabled:=False;.Enabled:=True;.Visible:=True;.Visible:=True;.Enabled:=True;
// --- ---_OptionInfoAnsver.Enabled:=True;;
// Нажатие кнопки с вариантом ответа
procedure TForm1.PrClickButton(Sender: TObject);
// --- Проверка на правильный ответ на ворос ---
thenbegin.ShowModal;PasswordDlg.Password.text=PrPasswordTestDatathenbegin_OptionInfoAnsver.Checked:=notMI_OptionInfoAnsver.Checked;.Password.text:=;;;.Password.text:=;">if StrToInt(decrypt(Memo_Temp.Lines[7+6*(PrOrderQuestion[NomQuestion]-1)],30000))=(Sender as TButton).Tag ThenMI_OptionInfoAnsver.Checked then ShowMessage(Правильно);(PrVAnsverOK);if MI_OptionInfoAnsver.Checked then ShowMessage(Неправильно);(Sender);;TForm1.MIExitClick(Sender: TObject);;;TForm1.MI_OptionInfoAnsverClick(Sender: TObject);: string;PrPasswordTestData<> then begin.ShowModal;PasswordDlg.Password.text=PrPasswordTestData then begin_OptionInfoAnsver.Checked:= not MI_OptionInfoAnsver.Checked;.Password.text:=;;;.Password.text:=;
// --- процедура возращает данные из теста ---
procedure TForm1.PrGetDataTest(Sender: TObject);_String: string;: boolean;: string;, b2:boolean;, j : byte;_String:=decrypt(Memo_Temp.Lines[1], 30000);
///ShowMessage(Temp_String);
// --- Пароль ---i:=1 to length(Temp_String) do((Temp_String[i]= )and not EndFor) thenj:=i+1 to length(Temp_String) do((Temp_String[j]= )and not EndFor) theni+1=j then:=:=copy(Temp_String,i+1,j-i-1);:=true;
end;
end;
// --- Время на 1-н вопрос (мин) ---
i:=pos(:,Temp_String);Temp_String[i]<> do(i);;.Min:=StrToInt(copy(Temp_String,i+1,pos(:,Temp_String)-i-1));
// --- Время на 1-н вопрос (сек) ---
PrTimeTestData.Sec:=StrToInt(copy(Temp_String,pos(:,Temp_String)+1,length(Temp_String)-pos(:,Temp_String)));
// --- Кол-во тестируемых вопросов ---:=StrToInt(copy(Temp_String, pos(|,Temp_String)+1,( ,Temp_String)-pos(|,Temp_String) -1));
// --- Суммарное количество вопросов ---:=StrToInt(copy(Temp_String, 1,pos(|,Temp_String) -1));;
//Добавил, возможно потом количество попыток можно довести до 3
// пока сразу закрытие
// срабатывает onClose, а там еще один пароль - и все, сразу
// зовет преподавателя, а тот делает правильные выводы
{ if PrPasswordTestData<> then
b1:=(Inputquery(Введите пароль, Пароль, Password));
if ((b1=false)and (Password<>PrPasswordTestData)) or
((b1=true)and (Password<>PrPasswordTestData)) or
thenbegin.Caption:=;">((b1=true)and (Password=PrPasswordTestData)).close; }PrPasswordTestData<> then begin.Caption:=Получение доступа к тесту;
PrPasswordTestDatathenbegin.Password.text:=;:=true;.close;;.Password.text:=;;">PasswordDlg.ShowModal;PasswordDlg.Password.text<>PrPasswordTestData then begin.Password.text:=;:=true;.close;;.Password.text:=;;
//TForm1.FormClose(Sender: TObject; var Action: TCloseAction);: string;
{ if PrPasswordTestData<> thenInputQuery(Введите пароль, Пароль, Password)=true and (Password=PrPasswordTestData)
///MI_OptionInfoAnsver.Checked:= not MI_OptionInfoAnsver.Checked;:= caFreeAction := caNone; }(PriznakExit=true) then begin(Неверно задан пароль на доступ к тесту ! Программа завершает работу !);
Action := caFree;
)and(PriznakExit=false)thenbegin.Caption:=;">end;(PrPasswordTestData<>) and (PriznakExit=false) then begin.Caption:=Закрытие программы тест