⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit2.pas

📁 旅游查询系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
          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 + -