Разработка программы для оценки через систему тестирования знаний

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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:=Закрытие программы тест