注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
PS初学者实例教程——用路径画规
关于foxmail的研究2----找到帐户
数据结构中关键路径算法的实现与
Inet控件中上载的路径、文件名中
在VB中通过相对路径引用标准DLL
DELPHI中数据文件路径的管理
Java学习路径三篇
PHP中路径问题的解决方案
Freehand9.0 全程讲解8:线条和路
Fireworks中路径转选区的讨论
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> Delphi >> 文章正文
最短路径(校园导游)的简单算法
作者:fendysun  来源:csdn  点击:  更新:2006-12-19
简介:
 

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinCtrls, bsSkinData, BusinessSkinForm, bsCalendar, ExtCtrls,
  jpeg, Menus, bsSkinMenus, StdCtrls, bsSkinHint, bsMessages;

type
  TForm1 = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    bsSkinData1: TbsSkinData;
    bsCompressedStoredSkin1: TbsCompressedStoredSkin;
    bsSkinButton1: TbsSkinButton;
    bsSkinMonthCalendar1: TbsSkinMonthCalendar;
    Shape1: TShape;
    bsSkinMainMenu1: TbsSkinMainMenu;
    erfg1: TMenuItem;
    asda1: TMenuItem;
    asdas1: TMenuItem;
    asd1: TMenuItem;
    bsSkinMainMenuBar1: TbsSkinMainMenuBar;
    fgdfgdfgdf1: TMenuItem;
    bsSkinPopupMenu1: TbsSkinPopupMenu;
    N1111: TMenuItem;
    N22221: TMenuItem;
    N3331: TMenuItem;
    bsSkinStdLabel1: TbsSkinStdLabel;
    bsSkinHint1: TbsSkinHint;
    damen: TImage;
    xyf: TImage;
    st: TImage;
    ydc: TImage;
    lanqiou: TImage;
    gongyu: TImage;
    jxl: TImage;
    Shape2: TShape;
    Shape4: TShape;
    Shape5: TShape;
    Shape6: TShape;
    Shape7: TShape;
    Shape3: TShape;
    bsSkinStdLabel2: TbsSkinStdLabel;
    bsSkinStdLabel3: TbsSkinStdLabel;
    bsSkinStdLabel4: TbsSkinStdLabel;
    bsSkinStdLabel5: TbsSkinStdLabel;
    bsSkinStdLabel6: TbsSkinStdLabel;
    bsSkinStdLabel7: TbsSkinStdLabel;
    bsSkinStdLabel8: TbsSkinStdLabel;
    bsSkinStdLabel9: TbsSkinStdLabel;
    bsSkinStdLabel10: TbsSkinStdLabel;
    bsSkinStdLabel11: TbsSkinStdLabel;
    bsSkinStdLabel12: TbsSkinStdLabel;
    bsSkinStdLabel14: TbsSkinStdLabel;
    bsSkinStdLabel15: TbsSkinStdLabel;
    bsCompressedStoredSkin2: TbsCompressedStoredSkin;
    bsSkinData2: TbsSkinData;
    Shape8: TShape;
    bsSkinStdLabel16: TbsSkinStdLabel;
    bsSkinStdLabel17: TbsSkinStdLabel;
    bsSkinStdLabel13: TbsSkinStdLabel;
    Shape9: TShape;
    bsSkinStdLabel18: TbsSkinStdLabel;
    Shape10: TShape;
    Shape11: TShape;
    bsSkinStdLabel19: TbsSkinStdLabel;
    N1: TMenuItem;
    bsSkinMessage1: TbsSkinMessage;
    Shape12: TShape;
    bsSkinButton2: TbsSkinButton;
    procedure bsSkinButton1Click(Sender: TObject);
    procedure N1111Click(Sender: TObject);
    procedure damenClick(Sender: TObject);
    procedure jxlClick(Sender: TObject);
    procedure lanqiouClick(Sender: TObject);
    procedure ydcClick(Sender: TObject);
    procedure gongyuClick(Sender: TObject);
    procedure stClick(Sender: TObject);
    procedure xyfClick(Sender: TObject);
    procedure asdas1Click(Sender: TObject);
    procedure asda1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure bsSkinButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2, Unit4, Unit5, Unit6;

{$R *.dfm}

procedure TForm1.bsSkinButton1Click(Sender: TObject);
begin
form6.show;
end;

procedure TForm1.N1111Click(Sender: TObject);
begin
form2.Show;

//form2.bsSkinButton1.Caption:=sender.Create;
end;

procedure TForm1.damenClick(Sender: TObject);
begin
form2.request:=1;
form5.request2:=1;
form2.Image1.Picture:=damen.Picture;
form2.note.Width:=800;
form2.note.Height:=60;
form2.note.Lines.Clear;
form2.note.Lines.Add('安徽师范大学大门,因为施工所以没建好');
form2.note.Lines.Add('目前的大门没有标志.');
form2.show;
end;

procedure TForm1.jxlClick(Sender: TObject);
begin

form2.request:=4;
form5.request2:=4;
form2.Image1.Picture:=jxl.Picture;
form2.note.Width:=800;
form2.note.Height:=60;
form2.note.Lines.Clear;
form2.note.Lines.Add('安徽师范大学南校区教学楼,现在共有四栋');
form2.note.Lines.Add('其管理由一泓物业管理有限公司来实现.每');
 form2.note.Lines.Add('个教室都配备了多媒体');
form2.show;
end;

procedure TForm1.lanqiouClick(Sender: TObject);
begin

form2.request:=2;
form5.request2:=2;
form2.Image1.Picture:=lanqiou.Picture;
form2.note.Width:=800;
form2.note.Height:=60;
form2.note.Lines.Clear;
form2.note.Lines.Add('大学南校区篮球场,是同学们上课');
form2.note.Lines.Add('和锻身体的主要场所,目前有很多的篮球架,');
form2.note.Lines.Add('基本满足同学们的需要.');
form2.show;
end;

procedure TForm1.ydcClick(Sender: TObject);
begin

form2.request:=3;
form5.request2:=3;
form2.Image1.Picture:=ydc.Picture;
form2.note.Width:=800;
form2.note.Height:=60;
form2.note.Lines.Clear;
form2.note.Lines.Add('安徽师范大学南校区运动场,它位于篮球场的');
form2.note.Lines.Add('边上.由足球场,网球场和排球场构成.目前仍');
form2.note.Lines.Add('处于施工阶段.');

form2.show;
end;

procedure TForm1.gongyuClick(Sender: TObject);
begin

form2.request:=5;
form5.request2:=5;
form2.Image1.Picture:=gongyu.Picture;
form2.note.Width:=800;
form2.note.Lines.Clear;
form2.note.Lines.Add('大学南校区学生公寓,大概有20多栋,');
form2.note.Lines.Add('每栋楼四层,每层28个房间,没间房四个人住,其');
form2.note.Lines.Add('管理也是由其他公司来实现.');


form2.show;
end;

procedure TForm1.stClick(Sender: TObject);
begin

form2.request:=6;
form5.request2:=6;
form2.Image1.Picture:=st.Picture;
form2.note.Width:=800;
form2.note.Lines.Clear;
form2.note.Lines.Add('大学南校区食堂,公司层楼.');
form2.note.Lines.Add('四楼是超市,一至三层是食堂.');
form2.show;
end;

procedure TForm1.xyfClick(Sender: TObject);
begin

form2.request:=7;
form5.request2:=7;
form2.Image1.Picture:=xyf.Picture;
form2.note.Width:=800;
form2.note.Lines.Clear;
form2.note.Lines.Add('大学南校区洗浴中心,是同');
form2.note.Lines.Add('学们洗衣洗澡理发的地方.');

form2.show;
end;

procedure TForm1.asdas1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.asda1Click(Sender: TObject);
begin
showmessage('点击有关图片就行了!')
end;

procedure TForm1.N1Click(Sender: TObject);
begin
form4.show;
end;

procedure TForm1.bsSkinButton2Click(Sender: TObject);
begin
form4.Show;
end;

end.

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, bsSkinCtrls, ExtCtrls, bsSkinData, BusinessSkinForm, StdCtrls;

type
  TForm2 = class(TForm)
    bsBusinessSkinForm1: TbsBusinessSkinForm;
    bsSkinData1: TbsSkinData;
    bsCompressedStoredSkin1: TbsCompressedStoredSkin;
    Image1: TImage;
    bsSkinTextLabel1: TbsSkinTextLabel;
    bsSkinButton1: TbsSkinButton;
    bsSkinTextLabel2: TbsSkinTextLabel;
    bsSkinButton2: TbsSkinButton;
    bsSkinTextLabel3: TbsSkinTextLabel;
    note: TbsSkinTextLabel;
    bsCompressedStoredSkin2: TbsCompressedStoredSkin;
    bsSkinData2: TbsSkinData;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure bsSkinButton2Click(Sender: TObject);
    procedure bsSkinButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    request:integer;{
     Public declarations }
  end;
mapinfo=array[1..7,1..7]of real;
roadinfo=array[1..7,1..8]of integer;
flagarray=array[1..7]of bool;
distinfo=array[1..7]of real;
var
Form2: TForm2;
request:integer;
map:mapinfo;
road:roadinfo;
flag:flagarray;
dist:distinfo;
implementation

uses Unit3, Unit5;

{$R *.dfm}

procedure TForm2.FormShow(Sender: TObject);
var
v,i,j,w,k,l:integer;
min: real;
begin
//form3.Show;
min:=100;
for i:=1 to 7 do
begin
flag[i]:=false;
if map[request,i]<100 then
begin
road[i,8]:=1;
road[i,1]:=i;
dist[i]:=map[request,i];
end//if
else
begin
road[i,8]:=0;
dist[i]:=100;
end;//else
end;//for i
flag[request]:=true;
for j:=1 to 7 do
begin
for w:=1 to 7 do
begin
if ((flag[w]=false) and (dist[w]<min)) then
begin
min:=dist[w];
v:=w;
end;//if dist[w]<min
end;//for w
min:=100;
if dist[v]=100 then
showmessage('dist[v]=100!!')
else
begin//////
flag[v]:=true;
for k:=1 to 7 do
begin
if ((flag[k]=false) and(dist[v]+map[v][k]<dist[k]))then
begin
dist[k]:=dist[v]+

[1] [2] 下一页






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务