uses vcl;
type TRAIN = record
NAZN:string[40];
NUMR:string[40];
TIME1: integer;
time2: integer;
sum: integer;
end;
var
rasp:array [1..6] of train;
sum,i,j,k,n:integer;
str,str2: array[1..6] of string;
a: string;
//$VCLDESIGN+
var
Form1: Form;
TextLabel1: TextLabel;
TextLabel2: TextLabel;
TextLabel3: TextLabel;
TextLabel4: TextLabel;
TextLabel5: TextLabel;
TextLabel6: TextLabel;
TextBox1: TextBox;
SpinEdit1: SpinEdit;
SpinEdit2: SpinEdit;
Edit1: Edit;
Edit2: Edit;
Button1: Button;
Button2: Button;
Button3: Button;
TextBox2: TextBox;
Edit3: Edit;
//$VCLDESIGN-
procedure LinSortStr (var mas: array [1..6] of string; var size: integer);
var
j,i: integer;
n: string;
begin
for i:=1 to size-1 do
for j:=i+1 to size do
begin
if mas[i]>mas[j] then
begin
n:=mas[i];
mas[i]:=mas[j];
mas[j]:=n;
end;
end;end;
procedure Button1OnClick;
begin
inc(i);
rasp[i].nazn:=edit1.text;
rasp[i].numr:=edit2.text;
rasp[i].time1:=spinedit1.value;
rasp[i].time2:=spinedit2.value;
str[i]:= '№' + rasp[i].numr + ' ' +rasp[i].nazn + ' ' + inttostr(rasp[i].time1) + ':' +inttostr(rasp[i].time2);
textbox1.lines.add(str[i]);
end;
procedure Button2OnClick;
begin
n:=6;
For j:=1 to 6 do
str2[j]:=inttostr(rasp[j].time1)+ ':' + inttostr(rasp[j].time2);
textbox1.clear;
linsortstr(str2,n);
For j:=1 to 6 do
textbox1.lines.add( '№' + rasp[j].numr+ ' '+rasp[j].nazn + ' '+ str2[j] );
end;
procedure Edit3OnClick;
begin
end;
procedure Button3OnClick;
begin
a:= Edit3.text;
for i:=1 to 6 do
if rasp[i].nazn = a then textbox2.lines.add( '№' +rasp[i].numr + ' ' +rasp[i].nazn + ' ' + inttostr(rasp[i].time1) + ':' + inttostr(rasp[i].time2));
end;
procedure InitControls;
begin
Form1:= Form.Create(0,0,714,384);
Form1.InitControl(True,False,alNone,crDefault,clBtnFace,'Расписание поездов','');
TextLabel1:= TextLabel.Create(Form1,368,168,25,13);
TextLabel1.InitControl(True,True,alNone,crDefault,clBtnFace,'часы','');
TextLabel2:= TextLabel.Create(Form1,440,168,38,13);
TextLabel2.InitControl(True,True,alNone,crDefault,clBtnFace,'минуты','');
TextLabel3:= TextLabel.Create(Form1,64,164,92,17);
TextLabel3.InitControl(True,True,alNone,crDefault,clBtnFace,'Пункт назначения','');
TextLabel4:= TextLabel.Create(Form1,232,160,73,33);
TextLabel4.InitControl(True,True,alNone,crDefault,clBtnFace,'Номер поезда','');
TextLabel5:= TextLabel.Create(Form1,384,144,101,13);
TextLabel5.InitControl(True,True,alNone,crDefault,clBtnFace,'Время отправления','');
TextLabel6:= TextLabel.Create(Form1,512,168,135,13);
TextLabel6.InitControl(True,True,alNone,crDefault,clBtnFace,'Введите пункт назначения','');
TextBox1:= TextBox.Create(Form1,56,24,217,89);
TextBox1.InitControl(True,True,alNone,crDefault,clWindow,'','');
TextBox1.ScrollBars:= ssNone;
SpinEdit1:= SpinEdit.Create(Form1,368,184,41,22);
SpinEdit1.InitControl(True,True,alNone,crDefault,clWindow,'12','');
SpinEdit2:= SpinEdit.Create(Form1,440,184,41,22);
SpinEdit2.InitControl(True,True,alNone,crDefault,clWindow,'30','');
Edit1:= Edit.Create(Form1,56,184,121,21);
Edit1.InitControl(True,True,alNone,crDefault,clWindow,'','');
Edit2:= Edit.Create(Form1,232,184,81,21);
Edit2.InitControl(True,True,alNone,crDefault,clWindow,'','');
Button1:= Button.Create(Form1,56,232,75,25);
Button1.InitControl(True,True,alNone,crDefault,0,'Добавить','');
Button2:= Button.Create(Form1,160,232,75,25);
Button2.InitControl(True,True,alNone,crDefault,0,'Показать','');
Button3:= Button.Create(Form1,256,232,321,25);
Button3.InitControl(True,True,alNone,crDefault,0,'информация о поездах определенного пункта назначения','');
TextBox2:= TextBox.Create(Form1,368,24,185,89);
TextBox2.InitControl(True,True,alNone,crDefault,clWindow,'','');
TextBox2.ScrollBars:= ssNone;
Edit3:= Edit.Create(Form1,512,184,137,21);
Edit3.InitControl(True,True,alNone,crDefault,clWindow,'','');
SpinEdit1.Max:= 23;
SpinEdit1.Tag:= 3;
SpinEdit2.Max:= 60;
Button1.OnClick:=Button1OnClick;
Button2.OnClick:=Button2OnClick;
Button3.OnClick:=Button3OnClick;
Edit3.OnClick:=Edit3OnClick;
Form1.Position:= poScreenCenter;
Form1.Show;
end;
begin
InitControls;
end.
Процедура сортировки по алфавиту
procedure insert(idx:integer;str:Train);
var j:integer;
begin
for j:=N-1 downto idx do
data[j+1]:=data[j];
data[idx]:=str;
end;
procedure delete(idx:Train);
var j:integer;
begin
for j:=idx to n-1 do
data[j]:=data[j+1];
end;
procedure sort;
begin
for i := 0 to (N-1) do
for x := 0 to (N - 1) do
if (data[x].nazn < data[i].nazn) and (x > i) then
begin
Insert(i, data[x]);
Delete(x+ 1);
end;
end;