#include "mainwindow.h"
#include "graph.h"
#include "ui_mainwindow.h"
#include <QPainter>
#include <QMessageBox>
#define WIN_WIGHT 1500
#define WIN_HEIGHT 800
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
setFixedSize(WIN_WIGHT,WIN_HEIGHT);
pix=QPixmap(WIN_WIGHT,WIN_HEIGHT);
pix.fill(Qt::white);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::drawline(int x1,int y1,int x2,int y2, QColor const c)
{
QPainter painter(&pix);
painter.setPen(QPen(c));
QLineF line(x1,y1,x2,y2);
painter.drawLine(line);
update();
}
void MainWindow::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.drawPixmap(0,0,WIN_WIGHT,WIN_HEIGHT,pix);
}
void MainWindow::on_recommendpath_clicked()
{ Graph graph;
graph.Init();
Graph::Vex vexs[SIZE];
Graph::Edge edges[SIZE*SIZE];
memset(vexs,0,sizeof (vexs));
memset(edges,0,sizeof (edges));
graph.createScenicSpot(vexs,edges);
for(int i = 0;i < 7;i++)
graph.InsertVex(vexs[i]);
for(int i = 0;i < 11;i++)
graph.InsertEdge(edges[i]);
Graph::Edge temp[11];
graph.MST(temp);//最小生成树,推荐游览路径
pix.fill(Qt::white);
int B1X,B1Y,B2X,B2Y;
QPoint p1,p2;
for(int i = 0;i < 11;i++){
switch (temp[i].vex1) {
case 0:
p1=ui->spot1_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 1:
p1=ui->spot2_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
//printf("x1:%d y1:%d x2:%d y2:%d \n",B1X,B1Y,B2X,B2Y);
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 2:
p1=ui->spot3_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 3:
p1=ui->spot4_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 4:
p1=ui->spot5_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 5:
p1=ui->spot6_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=ui->spot4_3->mapToGlobal(QPoint(0,0));
break;
case 4:
p2=ui->spot5_3->mapToGlobal(QPoint(0,0));
break;
case 5:
p2=ui->spot6_3->mapToGlobal(QPoint(0,0));
break;
case 6:
p2=ui->spot7_3->mapToGlobal(QPoint(0,0));
break;
}
B2X=p2.x(),B2Y=p2.y();
drawline(B1X,B1Y,B2X,B2Y,QColor(255,0,0));
break;
case 6:
p1=ui->spot7_3->mapToGlobal(QPoint(0,0));
B1X=p1.x(),B1Y=p1.y();
switch(temp[i].vex2){
case 0:
p2=ui->spot1_3->mapToGlobal(QPoint(0,0));
break;
case 1:
p2=ui->spot2_3->mapToGlobal(QPoint(0,0));
break;
case 2:
p2=ui->spot3_3->mapToGlobal(QPoint(0,0));
break;
case 3:
p2=
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip基于QT实现简单的景点管理系统c++源码(课程设计).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于QT实现简单的景点管理系统c++源码(课程设计).zip (27个子文件)
项目说明.md 724B
build-scenicInfoManagement-Desktop_Qt_5_12_10_MinGW_32_bit-Debug
Makefile 28KB
debug
graph.o 105KB
moc_mainwindow.cpp 5KB
moc_mainwindow.o 448KB
mainwindow.o 756KB
scenicInfoManagement.exe 1.72MB
main.o 525KB
moc_predefs.h 14KB
Makefile.Release 38KB
ui_mainwindow.h 13KB
Makefile.Debug 38KB
scenicInfoManagement
mainwindow.h 692B
scenicInfoManagement.pro.user 44KB
鸟巢.png 26KB
mainwindow.cpp 34KB
ѧУ.png 10KB
main.cpp 205B
颐和园.png 24KB
scenicInfoManagement.pro 646B
香山公园.png 20KB
mainwindow.ui 13KB
天安门.png 33KB
天坛.png 28KB
长城.png 35KB
graph.cpp 10KB
graph.h 1KB
共 27 条
- 1
资源评论
- 海豚de菌菇2024-09-13资源内容详尽,对我有使用价值,谢谢资源主的分享。
onnx
- 粉丝: 9632
- 资源: 5598
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功