Розробка програмного продукту "Тестер"

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

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

bel6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Timer1: TTimer;

OpenDialog: TOpenDialog;

procedure CloseTestClick(Sender: TObject);

procedure AboutProcClick(Sender: TObject);

procedure StartTestClick(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure ButtonNextClick(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

Status:TStatus;

public

procedure WriteParametru;

procedure WritePutanya;

procedure GetResult;

end;

var

Form1: TForm1;

implementation

uses About, ResultTest, Math;

{$R *.dfm}

procedure TForm1.CloseTestClick(Sender: TObject);

begin

case Status of

tsActiv:

if MessageDlg(В даний момент активний тест. Хочете завершити його?,

mtInformation,[mbYes,mbNo],0)=mrYes then

Close ;

tsNotActiv: Close;

end;

end;

procedure TForm1.AboutProcClick(Sender: TObject);

begin

Application.CreateForm(TAboutBox, AboutBox);

AboutBox.ShowModal;

end;

procedure TForm1.StartTestClick(Sender: TObject);

begin

if Status=tsNotActiv then

begin

if(OpenDialog.Execute)then

CreatStart(OpenDialog.FileName)

else begin

exit;

end;

Panel1.Visible:=true;

Status:=tsActiv;

Label6.Caption:=inttostr(ArrayM.MAX);

Label8.Caption:=inttostr(Potochne+1);

Label9.Caption:=0;

timer1.Enabled:=true;

WritePutanya;

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Status:=tsNotActiv;

end;

procedure TForm1.ButtonNextClick(Sender: TObject);

begin

if RadioGroup1.ItemIndex=-1 then exit;

if mas[potochne].PravVid-1=RadioGroup1.ItemIndex then

KilkistPraviln:=KilkistPraviln+1;

Potochne:=Potochne+1;

if Potochne<ArrayM.Max then

begin

WritePutanya;

WriteParametru;

end else

GetResult;

end;

procedure TForm1.WriteParametru;

begin

Label8.Caption:=inttostr(Potochne+1);

Label9.Caption:=inttostr(KilkistPraviln);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

var minute,second:integer;

p:integer; s:string;

begin

p:=time div 1000;

minute:=p div 60;

second:=p mod 60;

if (Time<>0) then

begin

if Second=0 then

s:=00;

if (second0) then s:=0+inttostr(second);

if second>9 then s:=inttostr(second);

Label7.Caption:=inttostr(minute)+:+s;

end

else

GetResult;

Time:=Time-1000;

end;

procedure TForm1.WritePutanya;

var i:integer;

begin

Label1.Caption:=mas[Potochne].putanya;

RadioGroup1.Items.Clear;

for i:=1 to mas[Potochne].n do

RadioGroup1.Items.Add(mas[Potochne].mas[i-1]);

end;

procedure TForm1.GetResult;

var Otsinka:integer;

r:integer;

begin

Timer1.Enabled:=false;

Panel1.Visible:=false;

Status:=tsNotActiv;

Label7.Caption:=;

// обчислити оцінку

Otsinka:=KilkistPraviln;

Form1.Caption:=Tester;

Application.CreateForm(TForm2, Form2);

with form2.Memo1.Lines do

begin

Clear;

Add(Результат проходження тесту);

Add(---------------------------------------------------);

Add(Кількість питань: +inttostr(ArrayM.MAX));

Add(Кількість правильних відповідей: +inttostr(KilkistPraviln));

r:=Floor( 100/ArrayM.MAX*KilkistPraviln*100 );

Add(В процентному відношені: +floattostr( r/100 )+%);

Add(Оцінка: +inttostr(Otsinka));

Add(---------------------------------------------------);

end;

Form2.ShowModal;

end;

end.