Розробка програмного продукту "Тестер"
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
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.