Мегаобучалка Главная | О нас | Обратная связь


n. 2.7 Тестирование ИС



2019-12-29 258 Обсуждений (0)
n. 2.7 Тестирование ИС 0.00 из 5.00 0 оценок




 

Тестирование осуществлялось одновременно с разработкой системы (согласно методологии RAD).

Тестирование информационной системы предполагает проверку корректности работы приложения при введении данных.

Тестирование на допустимость вводимых значений подразумевает проверку корректности вводимых данных. Например, при запуске системы происходит проверка вводимого и имеющегося в системе логина и пароля регистрации пользователя.

Таким образом, вследствие применения методологии RAD конфигурационное управление и управление изменениями ИС достаточно легко осуществимо. Это может способствовать модернизации и развитию информационной системы обучения.


Заключение

 

В результате выполнения дипломной работы была создана информационная система обучения по курсу «Компьютерные сети».

Для создания программного обеспечения ИС использовалась среда визуального проектирования Delphi, сам курс реализован с помощью технологий гипертекста.

Информационная система включает в себя средства для управления курсом (администраторский раздел), средства для обучения и контроля по курсу, а также средства отображения статистической информации.

Таким образом, основная цель дипломной работы достигнута и данная система готова к использованию и последующим модернизациям в современных условиях в РГГУ.


Список использованной литературы

 

1. Алиев В.С. Информационные технологии и системы финансового менеджмента: учеб. пособие. – М.: «ФОРУМ»: ИНФРА–М, 2007. – 320 с.

2. Гук М. Аппаратные средства локальных сетей. Энциклопедия. – Спб: Издательство «Питер», 2000 – 576 c.

3. Долятовский В.А., Долятовская В.Н. Исследование систем управления: Учебное-практическое пособие. – Москва: ИКЦ «МарТ», 2003 – 256 с.

4. Емельянова Н.З., Партыка Т.Л., Попов И.И. Основы построения автоматизированных информационных систем: Учебное пособие. – М: ФОРУМ: ИНФОРМА–М, 2007 – 416 с.

5. Колисниченко Д.Н. Сделай сам компьютерную сеть: монтаж, настройка, обслуживание – Спб.: Наука и Техника, 2004 – 400 с.

6. Компьютерные сети. Принципы, технологии, протоколы. В.Г. Олифер, Н.А. Олифер. – Спб.: Питер, 2001. – 672 с.

7. Компьютерные сети. 4-е изд./Э. Таненбаум – Спб.: Питер, 2003 – 992 с.

8. Новиков Ю.В., Кондратенко С.В. Локальные сети: архитектура, алгоритмы, проектирование. М.: ЭИОТ, 2000 – 312 с.

9. Новые педагогические и информационные технологии в системе образования: Учеб. пособие для студ. пед. вузов и системы повыш. квалиф. пед.кадров/ Под ред. Е.С. Полат. – М.: Издательский центр «Академия», 2001.– 272 с.

10. Пантер М., Синипер Р.Б. Проектирование и внедрение компьютерных сетей. Учебный курс. – 2–е изд., перераб. и доп: Пер. с англ. – Спб.: БХВ– Петербург, 2004. – 752 с.

11. Саак А.Э, Пахомов Е.В., Тюшняков В.Н. Информационные технологии управления: Учебник для вузов. – Спб.: Питер, 2005. – 320 с.

12. Семакин И.Г. Информационные системы и модели. Элективный курс: Учебный пособие / И.Г. Семакин, Е.К. Хеннер. – М.: БИНОМ. Лаборатория знаний, 2005. – 303 с.

13. Соловов А.В. Дидактика и технология электронного обучения в системе КАДИС // "Индустрия образования". 6. – М.: МГИУ, 2002, – с. 54–64.

14. Хортон У., Хортон К. Электронное обучение: инструменты и технологии / Пер. с англ. – М.: КУДИЦ–ОБРАЗ, 2005. – 640 с.

 


Приложение

 

Исходные коды модулей информационной системы

 

1. Модуль начальной страницы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

Tzagl = class(TForm)

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Button2: TButton;

Image1: TImage;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

agl: Tzagl;

 fil,fil1:textfile;

implementation

uses Unit19, Unit44, tester_, Unit4;

{$R *.dfm}

procedure Tzagl.Button1Click(Sender: TObject);

var s,s1,s2,log,pas:string;i:integer;k:boolean;

begin

s:='';

reset(fil);

while not eof(fil) do

begin

readln(fil,s2);

s:=s+s2;

end;

closefile(fil);

k:=true;

s1:='';

for i:=1 to length(s) do begin

if (s[i] = '*') then

begin

log:=s1;

s1:='';

end;

if (s[i] = '&') then

begin

pas:=s1;

if (edit1.text=log)and(edit2.Text=pas) then

begin

k:=false;

ElektKursInf.show;

zagl.Hide;

end;

s1:='';

end;

if (s[i] <> '&')and(s[i] <> '*') then s1:=s1+s[i];

end;

if (edit1.Text='admin')and(edit2.Text='pasw') then

begin

Form4.Show;

zagl.Hide;

end

else

if k then showmessage('Введите верные логин и пароль');

end;

procedure Tzagl.Button2Click(Sender: TObject);

var s3,s4:string;

begin

if (edit1.text<>'')and(edit2.Text<>'') then begin

append(fil);

s3:=edit1.text+'*'+edit2.text+'&';

writeln(fil,s3);

closefile(fil);

append(fil1);

s4:=edit1.text+'*0&0$0#';

writeln(fil1,s4);

closefile(fil1);

showmessage('Вы успешно зарегистрированы!')

end

else showmessage('Введите логин и пароль!')

end;

procedure Tzagl.FormCreate(Sender: TObject);

begin

assignfile(fil,'bd\user.txt');

assignfile(fil1,'bd\result.txt');

end;

end.

2. Модуль выбора темы курса

unit Unit19;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Menus, StdCtrls, DBCtrls, ExtCtrls, Db, Provider, DBClient, MConnect;

type

TElektKursInf = class(TForm)

Panel2: TPanel;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

ListBox1: TListBox;

ListBox2: TListBox;

Memo1: TMemo;

Label3: TLabel;

Button2: TButton;

Button3: TButton;

ListBox3: TListBox;

procedure Exit1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

ElektKursInf: TElektKursInf;

fil1,fil:textfile;

implementation

uses Unit44, Unit1, Unit3, Unit5;

{$R *.DFM}

procedure TElektKursInf.Exit1Click(Sender: TObject);

begin

ElektKursInf.Hide;

zagl.close;

end;

procedure TElektKursInf.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

ElektKursInf.Hide;

zagl.Close;

end;

procedure TElektKursInf.FormShow(Sender: TObject);

var i,j:integer;s0,s,s2,k:string;

begin

assignfile(fil,'bd\path1.txt');

reset(fil);

s:='';

while not eof(fil) do

begin

readln(fil,s);

s0:=s;

end;

closefile(fil);

assignfile(fil,'bd\path.txt');

reset(fil);

Listbox1.Clear;

s:='';

while not eof(fil) do

begin

readln(fil,s);

Listbox1.Items.Add(s0+s);

end;

closefile(fil);

assignfile(fil,'bd\themes.txt');

reset(fil);

Listbox3.Clear;

s:='';

while not eof(fil) do

begin

readln(fil,s);

Listbox3.Items.Add(s);

end;

closefile(fil);

Label3.Caption:='Здравствуйте, '+zagl.Edit1.Text+'. Вы работаете с учебным курсом "Компьютерные сети"'; //ComboBox1.ItemIndex := 0;

s:='';

assignfile(fil1,'bd\result.txt');

reset(fil1);

while not eof(fil1) do

begin

readln(fil1,s2);

for i:=1 to length(s2) do begin

if (s2[i] = '*') then begin

if s=zagl.Edit1.Text then begin

j:=i+1;

while s2[j]<>'#' do begin

if s2[j]='&' then k:=s2[j+1];

j:=j+1;

 end;

 end;

 end;

s:=s+s2[i];

end;

s:='';

end;

closefile(fil1);

{showmessage(k);}

if k='1' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

end;

if k='2' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

end;

if k='3' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

listbox2.items.Add(listbox3.Items.Strings[3]);

end;

if k='4' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

listbox2.items.Add(listbox3.Items.Strings[3]);

listbox2.items.Add(listbox3.Items.Strings[4]);

end;

if k='5' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

listbox2.items.Add(listbox3.Items.Strings[3]);

listbox2.items.Add(listbox3.Items.Strings[4]);

listbox2.items.Add(listbox3.Items.Strings[5]);

end;

if k='6' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

listbox2.items.Add(listbox3.Items.Strings[3]);

listbox2.items.Add(listbox3.Items.Strings[4]);

listbox2.items.Add(listbox3.Items.Strings[5]);

listbox2.items.Add(listbox3.Items.Strings[6]);

end;

if k='7' then begin

listbox2.items.Add(listbox3.Items.Strings[1]);

listbox2.items.Add(listbox3.Items.Strings[2]);

listbox2.items.Add(listbox3.Items.Strings[3]);

listbox2.items.Add(listbox3.Items.Strings[4]);

listbox2.items.Add(listbox3.Items.Strings[5]);

listbox2.items.Add(listbox3.Items.Strings[6]);

listbox2.items.Add(listbox3.Items.Strings[7]);

end;

listbox2.ItemIndex:=0;

end;

procedure TElektKursInf.ComboBox1Change(Sender: TObject);

begin

{with ClientElektKurs do

begin

while not EOF do

begin

ListBox2.items.add(FieldByName('Kurs').AsString);

next;

end;

end;}

end;

procedure TElektKursInf.Button1Click(Sender: TObject);

begin

ListBox1.ItemIndex:=ListBox2.ItemIndex;

Form37.WebBrowser1.Navigate(ListBox1.Items.Strings[ListBox1.ItemIndex]);

//Form37.ComboBox1.Text:=ListBox1.Items.Strings[ListBox1.ItemIndex];

Form37.ToolButton2.Enabled:=false;

Form37.ToolButton3.Enabled:=false;

Form37.Show;

Button1.Enabled:=false;

Label3.Caption:='';

//ElektKursInf.Hide;

end;

procedure TElektKursInf.Button2Click(Sender: TObject);

begin

Form3.Show;

end;

procedure TElektKursInf.Button3Click(Sender: TObject);

begin

Form5.Show;

end;

end.

3. Модули статистики по группам и индивидуально

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm3 = class(TForm)

StringGrid1: TStringGrid;

procedure FormShow(Sender: TObject);

procedure StringGrid1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

s,s2:string;

fil1:textfile;

i,j:integer;

implementation

{$R *.dfm}

procedure TForm3.FormShow(Sender: TObject);

var s0:double;

begin

StringGrid1.Cells[0,0]:='Логин';

StringGrid1.Cells[1,0]:='Время обучения(мин.)';

StringGrid1.Cells[2,0]:='Количество пройденных тем';

StringGrid1.Cells[3,0]:='Количество баллов';assignfile(fil1,'bd\result.txt');

reset(fil1);

s:='';

i:=1;

while not eof(fil1) do

begin

readln(fil1,s2);

for j:=1 to length(s2) do begin

if s2[j]='*' then begin

StringGrid1.Cells[0,i]:=s;

s:='';

continue;

end;

if s2[j]='&' then begin

s0:=strtofloat(s)/60000;

StringGrid1.Cells[1,i]:=floattostr(s0);

s:='';

continue;

end;

if s2[j]='$' then begin

StringGrid1.Cells[2,i]:=s;

s:='';

continue;

end;

if s2[j]='#' then begin

StringGrid1.Cells[3,i]:=s;

s:='';

continue;

end;

s:=s+s2[j];

end;

i:=i+1;

StringGrid1.RowCount:=i;

end;

closefile(fil1);

end;

end.

 

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids;

type

 TForm5 = class(TForm)

StringGrid1: TStringGrid;

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

s,s1,s2,s3:string;

fil1:textfile;

i,j:integer;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm5.FormShow(Sender: TObject);

begin

StringGrid1.Cells[0,0]:='1 тема';

StringGrid1.Cells[1,0]:='2 тема';

StringGrid1.Cells[2,0]:='3 тема';

StringGrid1.Cells[3,0]:='4 тема';

StringGrid1.Cells[4,0]:='5 тема';

StringGrid1.Cells[5,0]:='6 тема';

StringGrid1.Cells[6,0]:='7 тема';

assignfile(fil1,'bd\result1.txt');

reset(fil1);

s:='';

s3:='';

while not eof(fil1) do

begin

readln(fil1,s2);

s:=s+s2;

end;

for j:=1 to length(s) do begin

if s[j]='*' then begin

if s1=zagl.Edit1.Text then begin

i:=j+1;

while s[i]<>'*' do begin

if s[i]='!' then begin

StringGrid1.Cells[0,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='$' then begin

StringGrid1.Cells[1,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='#' then begin

StringGrid1.Cells[2,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='%' then begin

StringGrid1.Cells[3,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='^' then begin

StringGrid1.Cells[4,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='@' then begin

StringGrid1.Cells[5,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

if s[i]='~' then begin

StringGrid1.Cells[6,1]:=s3;

s3:='';

i:=i+1;

continue;

end;

s3:=s3+s[i];

i:=i+1;

end;

end;

s1:='';

end;

s1:=s1+s[j];

if s[j]='~' then s1:='';

end;

closefile(fil1);

end;

end.

4. Модуль обучения по курсу

unit Unit44;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OleCtrls, SHDocVw, ToolWin, ComCtrls, StdCtrls, ExtDlgs, ExtCtrls, Menus;

const

HTMLID_FIND = 1;

HTMLID_VIEWSOURCE = 2;

HTMLID_OPTIONS = 3;

type

TForm37 = class(TForm)

WebBrowser1: TWebBrowser;

StatusBar1: TStatusBar;

ProgressBar1: TProgressBar;

OpenDialog1: TOpenDialog;

CoolBar1: TCoolBar;

ToolBar1: TToolBar;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton6: TToolButton;

ComboBox1: TComboBox;

ToolButton8: TToolButton;

ToolButton1: TToolButton;

Timer1: TTimer;

PopupMenu1: TPopupMenu;

N1: TMenuItem;

procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure ToolButton1Click(Sender: TObject);

procedure ToolButton2Click(Sender: TObject);

procedure ToolButton3Click(Sender: TObject);

procedure ToolButton4Click(Sender: TObject);

procedure ToolButton5Click(Sender: TObject);

procedure ToolButton6Click(Sender: TObject);

procedure WebBrowser1StatusTextChange(Sender: TObject;

const Text: WideString);

procedure WebBrowser1ProgressChange(Sender: TObject; Progress,

ProgressMax: Integer);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure ToolButton7Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure WebBrowser1BeforeNavigate2(Sender: TObject;

const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,

Headers: OleVariant; var Cancel: WordBool);

procedure WebBrowser1NavigateComplete2(Sender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

procedure ToolButton8Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{procedure ExecWB(cmdID: OLECMDID; cmdexecopt: OLECMDEXECOPT); overload;}

{ Public declarations }

end;

var

Form37: TForm37;

z,time1:integer;m:string;

implementation

uses Unit19, kontr;

{$R *.DFM}

procedure TForm37.ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

{if Key = VK_RETURN then

WebBrowser1.Navigate(ComboBox1.Text);}

end;

procedure TForm37.ToolButton1Click(Sender: TObject);

begin

{ if OpenDialog1.Execute then

begin

WebBrowser1.Navigate(OpenDialog1.FileName);

ComboBox1.Text := OpenDialog1.FileName;

end;}

timer1.Enabled:=false;

close;

end;

procedure TForm37.ToolButton2Click(Sender: TObject);

begin

z:=z+1;

WebBrowser1.GoBack;

ToolButton3.Enabled:=true;

end;

procedure TForm37.ToolButton3Click(Sender: TObject);

begin

z:=z–1;

if z>–1 then WebBrowser1.GoForward else ToolButton3.Enabled:=false;

end;

procedure TForm37.ToolButton4Click(Sender: TObject);

begin

WebBrowser1.Stop;

end;

procedure TForm37.ToolButton5Click(Sender: TObject);

begin

WebBrowser1.Refresh;

end;

procedure TForm37.ToolButton6Click(Sender: TObject);

var

PostData, Headers: OLEvariant;

begin

WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DODEFAULT, PostData, Headers);

end;

procedure TForm37.WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString);

begin

StatusBar1.SimpleText := Text;

end;

procedure TForm37.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);

begin

ProgressBar1.Max := ProgressMax;

ProgressBar1.Position := Progress;

end;

procedure TForm37.FormClose(Sender: TObject; var Action: TCloseAction);

begin

timer1.Enabled:=false;

Form37.Hide;

ElektKursInf.Show;

ElektKursInf.Button1.Enabled:=true;

end;

procedure TForm37.ToolButton7Click(Sender: TObject);

const CGID_WebBrowser: TGUID = '{ED016940–BD5B–11cf–BA4E–00C04FD70816}';

{var

CmdTarget : IOleCommandTarget;

vaIn, vaOut: OleVariant;

PtrGUID: PGUID;}

begin

{New(PtrGUID);

PtrGUID^ := CGID_WebBrowser;

if WebBrowser1.Document <> nil then

try

WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);

if CmdTarget <> nil then

try

CmdTarget.Exec( PtrGUID, HTMLID_FIND, 0, vaIn, vaOut);

finally

CmdTarget._Release;

end;

except

// nothing

end;

Dispose(PtrGUID);}

end;

procedure TForm37.FormShow(Sender: TObject);

begin

time1:=0;

timer1.Enabled:=true;

Form37.Caption:=ElektKursInf.ListBox2.Items.Strings[ElektKursInf.ListBox2.ItemIndex];

end;

procedure TForm37.WebBrowser1BeforeNavigate2(Sender: TObject;

const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,

Headers: OleVariant; var Cancel: WordBool);

var l:integer;

begin

end;

procedure TForm37.WebBrowser1NavigateComplete2(Sender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

begin

Combobox1.Text:=WebBrowser1.LocationURL;

if (ElektKursInf.ListBox1.Items.Strings[ElektKursInf.ListBox1.ItemIndex]<>WebBrowser1.LocationURL)then ToolButton2.Enabled:=true else ToolButton2.Enabled:=false;

end;

procedure TForm37.ToolButton8Click(Sender: TObject);

begin

Form2.Show;

Form37.Hide;

end;

procedure TForm37.Timer1Timer(Sender: TObject);

begin

time1:=time1+timer1.interval;

end;

procedure TForm37.N1Click(Sender: TObject);

begin

close;

end;

end.

5. Модуль контрольного тестирования

unit tester_;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, ExtCtrls,

jpeg, Gauges;

type

TForm1 = class(TForm)

// вопрос

Label5: TLabel;

// альтернативные ответы

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

// радиокнопки выбора ответа

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

Image1: TImage; // область вывода иллюстрации

Button1: TButton;

Panel1: TPanel;

RadioButton5: TRadioButton;

Gauge1: TGauge;

Timer1: TTimer;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure RadioButtonClick(Sender: TObject);

// Эти объявления вставлены сюда вручную

procedure Info;

procedure VoprosToScr;

procedure ShowPicture; // выводит иллюстрацию

procedure ResetForm; // "очистка" формы перед выводом очередного вопроса

procedure Itog;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormShow(Sender: TObject); // результат тестирования

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1; // форма

implementation

uses Unit19, Unit1, Unit44;

{$R *.DFM}

const

N_LEV=4; // четыре уровня оценки

N_ANS=4; // четыре варианта ответов

var

f,fil1:TextFile;

fn:string; // имя файла вопросов

level:array[1..N_LEV] of integer; // сумма, соответствующая уровню

mes:array[1..N_LEV] of string; // сообщение, соответствующее уровню

score:array[1..N_ANS] of integer; // оценка за выбор ответа

summa:integer; // набрано очков

vopros:integer; // номер текущего вопроса

otv:integer; // номер выбранного ответа

// вывод информации о тесте

procedure Tform1.Info;

var

s,buf:string;

begin

readln(f,s);

Form1.Caption := s;

buf:='';

repeat

readln(f,s);

if s[1] <> '.'

then buf := buf +s + #13;

until s[1] ='.';

Label5.caption:=buf;

end;

// прочитать информацию об оценках за тест

Procedure GetLevel;

var

i:integer;

buf:string;

begin

i:=1;

repeat

readln(f,buf);

if buf[1] <> '.' then begin

mes[i]:=buf; // сообщение

readln(f,level[i]); // оценка

i:=i+1;

end;

until buf[1]='.';

end;

// масштабирование иллюстрации

Procedure TForm1.ShowPicture;

var

 w,h: integer; // максимально возможные размеры картинки

begin

// вычислить допустимые размеры картинки

w:=ClientWidth–10;

h:=ClientHeight

 – Panel1.Height –10

 – Label5.Top

 – Label5.Height – 10;

// вопросы

if Label1.Caption <> ''

then h:=h–Label1.Height–10;

if Label2.Caption <> ''

then h:=h–Label2.Height–10;

if Label3.Caption <> ''

then h:=h–Label3.Height–10;

if Label4.Caption <> ''

then h:=h–Label4.Height–10;

// если размер картинки меньше w на h,

// то она не масштабируется

Image1.Top:=Form1.Label5.Top+Label5.Height+10;

if Image1.Picture.Bitmap.Height > h

then Image1.Height:=h

else Image1.Height:= Image1.Picture.Height;

if Image1.Picture.Bitmap.Width > w

then Image1.Width:=w

else Image1.Width:=Image1.Picture.Width;

Image1.Visible := True;

end;

// вывести вопрос

Procedure TForm1.VoprosToScr;

var

i:integer;

s,buf:string;

ifn:string; // файл иллюстрации

begin

vopros:=vopros+1;

caption:='Вопрос ' + IntToStr(vopros);

// прочитать вопрос

buf:='';

repeat

readln(f,s);

if (s[1] <> '.') and (s[1] <> '\')

then buf:=buf+s+' ';

until (s[1] ='.') or (s[1] ='\');

Label5.caption:=buf; // вывести вопрос

{Иллюстрацию прочитаем, но выведем только после того, как прочитаем альтернативные ответы и определим максимально возможный размер области формы, который можно использовать для ее вывода.}

if s[1] <> '\'

then Image1.Tag:=0 // к вопросу нет иллюстрации

else // к вопросу есть иллюстрация

begin

Image1.Tag:=1;

ifn:=copy(s,2,length(s));

try

Image1.Picture.LoadFromFile(ifn);

except

on E:EFOpenError do

Image1.Tag:=0;

end;

end;

// Читаем варианты ответов

i:=1;

repeat

buf:='';

repeat // читаем текст варианта ответа

readln(f,s);

if (s[1]<>'.') and (s[1] <> ',')

then buf:=buf+s+' ';

until (s[1]=',')or(s[1]='.');

// прочитан альтернативный ответ

score[i]:= StrToInt(s[2]);

case i of

1: Label1.caption:=buf;

2: Label2.caption:=buf;

3: Label3.caption:=buf;

4: Label4.caption:=buf;

end;

i:=i+1;

until s[1]='.';

// здесь прочитана иллюстрация и альтернативные ответы

// текст вопроса уже выведен

if Image1.Tag =1 // есть иллюстрация к вопросу

then ShowPicture;

// вывод альтернативных ответов

if Form1.Label1.Caption <> ''

then begin

if Form1.Image1.Tag =1

then Label1.top:=Image1.Top+Image1.Height+10

else Label1.top:=Label5.Top+Label5.Height+10;

RadioButton1.top:=Label1.top;

Label1.visible:=TRUE;

RadioButton1.visible:=TRUE;

end;

if Form1.Label2.Caption <> ''

then begin

Label2.top:=Label1.top+ Label1.height+10;

RadioButton2.top:=Label2.top;

Label2.visible:=TRUE;

RadioButton2.visible:=TRUE;

end;

if Form1.Label3.Caption <> ''

then begin

Label3.top:=Label2.top+ Label2.height+10;

RadioButton3.top:=Label3.top;

Label3.visible:=TRUE;

RadioButton3.visible:=TRUE;

end;

if Form1.Label4.Caption <> ''

then begin

Label4.top:=Label3.top+ Label3.height+10;

RadioButton4.top:=Label4.top;

Label4.visible:=TRUE;

RadioButton4.visible:=TRUE;

end;

end;

Procedure TForm1.ResetForm;

begin // сделать невидимыми все метки и радиокнопки

Label1.Visible:=FALSE;

Label1.caption:='';

Label1.width:=ClientWidth–Label1.left–5;

RadioButton1.Visible:=FALSE;

Label2.Visible:=FALSE;

Label2.caption:='';

Label2.width:=ClientWidth–Label2.left–5;

RadioButton2.Visible:=FALSE;

Label3.Visible:=FALSE;

Label3.caption:='';

Label3.width:=ClientWidth–Label3.left–5;

RadioButton3.Visible:=FALSE;

Label4.Visible:=FALSE;

Label4.caption:='';

Label4.width:=ClientWidth–Label4.left–5;

RadioButton4.Visible:=FALSE;

Label5.width:=ClientWidth–Label5.left–5;

Image1.Visible:=FALSE;

end;

// определение достигнутого уровня

procedure TForm1.Itog;

var

i:integer;

buf:string;

begin

buf:='';

buf:='Результаты тестирования'+ #13

+'Всего баллов: '+ IntToStr(summa);

i:=1;

while (summa < level[i]) and (i<N_LEV) do

i:=i+1;

buf:=buf+ #13+mes[i];

Label5.Top:=20;

Label5.caption:=buf;

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

end;

// щелчок на кнопке Button1

procedure TForm1.Button1Click(Sender: TObject);

var s,s2,s1,s3,s4,s5,s6,s7,k,tim1:string;i,j,l,l1,l2:integer;tim:integer;

begin

case Button1.tag of

0: begin

Button1.caption:='Дальше';

Button1.tag:=1;

RadioButton5.Checked:=TRUE;

// вывод первого вопроса

Timer1.Enabled:=true;

Gauge1.Visible:=true;

Button1.Enabled:=False;

ResetForm;

VoprosToScr;

end;

1: begin // вывод остальных вопросов

summa:=summa+score[otv];

RadioButton5.Checked:=TRUE;

Button1.Enabled:=False;

ResetForm;

if not eof(f)

then VoprosToScr

else

begin

summa:=summa+score[otv];

closefile(f);

Button1.caption:='Ok';

Form1.caption:='Результат';

Button1.tag:=2;

Button1.Enabled:=TRUE;

Itog; // вывести результат

end;

end;

2: begin // завершение работы

Timer1.Enabled:=false;

s:='';

assignfile(fil1,'bd\result.txt');

reset(fil1);

s:='';

while not eof(fil1) do

begin

readln(fil1,s2);

s:=s+s2;

end;

closefile(fil1);

s1:='';

for i:=1 to length(s) do begin

if (s[i] = '*') then begin

if s1=zagl.Edit1.Text then begin

j:=i+1;

s3:='';

while s[j]<>'#' do begin

if s[j]='&' then begin

tim:=time1+StrToInt(s3);

delete(s,i+1,j–1–i–1);

tim1:=FloatToStr(tim);

insert(tim1,s,i+1);

s3:='';

end;

if s[j]='$' then begin

if summa>=7 then begin

l:=StrToInt(s[j–1])+1;

delete(s,j–1,1);

s7:=IntToStr(l);

insert(s7,s,j–1);

s3:='';

end

else l:=StrToInt(s[j–1]);

if summa>=7 then begin

s5:=s[j+1]+s[j+2];

l2:=StrToInt(s5);

delete(s,j+1,2);

l2:=l2+summa;

s6:=IntToStr(l2);

if length(s6)=1 then s6:=' '+s6;

insert(s6,s,j+1);

end;

end;

s3:=s3+s[j];

j:=j+1;

end;

end;

end;

s1:=s1+s[i];

if (s[i]='#') then s1:='';

end;

rewrite(fil1);

s4:='';

for i:=1 to length(s) do

begin

s4:=s4+s[i];

if s[i]='#' then begin

writeln(fil1,s4);

s4:='';

end;

end;

closefile(fil1);

assignfile(fil1,'bd\result1.txt');

reset(fil1);

s:='';

while not eof(fil1) do

begin

readln(fil1,s2);

s:=s+s2;

end;

closefile(fil1);

s1:='';

for i:=1 to length(s) do begin

if (s[i] = '*') then begin

//showmessage(s1);

if s1=zagl.Edit1.Text then begin

j:=i+1;

s3:='';

while s[j]<>'~' do begin

if (s[j]='!')and(l=1)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='$')and(l=2)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='#')and(l=3)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='%')and(l=4)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='^')and(l=5)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='@')and(l=6)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

if (s[j]='~')and(l=7)and(summa>StrToInt(s[j–1])) then begin

delete(s,j–1,1);

s6:=IntToStr(summa);

insert(s6,s,j–1);

end;

s3:=s3+s[j];

j:=j+1;

end;

end;

end;

s1:=s1+s[i];

if (s[i]='~') then s1:='';

end;

rewrite(fil1);

s4:='';

for i:=1 to length(s) do

begin

s4:=s4+s[i];

if s[i]='~' then begin

writeln(fil1,s4);

s4:='';

end;

end;

closefile(fil1);

Form1.Close;

ElektKursInf.Button1.Enabled:=true;

end;

end;

end;

// Процедура обработки события OnClick

// для компонентов RadioButton1–RadioButton4

procedure TForm1.RadioButtonClick(Sender: TObject);

begin

if sender = RadioButton1

then otv:=1

else if sender = RadioButton1

then otv:=2

else if sender = RadioButton3

then otv:=3

else otv:=4;

Button1.enabled:=TRUE;

end;

// обеспечивает настройку компонентов

procedure TForm1.FormCreate(Sender: TObject);

begin

Image1.AutoSize := False;

Image1.Proportional := True;

RadioButton1.Visible := False;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Gauge1.Progress:=Gauge1.Progress+1;

if Gauge1.Progress=100 then begin

ResetForm;

summa:=summa+score[otv];

Button1.caption:='Ok';

Form1.caption:='Результат';

Button1.tag:=2;

Button1.Enabled:=TRUE;

Itog; // вывести результат

Timer1.Enabled:=false;

end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

ElektKursInf.Button1.Enabled:=true;

end;

procedure TForm1.FormShow(Sender: TObject);

var z:integer;s0:string;

begin

assignfile(fil,'bd\path1.txt');

reset(fil);

s0:='';

while not eof(fil) do

begin

readln(fil,s0);

break;

end;

closefile(fil);

randomize;

ResetForm;

z:=random(4)+1;

fn:=copy(s0,9,length(s0))+IntToStr(ElektKursInf.ListBox1.ItemIndex+1)+IntToStr(z)+'.txt';

assignfile(f,fn);

try

reset(f);

except

on EFOpenError do

begin

ShowMessage('Файл теста '+fn+' не найден.');

Button1.caption:='Ok';

Button1.tag:=2;

Button1.Enabled:=TRUE;

exit;

end;

end;

Info; // прочитать и вывести информацию о тесте

GetLevel; // прочитать информацию об уровнях оценок

end;

end.



2019-12-29 258 Обсуждений (0)
n. 2.7 Тестирование ИС 0.00 из 5.00 0 оценок









Обсуждение в статье: n. 2.7 Тестирование ИС

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (258)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)