Delphi визуалды программалау ортасы


Пайдаланылған әдебиеттер мен дереккөздер



бет98/98
Дата07.02.2022
өлшемі1,51 Mb.
#85980
1   ...   90   91   92   93   94   95   96   97   98
Байланысты:
Delphi

Пайдаланылған әдебиеттер мен дереккөздер.


1. Programmers.kz сайтының материалдары.
2. Delphi-manual.ru сайтының материалдары.
3. Симонович С.В., Евсеев Г.А. Занимательное программирование: Delphi. –M.: АСТ-ПРЕСС КНИГА: Инфорком – Пресс, 2001.
4. Культин Н.Б. Delphi в задачах и примерах. - СПб.: БХВ – Петербург, 2005.
5. Фаронов В.В. Программирование на языке высокого уровня: Учебник для вузов. –СПб.: Питер, 2003.
6. Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер, 2005.
7. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Visual Basic, C++ Builder, Delphi.- СПб.: БХВ – Петербург, 2005.
8. Кузнецова И.А. Практикум по Delphi для решения прикладных задач. - Н.Новгород: ННГУ, 2005.

29. Тестілеу бағдарламасы


Жұмыстың мақсаты – тестілеу бағдарламасын құру.
1. Ол үшін жаңа жоба ашып, сол Пішінге қажетті компоненттерді орналастырыңыз.
2. Төменде келтірілген бағдарламаны пайдаланып, сол компоненттердің оқиғалары мен қасиеттерін өңдеп, жұмыс мақсатына жеткізетін әрекеттерді орындаңыз.

{ Тестілеудің әмбебап бағдарламасы


(с) Культин Н.Б., 2003 }
unit tester_;
interface

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


Forms, Dialogs, StdCtrls, ExtCtrls,
jpeg;

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;

procedure FormActivate(Sender: TObject);


procedure Button1Click(Sender: TObject);
procedure RadioButtonClick(Sender: TObject);

// Бұл хабарландырулар қолдан қойылған


procedure Info;
procedure SurakToScr;
procedure ShowPicture; // кескін шығарушы
procedure ResetForm; // кезекті сұрақты шығару алдында пішінді //«тазарту»
procedure Kortyndy;
procedure FormCreate(Sender: TObject); // тестілеу нәтижесі

private
{ Private declarations }


public
{ Public declarations }
end;

var
Form1: TForm1; // Пішін


implementation


{$R *.DFM}
const
N_LEV=4; // бағалаудың төрт деңгейі
N_ANS=4; // жауаптардың төрт нұсқасы

var
f: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; // жиналған ұпай
surak:integer; // ағымдағы сұрақ нөмірі
jauap: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.SurakToScr; // сұрақты шығару


var
i:integer;
s,buf:string;
ifn:string; // кескін файлы
begin
surak:=surak+1;
caption:='Сұрақ ' + IntToStr(surak);
// сұрақты оқу
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.Kortyndy;
var
i:integer;
buf:string;
begin
buf:='';
buf:='Тестілеу нәтижесі'+ #13
+'Барлық ұпайыңыз: '+ IntToStr(summa);
i:=1;
while (summa < level[i]) and (ii:=i+1;
buf:=buf+ #13+mes[i];
Label5.Top:=20;
Label5.caption:=buf;
end;

procedure TForm1.FormActivate(Sender: TObject);


begin
ResetForm;
if ParamCount = 0
then begin
Label5.caption:= 'Тест сұрақтарының файлы берілмеген.';
Button1.caption:='Ok';
Button1.tag:=2;
Button1.Enabled:=TRUE
end
else begin
fn := ParamStr(1);
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;

// Button1 батырмасын шерту


procedure TForm1.Button1Click(Sender: TObject);
begin
case Button1.tag of
0: begin
Button1.caption:='Әрі қарай';
Button1.tag:=1;
RadioButton5.Checked:=TRUE;
// бірінші сұрақты шығару
Button1.Enabled:=False;
ResetForm;
SurakToScr;
end;
1: begin // басқа сұрақтарды шығару
summa:=summa+score[jauap];
RadioButton5.Checked:=TRUE;
Button1.Enabled:=False;
ResetForm;
if not eof(f)
then SurakToScr
else
begin
summa:=summa+score[otv];
closefile(f);
Button1.caption:='Ok';
Form1.caption:='Нәтижесі';
Button1.tag:=2;
Button1.Enabled:=TRUE;
Kortyndy; // нәтижені шығару
end;
end;
2: begin // жұмысты аяқтау
Form1.Close;
end;
end;
end;
// RadioButton1-RadioButton4 компоненттері үшін OnClick оқиғасын //өңдеу проуцедурасы
procedure TForm1.RadioButtonClick(Sender: TObject);
begin
if sender = RadioButton1
then jauap:=1
else if sender = RadioButton1
then jauap:=2
else if sender = RadioButton3
then jauap:=3
else jauap:=4;
Button1.enabled:=TRUE;
end;

// компоненттерді баптауды қамтамасыз етеді


procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.AutoSize := False;
Image1.Proportional := True;
RadioButton1.Visible := False;
end;
end.



Достарыңызбен бөлісу:
1   ...   90   91   92   93   94   95   96   97   98




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет