校园导航系统

校园导航系统
校园导航系统

题号:第七题

题目:校园导航问题

1,需求分析:

设计你的学校的平面图,至少包括10个以上的景点(场所),每两个景点间可以有不同的路,且路长也可能不同,找出从任意景点到达另一景点的最佳路径(最短路径)。

要求:

(1)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。

(2)为来访客人提供图中任意景点相关信息的查询。

(3)为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。

(4)修改景点信息。

实现提示:

一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。顶点和边均含有相关信息。

选做内容:

(1)提供图的编辑功能:增、删景点;增、删道路;修改已有信息等。

(2)校园导游图的仿真界面。

2,设计:

2.1 设计思想:

<1>,数据结构设计:

(1)图。采用邻接矩阵存储,其中图所用到的结构体为:

typedef struct

{

SeqList vertices; //表示图中的顶点

int Edge[MaxVertices][MaxVertices]; //表示图中的边

int numOfEdge; //表示图中边的数目

}AdjMGraph;

(2)景点。用顺序表存储。所用到的结构体为:

typedef struct

{

char name[20]; //顶点名称

int code; //顶点代号

char introduction[50]; //顶点信息简介

}DataType;

(3)景点之间的连接描述,所用到的结构体为:

typedef struct

{

int row;

int col;

int weight;

}RowColWeight;

用图来存放所提供的所有景点,然后用线性表来存放每一个景点的信息,其中包括景点的名称,代号,信息简介,以及其它的一些信息。这样就将对景点的

操作,变成对图中各顶点的操作。

<2>,算法设计:

关于本课题的算法,很大部分来源于这学期数据结构课程的学习,其中包括:

图的创建,线性表的一些操作。对于具体的问题实现,都有不同的算法,在下面的分析中,我将详细说明

2.2 设计表示:

<1>, 函数调用关系及函数说明:

首先,main()函数调用Creat()函数,用来创建图,然后调用menu()函数来选择用户所要进行的操作。其中menu()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。

对于要求1:以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。图的创建设计流程图为:

Creat()函数原型为:

void Creat(AdjMGraph *G, DataType v[], RowColWeight E[], int n,int e)

其中,G为所创建的图结构体对象,v[] 为所有顶点的集合,它是DataType 型,这个类型前面已经介绍过;E[] 存放着各顶点之间的连接关系,它是RowColWeight型,前面也介绍过;n表示顶点的个数;e表示边数。

Creat()函数的功能就是实现图的创建,将已知的景点的一些信息,转换成图的信息,并进行存储。

对于要求2:为来访客人提供图中任意景点相关信息的查询。流程图为:

menu()函数的原型为:

void menu() 他就是一个菜单,供用户选择他们所要进行的操作。

Information1()函数原型为:

void Information1() 它的功能就是输入查询景点的信息,并调用Information()

Information()函数原型为:

void Information(AdjMGraph G, char scenery[]) G 依然是所创建的图的结构

体对象,后面所有的G 都是表示这个意思;scenery[] 是在Information1() 中输入的景点的名称。此函数的功能就是根据输入的景点的名称来查询其相关的信息。

对于要求3:为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。流程图为:

Path1()函数原型为:

void Path1() 它的功能就是输入查询景点的名称,并调用Path()

Path ()函数原型为:

v oid Path(AdjMGraph G,char sceneryname[], char sceneryname1[]) 其中sceneryname[], sceneryname1[] 就是在Path1()函数中所输入的景点的名称,这个函数的功能就是通过这两个景点的名称找到它们在线性表中的位置,然后调用Floyd()

函数,查找出它们的最短路径,并输出所要的信息。

Floyd()函数原型为:

void Floyd (int cost[][ MaxVertices],int n,int weight[][MaxVertices],int path[][MaxVertices]) 其中参数cost[][ MaxVertices]即是图中边的邻接存储矩阵,weight[][MaxVertices]用来存放经此算法后的各顶点间的最短路径的值,path[][MaxVertices]就是每两个顶点之间最短路径中到达目的顶点的前一个顶点的位置。Path()函数中的输出信息就是据此而来。

对于要求4:修改景点信息。流程图为:

Modify()函数原型为:

void Modify() 它不带任何参数,功能是通过手动输入景点名称,然后找到景点的存储空间,然后在修改相应的信息。

对于选做要求:增加景点。其工作流程图为:

AddVertic()函数原型为:

void AddVertic() 他不带任何参数,该函数的功能是在这个函数里面输入景点的信息,然后调用ListInsert()函数,将所要增加的顶点信息插入到线性表中。

ListInsert()函数原型为:

void ListInsert(SeqList *L, int i, DataType x) 参数L表示顶点存储的线性表,i表示要插入的位置,x表示要插入的景点的信息。同时我在插入顶点时也将他与其他顶点之间的距离设置为MaxWeight,这样做主要是为了方便在Floyd函数里面求最短路径

对于选做要求:删除景点。其工作流程图为

DeleteVertic()函数原型为:

void DeleteVertic() 他不带任何参数,该函数的功能就是在函数体里面输入要删除的景点的名称,然后根据名称找到该景点在线性表中的存储位置,然后调用线性表中的ListDelete ()函数进行相应顶点的删除。

ListDelete ()函数原型为:

ListDelete(SeqList *L, int i, DataType *x) 其中参数L为存放顶点信息的线性表,i表示要删除顶点在线性表中的存放位置,,x就是要删除的那一个景点。它的功能就是从线性表中删除指定的顶点。

对于选做要求:增、删道路,流程图为:

AddRoad()和DeleteRoad()两函数原型为:

void AddRoad()和void DeleteRoad()。这两个函数都不带参数,它们的功能就是在这两个函数里面输入要删除要增加或者的边连接的两个景点的名称,然后在线性表中找到这两个景点的相对存储空间,最后调用InsertEdge ()或者DeleteEdge ()函数。

InsertEdge ()和DeleteEdge ()两函数原型为:

void InsertEdge(AdjMGraph *G, int v1, int v2, int weight)

void DeleteEdge(AdjMGraph *G, int v1, int v2) 这两个函数中同名参数所代表的意义是相同的,其中v1, v2是所输入景点在线性表中的相对位置;weight就是增加的边的权值

<2>函数接口说明

我所设计整个程序就是一些子函数的集合,每个功能都对应一个或者几个子函数,他们之间可以没有任何限制,只要能保证程序正确运行就可以调用,特别是AdjMGraph.h , AdjMGraph.h和SeqList.h头文件之中的函数,他们被很多函数调用过。这其中都没有任何特殊类型的函数

2.3 详细设计:

根据题目分析,对于信息查询与修改功能,设计如下:

1,输入景点名称

2,从线性表头扫描到表尾,

if(找到该景点) 输出景点结构体信息

else 输出提示信息找不到该顶点

实现查找最短路径,设计如下:

1,景点名称

2,根据输入的信息找到它们所在的线性表中的位置

3,调用Floyd算法找出最短路径

4,输出信息

实现增删景点功能,设计如下:

1,增加或者删除景点的名称

2,if(输入景点),将景点信息保存在相应的结构体中,并插入到线性表尾;

if(删除景点),找到景点在线性表中所在的位置,然后将景点信息从线性表中删除实现增删道路功能,设计如下:

1,入增加或删除道路连接的两个景点的名称;

2,找到它们的相对位置;

3,if(删除道路),将连接它们的边置为MaxWeight;

if(增加道路),将输入的边值赋给相应的邻接矩阵表;

3,调试分析:

<1>,调试过程中遇到的问题与解决方案:

1, 关于最短路径的输出问题。在进行最短路径输出时,我刚开始时只能正序输出,具体的描述为:比如,我要查寻从东区到东湖的最短路径,那么它能正确输出结果,他的形式为:东区——>主楼——>西体育馆——>隧道——>北大门——>东湖。但是,当我逆向输出时,得到的结果却有点问题,经过分析调试后,找到了错误的所在。在找最短路径的时候我用的是Floyd算法,在这个算法中有三重循环,形式均为:for(k=0;k

2,关于新增加景点后再找最短路径问题。比如我再新增一个景点,如北区食堂,并输入相关信息,然后插入到线性表尾,当我再找从东区到东湖的最短距离时,输出的最短路径将变为:东区——>食堂——>东湖。经过分析调试后,其原因也是出在Floyd算法那,在Floyd算法中,有这么一个判断if(weight[i][j]>weight[i][k]+weight[k][j]),由于我在输入新景点信息时并没有建立它与其它景点之间的连接信息,所以在图中,该新景点与其它景点之间的边得连接信息是空的,也就是说在邻接矩阵中,它的边得信息是空的,那么在进行if(weight[i][j]>weight[i][k]+weight[k][j])判断时weight[新增景点序号][其它景点序号]的值将是一个很大的负数,所以最短路径将会出错。解决这个问题的方法就是在增加新景点时就将它与其它景点之间的边(距离)设置为MaxWeight,这时如果再用Floyd函数进行最短路径的求解时就不会再出现问题了。

另外,在做这个题时也还出现过一些其他的小问题,不过都比较容易解决,这里我就不再列出了……

<2>,算法的时空复杂度分析

对应题目的要求,我总共提供了八个选项操作对于每一个操作的分析如下:

1,相关信息的查询。在这个操作中允许使用者输入一个景点名称,然后再根据景点名称来或取其相关的信息,这个操作要扫描线性表,其时间复杂度为o(n),空间复杂度为o(n);

2,最短路径查询。实现这个功能用到了Floyd算法,他用到了一个三重的for()循环,故其时间复杂度为o(n^3),空间复杂度为o(1);

3,修改景点信息。要修改信息,必须首先找到景点所在的存储位置,那么就需要扫描线性表,其时间复杂度为o(n),空间复杂度为o(1);

4,增加景点。增加景点信息时,直接将此景点结构体信息插入到线性表表尾,而不需要进行遍历,其时间复杂度与空间复杂度均为o(1);

5,删除景点。删除景点时必须找到所要删除景点所在的位置,这样就必须遍历线性表,除此之外,删除后线性表还要进行移动操作,其时间复杂度为o(n),空间复杂度为o(n1);

6,增加道路。增加道路也要扫描线性表,找到要增加路的两景点的存储位置,然后再根据找到的存储位置去改变邻接矩阵的边的值,改变邻接矩阵的时间复杂度为o(1),其总时间消耗在线性表的扫描上,故最终其时间复杂度为o(n),空间复杂度为o(1);

7,删除道路。删除道路和增加道路类似,都是先找到存储位置,然后再改变邻接矩阵,它的时空复杂度分别为o(n) ,o(1);

8,浏览所有景点。浏览所有景点的实质就是从头到尾遍历线性表,然后输出遍历到的节点的信息,其时间复杂度为o(n),空间复杂度为o(1)。

4,用户手册:

使用说明:当用户将程序经过编译,连接后,点击运行,在DOS环境里面将看到一个选项菜单,菜单里面提供了8种操作,同时输出了一行提示信息:请选择您想进行的操作。然后用户可以输入一个1——8之间的数字进行选择性的操作,例如,您想进行信息的查询操作,您可以从键盘输入数字‘1’;当然,一般而言先应该进行“浏览所有景点名称”操作。如果您选择了浏览所有景点名称操作,在屏幕上将会显示出10个景点的名称,这些景点是事先加进去的,用户可以对这些景点进行任何程序所提供的操作。

下面,我将详细介绍本程序的使用方法:在浏览景点后,菜单将会继续显示出来,为您提供操作选择。

如果您想进行“相关信息的查询”操作,输入数字‘1’,然后程序将会提醒您输入查询景点的名称,在您输入景点名称后回车即可。

如果您想进行“最短路径查询”操作,首先输入数字‘2’,然后程序将会提醒您输入查询的景点的名称,您输入按要求输入所提供的两个景点名称即可,要注意的是景点名称间以空格隔开,最后程序就会告诉您最短的路径,以及最短路的长度。

如果您想修改景点的信息,同样先输入数字‘3’,然后程序就会提醒您输入所要修改景点的名称,您可以根据要求输入一个景点的名称,然后回车,之后屏幕上就会显示您所输入的景点的所有信息,同时会有三个修改选项供用户选择,然后您可以输入1——3之间的一个数字进行选择性的修改。比如,您可以输入‘1’对景点名称进行修改,修改完后又会返回到菜单项继续选择。

如果您想进行“增加景点”操作,可以输入数字‘4’,然后程序就会提示您输入新增加的景点的名称,代号,信息简介,各种输入之间以空格隔开。当输入完毕后回车,景点也就成功加入了,然后用户可以再次选择第八项操作浏览所有景点名称,检测新输入的景点是否已经成功添加。

如果您想进行“删除景点”操作,可以输入数字‘5’,回车后系统将会提示您输入要删除的景点的名称,您可以输入您想要删除的景点的名称,然后回车,这样删除景点的操作就已经完成,您同样可以选择第八项操作,检测是否成功删除了景点。

如果您想进行“增加道路”操作,您可以输入数字‘6’,然后回车,系统将会提示您输入增加道路所连接的两个景点的名称,输入两景点名称后回车,然后系统又会提示输入增加道路的长度,输入后回车,这时增加道路操作也就完了。用户如果想要检查道路是否增加成功可以进行“最短路径查询”操作。

如果您想进行“删除道路”操作,您可以输入数字‘7’,然后系统就会提示您输入删除道路所连接的两景点的名称,输入名称后回车即可,当然,如果您想检测删除是否成功您可以选择“最短路径查询”操作。

备注:经过测试,本程序的所有操作都能正常执行,您可以选择性的对他进行操作,同时也可以混合着操作,混合操作是检测错误的最好的一个方法。

.

5,测试数据及测试结果:

菜单显示为:

****************菜单**********************

1,相关信息查询

2,最短路径查询

3,修改景点信息

4,增加景点

5,删除景点

6,增加道路

7,删除道路

8,浏览所有景点名称

*******************************************

请选择您想进行的操作:8

东区博物馆主楼图书馆西体育馆隧道北综北体育馆北大门东湖

请选择您想进行的操作:1

请输入您所想要查询的景点的名称:博物馆

您输入的景点的名称是:博物馆

您输入的景点的代码为:11

您输入的景点的相关信息有:有各种化石

请选择您想进行的操作:2

请输入你要查询的两景点的名称:东区东湖

最短路径为:108

从东区点到东湖景点的最短路径为:

东区——>主楼——>西体育馆——>隧道——>北大门——>东湖

请选择您想进行的操作:3

您想修改的景点的名称为:隧道

您输入的景点的名称是:隧道

您输入的景点的代码为:15

您输入的景点的相关信息有:自主修建

您想修改什么信息?1,名称;2,代号;3,信息简介: 1

请输入要修改的的景点的新名称:地大隧道

请选择您想进行的操作:8

东区博物馆主楼图书馆西体育馆地大隧道北综北体育馆北大门东湖

请选择您想进行的操作:4

.

请输入增加节点的名称,代号,信息简介:

北一楼34 教师办公室

请选择您想进行的操作:1

请输入您所想要查询的景点的名称:北一楼

您输入的景点的名称是:北一楼

您输入的景点的代码为:34

您输入的景点的相关信息有:教师办公室

请选择您想进行的操作:5

请输入您要删除景点的名称:北一楼

请选择您想进行的操作:8

东区博物馆主楼图书馆西体育馆地大隧道北综北体育馆北大门东湖

请选择您想进行的操作:6

输入您要增加的道路链接的两个景点名称:东区北综

输入您要增加的道路的长度: 50

请选择您想进行的操作:2

请输入你要查询的两景点的名称:东区北综

最短路径为:50

从东区点到北综景点的最短路径为:

东区——>北综

请选择您想进行的操作:7

输入您要删除的道路链接的两个景点名称:东区北综

请选择您想进行的操作:2

请输入你要查询的两景点的名称:东区北综

最短路径为:103

从东区点到北综景点的最短路径为:

东区——>主楼——>西体育馆——>地大隧道——>北大门——>北综

6,源程序清单:

school.cpp //程序源文件

AdjMGraph.h //图的相关操作头文件

AdjMGraphCreat.h //创建图的头文件

SeqList.h //线性表操作头文件

Floyd.h //Floyd算法头文件

Operation.h //自己所定义的一些操作的头文件

Inquiry.h //查询信息包含的头文件

// 详细school.cpp 程序源文件

#include

#include

#include

#define MaxSize 20 //线性表的最大数组空间

#define MaxVertices 20 //景点个数所允许的最大值

#define MaxWeight 1000 //无穷边权值

#include "Floyd.h"

#include "AdjMGraphCreat.h"

#include "Inquiry.h"

AdjMGraph G;

#include "Operation.h"

void main()

{

//初始景点信息

DataType a[]={{"东区",10,"研究生院"},{"博物馆",11,"有各种化石"},{"主楼",12,"学校的标志建筑"} ,{"图书馆",13,"藏书50万册"},{"西体育馆",14,"主要供西区学

生使用"},{"隧道",15,"自主修建"},{"北综",16,"北区标志楼"},{"北体育馆",17,"

主要供北区学生使用"},{"北大门",18,"外出通道"},{"东湖",19,"武汉最美的湖

"}};

//邻接矩阵的表示

RowColWeightrcw[]={{0,1,20},{0,2,30},{0,3,35},{1,0,20},{1,3,20},{2,0,30},{2,3,15},{2 ,4,30},{3,0,35},{3,1,20},{3,2,15},{3,4,30},{4,2,30},{4,3,30},{4,5,10},{5,4,10},{5,6,35}

,{5,8,8},{6,5,35},{6,7,20},{6,8,25},{6,9,5},{7,6,20},{7,8,10},{8,5,8},{8,6,25},{8,7,10},{9,6,5};

int n=10,e=28; //景点数与边数

Creat(&G,a,rcw,n,e); //构造图

menu();

}

// 详细Floyd.h头文件

void Floyd(int cost[][MaxVertices],int n,int weight[][MaxVertices],int path[][MaxVertices]) {

//初始化

int i,j,k;

for(i=0;i

{

for(j=0;j

{

weight[i][j]=cost[i][j];

path[i][j]=-1;

}

}

//n次递推

for(k=0;k

{

for(i=0;i

{

for(j=0;j

{

if(weight[i][j]>weight[i][k]+weight[k][j])

{

weight[i][j]=weight[i][k]+weight[k][j];

path[i][j]=k;

}

}

}

}

}

//详细Inquiry.h 头文件

void Information(AdjMGraph G, char scenery[])

{

int i;

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,scenery)==0)

{

printf("您输入的景点的名称是:%s\n",G.vertices.list[i].name);

printf("您输入的景点的代码为:%d\n",G.vertices.list[i].code);

printf("您输入的景点的相关信息有:%s\n\n",G.vertices.list[i].introduction);

break;

}

}

if(i==G.vertices.size)

{

printf("您所查询的景点不在我们所提供的范围内!\n\n");

}

}

void Path(AdjMGraph G,char sceneryname[], char sceneryname1[])

{

int i,j,k,n,m,count=0;

n=G.vertices.size;

int weight[MaxVertices][MaxVertices],path[MaxVertices][MaxVertices];

int value[MaxVertices];

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,sceneryname)==0)

{

j=i;

}

if(strcmp(G.vertices.list[i].name,sceneryname1)==0)

{

k=i;

}

}

Floyd(G.Edge,n,weight,path);

m=path[j][k];

printf("最短路径为:%d\n",weight[j][k]);

if(m==-1)

{

printf("从%s 点到%s 景点的最短路径为:\n",sceneryname,sceneryname1);

printf("%s ——>%s\n",sceneryname,sceneryname1);

}

else

{

while(m!=-1)

{

value[count]=m;

if(j

else j=m;

m=path[j][k];

count++;

}

printf("从%s 点到%s 景点的最短路径为:\n",sceneryname,sceneryname1);

printf("%s——>",sceneryname);

if(j

{

for(i=count-1;i>=0;i--)

{

printf("%s——>",G.vertices.list[value[i]].name);

}

printf("%s\n",sceneryname1);

}

else

{

for(i=0;i

{

printf("%s——>",G.vertices.list[value[i]].name);

}

printf("%s\n",sceneryname1);

}

}

}

//详细Operation.h头文件

void menu();

//查询景点信息的函数

void Information1()

{

char sceneryname[20];

printf("请输入您所想要查询的景点的名称:");

scanf("%s",sceneryname);

Information(G ,sceneryname);

menu();

}

//查询最短路径的函数

void Path1()

{

char sceneryname[20],sceneryname1[20];

printf("请输入你要查询的两景点的名称:");

scanf("%s%s",sceneryname,sceneryname1);

Path(G,sceneryname,sceneryname1);

menu();

printf("\n");

}

.

//修改景点信息的函数

void Modify()

{

char sceneryname[20];

int i,x;

printf("您想修改的景点的名称为:");

scanf("%s",sceneryname);

Information(G,sceneryname);

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,sceneryname)==0)

{

printf("您想修改什么信息?1,名称;2,代号;3,信息简介: ");

scanf("%d",&x);

if(x==1)

{

printf("请输入要修改的的景点的新名称:");

scanf("%s",G.vertices.list[i].name);

break;

}

if(x==2)

{

printf("请输入要修改的的景点的新代号:");

scanf("%d",&(G.vertices.list[i].code));

break;

}

if(x==3)

{

printf("请输入要修改的的景点的新信息简介:");

scanf("%s",G.vertices.list[i].introduction);

break;

}

}

}

menu();

}

//增加景点的函数

void AddVertic()

{

int i,k;

DataType ver;

printf("请输入增加节点的名称,代号,信息简介:\n");

scanf("%s%d%s",https://www.360docs.net/doc/954989703.html,,&(ver.code),ver.introduction);

ListInsert(&(G.vertices), G.vertices.size, ver);

k= G.vertices.size-1;

for(i=0;i

{

if(k!=i)

{

G.Edge[k][i]=MaxWeight;

G.Edge[i][k]=MaxWeight;

}

else G.Edge[k][i]=0;

}

menu();

}

void DeleteVertic()

{

DataType x;

char name[20];

int i,k;

printf("请输入您要删除景点的名称:");

scanf("%s",name);

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,name)==0)

{

k=i;

}

}

ListDelete(&(G.vertices),k,&x);

for(i=0;i

{

if(k!=i)

{

G.Edge[k][i]=MaxWeight;

G.Edge[i][k]=MaxWeight;

}

else G.Edge[k][i]=0;

}

menu();

}

//删除景点的函数

void AddRoad()

{

char name[20],name1[20];

int length,i,j,k;

printf("输入您要增加的道路链接的两个景点名称:");

scanf("%s%s",name,name1);

printf("输入您要增加的道路的长度: ");

scanf("%d",&length);

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,name)==0)

{

j=i;

}

if(strcmp(G.vertices.list[i].name,name1)==0)

{

k=i;

}

}

InsertEdge(&G,j,k,length);

InsertEdge(&G,k,j,length);

menu();

}

void DeleteRoad()

{

char name[20],name1[20];

int i,j,k;

printf("输入您要删除的道路链接的两个景点名称:");

scanf("%s%s",name,name1);

for(i=0;i

{

if(strcmp(G.vertices.list[i].name,name)==0)

{

j=i;

}

if(strcmp(G.vertices.list[i].name,name1)==0)

{

k=i;

}

}

DeleteEdge(&G,j,k);

DeleteEdge(&G,k,j);

menu();

}

//浏览所有景点名称的函数

void Scan()

{

int i;

for(i=0;i

{

printf("%s\t",G.vertices.list[i].name);

}

printf("\n");

menu();

}

//菜单

void menu()

{

int n;

puts("\t\t****************菜单**********************\n");

puts("\t\t\t1,相关信息查询");

puts("\t\t\t2,最短路径查询");

puts("\t\t\t3,修改景点信息");

puts("\t\t\t4,增加景点");

puts("\t\t\t5,删除景点");

puts("\t\t\t6,增加道路");

puts("\t\t\t7,删除道路");

puts("\t\t\t8,浏览所有景点名称");

puts("\t\t*******************************************\n");

printf("请选择您想进行的操作:");

scanf("%d",&n);

switch(n)

{

case 1:

{

Information1();

break;

}

case 2:

{

Path1();

break;

}

case 3:

{

Modify();

break;

}

case 4:

{

AddVertic();

break;

}

case 5:

{

DeleteVertic();

break;

}

case 6:

{

AddRoad();

break;

}

case 7:

{

DeleteRoad();

break;

}

case 8:

{

Scan();

break;

}

}

}

另外,还有AdjMGraphCreat.h ,AdjMGraph.h和SeqList.h 由于他们在书上已经出现过了,这里我就不再把他们的源程序清单打印出来了。

本程序所用到的图的信息为:

智慧校园整体解决方案

智慧校园整体解决方案 1背景概述 教育信息化是衡量一个国家和地区教育发展水平的重要标志,实现教育现代化、创新教学模式、提高教育质量,迫切需要大力推进教育信息化。当前和今后一个时期,要大力推进“三通两平台”建设,即宽带网络校校通、优质资源班班通、网络学习空间人人通,建设教育资源公共服务平台、教育管理公共服务平台。力争实现四个新突破,即教育信息化基础设施建设新突破、优质数字教育资源共建共享新突破、信息技术与教育教学深度融合新突破、教育信息化科学发展机制新突破。 2.方案简介 三通两平台解决方案是通过建设统一标准的公共服务平台,将贯穿在教育日常工作中的学生、教师、资产和管理等基础数据,按规范格式统一保存在数据中心,在技术支撑服务平台基础上,统一建设各类教育信息化应用,实现标准化、规范化的统一数据管理,便于各级教育主管部门进行数据管理和统计分析。 三通两平台解决方案融合云计算理念进行架构设计,主要分为基础设施层、平台服务层、软件服务层、客户端服务层。基于先进、灵活、开放的云计算基础架构,将各类基础数据存储于云端,并有效整合和管理各类教育信息化应用,形成从管理、教学、办公到研究、在线学习等标准、统一的“三通两平台”体系,实现宽带网络校校通、优质资源班班通、网络学习空间人人通和教育管理公共服务平台、教育资源公共服务平台建设,为各级教育机构提供高带宽、大容量的教育网络服务,全面、准确、及时的基础数据服务及高效、便捷、实用的教育教学应用服务,实现各基层教育机构间的信息互通、信息共享和交换,确保教育系统内信息、学生信息、人事信息、资产信息等数据的高度准确和统一,减少重复录入,降低维护成本,实现区域范围内均衡的教育信息化建设。

视觉导航智能车辆的目标识别精确性与实时性研究

视觉导航智能车辆的目标识别精确性与实时性研究 1)概述 2)视觉路径导航原理 3)识别精确性研究(提高精确性的意义和方法:滤波、自适应阈值等) 4)实时性研究(软硬件方面;软件方面:优化算法、其他处理方法(减小图像处理区域等)) 5)总结 1.概述 智能车辆技术 智能车辆(IntelligentVehicle)又称轮式移动机器人,是一个集环境感知、规划决策、自动驾驶等多种功能于一体的综合系统。它致力于提高汽车的安全性、舒适性和提供优良的人车交互界面,是目前各国重点发展的智能交通系统一个重要组成部分,也是世界车辆工程领域研究的热点和汽车工业增长的新动力。 智能车辆概述 智能车辆的研究意义 随着经济和社会的迅速发展,交通基础设施的瓶颈制约作用越来越明显。这种制约不仅体现在交通堵塞问题日益突出上,同时还体现在由于交通不畅而造成的环境污染问题及相对落后的道路和先进的车辆对人们的生命、财产所形成的安全隐患。正因为如此,智能交通系统(IntelligentTransportationSystems,ITS)日益受到欧洲、日本、美国等发达国家的重视并成为研究热点。他们相继启动了各种以智能交通系统为目标的研究与开发项目。如欧洲的PROMETHEUS和DRIVE项目,日本的VICS和ARTS项目,美国的IVHS项目等。各国家各地区研究的项目内容,对智能交通系统的定义不尽相同,各项目的重点也有所不同,但目标都是综合利用新的信息技术、计算机技术、自动化技术、管理技术等,来提高道路和车辆的利用效率,提高安全性,减少污染及阻塞的发生。

ITS一般由两部分组成,即智能道路及交通控制系统和智能车辆系统IVS(IntelligentVehicleSystem)。目前智能道路系统的构筑还处于起步阶段,相应的基础设施建设周期长且投资大,所以发展智能车辆及车辆自主行驶系统,通过提高车辆自身智能的方案是目前实现安全、高效的自主行驶的最佳选择,同时它还可为开发将来在完备的自动高速网络环境中运行的智能车辆奠定基础。 智能车辆作为智能车辆系统的基本组成单元,可以集成如视觉技术、触觉技术、自主控制和决策技术、多智能体技术、智能控制技术、多传感器集成和融合技术等许多最新的智能技术,从而能够完成很多高智能工作。我国也已经把智能车辆列入国家高新技术计划,足以证明政府有关部门对发展智能车辆的高度重视。 智能车辆的应用范围 由于智能车辆具有环境感知、规划决策、自动驾驶等功能,目前已经在以下场合得到了广泛应用。 1.智能交通系统 为解决交通问题,各发达国家在ITS的研究上均投入了大量的人力、物力。自然而然,智能车辆就成为ITS的一个重要的组成部分,得到越来越多的重视。 2.柔性制造系统和柔性装配系统 在计算机集成制造系统中,智能车辆用来运输工件,能够极大的提高生产效率,降低生产成本。 3.军事领域 智能车辆的研究也受到了军方的关注。以智能车辆作为其它智能武器的安装平台,能够实现全天候的自动搜索、攻击动静态目标,能够极大的提高在高新技术战争中的攻击力,减少人员伤亡。 4.应用于其它特殊环境 智能车辆在有毒或放射性环境下运输,还可应用于野外探险、消防、救灾等。 智能车辆的研究状况 1.国外研究概况 国外对于智能车辆技术的研究始于20世纪70年代末,最初是军方用做特殊用途的,80年代得到了更深入的研究。进入90年代后,由于与智能交通系统的结合,

校园导航系统

课程设计 课程名称软件工程 题目名称校园导航系统专业班级2012级网络工程应用学生姓名柴安康 学号 51202031022 指导教师储德锋 二○一五年六月一日

任务书 上机时间安排星期 周次 一二三四五 第14 周-第 17周 12网络工程 应用,1-2节 12网络工程应 用,3-4节 指导时间地点上机时间,计算机基础实验室(B521) 课程软件工程班级2012网络工程 应用 指导教师储德锋 题目校园导航系统完成时间2015年5月20日至2015年6月11日 主要内容要求完成以下功能: 1. 了解模型机的指令系统。 2. 设计模型机指令,掌握指令的执行过程。 3. 了解简单计算机内部各部件的连接,微程序控制器的设计。 4. 熟练掌握程序汇编机器码指令的含义及编写。 5. 能熟练区分直接寻址、间接寻址、寄存器寻址等各种寻址方式的不同。 设计报告要求1.封面:(格式附后) 2.课程设计任务书 3.课程设计报告: (1)需求分析 (2)功能设计 (3)程序代码设计 (4)程序设计总结 (5)心得体会和参考文献 说明:学生完成课程设计后,提交课程设计报告及软件,要求文字通畅、字迹工整(也可用以打印),文字不少于5000 字,并装订成册。 版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距; 4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。

分工协作说明 课题名称学生姓名学号所做的工作 校园导航系统金海侠51202032014 总体分工 指令结构总体设计夏昭明51202031005 需求分析 实地考察 陈金锁51202031010 指令具体实现夏宇峰51202031015 部分程序代码设计柴安康51202031018 调试运行 杨辉51202031022 心得体会 格式调整 代码指令的共同调试

智慧校园智能化系统配置表

xxxxxx项目 智能化系统配置表序号智能化系统 1通信接入系统 2语音通讯 3综合布线系统 4信息网络系 统 系统形式 由当地通信运营商提供电话通信设备 及光纤接入,通过语音光纤引至楼层 弱电间通信设备,供用户申请接入。 设置程控电话交换机 采用光缆+六类非屏蔽电缆的配置: 主干万兆多/单模光缆,水平六类非 屏蔽双绞线。 采用“核心+汇聚+接入”三层星型网 络结构配置,万兆骨干、千兆桌面。 无线网络:采用AC控制器+瘦AP配置, 802.11ac标准 网络安全:采用统一威胁管理(UTM)设 备。 系统功能 实现基本的通话功能,物业自用办公室部 分通过程控交换机还可实现各种办公定制 的应用功能。 实现内部电话和外线电话的需要 提供给数据、语音、无线AP、视频监控、 IP校园广播、闭路电视以及公共信息发布 系统使用。包括室内外管线槽敷设、 42U标 准机柜及数据信息终端接口等,预留20%余 量。 设置校园网、智能网两个物理上独立 的网络,对校园进行无线网络信号覆 盖。 对校园网接入采用UTM进行安全保护 5有线电视系统 6 校园广播系 统 公共信息发布系 7 统 校园一卡通管理8 系统 智慧校园应用系9 统 智慧校园信息化10 应用平台 报告厅音视频系11 统 体育场馆扩声系12 统

数字电视+终端数字机顶盒+放大、分 提供当地数字有线电视接入的条 件, 将电视 配分支 信号接入指定位置,不设卫星接收设 备。 既有全院范围内统一集中的控制管理, 又可 授权多个分控点广播,对各区域内(教室) 基于智能网设置一套IP 网络音频广播 独立的控制管理,在遭遇紧急情况时,可强 系统,创建校园广播站,配置多个分控 切为应急广播或寻呼广播;可设多种不同节 点(院系广播、听力测试)。 目源,可自定选择节目。教室可以按年级或 班级同时播放指定节目,如英语听力训练和 考试。 基于智能网的IP 网络结构,设置节目 系统涵盖信息发布和信息查询等功能; 预留 制作、播放控制服务器。 室外大屏的信息发布点。 建设基于智能网的校园一卡通系统平 在院区建设多个“卡务中心”面向用户服 务, 携带一张卡就能实现多种用途,实现电子货 台,实现门禁、消费(电子支付)、图 币、认证、管理、服务、运维、开放五方面 书资料借阅、学籍管理 的建设需求。 为管理者提供了集成的一体化联动指挥 界 建立“绿色智慧校园综合管理平台”并 面。实现办公管理与服务一体化、 学生管理 与校园智能化系统集成。 与服务一体化、教学管理与服务一体 化、 知 识管理与服务一体化管理 建设云基础设施(刀片/机架服务器+ 建设智慧云数据计算中心(云平台建 设) 磁盘阵列+云交换网络(机房双汇聚 智慧校园智能管理中心(四个统一:系统标 +TOR )+虚拟化软件平台+虚拟桌面系 准(信息、应用、集成)、数字业务定制、 统、云安全和各类云服务构件)共同构 IT 资源管理、信息安全管理) 建贵州理工学院云服务平台 云计算管理中心(虚拟化管理) 设置会议发言、扩声、音频处理、视频 满足报告厅举办演讲、报告等会议声学、视 显示、摄像、音视频切换、同声传译、 频显示、视频会议及音视频切换控制要求。 中控等设备 满足体 育馆的声学要求,具有足够的声压 设置场地扩声和观众席扩声 级、良好的语言清晰度、 均匀的声场,以及

校园导航系统源代码

数据结构-校园导航系统 简介:本系统采用C语言编写,运行环境为Dev-C++; 容以电子科技大学南校区为例; 主要功能有:1.查询景点信息;2.查询两景点间最短距离;3.查询两景点间所有路线;4.查询西电校园地图;5.修改景点和路径信息. 注意事项:在进行修改景点和路径信息操作前,请在可执行文件目录下用记事本创建”superUser.CODE”文件来存放用户名与密码(中间以空格隔开),否则无法进入.

源代码: #include #include #include #include #include #define Max 20000 typedef struct ArcCell { int adj; //两个景点间的距离 }ArcCell; typedef struct VertexType { int number; //景点编号 char sight[100]; //景点名称 char description[1000]; //景点简介

char particular1[1000]; char particular2[1000]; char particular3[1000]; //景点详情 }VertexType; typedef struct { VertexType vex[20]; //最多存放20个景点信息ArcCell arcs[20][20]; //两个景点间的距离 int vexnum,arcnum; }MGraph; MGraph G; char nameofschool[100]; //学校名称 int NUM=9; int P[20][20]; int p[20]; int visited[20]; int a=0; long int D[20]; int x[20]={0}; //函数声明 void CreateUDN(int v,int a); void narrate(); void ShortestPath(int num); void output(int sight1,int sight2); char Menu(); void search(); char SearchMenu(); void HaMiTonian(int); void Searchpath1(MGraph g); void disppath(MGraph g,int i,int j); void path(MGraph g,int i,int j,int k); void NextValue(int); void display(); int Addnewsight(int n); int Deletesight(int n); void Changesight(); char Changemenu(); char Sightmenu(); int Maintain(void); int VerificatianIdentity(void); void map();

基于GPS的汽车导航系统的设计与实现

邮局订阅号:82-946360元/年技术 创新 汽车电子 《PLC 技术应用200例》 您的论文得到两院院士关注 基于GPS 的汽车导航系统的设计与实现 Realization and design of automobile guidance system based on GPS (吉林工程技术师范学院)张丹彤 ZHANG Dan-tong 摘要:设计并实现了一种以单片机为主要控制器件、基于GSP 模块的新型智能电动汽车底盘的导航系统。GPS 定位系统主 要采用技术非常成熟的GPS 模块进行与单片机的接口通信完成,使用更方便,定位也更准确。所设计的电动导航系统具有全球定位、自动控制、实时性好等多方面优点为一体,应用在当今的汽车上有较好的发展前景。关键词:GPS;导航;数据采集中图分类号:U49文献标识码:A Abstract:The present paper introduced one kind take the monolithic integrated circuit as the primary control component,based on GSP module new intelligent electric automobile chassis guidance system design.The GPS localization mainly uses the technical ex -tremely mature GPS module to carry on with the monolithic integrated circuit connection correspondence completes,use more conve -nient,the localization is also more accurate.This chassis collection whole world localization,the automatic control,timeliness good and so on the various merit is a body,applies has the good prospects for development on the now automobile.Keywords:GPS;navigation;data acquisition 文章编号:1008-0570(2008)11-2-0255-02 近年来,我国私人小轿车拥有量呈上升趋势,单位用轿车拥有量也在快速发展,对于这一类车辆,GPS 领航系统侧重于电子地图领航,对运行路线不固定的车辆,可预先设置到达目的地,在运行中告知运行路线,起到领航的重要作用。本论文介绍了一种以单片机为主要控制器件,基于GSP 模块的新型智能电动汽车底盘的导航系统设计。 1主体控制方案 本系统是以单片机为主要控制器件,基于GSP 模块的新型智 能电动汽车底盘的导航系统设计。该车底盘具有智能避障、 寻迹、测距、报警、寻光、行驶路程显示、行驶时间显示、车体所在环境温度显示、车体所在环境湿度显示、人工定位等功能。可以使用无线遥控器控制,并可以在上位机显示出它所在的位置等数据信息。本系统设计主要包括硬件电路的设计、实时操作系统程序设计、多机通信设计与总线接口的设计。系统框图如图1所示。 图1系统框图 本系统硬件电路主要包括控制模块、GPS 定位模块、电机 驱动模块、传感器数据采集模块、网络节点接口模块、光报警模 块、 显示驱动模块、时间模块、键盘模块与无线通信模块组成。传感器数据采集模块由光电传感器进行对光线的跟踪,红外传 感器进行对近距离的数据采集,声纳传感器进行对远距离的数 据采集,温度传感器对车体周围的环境温度采集,湿度传感器 对周围环境的相对湿度采集等。网络接口采用串行通信方式。 显示驱动模块由LED 数码管与液晶共同显示。无线通信模块采用FSK 方式进行无线传输。 2GPS 定位系统设计 GPS 定位主要采用技术非常成熟的GPS 模块进行与单片机的接口通信完成。电机驱动电路模块主要采用H 型电路构建而成。GPS 模块的电源接口供电有15v 、12v 、5v 、3.3v 不等,本系统为了设计简单采用全新台湾HOLUX 公司推出的SIRF 第三代高灵敏度超小型GPS 接收模块这是最新推出的产品,采用 SiRF 第三代芯片, 主要是定位灵敏度大大提高,例如在汽车上应用时,只要靠近车窗就能较好工作,使用更方便,定位也更准确。本模块主要是提供给从事GPS 模块二次开发的客户使用的,GPS 模块使用3.3伏 (70毫安)直流工作电压,默认每秒输出一次TTL 的NMEA-0183信号。 此模块接口定义如表1所示。GPS 控制模块口控制模块方框图如图2所示。为了使车具 有导航系统,所以在车体上安装了GPS 模块,本设计采用全新台湾HOLUX 公司推出的SIRF 第三代高灵敏度超小型GPS 接 收模块,该模块由6个控制脚组成。为了减轻主控CPU 的负担,并且为了模块化硬件,所以该GPS 模块由一块STC12C2052单 片机进行单独的控制,并且通过74HS573与主单片机进行总线通信。STC12C2052单片机与GPS 通过串行口连接,并且以4800bps 的波特率进行通信。单片机的P1口与74HC573的数据输入口相连接,作为并行的8为数据总线使用,而LE 端口通过一个反响器与STC12C2052单片机的P3.7连接,并且P3.7口 通过一个74HC14与主控单片机的INT0相连。这样当P3.7为张丹彤:副教授 255--

智能导航系统的发展与应用

第17卷第6期中国水运Vol.17No.62017年6月China Water Transport June 2017 收稿日期:2017-05-07 作者简介:李能斌,上海中船航运有限公司船长,总经理。 智能导航系统的发展与应用 李能斌 (上海中船航运有限公司,上海200000) 摘 要:本文首先然后分析了智能导航系统和运行原理,并针对其适用范围,指出在应用方面的局限性,以期对智 能导航系统的开发研究有所帮助。 关键词:智能导航;系统;智能决策;船舶避碰中图分类号:TP301文献标识码:A 文章编号:1006-7973(2017)06-0044-03 一、引言 随着信息科学、计算机技术、人工智能及其现代控制等技术的飞速发展,人们尝试用它们来解决船舶航行的安全问题。航行安全问题一直是航海界面临的急需解决的重大课题,据海外资料统计,每年头事船舶约为200艘,总吨数为120万t,占世界船队的0.4%左右,这相当于每15d 损失一艘5万t 级的船舶。然而,在碰撞船舶的原因调查中,有80%以上是由于人为因素造成的。解决人为因素问题可以通过二个途径:一是加强船员技术培训和管理,提高船员素质和责任感;二是提高船舶自动化程度,逐步实现航海自动化,随着经济的发展,船员不长期从事这个职业已成事实。因此从技术上提高自动化程度,在决策和操作上减少人的参与,逐步实现船舶避碰自动化,这才是解决人为因素的根本方法。自80年代以来,国内外航海界在智能导航技术方面取得了重大发展,而实现智能导航的核心就是实现自动避碰,为此,许多专家、学者从各个领域,不同角度致力于解决船舶的智能避碰问题。 二、智能导航系统结构框图及各部分的作用 船舶自动避碰系统结构如图1所示。本系统由数据库、 图1船舶自动避碰系统结构图 带有虚线部分为本船的传感器,其功能是收集本船及他船的运动信息,并将所收集的信息输入数据库。根据GPS 找出我船的船位,从计程仪和罗径上知道,我船船速和航向,从雷达上可获知周围船舶动态和环境情况,通过ARPA 可知他船和我船的DCPA 和TCPA。 电子海图提供了当地水深和地质数据,航海危险物数据,助航标志数据等海图信息。 数据库主要存放来自传感器和电子海图的信息以及推理过程中的中间结果等数据,供机器学习及进行深入推理时随时调用。 知识库主要包括了根据国际海上避碰规则、船员经验和专家对国际海上避碰规则的理解和认识的模块及根据船员避碰行为和专家经验所推导的研究成果,包括了良好船艺的基础知识和规则;包括了实现避碰了推理所需的算法及其结果和由各种产生式规则形成的若干个基本避碰知识模块等构成。避碰知识库是船舶自动避碰块决策的核心部分。根据船员避碰实践、国际海上避碰规则、航海专家和专业人员对规则的解释及良好船艺的实地应用,通过知识工程的处理将其转化成可用的形式。所谓知识工程是这样的技术:它从专家和文献中选取有关特定领域的信息,并将其模型制成所选定的知识形式。描述知识可以有很多种不同形式,在本系统中所采用的专家系统中通常所采取的形式,即为“如果……那么……”产生规则。其主要优点在于它的积木性。对于避碰局面的划分,根据能见度好坏分为能见度好时两船会遇、能见度不好时两船会遇、能见度良好时多船会遇和能见度不良时多船会遇基本形式。在每一种划分中,根据不同的会遇情 况又有不同的避碰操纵划分。对每一划分的每一避碰操纵划分,根据专家意见及船员实际避碰操纵,规定了具体的操纵避碰方式。其根本目的是为推理机的推理提供充分的和必需的知识。 机器学习就是计算机自动获取知识。对于避碰这样一个动态、时变的过程,就要求系统具有实时掌握目标动态的能力,这样依据知识而编制的避碰方案才会具有人的应变能力。所建造的专家系统性能的好坏,关键取决于机器学习的质量,学习质量是通过学习的佥性(真实性)、有效性和抽象层次这三个标准来衡量的。本系统采取以下方式,提高专家系统的性能。系统设计中采用算法作为学习的表示形式,采用归纳学习作为学习策略,即学习中采用推理的方法。机器学习就是在推理机推理决定应选取哪个模块来确定避碰方法。方法

基于RFID的校园平安智能管理系统计划1.doc

基于RFID的校园安全智能管理系统方案1 基于RFID的校园安全智能管理系统方案 一、系统概述 在随着经济的发展与社会开放程度的提高,社会上的一些违法犯罪行为也日渐影响到校园。中小学师生均属于安全防范能力较弱的群体,中小学校园的安全问题维系着社会的稳定、牵动着家庭的幸福,已成为全社会密切关注的话题。而深圳市丰泰瑞达实业有限公司正是基于建设和谐社会、创建文明安全的校园环境这一迫切社会需求,利用先进的RFID技术、图像识别技术、计算机技术和无线通信技术于一体,推出了FTRD2000校园安全智能管理系统。 二、系统组成 三、系统功能 系统说明: 由校园RFID卡、人脸识别终端、RFID读卡器为基础组成的安全识别系统,通过校园网络实现在校学生进出,人数统计,消费,外来人员识别,访客路线安全管理措施。提高了安全防范措施,建造平安校园。 系统图 1、校园门禁管理系统 解决问题点:非法人员进入、在校学生(住宿生、走读生)

身份识别繁琐、学生冒领现象。 校门门禁管理利用RFID和人脸识别双重识别技术,对学生和校外人员的身份进行双重验证,主要负责控制校内学生和校外人员的出入管理,接送学生的家长的身份确认。杜绝非法人员进入校园,学生身份识 别一一对应,消除学生冒领现象。 适用范围:校门门禁RFID+人脸识别,校园宿舍门禁RFID,校园机房门禁RFID,财务室门禁RFID。 人脸识别+RFID 2、宿舍进出管理系统 解决问题点:学生进出宿舍身份识别不清,进出无序,出入信息资料不健全。 对于学生进出宿舍楼进行实时的信息管理和记录,指定时间段的进出限制,进出路线判别,宿舍人员数量统计;非本住宿楼的学生禁止进入或指定时间门常闭,保障住宿安全。 场景图 3、家校通管理系统 解决问题点:家长和学校对学生的在校和离校信息的死角。 利用系统采集到的数据,以短信形式通知家长小孩到校离校情况。同时为家长与老师互动提供一个平台。做到家长和学校对

汽车定位导航系统的研究分析

汽车定位导航系统的研究论文第 I 页 汽车定位导航系统的研究 摘要 汽车定位导航系统是多种技术于一体的电子设备,主要用于实时、高速地提供导航定位、地理信息等,从而改善城市交通情况、促成行车安全并提升道路通行率。 本次研究主要从以下几个方面进行,首先研究了国内外汽车定位导航系统的技术的现状。其次,从导航系统的组成入手,对其工作原理及核心功能做了详细的调研。接着,研究了当前用于实际系统的导航系统的各种设计方法与设计思路。最后,在前期工作的基础之上,提出了以嵌入式系统为基础的导航方法的设计思路,并且从硬件和软件两个方面对设计思路进行了阐述:即设计一款以ARM芯片S3C2440A为核心,以Linux操作系统为软件开发环境的汽车定位导航系统。以期达到低成本、小体积、可靠性能高等设计目的。 关键词:GPS,ARM,汽车定位导航系统,嵌入式系统

汽车定位导航系统的研究论文第 II 页Research on vehicle location and navigation system Author: Fang QiJun Tutor: Li Zijing Abstract Car navigation and positioning system is a variety of technology in the integration of electronic equipment, mainly used in real-time, high speed to provide navigation, geographic information, etc. so as to improve urban traffic conditions, contribute to driving safety and increase the rate of road traffic. This research mainly from the following aspects,first,studied the present situation of the automobile navigation and positioning system technology at home and abroad. Secondly,from the navigation system composed of the working principle and core functions made a detailed investigation.Then,studies the navigation system currently used in the actual system design methods and design ideas.Finally,on the basis of previous work,and put forward based on the embedded system of navigation methods design train of thought,and from the two aspects of hardware and software design were expounded,namely design a S3C2440A ARM chip as the core,based on Linux operating system software development environment of car navigation and positioning system.In order to achieve low cost,small volume and high reliability design purpose. Key words:Global Position System,Advanced Risc Machines,Car navigation and positioning system,Embedded system

校园导航系统源代码

#define INFINITY 10000 #define MAX_VERTEX_NUM 40 #define MAX 40 #include #include #include #include typedef struct ArCell { int adj; /*路径长度 */ }ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; typedef struct/*图中顶点表示主要景点,存放景点的编号、名称、简介等信息, */ { char name[30]; int num; char introduction[100];/*简介*/ }infotype; typedef struct { infotype vexs[MAX_VERTEX_NUM]; AdjMatrix arcs; int vexnum,arcnum;

}MGraph; MGraph b; void cmd(void); MGraph InitGraph(void); void show1(); void list(); void Menu(void); void ShortestPath_DIJ(MGraph * G); void Search(MGraph *G); int LocateVex(MGraph *G,char* v); /**********主函数************************/ void main(void) { system("color 5f"); /*修改控制台的颜色信息,改为白字蓝底的模式*/ system("mode con: cols=140 lines=130"); /*设置批处理运行时窗口大小的*/ cmd(); } /********自定义函数***************/ /* cmd函数(根据目录选择要进行的项目)*/ void cmd(void) { char k; b=InitGraph(); show1();

智能校园管理系统

智能校园管理系统 一、述概智能校园管理系统是采用物联网技术,将数字化校园内的各个网络互联网、监控网络、水电气网络、交通网络、车辆、人联系起来实现校园的信息化管理,校园安全管理。 二、求需1.建立一套校园信息管理系统,实现学生管理(包括学籍管理、成绩管理、试卷分析、作业管理、素质评价、家校互动)、教职工管理(包括教师人事信息、教师业务信息、教师专业发展记录)、教务管理(包括考务管理、日常处理、排课系统、选课系统)、备课管理、教师研修、资源管理、办公事务管理、总务管理、体卫管理、科研管理、档案管理、德育管理、流程管理、图书管理、宿舍管理、实验室管理、系统管理等模块。 2.建立一套校园安全管理系统。实现校园的车辆准入停车管理,来访登记管理,校园水电管理,学生出入校园安全管理。 三、能功校园信息管理系统学生管理: 学生管理包括:学籍管理、成绩管理、试卷分析、作业管理、家校互动、素质评价和系统设置六个部分。

关于学生学籍和教学质量分析的主要功能介绍和图示请查看: 学生管理 包括新生录入、新生基本信息列表、新生审核、新生登记 新生确认(教育局) 包括录入学生学籍基本信息、学生学籍基本信息在籍生列表、在籍生上传、在籍生确认、学生信息上传、学 生信息导出、学生信息导入 记录学生家庭信息、简历信息、评语信息、职务学生基本信信息、奖惩信息、作品信息、特长证书、综合实践记息 录、家访信息和其他信息 学对学生借出、借入、转入、转出、旁听、休学、籍管肄业、辍学、退学、开除和死亡等变动情况进行处理,理学籍变动 包括变动申请、变动信息上传到教育局和教育局审批等过程,可进行变动证明打印 学生日常管对学生升级/降级/留级/跳级/调班/毕业/结业进行处理理 包括个人信息查询、班级学生信息查/年级查询和综合查询三部分,查询学生的学籍信息和基本信息询 统计各年级和全校学生学籍状态、户口类型、男学生统计 女性别、生源类别和三残人数的分布情况;统计学生

校园导航系统课程设计

校园导航 课程设计报告书专业:计算机科学与技术 课程设计名称:《数据结构课程设计》 题目:校园导航问题 班级: 学号: 姓名: 同组人员: 指导老师: 完成时间:2012年2月17日 摘要 校园导航问题是基于校园中的不同的景点,从陌生人的角度,为来往的客人提供校园景点相关信息的查询以及为来往的客人提供校园中任意景点的问路查询,以便客人能用最短的时间从某一地点到达想要去的地方。大大节约了旅客参观校园的时间。 本文是采用C++作为开发语言,又最大程度上用了C语言的有关的语法。以visual c++为开发工具。旨在实现校园导航系统中,学校的简介,景点的介绍,路线查询等基本的问题。为来往客人参观校园提供方便。 关键词:C++;C;visual c++;校园导航

目录

第一章开发环境和开发工具 1.1C/ C ++语言简介 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。 C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 开发背景 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行校园导航已成为衡量校园数字化的重要标志。校园导航效率的好坏对于来校参观的客人和学校管理者来说都至关重要,在很大程度上影响着校园的数字化建设和学校的影响力。因此,本文所研究的校园导航系统具有一定的使用价值和现实意义。 开发环境 本文所采用的开发环境主要是基于c++的visual stadio c++。它是一个系统的集成开发环境。很适合C\C++程序的开发。我们日常的学习和生活中大多就用这个开发环境进行学习和编程。

车辆定位导航系统的设计

车辆定位导航系统的设计 汽服1101班王园福 摘要:在人类文明历史上,车辆定位与导航系统的研究与发展已经有相当长的历史。智能车辆定位系统(IVLNS)是集中应用了自动车辆定位技术、地理信息系统与数据库技术、计算机技术、多媒体技术、无线通信技术等多项最新科技的多功能综合系统。本文详细介绍了包括地图匹配、最优路径规划技术研究、导航系统设计在内的关于车辆导航系统的设计思路。 关键词: IVLNS 嵌入式导航计算机车辆定位导航 1 引言 尽管车辆定位和导航系统仅仅在最近几年才开始出现在世界市场上,但却在世界范围内取得了迅猛的发展。从功能上划分,一个完整的IVLNS系统由以下功能模块构成:定位模块、包含车载电子地图数据库的地理信息系统、地图匹配模块、路径规划模块、路径引导模块、无线通信模块和人机交互模块。在目前汽车产业飞速发展、智能汽车正在展露头角的大环境下,车辆定位导航系统的设计和研发是很重要的。 2 地图匹配 地图匹配是一种基于软件技术的定位修正方法,其基本思想是将车辆定位轨迹与数字地图中的道路网信息联系起来,并由此确定车辆相对于地图的位置。地图匹配技术的应用有两个前提: 1)用于匹配的数字地图包含高精度的道路位置坐标。 2)被定位车辆正在道路网中行驶。 2.1地图匹配方式 导航电子地图的道路网数据以若干节点的形式存储,在每两个节点之间,道路都以直线近似,忽略道路的宽度。在每个节点处设立一个判断区域,当车辆在域外行驶时,可以认为其运动轨迹是一条直线;当进入判断域时,车辆将有可能作角运动。此时,利用定位传感器的输出来判断汽车是否开始转弯,若没有,则认为汽车还没有达到路口,进行地图匹配修正;若有角运动,则在更小的判断域内作进一步判断。当汽车开出判断域后,根据转弯的角度和路网信息确定下一条行驶路线,在新路线上进行位置匹配。 3 最优路径规划设计 车辆导航系统中的最优路径规划问题属于图论中的最短路问题,但是它具有自己的特点。首先车辆导航的实时性要求是显而易见的,在出行过程中一旦由于路况变化或其他原因使车辆未能按预定导航路线行驶,则系统必须重新计算最优路线,因此对规划算法的执行效率要求较高,即运行速度一定要快。一般来说,路径规划算法的高效实现可以利用三种方法来获得:采用先进的数据结构缩短运行时间;采用先进的搜索技术减小搜索空间;采用地图分层和分级搜索技术控制规划路网的规模。 4 车辆定位导航系统终端设计

智能盲人路面导航系统报告

计算机学院 单片机设计与开发技术报告 题目:盲人智能导航路面系统设计与开发姓名:学号 姓名:学号 姓名:学号 指导老师: 起止时间:2016 年9 月至2016 年12月 西安电子科技大学计算机工程系 2012年5月制

摘要 此系统目的在于提供一种方便盲人独自安全出行的导航系统,旨在解决现有的盲人导航系统不能够准确、安全的为盲人导航的问题。系统采用RFID射频识别技术进行导航,将道路存储在电子标签,再转换成相应的语音提示信息,从而实现为盲人提供精确、安全的导航,解决盲人的出行问题。现阶段已完成预定功能,实现RFID盲人导航、语音提示、盲人输入法、GPS导航、语音读取短信、GSM相关功能等。系统能准确的帮助盲人到达目的地,让盲人实现自由地出行。 关键词:盲人出行;盲人导航;RFID

第一章绪论 当今社会科技发展迅速,带给人们生活的便利也越来越多,从物联网到大数据,从互联网到人工智能,所有的一切都是为了让人们体会到更加便捷。然而这些技术中却很少有为盲人服务的。中国是世界盲人最多的国家之一,目前约有500万盲人占世界盲人总数的10%以上,低视力者600多万,盲人的出行成了一个不可忽视的社会问题。 目前盲人出行主要依靠盲道、手杖。已经面世的盲人导航系统大多基于超声波识别系统,现有的超声波盲产品往往只能够辨别出前方是否有障碍物以及障碍物的距离,无法知道障碍物到底是什么。而这些在实际使用过程中,都存在一些不足之处,存在安全隐患和导盲的精确性问题。利用RFID新兴技术进行盲人导航有着可靠性高、定位精确的特点,通过语音的方式对盲人出行进行引导,为成千上万的盲人出行带来方便。

智能网联汽车导航定位系统

项目五智能网联汽车导航定位系统 【教学目标】 通过本章的学习,要求学生掌握智能网联汽车中导航定位的含义;了解全球导航卫星系统的类型,以及全球定位系统、北斗导航定位系统、惯性导航系统、通信基站定位的原理,熟悉高精度地图与导航地图的差别,以及高精度地图的作用。 【教学要求】 【导入案例】 图5-1所示为无人驾驶汽车,车内的人员可以聊天、办公、购物、会议等,不需要监管汽车。这是未来人们的生活,无人驾驶汽车不仅仅是交通工具,更是人们生活、办公的场所,无人驾驶汽车将改变未来人类的生活方式。 图5-1 无人驾驶汽车 智能网联汽车和无人驾驶汽车在行驶过程中是如何定位的?高精度地图有哪些作用?通过本章的学习,读者可以得到答案。

练习与实训 一、名词解释 1.导航定位 2.全球定位系统 3.北斗卫星导航定位系统 4.惯性导航系统 5.高精度地图 二、填空题 三、选择题 1. 不属于GPS的是()。 A.卫星 B.控制站 C.接收器 D.高精度地图 2.具有定位和通信功能的是()。 A. 美国的全球定位系统(GPS) B. 中国的北斗卫星导航定位系统(BDS) C. 俄罗斯的格洛纳斯(GLONASS)卫星定位系统 D. 欧洲空间局的伽利略(GALILEO)卫星定位系统 3. GPS定位时要求接收机至少观测到()颗卫星的距离观测值才能同时确定出用户所在空间位置。 A.3 B.4 C.5 D.6 4.RKT技术是一项能够在野外实时得到()级定位精确的测量方法,这项技术采用了载波相位动态实时差分。 A.毫米 B.厘米 C.分米

D.米 5.高精度地图采集使用的传感器是()和()。 A.毫米波雷达 B.超声波传感器 C.激光传感器 D.GPS 四、问答题 1.智能网联汽车的定位技术主要有哪些? 2.GPS的工作原理是怎样的? 3. BDS有哪些特点? 4. 为什么无人驾驶汽车必须配备惯性导航系统? 5. 导航地图和高精度地图的主要区别是什么?

校园导航系统论文

题目: 基于UML校园导航系统的设计与实现 学生姓名:容小娟 学生学号:1206403029 学生班级:计科三班 指导教师:姚敦红讲师

2015年6月14日

校园导航系统的设计与实现 摘要 与传统的地图相比较,校园导航系统有着不可比拟的优势,信息量大,切换方便,可扩展性强。本文阐述了校园导航系统的背景、目的、方法,介绍了一个实用的、方便可靠的校园导航系统的设计、构建和开发过程。 开发过程中,使用了Rational Rose建模,此系统在Windows 7平台上测试通过。 本文先简要介绍了校园导航系统的概况,然后介绍了校园导航系统的组成及功能,详细讨论了在设计实现本系统中所遇到的问题及解决方法。 关键词:校园导航系统、系统、建模

Design and Implementation of Campus Navigation System of Campus Abstract Compared with traditional map, Campus Navigation System has many unique advantages,such as full of information, convenient switching and good expansibility. The paper expatiated on the background, the purpose and the method of the research of Campus Navigation System, and introduced the design, building and developing method of Campus Navigation System of campus, which has characteristics of utility, convenience and reliableness. In the procedure of developing, Using the Rational Rose modeling . The system is running well on Windows 7 platform. In this paper Campus Navigation System in the general is reviewed briefly, the constitution and function of Campus Navigation System of campus are introduced, the problem we met and the resolvent in the procedure of design and implementation of the system are discussed in detail. Keywords:Campus Campus Navigation System、system、modeling

相关文档
最新文档