📄 unit2.pas
字号:
FOR k:=1 TO 3 DO
IF money>informations[road[i],road[i+1],k].fee THEN
BEGIN
choice:=k;
money:=informations[road[i],road[i+1],k].fee;
name:=informations[road[i],road[i+1],k].title;
dt:=informations[road[i],road[i+1],k].departtime;
art:=informations[road[i],road[i+1],k].arrivaltime;
END;
wt:=(dt+24-temptime)mod 24;
IF (art-dt)<0 THEN tomorrow:='次日'
ELSE tomorrow:='';
Form2.Memo1.Lines[shuchuhang]:='等待'+inttostr(wt)+'小时后,从'+place(road[i])+'乘坐'+inttostr(dt)+'时发出的'+name+'次'+transport(choice)+',经过'+inttostr((art+24-dt)mod 24)+'小时后,于'+tomorrow+inttostr(art)+'时'+'到达'+place(road[i+1]);
totletime:=totletime+wt+((art+24-dt)mod 24);
i:=i+1;
shuchuhang:=shuchuhang+1;
temptime:=art;
IF road[i]=arrival THEN daoda:=true;
totlemoney:=totlemoney+money;
END;
Form2.Memo1.Lines[shuchuhang]:='你今次旅游交通总耗时为'+inttostr(totletime)+'小时';
Form2.Memo1.Lines[shuchuhang+1]:='你今次旅游交通总费用为'+inttostr(totlemoney)+'元';
Form2.Memo1.Lines[shuchuhang+2]:='祝你旅途愉快!!' ;
FOR j:=shuchuhang+3 TO 20 DO
Form2.Memo1.Lines[j]:='';
passageinformation[totalnumber].spendtime:=totletime;
END;
PROCEDURE output1(depart,arrival:integer;road3:lujing);
VAR celue,name,tomorrow:string;
temptime,mintime,money,choice,i,j,k,dt,art,wt,shuchuhang,totlemoney,totletime:integer;
daoda:boolean;
BEGIN
daoda:=false;
i:=1;
shuchuhang:=2;
totlemoney:=0;
totletime:=0;
celue:='时间最少策略:';
Form2.Memo1.Lines[0]:='你选择了从'+place(depart)+'到'+place(arrival)+'的'+celue;
Form2.Memo1.Lines[1]:='现在时间是'+Form2.Label7.Caption+'年'+Form2.Label8.Caption+'月'+Form2.Label9.Caption+'日'+Form2.Label10.Caption+'时';
temptime:=strtoint(Form2.Label10.Caption);
WHILE daoda<>true DO
BEGIN
mintime:=10000;choice:=1;
FOR k:=1 TO 3 DO
IF (mintime>((informations[road3[i],road3[i+1],k].departtime+24-temptime)mod 24)+(informations[road3[i],road3[i+1],k].arrivaltime+24-informations[road3[i],road3[i+1],k].departtime)mod 24)and(informations[road3[i],road3[i+1],k].departtime<>-1) THEN
BEGIN
choice:=k;
money:=informations[road3[i],road3[i+1],k].fee;
mintime:=((informations[road3[i],road3[i+1],k].departtime+24-temptime)mod 24)+(informations[road3[i],road3[i+1],k].arrivaltime+24-informations[road3[i],road3[i+1],k].departtime)mod 24;
name:=informations[road3[i],road3[i+1],k].title;
dt:=informations[road3[i],road3[i+1],k].departtime;
art:=informations[road3[i],road3[i+1],k].arrivaltime;
END;
wt:=(dt+24-temptime)mod 24;
IF (art-dt)<0 THEN tomorrow:='次日'
ELSE tomorrow:='';
Form2.Memo1.Lines[shuchuhang]:='等待'+inttostr(wt)+'小时后,从'+place(road3[i])+'乘坐'+inttostr(dt)+'时发出的'+name+'次'+transport(choice)+',经过'+inttostr((art+24-dt)mod 24)+'小时后,于'+tomorrow+inttostr(art)+'时'+'到达'+place(road3[i+1]);
totletime:=totletime+wt+((art+24-dt)mod 24);
i:=i+1;
shuchuhang:=shuchuhang+1;
temptime:=art;
IF road3[i]=arrival THEN daoda:=true;
totlemoney:=totlemoney+money;
END;
Form2.Memo1.Lines[shuchuhang]:='你今次旅游交通总耗时为'+inttostr(totletime)+'小时';
Form2.Memo1.Lines[shuchuhang+1]:='你今次旅游交通总费用为'+inttostr(totlemoney)+'元';
Form2.Memo1.Lines[shuchuhang+2]:='祝你旅途愉快!!' ;
FOR j:=shuchuhang+3 TO 20 DO
Form2.Memo1.Lines[j]:='';
passageinformation[totalnumber].spendtime:=totletime;
END;
procedure TForm2.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm2.Button2Click(Sender: TObject);
VAR i:integer;
begin
FOR i:=0 TO 100 DO
memo1.Lines[i]:='';
Edit1.Text:='';
Combobox1.Text:='';
combobox2.Text:='';
Combobox3.Text:='';
Combobox4.Text:='';
Combobox4.Enabled:=false;
Radiobutton4.Checked:=false;
Radiobutton5.Checked:=false;
Radiobutton6.Checked:=false;
Radiobutton7.Checked:=false;
Radiobutton8.Checked:=false;
Radiobutton9.Checked:=false;
Radiobutton10.Checked:=false;
Radiobutton11.Checked:=false;
Radiobutton12.Checked:=false;
Radiobutton13.Checked:=false;
Radiobutton14.Checked:=false;
Radiobutton15.Checked:=false;
Radiobutton1.Checked:=false;
Radiobutton2.Checked:=false;
Radiobutton3.Checked:=false;
via:=0;
end;
procedure TForm2.Button1Click(Sender: TObject);
VAR ii,jj:integer;
begin
via:=0;
IF Edit1.Text='' Then showmessage('姓名不能为空,请输入姓名!')
ELSE
IF ((Combobox1.text<>'男')and (Combobox1.Text<>'女')) THEN
showmessage('请选择性别')
ELSE
IF ((Combobox2.Text<>'北京')and (Combobox2.Text<>'上海')and(Combobox2.Text<>'广州')and(Combobox2.Text<>'哈尔滨')and(Combobox2.Text<>'大连')and(Combobox2.Text<>'天津')and(Combobox2.Text<>'西安')and(Combobox2.Text<>'郑州')and(Combobox2.Text<>'杭州')and(Combobox2.Text<>'成都')and(Combobox2.Text<>'桂林')and(Combobox2.Text<>'拉萨')) THEN
showmessage('请选择出发地')
ELSE
IF ((Combobox3.Text<>'北京')and (Combobox3.Text<>'上海')and(Combobox3.Text<>'广州')and(Combobox3.Text<>'哈尔滨')and(Combobox3.Text<>'大连')and(Combobox3.Text<>'天津')and(Combobox3.Text<>'西安')and(Combobox3.Text<>'郑州')and(Combobox3.Text<>'杭州')and(Combobox3.Text<>'成都')and(Combobox3.Text<>'桂林')and(Combobox3.Text<>'拉萨')) THEN
showmessage('请选择目的地')
ELSE
IF ((Combobox2.Text=Combobox3.Text)and(Radiobutton4.Checked=false)and(Radiobutton5.Checked=false)and(Radiobutton6.Checked=false)and(Radiobutton7.Checked=false)and(Radiobutton8.Checked=false)and(Radiobutton9.Checked=false)and(Radiobutton10.Checked=false)and(Radiobutton11.Checked=false)and(Radiobutton12.Checked=false)and(Radiobutton13.Checked=false)and(Radiobutton14.Checked=false)and(Radiobutton15.Checked=false)) THEN showmessage('目的地和出发地不能重复!请重新输入!!')
ELSE
BEGIN
IF Radiobutton4.Checked=true THEN via:=1;
IF Radiobutton5.Checked=true THEN via:=2;
IF Radiobutton6.Checked=true THEN via:=3;
IF Radiobutton7.Checked=true THEN via:=4;
IF Radiobutton8.Checked=true THEN via:=5;
IF Radiobutton9.Checked=true THEN via:=6;
IF Radiobutton10.Checked=true THEN via:=7;
IF Radiobutton11.Checked=true THEN via:=8;
IF Radiobutton12.Checked=true THEN via:=9;
IF Radiobutton13.Checked=true THEN via:=10;
IF Radiobutton14.Checked=true THEN via:=11;
IF Radiobutton15.Checked=true THEN via:=12;
IF Combobox2.Text='北京' THEN depart:=1;
IF Combobox2.Text='上海' THEN depart:=2;
IF Combobox2.Text='广州' THEN depart:=3;
IF Combobox2.Text='哈尔滨' THEN depart:=4;
IF Combobox2.Text='大连' THEN depart:=5;
IF Combobox2.Text='天津' THEN depart:=6;
IF Combobox2.Text='西安' THEN depart:=7;
IF Combobox2.Text='郑州' THEN depart:=8;
IF Combobox2.Text='杭州' THEN depart:=9;
IF Combobox2.Text='成都' THEN depart:=10;
IF Combobox2.Text='桂林' THEN depart:=11;
IF Combobox2.Text='拉萨' THEN depart:=12;
IF Combobox3.Text='北京' THEN arrival:=1;
IF Combobox3.Text='上海' THEN arrival:=2;
IF Combobox3.Text='广州' THEN arrival:=3;
IF Combobox3.Text='哈尔滨' THEN arrival:=4;
IF Combobox3.Text='大连' THEN arrival:=5;
IF Combobox3.Text='天津' THEN arrival:=6;
IF Combobox3.Text='西安' THEN arrival:=7;
IF Combobox3.Text='郑州' THEN arrival:=8;
IF Combobox3.Text='杭州' THEN arrival:=9;
IF Combobox3.Text='成都' THEN arrival:=10;
IF Combobox3.Text='桂林' THEN arrival:=11;
IF Combobox3.Text='拉萨' THEN arrival:=12;
minfee_FLOYD(dist,cost,path);
FOR ii:=1 TO 20 DO
road[ii]:=0;
FOR ii:=1 TO 20 DO
road2[ii]:=0;
IF ((Radiobutton1.Checked=false)and(Radiobutton2.Checked=false)and(Radiobutton3.Checked=false))THEN
Showmessage('请选择策略!!')
ELSE
BEGIN
IF Radiobutton2.Checked=true THEN
BEGIN
totalnumber:=totalnumber+1;
passageinformation[totalnumber].passagename:=Edit1.Text;
passageinformation[totalnumber].searchtime:=720*strtoint(label8.Caption)+24*strtoint(label9.Caption)+strtoint(label10.Caption);
passageinformation[totalnumber].departplace:=depart;
passageinformation[totalnumber].arrivalplace:=arrival;
IF via=0 THEN
BEGIN
road[1]:=depart;
road[2]:=arrival;
creat_path(depart,arrival,path,road);
END
ELSE
BEGIN
road[1]:=depart;
road[2]:=via;
road2[1]:=via;
road2[2]:=arrival;
creat_path(depart,via,path,road);
creat_path(via,arrival,path,road2);
band(road,road2);
END;
output2(depart,arrival,road);
END;
IF Radiobutton1.Checked=true THEN
BEGIN
totalnumber:=totalnumber+1;
passageinformation[totalnumber].passagename:=Edit1.Text;
passageinformation[totalnumber].searchtime:=720*strtoint(label8.Caption)+24*strtoint(label9.Caption)+strtoint(label10.Caption);
passageinformation[totalnumber].departplace:=depart;
passageinformation[totalnumber].arrivalplace:=arrival;
IF via=0 THEN
BEGIN
FOR ii:=1 TO 12 DO
BEGIN
path_time[ii,1]:=depart;
path_time2[ii,1]:=0;
FOR jj:=2 TO 12 DO
BEGIN
path_time[ii,jj]:=0;
path_time2[ii,jj]:=0
END;
END;
derect(path_time,depart,arrival);
END
ELSE
BEGIN
FOR ii:=1 TO 12 DO
BEGIN
path_time[ii,1]:=depart;
path_time2[ii,1]:=via;
FOR jj:=2 TO 12 DO
BEGIN
path_time[ii,jj]:=0;
path_time2[ii,jj]:=0
END;
END;
derect(path_time,depart,via);
derect(path_time2,via,arrival);
END;
FOR ii:=1 TO 20 DO
road3[ii]:=0;
road3[1]:=depart;
IF via=0 THEN
change(road3,path_time)
ELSE
hebing(road3,path_time,path_time2);
output1(depart,arrival,road3);
END;
IF Radiobutton3.Checked=true THEN
Showmessage('很抱歉,系统还没有实现此项功能!!')
END;
END;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
IF ((Combobox2.Text='北京')OR(Combobox3.Text='北京')) THEN
BEGIN
Radiobutton4.Enabled:=false;
Radiobutton4.Checked:=false;
END
ELSE Radiobutton4.Enabled:=true;
IF ((Combobox2.Text='上海')OR(Combobox3.Text='上海')) THEN
BEGIN
Radiobutton5.Enabled:=false;
Radiobutton5.Checked:=false
END
ELSE Radiobutton5.Enabled:=true;
IF ((Combobox2.Text='广州')OR(Combobox3.Text='广州')) THEN
BEGIN
Radiobutton6.Enabled:=false;
Radiobutton6.Checked:=false
END
ELSE Radiobutton6.Enabled:=true;
IF ((Combobox2.Text='哈尔滨')OR(Combobox3.Text='哈尔滨')) THEN
BEGIN
Radiobutton7.Enabled:=false;
Radiobutton7.Checked:=false
END
ELSE Radiobutton7.Enabled:=true;
IF ((Combobox2.Text='大连')OR(Combobox3.Text='大连')) THEN
BEGIN
Radiobutton8.Enabled:=false;
Radiobutton8.Checked:=false
END
ELSE Radiobutton8.Enabled:=true;
IF ((Combobox2.Text='天津')OR(Combobox3.Text='天津')) THEN
BEGIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -