QT地铁路线查询项目(四)

您所在的位置:网站首页 北京地铁线路图展示 QT地铁路线查询项目(四)

QT地铁路线查询项目(四)

2024-07-04 07:01| 来源: 网络整理| 查看: 265

1,项目基本介绍

        该项目主要是实现了广州地铁的路线查询,地铁站点数据主要是yin项目开发框架采用了QT 框架,采用了C++开发语言,项目界面比较简单,主要应用了QT的一些基本的UI控件,核心基础主要是地体的查询算法和换成算法,小伙伴可以根据自己所在的家乡或者城市可以更改自己家乡的地铁站点信息,来进行验证和实现自己想要的结果。效果图和代码介绍如下

2 代码介绍

    2.1头文件

#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include using namespace std; #define M 241 //队列结构体 typedef struct { int q[10000]; //队头、队尾 int f,r; }queue; //站点信息 struct StationInfo { int id; int line; int istransfer; char staname[20]; }; static struct StationInfo sta[239]={ {1,1,1,"西塱"}, {2,1,0,"坑口"}, {3,1,0,"花地湾"}, {4,1,0,"芳村"}, {5,1,1,"黄沙"}, {6,1,0,"长寿路"}, {7,1,1,"陈家祠"}, {8,1,0,"西门口"}, {9,1,1,"公园前"}, {10,1,0,"农讲所"}, {11,1,0,"烈士陵园"}, {12,1,1,"东山口"}, {13,1,1,"杨箕"}, {14,1,1,"体育西路"}, {15,1,0,"体育中心"}, {16,1,1,"广州东站"}, {17,2,1,"广州南站"}, {18,2,1,"石壁"}, {19,2,0,"会江"}, {20,2,0,"南浦"}, {21,2,0,"洛溪"}, {22,2,1,"南洲"}, {23,2,0,"东晓南"}, {24,2,0,"江泰路"}, {25,2,1,"昌岗"}, {26,2,0,"江南西"}, {27,2,0,"市二宫"}, {28,2,1,"海珠广场"}, {29,2,0,"纪念堂"}, {30,2,0,"越秀公园"}, {31,2,1,"广州火车站"}, {32,2,0,"三元里"}, {33,2,0,"飞翔公园"}, {34,2,0,"白云公园"}, {35,2,0,"白云文化广场"}, {36,2,0,"萧岗"}, {37,2,0,"江夏"}, {38,2,0,"黄边"}, {39,2,1,"嘉禾望岗"}, {40,3,0,"番禺广场"}, {41,3,0,"市桥"}, {42,3,1,"汉溪长隆"}, {43,3,0,"大石"}, {44,3,0,"厦滘"}, {45,3,1,"沥滘"}, {46,3,0,"大塘"}, {47,3,1,"客村"}, {48,3,0,"广州塔"}, {49,3,1,"珠江新城"}, {50,3,0,"石牌桥"}, {51,3,0,"岗顶"}, {52,3,0,"华师"}, {53,3,0,"五山"}, {54,3,1,"天河客运站"}, {55,3,0,"林和西"}, {56,3,1,"燕塘"}, {57,3,0,"梅花园"}, {58,3,0,"京溪南方医院"}, {59,3,0,"同和"}, {60,3,0,"永泰"}, {61,3,0,"白云大道北"}, {62,3,0,"龙归"}, {63,3,0,"人和"}, {64,3,1,"高增"}, {65,3,0,"机场南"}, {66,3,1,"机场北"}, {67,4,0,"南沙客运港"}, {68,4,0,"南横"}, {69,4,0,"塘坑"}, {70,4,0,"大涌"}, {71,4,0,"广隆"}, {72,4,0,"飞沙角"}, {73,4,0,"金洲"}, {74,4,0,"蕉门"}, {75,4,0,"黄阁"}, {76,4,0,"黄阁汽车城"}, {77,4,0,"庆盛"}, {78,4,0,"东涌"}, {79,4,0,"低涌"}, {80,4,0,"海傍"}, {81,4,0,"石碁"}, {82,4,0,"新造"}, {83,4,1,"大学城南"}, {84,4,0,"大学城北"}, {85,4,0,"官洲"}, {86,4,1,"万胜围"}, {87,4,1,"车陂南"}, {88,4,0,"车陂"}, {89,4,1,"黄村"}, {90,5,0,"滘口"}, {91,5,1,"坦尾"}, {92,5,0,"中山八"}, {93,5,0,"西场"}, {94,5,1,"西村"}, {95,5,0,"小北"}, {96,5,0,"淘金"}, {97,5,1,"区庄"}, {98,5,0,"动物园"}, {99,5,0,"五羊邨"}, {100,5,0,"猎德"}, {101,5,0,"潭村"}, {102,5,0,"员村"}, {103,5,0,"科韵路"}, {104,5,0,"东圃"}, {105,5,0,"三溪"}, {106,5,0,"鱼珠"}, {107,5,0,"大沙地"}, {108,5,0,"大沙东"}, {109,5,0,"文冲"}, {110,6,0,"浔峰岗"}, {111,6,0,"横沙"}, {112,6,0,"沙贝"}, {113,6,0,"河沙"}, {114,6,0,"如意坊"}, {115,6,0,"文化公园"}, {116,6,0,"一德路"}, {117,6,0,"北京路"}, {118,6,0,"团一大广场"}, {119,6,0,"东湖"}, {120,6,0,"黄花岗"}, {121,6,0,"沙河顶"}, {122,6,0,"天平架"}, {123,6,0,"长湴"}, {124,6,0,"植物园"}, {125,6,0,"龙洞"}, {126,6,0,"柯木塱"}, {127,6,0,"高塘石"}, {128,6,0,"黄陂"}, {129,6,0,"金峰"}, {130,6,0,"暹岗"}, {131,6,0,"苏元"}, {132,6,0,"萝岗"}, {133,6,0,"香雪"}, {134,7,0,"香谢村"}, {135,7,0,"钟村"}, {136,7,0,"南村万博"}, {137,7,0,"员岗"}, {138,7,0,"板桥"}, {139,8,0,"滘心"}, {140,8,0,"亭岗"}, {141,8,0,"石井"}, {142,8,0,"小坪"}, {143,8,0,"石潭"}, {144,8,0,"聚龙"}, {145,8,0,"上步"}, {146,8,0,"同德"}, {147,8,0,"鹅掌坦"}, {148,8,0,"彩虹桥"}, {149,8,0,"华林寺"}, {150,8,0,"同福西"}, {151,8,0,"凤凰新村"}, {152,8,1,"沙园"}, {153,8,0,"宝岗大道"}, {154,8,0,"晓港"}, {155,8,0,"中大"}, {156,8,0,"鹭江"}, {157,8,0,"赤岗"}, {158,8,0,"磨碟沙"}, {159,8,0,"新港东"}, {160,8,0,"琶洲"}, {161,9,0,"飞鹅岭"}, {162,9,0,"花都汽车城"}, {163,9,0,"广州北站"}, {164,9,0,"花城路"}, {165,9,0,"花果山公园"}, {166,9,0,"花都广场"}, {167,9,0,"马鞍山公园"}, {168,9,0,"莲塘"}, {169,9,0,"清布"}, {170,9,0,"清塘"}, {171,13,0,"裕丰围"}, {172,13,0,"双岗"}, {173,13,0,"南海神庙"}, {174,13,0,"夏园"}, {175,13,0,"南岗"}, {176,13,0,"沙村"}, {177,13,0,"白沙"}, {178,13,0,"新塘"}, {179,13,0,"官湖"}, {180,13,0,"新沙"}, {181,14,0,"白云东平"}, {182,14,0,"夏良"}, {183,14,0,"太和"}, {184,14,0,"竹料"}, {185,14,0,"钟落潭"}, {186,14,0,"马沥"}, {187,14,1,"新和"}, {188,14,0,"太平"}, {189,14,0,"神岗"}, {190,14,0,"赤草"}, {191,14,0,"从化客运站"}, {192,14,0,"东风"}, {193,14,0,"红卫"}, {194,14,0,"新南"}, {195,14,0,"枫下"}, {196,14,0,"知识城"}, {197,14,0,"何棠下"}, {198,14,0,"旺村"}, {199,14,0,"汤村"}, {200,14,0,"镇龙北"}, {201,14,1,"镇龙"}, {202,21,0,"天河公园"}, {203,21,0,"棠东"}, {204,21,0,"大观南路"}, {205,21,0,"天河智慧城"}, {206,21,0,"神舟路"}, {207,21,0,"科学城"}, {208,21,0,"水西"}, {209,21,0,"长平"}, {210,21,0,"金坑"}, {211,21,0,"镇龙西"}, {212,21,0,"中新"}, {213,21,0,"坑贝"}, {214,21,0,"凤岗"}, {215,21,0,"朱村"}, {216,21,0,"山田"}, {217,21,0,"钟岗"}, {218,21,0,"增城广场"}, {219,15,0,"新城东"}, {220,15,0,"东平"}, {221,15,0,"世纪莲"}, {222,15,0,"澜石"}, {223,15,0,"魁奇路"}, {224,15,0,"季华园"}, {225,15,0,"同济路"}, {226,15,0,"祖庙"}, {227,15,0,"普君北路"}, {228,15,0,"朝安"}, {229,15,0,"桂城"}, {230,15,0,"南桂路"}, {231,15,0,"礌岗"}, {232,15,0,"千灯湖"}, {233,15,0,"金融高新区"}, {234,15,0,"龙溪"}, {235,15,0,"菊树"}, {236,15,0,"鹤洞"}, {237,15,0,"沙涌"}, {238,15,0,"燕岗"}, {239,15,0,"石溪"}, }; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); protected: void paintEvent(QPaintEvent *); public: //入队操作 void enq(queue *Q,int x); //取队头元素 int front(queue *Q); //出队操作 void dep(queue *Q); //判断队列是否为空队列 int qempty(queue Q); //将地图初始化 void readgraph(); // //寻找最短路径 void shortest(int a,int b); // //打印路径 void writepath(int a,int b); QString printPayh(int a,int b); // 查找 int search(QString str); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; //队列声明 queue m_Q; //站点总数 int m_n; int m_i,m_j,m_x,m_y; //判断是否结束的标志 int m_finished; //表示连接关系的矩阵 int nodelist[M][M]; int z[M]; QImage m_Image;//摄像机背景图片 }; #endif // MAINWINDOW_H

2.2 Cpp实现文件

#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setMinimumSize(1280, 860); setMaximumSize(1280, 860); m_Image = QImage(":/bg.png"); QStringList strList; for(int i=0; ilineEdit_end->setCompleter(pEndCompleter); } MainWindow::~MainWindow() { delete ui; } void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing); painter.save(); int offset = 2; if(!m_Image.isNull()) { QRect rect(offset / 2, offset / 2, width() - offset, height()-offset); painter.drawImage(rect, m_Image); } painter.restore(); } QString MainWindow::printPayh(int a,int b) { QStringList strList; //将地图初始化 m_i=b; int index = 0; while(m_i!=a) { QString strtmp,strEnd; if(sta[m_i-1].istransfer) { strtmp = QString(QStringLiteral("(换乘%1号线)%2")).arg(sta[m_i-1].line).arg(QString::fromLocal8Bit(sta[m_i-1].staname)); } else { strtmp = QString(QStringLiteral("%1")).arg(QString::fromLocal8Bit(sta[m_i-1].staname)); } strEnd = QString(QStringLiteral("%1[终点站]")).arg(QString::fromLocal8Bit(sta[m_i-1].staname)); if(index == 0) { strList


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3