当前位置: 首页 > news >正文

项目前期1.0

今天是项目的第二天

昨天一顿迷茫,可恶

今天啥也不关先来点基本的构架

#include<queue>//队列
#define FALSE 0
#define TRUE 1
#define ERROR 0
#define OK 1
#define nocnect 999999//未链接的距离
#define maxplace 31//景区的观景点的最大个30数不要0下标的
#define SpotName 30//景点名字字符串长度

 前面的定义先,对于一些功能的时候(bfs)的时候要用到队列,本来想写的,但是呀

c++可以直接实现就没写了.

typedef struct {int elem[maxplace];//记录最短路径上的顶点序号int top;
}PathStack;
//顺序栈

第一个对栈的定义

int stackStar(PathStack* S) {S->top = 0;return OK;
}
//栈的初始化int StackIsEmpty(PathStack S) {if (S.top == 0) {return TRUE;}return FALSE;
}
//检查栈是否为空int Push(PathStack* S, int e) {if (S->top == maxplace) {return ERROR;}S->elem[S->top] = e;S->top++;return OK;
}
//入栈int Pop(PathStack* S, int* e) {if (S->top == 0) {return ERROR;}S->top--;*e = S->elem[S->top];
}
//出栈

栈的各种操作

用栈的主要的

要是有删除景点的地点个话可以标记

typedef struct palceDrop {char name[50];//名字int number;//编号char brief_introduction[500];//简介
}drop;
//进去地点的节点

定义的基本7的节点,目前就写了,这些后面也许会添加一些 

typedef struct {palceDrop  drops[maxplace];double map[maxplace + 1][maxplace + 1];//邻接矩阵int Points, edges;//当前顶点数、边数
}AMGraph;
//地图的全部,边,点,节点数组,矩阵存边

这是总地图 ,包含了节点数组

有节点的个数,以及边的条数(有的景点未必可通的)
图的遍历,最短路以及floyed

typedef struct {int p[maxplace + 1];//标记该顶点是否已求出最短路径p[]数组double Shortest[maxplace + 1];//记录当前到i的最短路径t[]数组int PrePath[maxplace + 1];//记录当前最短路径的前驱顶点以及next
}Dij_AssistArray;
//djs的辅助数组
typedef struct {double Shortest[maxplace + 1][maxplace + 1];//记录当前最短路径int PrePath[maxplace + 1][maxplace+ 1];//记录当前最短路径的前驱顶点
}Floyd_AssistArray;
//floyed的辅助数组

直接定义,不用定义成山散乱的变量了

用的会更方便

写这项目,肯定会用到的

但是djsterl我还没想好咋用,floyed可以直接用求各个景点的最近的距离

单源最短路大概会用在使用者依据自己当前的距离来计算最短路

void enterData(AMGraph* f) {FILE* fp = fopen("D:\\xunlei\\wyclx\\景区旅游咨询系统\\data1.txt", "r");FILE* fd = fopen("D:\\xunlei\\wyclx\\景区旅游咨询系统\\data2.txt", "r");if (fp == NULL || fd == NULL) {printf("位置错误,文件未打开\n");exit(0);}fscanf(fp, "%d", f->Points);//点数fscanf(fp, "%d", f->edges);//边数for (int h = 1; h <= f->Points;h++)for (int j = 1;j <= f->Points;j++)f->map[h][j] = nocnect;//初始化for (int h = 1;h <= f->Points;h++)f->drops[h].number = h;//编号的初始化for (int p = 1;p <= f->edges;p++) {int x=0;//点1int y=0;//点2double ll=0;//两个景点的距离fscanf(fp, "%d", x);fscanf(fp, "%d", y);fscanf(fp, "%lf", ll);f->map[x][y] = ll;f->map[y][x] = ll;//双向的}//对景点距离的录入,完善地图for (int h = 1;h <= f->Points;h++) {fscanf(fd, "%s", f->drops[h].name);char a[200];while(fscanf(fd, "%s", a) != 0)strcpy(f->drops[h].brief_introduction, a);}//对名字以及简介的输入fclose(fp);fclose(fd);
}
//对数据的输入(暂时没有计算最短路)

文件的操作,但是还只是测试了一部分,还未全测试完

对于文件的操作还是不熟悉,用的实在是太少了

void star() {AMGraph* f = (AMGraph*)malloc(sizeof(AMGraph));enterData(f);Floyd_AssistArray* fl = (Floyd_AssistArray*)malloc(sizeof(Floyd_AssistArray));floyedachieve(f,fl);}
//开始入口函数(未完成)

入口函数 ,暂时的话还未完成目前只有,定义地图,以及求广源的最短路,之后的话会把菜单以及,其他的东西加入慢慢的补全

题目的话今天打了,测试暂时讲不出个啥

被薄纱了,玩不了一点!!!

先搞好项目,回头要把场子找回来

今天

先到这了,撒花谢幕

 


  


http://www.lryc.cn/news/60314.html

相关文章:

  • MySQL语句执行耗时分析
  • FVM链的Themis Pro(0x,f4) 5日IDO超百万美元,领Filecoin重回高点
  • 【PMP】优秀的项目经理如何做好范围管理?
  • 【Linux】 密码相关。pwconv
  • 揭秘阿里新大招:大模型只是前菜
  • 【U8+】win10/11系统注册用友U8硬加密
  • SQL Server 服务器安装配置和使用
  • Spring常见面试题汇总
  • javaEE汽车用油加油站销售管理系统servlet
  • CSS动画
  • 《花雕学AI》21:ChatGPT能否应对脑筋急转弯?逻辑推理和创造性思维的大考验!
  • 【Vue】学习笔记-列表渲染/数据监视
  • 人工标注或成过去式?SSA语义分割框架、SSA-engine自动类别标注引擎,大幅提升细粒度语义标注效率
  • 远程工具在哪里打开?使用教程
  • HBase高手之路7—HBase之全文检索Phoneix
  • 城镇水务系统碳减排路径|雨水系统
  • 摆花
  • newman结合jenkins实现自动化测试
  • 九种 OOM 常见原因及解决方案(IT枫斗者)
  • 远程代码执行渗透与防御
  • Activiti7原生整合和工作流相关概念详解
  • 核心业务4:标的管理
  • 面向计算机视觉的深度学习:6~10
  • 【LeetCode 图论 一】初探有向图Directed Graph
  • 计算机视觉:图片数据的预处理
  • 探秘C++中的神奇组合:std--pair的魅力之旅
  • Win10搭建我的世界Minecraft服务器「内网穿透远程联机」
  • 基于springboot和ajax的简单项目 02 代码部分实现,xml文件sql语句优化 (中)
  • LNMP架构部署
  • SpringBoot 防护XSS攻击