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

📄 utravel.cpp

📁 校园导游模拟系统,主要是演示数据结构中图的路径的算法,是数据结构的课程设计
💻 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 + -