📄 utravel.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Utravel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#define MAX 50000
TfrmMain *frmMain;
typedef struct ArcCell{
int Length;
}ArcCell,AdjMatrix[12][12];
typedef struct{
String vexs[12];
AdjMatrix arcs;
int vexnum;
int arcnum;
}MGraph;
MGraph G;
int start,end;
bool P[12][12][12];
int D[12][12];
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormPaint(TObject *Sender)
{
Canvas->Pen->Width=5;
Canvas->Pen->Color=clGrayText;
Canvas->MoveTo(681,57);
Canvas->LineTo(584,144);
Canvas->LineTo(656,280);
Canvas->LineTo(412,510);
Canvas->LineTo(261,501);
Canvas->MoveTo(412,510);
Canvas->LineTo(105,341);
Canvas->LineTo(300,292);
Canvas->LineTo(457,218);
Canvas->LineTo(584,144);
Canvas->LineTo(479,59);
Canvas->LineTo(370,59);
Canvas->LineTo(259,59);
Canvas->LineTo(138,90);
Canvas->LineTo(105,341);
Canvas->LineTo(412,510);
Canvas->LineTo(300,292);
Canvas->MoveTo(457,218);
Canvas->LineTo(584,144);
Canvas->LineTo(479,59);
Canvas->MoveTo(457,218);
Canvas->LineTo(656,280);
Canvas->MoveTo(457,218);
Canvas->LineTo(479,59);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblDoorClick(TObject *Sender)
{
ShowMessage("广东工业大学龙洞校区校门!") ;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblCircleClick(TObject *Sender)
{
ShowMessage("圆形广场。曾举行万名团员宣誓仪式!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblManageClick(TObject *Sender)
{
ShowMessage("老师日常工作的地方!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblBookClick(TObject *Sender)
{
ShowMessage("图书馆和自修室,环境幽静,空间开阔!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblStudyClick(TObject *Sender)
{
ShowMessage("九层高的教学拥有上百间教室,阳光充足,设备配套一流!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblComputerClick(TObject *Sender)
{
ShowMessage("干净的计算机中心有数百部电脑,满足教学娱乐的需要!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblLanLabClick(TObject *Sender)
{
ShowMessage("先进的语音设备,完善的电脑监控为学生提供良好学习环境!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblLabClick(TObject *Sender)
{
ShowMessage("拥有教室,金工实习基地,有利于知识与实际相联系!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblParkClick(TObject *Sender)
{
ShowMessage("环境优美,山顶有小亭,周围绿草如茵,令人心旷神怡!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblGroundClick(TObject *Sender)
{
ShowMessage("有十个篮球场,三个网球场,一个足球场和标准跑道。");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblFlatsClick(TObject *Sender)
{
ShowMessage("环境优美,配套设施齐全。");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::lblRestaurantClick(TObject *Sender)
{
ShowMessage("同学们解决温饱的地方。");
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnLeaveClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
G.vexnum=12;
G.arcnum=17;
G.vexs[0]="校门"; G.vexs[1]="圆环";
G.vexs[2]="图书馆"; G.vexs[3]="教学楼";
G.vexs[4]="行政楼"; G.vexs[5]="计算中心";
G.vexs[6]="语音楼"; G.vexs[7]="实验楼";
G.vexs[8]="山顶公园"; G.vexs[9]="运动场";
G.vexs[10]="学生公寓"; G.vexs[11]="饭堂";
for(int a=0;a<=11;a++)
for(int b=0;b<=11;b++)
G.arcs[a][b].Length=MAX;
G.arcs[0][1].Length=200;
G.arcs[1][0].Length=200; G.arcs[1][2].Length=20;
G.arcs[1][3].Length=20; G.arcs[1][4].Length=20;
G.arcs[2][1].Length=20; G.arcs[2][3].Length=20;
G.arcs[2][10].Length=350;
G.arcs[3][1].Length=20; G.arcs[3][2].Length=20;
G.arcs[3][4].Length=20; G.arcs[3][8].Length=50;
G.arcs[4][1].Length=20; G.arcs[4][3].Length=20;
G.arcs[4][5].Length=20;
G.arcs[5][4].Length=20; G.arcs[5][6].Length=20;
G.arcs[6][5].Length=20; G.arcs[6][7].Length=40;
G.arcs[7][6].Length=40; G.arcs[7][9].Length=50;
G.arcs[8][3].Length=50; G.arcs[8][9].Length=50;
G.arcs[8][10].Length=150;
G.arcs[9][7].Length=50; G.arcs[9][8].Length=50;
G.arcs[9][10].Length=350;
G.arcs[10][2].Length=350; G.arcs[10][11].Length=20;
G.arcs[11][10].Length=20;
int v,w,u,i;
for(v=0;v<=11;v++)
for(w=0;w<=11;w++)
{
D[v][w]=G.arcs[v][w].Length;
for(u=0;u<=11;u++)
P[v][w][u]=false;
if(D[v][w]<MAX)
{
P[v][w][v]=true;
P[v][w][w]=true;
}
}
for(u=0;u<=11;u++)
for(v=0;v<=11;v++)
for(w=0;w<=11;w++)
if(D[v][u]+D[u][w]<D[v][w])
{
D[v][w]=D[v][u]+D[u][w];
for(i=0;i<=11;i++)
P[v][w][i]=(P[v][u][i] || P[u][w][i]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnFindClick(TObject *Sender)
{
start=cbxStart->ItemIndex;
end=cbxEnd->ItemIndex;
for(int i=0;i<=11;i++)
{
if(P[start][end][i])
{
switch(i)
{
case 0 :lblDoor->Color=clLime;
shpDoor->Brush->Color=clLime;break;
case 1 :lblCircle->Color=clLime;
shpCircle->Brush->Color=clLime;break;
case 2 :lblBook->Color=clLime;
shpBook->Brush->Color=clLime;break;
case 3 :lblStudy->Color=clLime;
shpStudy->Brush->Color=clLime;break;
case 4 :lblManage->Color=clLime;
shpManage->Brush->Color=clLime;break;
case 5 :lblComputer->Color=clLime;
shpComputer->Brush->Color=clLime;break;
case 6 :lblLanLab->Color=clLime;
shpLanLab->Brush->Color=clLime;break;
case 7 :lblLab->Color=clLime;
shpLab->Brush->Color=clLime;break;
case 8 :lblPark->Color=clLime;
shpPark->Brush->Color=clLime;break;
case 9 :lblGround->Color=clLime;
shpGround->Brush->Color=clLime;break;
case 10:lblFlats->Color=clLime;
shpFlats->Brush->Color=clLime;break;
case 11:lblRestaurant->Color=clLime;
shpRestaurant->Brush->Color=clLime;break;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnResetClick(TObject *Sender)
{
lblDoor->Color=clMoneyGreen;
shpDoor->Brush->Color=clMoneyGreen;
lblCircle->Color=clMoneyGreen;
shpCircle->Brush->Color=clMoneyGreen;
lblBook->Color=clMoneyGreen;
shpBook->Brush->Color=clMoneyGreen;
lblStudy->Color=clMoneyGreen;
shpStudy->Brush->Color=clMoneyGreen;
lblManage->Color=clMoneyGreen;
shpManage->Brush->Color=clMoneyGreen;
lblComputer->Color=clMoneyGreen;
shpComputer->Brush->Color=clMoneyGreen;
lblLanLab->Color=clMoneyGreen;
shpLanLab->Brush->Color=clMoneyGreen;
lblLab->Color=clMoneyGreen;
shpLab->Brush->Color=clMoneyGreen;
lblPark->Color=clMoneyGreen;
shpPark->Brush->Color=clMoneyGreen;
lblGround->Color=clMoneyGreen;
shpGround->Brush->Color=clMoneyGreen;
lblFlats->Color=clMoneyGreen;
shpFlats->Brush->Color=clMoneyGreen;
lblRestaurant->Color=clMoneyGreen;
shpRestaurant->Brush->Color=clMoneyGreen;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -