Автоматизация проверки знаний и навыков студентов в области прикладной математики и информатики
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ing +
AND Group_sections.Gs_section_id = Sections.Section_ID;.Close;.SQL.Text := sqlStr;.Open;;
.
Модуль тестированияuClinetLogin;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DBCtrls, ExtCtrls, Buttons, Mask, RxLookup;
= class(TForm): TPanel;: TPanel;: TSplitter;: TBitBtn;: TBitBtn;: TLabel;: TLabel;: TLabel;: TBitBtn;: TEdit;: TMaskEdit;: TRxDBLookupCombo;: TEdit;: TLabel;btnNewClick(Sender: TObject);FormShow(Sender: TObject);groupNameDBLoocupCBChange(Sender: TObject);FormCloseQuery(Sender: TObject; var CanClose: Boolean);
{ Private declarations }
{ Public declarations };
TUser = record: integer;_ID : integer;: string;: string;: string;: integer;: string;: string;;
: TautentificationForm;: TUser;
uClientNewUser, uClientDataModule, DB, uClientMain;
{$R *.dfm}
TautentificationForm.btnNewClick(Sender: TObject);.ShowModal;;
TautentificationForm.FormShow(Sender: TObject);(@currentUser,sizeof(TUser));.Text := ;.Text := ;.StatusBar.Panels[0].Text := ;;
TautentificationForm.groupNameDBLoocupCBChange(Sender: TObject);: string;DataModule1 do.Open;.Open;:= SELECT Section_ID, Section_name FROM Sections, Group_sections +
WHERE Group_sections.Gs_group_id = + groupQuery.FieldByName(Group_id).AsString +
AND Group_sections.Gs_section_id = Sections.Section_ID;.Close;.SQL.Text := sqlStr;.Open;;;
TautentificationForm.FormCloseQuery(Sender: TObject;CanClose: Boolean);: WideString;(Sender as TautentificationForm).ModalResult = mrOk then((userNameEdit.Text = ) or (userPasswordEdit.Text = )) then(Handle,Не введен логин или пароль!,Ошибка входа,MB_OK or MB_ICONERROR);:= false;:= SELECT * FROM Users +
WHERE User_group_id = + DataModule1.groupQuery.FieldByName(Group_ID).AsString +
AND User_name = + + userNameEdit.Text +
AND User_password = + + userPasswordEdit.Text + ;;
.userQuery.Close;.userQuery.SQL.Text := sqlStr;.userQuery.Open;Exception do
ShowMessage(Ошибка выполнения запроса к базе);
exit;;;DataModule1.userQuery.RecordCount = 1 thenDataModule1.userQuery do.ID := FieldByName(User_ID).AsInteger;.grope_ID := FieldByName(User_group_ID).AsInteger;.name := FieldByName(User_name).AsString;.code := FieldByName(User_code).AsString;.password := FieldByName(User_password).AsString;.grants := FieldByName(User_grants).AsInteger;.info := FieldByName(User_info).AsString;.email := FieldByName(User_mail).AsString;
.userID := currentUser.ID;
//выводим информацию для пользователя
testingForm.StatusBar.Panels[0].Text := Вы вошли как + currentUser.name +
(Группа : + DataModule1.groupQuery.FieldByName(Group_name).AsString + );;(Ошибка аутентификации! Пользователь не найден,mtError,mbOKCancel,-1);
CanClose := false;;;;;
.
uClientSelectTest;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, DBCtrls, Buttons, RxLookup, Grids, DBGrids;
= class(TForm): TPanel;: TSplitter;: TPanel;: TPanel;: TSplitter;: TGroupBox;: TGroupBox;: TSplitter;: TGroupBox;: TGroupBox;: TSplitter;: TBitBtn;: TBitBtn;: TDBMemo;: TDBMemo;: TRxDBLookupCombo;: TRxDBLookupList;testSectionDBLBChange(Sender: TObject);RxDBLookupList1Click(Sender: TObject);FormShow(Sender: TObject);FormCloseQuery(Sender: TObject; var CanClose: Boolean);
{ Private declarations }
{ Public declarations };
: TtestSelectForm;
uClientDataModule, uClinetLogin, uClientMain;
{$R *.dfm}
TtestSelectForm.FormShow(Sender: TObject);: string;;currentUser.ID = 0 then:= Сначала необходимо пройти процедурц аутентификации + #10#13 +
Зарегистрироваться сейчас?;MessageBox(Handle,PChar(errorMessage),Ошибка!!!,MB_YESNO or MB_ICONWARNING) = mrYes then.ShowModal;.Close;;;
TtestSelectForm.testSectionDBLBChange(Sender: TObject);: string;:= SELECT * FROM Tests WHERE Test_section_ID = +.sectionQuery.FieldByName(Section_id).AsString;.testQuery.Close;.testQuery.SQL.Text := sqlStr;.testQuery.Open;
// ShowMessage(sqlStr);;
TtestSelectForm.RxDBLookupList1Click(Sender: TObject);: string;:= SELECT * FROM Questions WHERE Question_test_id = +.testQuery.FieldByName(Test_ID).AsString;.questionQuery.Close;.questionQuery.SQL.Text := sqlStr;
//набор данных откроем после того как пользователь подтвердит выбор
// ShowMessage(sqlStr);;
TtestSelectForm.FormCloseQuery(Sender: TObject;CanClose: Boolean);, sqlInsert : string;(Sender as TtestSelectForm).ModalResult = mrOk thenDataModule1.testQuery do.ID := FieldByName(Test_ID).AsInteger;.name := FieldByName(Test_Name).AsString;.testType := FieldByName(Test_type).AsInteger;.quistionLimit := FieldByName(Test_question_limit).AsInteger;.isRandomAnswer := FieldByName(Test_is_random_answers).AsBoolean;.isTimeLimit := FieldByName(Test_is_time_limit).AsBoolean;.timeLimit := FieldByName(Test_time_limit).AsString;.isBack := FieldByName(Test_is_back).AsBoolean;.StatusBar.Panels[1].Text := Выбран тест: + selectedTest.name;
0then:=SELECTCount(*)FROMQuestionsWHEREQuestion_test_id=+(selectedTest.ID);.universalQuery.Close;.universalQuery.SQL.Text:=sqlStr;.universalQuery.Open;.questionCount:=DataModule1.universalQuery.Fields[0].AsInteger;">selectedTest.ID <> 0 then:= SELECT Count(*) FROM Questions WHERE Question_test_id = +(selectedTest.ID);.universalQuery.Close;.universalQuery.SQL.Text := sqlStr;.universalQuery.Open;.questionCount := DataModule1.universalQuery.Fields[0].AsInteger;
.testID := selectedTest.ID;.complited := 0;.userComplitedQuestion := 1;.userRightAnswerQuestion := 0;selectedTest.questionCount = 0 then
begin(Handle,В выбранном тесте отсутствуют вопросы,Тестирование невозможно,MB_OK or MB_ICONWARNING);:= false;
//формируем массим случайной последовательности вопросов
SetLength(GquestionOrderArray, selectedTest.questionCount); //тут получим размерность массива
testingForm.FillArray(GquestionOrderArray);
//открываем набор данных с вопросами
DataModule1.questionQuery.Open;.totalQuestion := selectedTest.questionCount;.timeBegin := now;
:= INSERT INTO User_results (User_result_User_id,User_result_test_id, +
User_result_test_title,User_result_time_begin,User_result_comleted, +
User_result_total_questions) VALUES( + IntToStr(userResult.userID) +
, + IntToStr(userResult.testID) + , + selectedTest.name + , +.toSQLDateTime(userResult.timeBegin) +
,0, + IntToStr(userResult.totalQuestion) +);;.userResultQuery.Close;.userResultQuery.SQL.Text := sqlInsert;.userResultQuery.ExecSQL;
.universalQuery.Close;.universalQuery.SQL.Text := Select max(user_result_id) from user_results +
where user_result_user_id= + intToStr(currentUser.ID);.universalQuery.Open;.id := DataModule1.universalQuery.Fields[0].AsInteger;
//ShowMessage(sqlInsert);;;
;;.uClientDataModule;
, StdCtrls, Dialogs, Classes, Controls, DB, ADODB, DBClient, MConnect,;
= class(TDataModule): TDataSource;: TDataSource;: TDataSource;: TDataSource;: TDataSource;: TDataSource;: TDataSource;: TDataSource;: TDataSource;: TADOConnection;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;: TADOQuery;questionQueryAfterScroll(DataSet: TDataSet);questionQueryBeforeScroll(DataSet: TDataSet);questionQueryAfterOpen(DataSet: TDataSet);
{ Private declarations }setSingleChoicePanelActive;setMultiChoicePanelActive;setRandomChoicePanelActive;setConformPanelActive;setOrderPanelActive;isUserAnswerRight(var answerText : string; questionType : integer) : boolean;;
: TDataModule1;
uClientMain, Forms, CheckLst, ExtCtrls, Grids;
{$R *.dfm}
TDataModule1.setSingleChoicePanelActive;testingForm do.Visible := true;.Align := alClient;.Visible := False;.Visible := false;.Visible := false;.Visible := false;;;
TDataModule1.setMultiChoicePanelActive;testingForm do.Visible := true;.Align := alClient;.Visible := False;.Visible := false;.Visible := false;.Visible := false;;;
TDataModule1.setRandomChoicePanelActive;testingForm do.Visible := true;.Align := alClient;.Visible := False;.Visible := false;.Visible := false;.Visible := false;;;
T