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

Дипломная работа - Компьютеры, программирование

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



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