文档库 最新最全的文档下载
当前位置:文档库 › 校园导航系统

校园导航系统

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

题号:第七题

题目:校园导航问题

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()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。

main(

Creat menu(

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

main(Creat

Creat()函数原型为:

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

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

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

信息,并进行存储。

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

menu(

Informatio Informatio

menu()函数的原型为:

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

Information1()函数原型为:

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

Information()函数原型为:

void Information(AdjMGraph G, char scenery[]) G 依然是所创建的图的结构体对象,后面所有的G 都是表示这个意思;scenery[] 是在Information1() 中输入的景点的

名称。此函数的功能就是根据输入的景点的名称来查询其相关的信息。

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

menu(Path1Path(Floyd

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 ()函数原型为:

menu(

Modif

menu(AddVerti menu(

DeleteVert

ListInse

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,从线性表头扫描到表尾,

menu(

AddRoad(

DeleteRo InsertEd

DeleteEdge

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,1 0},{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;

{

{

break;

}

}

{

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

}

}

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

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

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

int value[MaxVertices];

{

{

j=i;

}

{

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\n",sceneryname1);

}

else

{

for(i=0;i

{

}

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);

{

{

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

scanf("%d",&x);

if(x==1)

{

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

break;

}

if(x==2)

{

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

break;

}

if(x==3)

{

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

break;

}

}

}

校园导航系统---算法与分析课程设计

算法设计与分析课程设计 题目:校园导航问题 文档: 物联网工程学院物联网工程专业 学号 学生姓名 班级物联网1101 二〇一三年十二月

设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路(最短路径)。 本系统为用户提供以下功能: (一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。 (二)、查询校园各个场所和景点信息; (三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学校。完成需要操作时,退出系统 校园导航查询系统的开发方法总结如下: (1) 需求分析,了解学校各个场所与场所或者是各个景点与景点之间的信息,路径和距离,考虑该如何设计才能满足用户需求。 (2) 概要设计,对调查得到的数据进行分析,根据其要求实现的功能分析系统结构和界面将实现的基本功能。 (3) 详细设计,设计系统界面并编辑实现其各个功能的代码。 (4) 调试分析,在设计完成后,调试系统运行的状况,修改完善系统,然后进行测试。 一、需求分析 1学校以及各景点介绍模块 采用一维数组将学校景点依次排放好编号G.vex[i].number=i 在选择校园介绍的时候,弹出G.vex[0]校园简介。在选择各景点信息的时候,可按编号查询2查询最短路径(主要) 查出出发地到想要到达的景点的最短路径,初步构想采用最经典的迪杰斯特拉算法最短路径函数 3查询各点距离 将所有景点的距离显示出来。 4主菜单页面显示 提供使用者选择功能界面,按照提示进行操作。 5退出 完成需要操作时,退出系统

校园导航系统模式图 二、概要设计 2.1算法设计说明 校园导航模型是由各个景点和景点以及场所和场所之间的路径组成的,所 以这完全可以用数据结构中的图来模拟。用图的结点代表景点或场所,用图的边 代表景点或场所之间的路径。所以首先应创建图的存储结构。结点值代表景点信 息,边的权值代表景点间的距离。结点值及边的权值采用图存储。本系统需要查 询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所 以给每个景点一个代码,用结构体类型实现。计算路径长度,最短路线和最佳路 径时可分别用迪杰斯特拉(Dijkastra )算法和哈密而顿回路算法实现。最后switch 选择语句选择执行浏览景点信息或查询最短路径和距离。 2.1.1学校以及各景点介绍模块 采用了图的邻接矩阵存储结构,首先初始化每一个景点名称(一维数组) fo r(i=1;i

数据结构课程设计-校园导航

数据结构课程设计-校 园导航 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

课程设计报告 课程名称数据结构课程设计题目校园导航 指导教师 设计起始日期 5.9~5.16 学院计算机学院 系别计算机科学与工程 学生姓名 班级/学号 成绩

一、需求分析 本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求: 设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 本课题实现校园多个场所(至少10个)的最短路径求解。 (1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。 (2 ) 输出的形式:输出则通过已有的信息数据,通过相关的操作输出相应信息。 (3) 程序所能达到的功能:本程序可供任何人使用,主要功能1.浏览各单位及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。 (4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。 a.首先看到的是校园导航系统的菜单: b.查看浏览路线等待输入起始景点: C.选择出发点与目的地等待输入起始景点与目的地编号: d.参看景点信息等待输入景点编号:

二、概要设计 本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。 系统首先通过主程序调用void main( );进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2.查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。 选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。 选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。 选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景 点与目的景点,并有空格隔开就得到两景点之间的最佳路径。 选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。 选择“退出系统”项,就会退出程序。 三、详细设计 (1)十三个单位的图

校园导航系统

课程设计 课程名称软件工程 题目名称校园导航系统专业班级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 心得体会 格式调整 代码指令的共同调试

物联网的智慧校园管理系统

物联网的智慧校园管理 系统 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

物联网的教室管理系统在学校,课堂教学环节是学生接受系统教育最重要的一环,做好教学互动环节,是掌握好教学环节的质量,提高教学水平的关键。现行的教学过程中,传统的签到环节、教室使用率均存在诸多问题。签到过程中,使用纸张签到,效率低且存在代签现象,结果不便于教师统计;随着高校的扩招,在校学生越来越多,而相应高校面积却没有扩建。随着高校后勤社会化改革,学生上课条件得到了很大改善,可供学生选择的余地也越来越大,但是如今学生和自习座位现行的教学楼管理系统中存在着许多问题,目前国内大部分的教学楼管理内部还处于原始的人工管理阶段,无论对自习的学生还是对教学楼的管理者都造成了极大地困扰。尤其是在高峰期形成拥挤的现象,极大的耽误了时间。传统的教学方式已经不适应现代化教学的需要,基于物联网技术集智慧教学、人员考勤、视频监控及远程控制于一体的新型现代化智慧教室系统在逐步的推广运用。智慧教室作为一种新型的教育形式和现代化教学手段,给教育行业带来了新的机遇。 目标: 1、教室课程安排。 学生可以通过手机、pad、电脑等设备对各教室使用情况进行查询,引导学生以最短的时间快速进入自己中意的教室,提高教学楼的使用率、提高学生满意度。 绿色:无课,座位使用率在50%以下。

蓝色:有课 黄色:无课,座位使用率在50%以上,70%以下 橙色:无课,座位使用率在70% 以上 学生可以通过手机、PAD、电脑等设备对每个教室本周的课程情况进行查询。 课程安排信息与教务处课程安排同步。需要教务处提供软件借口。 每个教室需要安装传感器进行监测教室中的人数。 如下图,是教室米高处的截面图。虚线位置为传感器安放位置,其中传感器安装在门框上,传感器安装在与传感器成30°角的位置。 (1)如果一个人先经过号传感器,然后接着接着经过了号传感器,则记录为教室进入一人; (2)如果一个人先经过号传感器,然后但是没有经过了号传感器,而是又经过了号传感器,则记录为教室未进入一人; (3)如果一个人先经过号传感器,然后接着经过了号传感器,则记录为教室出去一人;

校园导航系统源代码

数据结构-校园导航系统 简介:本系统采用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();

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

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 资源管理、信息安全管理) 建贵州理工学院云服务平台 云计算管理中心(虚拟化管理) 设置会议发言、扩声、音频处理、视频 满足报告厅举办演讲、报告等会议声学、视 显示、摄像、音视频切换、同声传译、 频显示、视频会议及音视频切换控制要求。 中控等设备 满足体 育馆的声学要求,具有足够的声压 设置场地扩声和观众席扩声 级、良好的语言清晰度、 均匀的声场,以及

校园导航系统

题号:第七题 题目:校园导航问题 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>,算法设计: 关于本课题的算法,很大部分来源于这学期数据结构课程的学习,其中包括:

智慧校园管理系统模块简介

智慧校园管理系统功能简介 一.电子请假系统:一站式请假,各方联动。 1·学生出校信息可发送给班主任、家长和出入校控制系统; 2·具有统计功能,能够按照请假学生的事由、年级、班级等条件进行统计。各个老师依据自身权限能够第一时间查看管辖范围内当前的学生请假情况; 3·学校领导可随时进行查询和查看。 4·学生请假验证采用“刷脸”验证,及时反馈班主任和家长,且信息永久保存。 5·人脸识别系统严格把控,杜绝了以往学生使用假假条出校或以他人身份出校的情况; 6·有学生请假出校时,信息及时抄送给班主任和家长; 7·返校时人脸识别与出校信息做匹配以查证; 8·出校信息可存档留证,永久保存。 二、电子班牌:教室门口即可掌握班级各项信息,智能化班级管理。 1·安装在每个班门口可展示班级风采、任课教师风采、班级基本信息、学生请假信息、储物柜存取信息和发布通知公告的终端设备; 2·班主任具有修改电子班牌的全部权限; 3·班主任能够在本班班牌上发送通知以外,年级主任具有在年级内所有班牌发送通知的权限,学校领导则能够对全校的班牌发送通知; 三.宿舍考勤:通过宿舍考勤系统第一时间了解目前学生的归宿情况。 1·能够快速准确的识别归宿学生并记录,能够协助并减轻宿管晚上查寝的工作; 2·正常走动经过考勤设备处,设备屏幕显示学生姓名后即算作考勤成功; 3·宿管老师根据考勤系统屏幕上提供的考勤结果,可针对未考勤的学生进行重点查房,如发现问题即可及时向主管领导汇报; 4·宿舍考勤系统能够与请假系统联动,将学生请假信息显示在考勤结果中。 四.会议考勤系统:人脸识别办公考勤,大大节约教师考勤时间。 1·无需停留,可同时识别最高可达16人 2·可自动统计考勤结果

《校园导航系统》课程设计报告

《校园导航系统》课程设计报告 姓名: 学号: 班级:网络 专业:网络工程 指导教师: 时间:2

目录 摘要 (1) 1.题目 (1) 2.概要设计 (1) 3.调试分析 (15) 4.参考文献 (15)

1.题目 校园导航系统 设计一个校园导游程序,后台操作: 1、操作员信息管理如修改密码等 2、能根据学校的规模进行添加景点信息、修改景点信息等功能, 3、若临时有交通管制,能进行交通管制的设置和撤销(如某某时间段那条路进行那个方向的交通管制等) 前台为来访的客人提供各种信息查询服务: 1、设计学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名 称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 2、为来访客人提供图中任意景点相关信息的查询。 3、提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径。 1.1 需求分析 设计一个校园导航系统,导航系统又分为游客和管理员。要进行管理操作还是游客操作由用户自己选择 管理员的操作:修改景点信息、增加景点信息、交通管制等。 游客的操作:查看景点信息和查最短路径。 2.概要设计 景点的信息由一维数组存放,景点关系由二维数据来存放 景点的信息和关系从文件读取,进而初始化 typedef struct //保存单个景点信息的结构体 { char code[10]; //存放景点代码 char name[20]; //存放景点名称 char instruction[100]; //存放景点简介 }ViewPoint; typedef struct //存放景点关系的二维数组 { int edges[MAXV][MAXV]; //两景点间的距离 int number; //景点的数量 ViewPoint V[MAXV]; //保存景点信息的结构体数组 }MGraph;

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

第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。 电子海图提供了当地水深和地质数据,航海危险物数据,助航标志数据等海图信息。 数据库主要存放来自传感器和电子海图的信息以及推理过程中的中间结果等数据,供机器学习及进行深入推理时随时调用。 知识库主要包括了根据国际海上避碰规则、船员经验和专家对国际海上避碰规则的理解和认识的模块及根据船员避碰行为和专家经验所推导的研究成果,包括了良好船艺的基础知识和规则;包括了实现避碰了推理所需的算法及其结果和由各种产生式规则形成的若干个基本避碰知识模块等构成。避碰知识库是船舶自动避碰块决策的核心部分。根据船员避碰实践、国际海上避碰规则、航海专家和专业人员对规则的解释及良好船艺的实地应用,通过知识工程的处理将其转化成可用的形式。所谓知识工程是这样的技术:它从专家和文献中选取有关特定领域的信息,并将其模型制成所选定的知识形式。描述知识可以有很多种不同形式,在本系统中所采用的专家系统中通常所采取的形式,即为“如果……那么……”产生规则。其主要优点在于它的积木性。对于避碰局面的划分,根据能见度好坏分为能见度好时两船会遇、能见度不好时两船会遇、能见度良好时多船会遇和能见度不良时多船会遇基本形式。在每一种划分中,根据不同的会遇情 况又有不同的避碰操纵划分。对每一划分的每一避碰操纵划分,根据专家意见及船员实际避碰操纵,规定了具体的操纵避碰方式。其根本目的是为推理机的推理提供充分的和必需的知识。 机器学习就是计算机自动获取知识。对于避碰这样一个动态、时变的过程,就要求系统具有实时掌握目标动态的能力,这样依据知识而编制的避碰方案才会具有人的应变能力。所建造的专家系统性能的好坏,关键取决于机器学习的质量,学习质量是通过学习的佥性(真实性)、有效性和抽象层次这三个标准来衡量的。本系统采取以下方式,提高专家系统的性能。系统设计中采用算法作为学习的表示形式,采用归纳学习作为学习策略,即学习中采用推理的方法。机器学习就是在推理机推理决定应选取哪个模块来确定避碰方法。方法

校园导航系统

目录 摘要 (2) 正文 (3) 1设计目的及要求 (3) 2 设计原理 (3) 2.1 C/C++语言简介 (3) 2.2 开发环境 (3) 2.3系统模块分析 (4) 3设计内容 (4) 3.1方案设计与论证 (4) 3.2数据结构描述与定义 (5) 3.3主要函数的说明 (6) 3.4设计结果验证 (11) 总结与致谢 (14) 参考文献 (15) 附录 (16)

摘要 与传统的地图相比较,地理信息系统有着不可比拟的优势,信息量大,切换方便,可扩展性强。校园导航问题是基于校园中的不同的景点,从陌生人的角度,为来往的客人提供校园景点相关信息的查询以及为来往的客人提供校园中任意景点的问路查询,以便客人能用最短的时间从某一地点到达想要去的地方。大大节约了旅客参观校园的时间。 本文是采用C++作为开发语言,又最大程度上用了C语言的有关的语法。以visual c++6.0为开发工具。旨在实现校园导航系统中,学校的简介,景点的介绍,路线查询等基本的问题。为来往客人参观校园提供方便。 关键字:visual c++6.0 ;校园导航系统;

正文 1设计目的及要求 1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3. 独立完成,提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4. 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。 5. 设计学校平面图,至少包括10个以上场所,校园导航系统能自动找出校园平面图中任意起始点与终点的最佳路径(最短路径)。求并输出路径及路径长度。 2 设计原理 2.1 C/C++语言简介 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。 C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。 2.2 开发环境 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行校园导航已成为衡量校园数字化的重要标志。校园导航效率的好坏对于来校参观的客人和学校管理者来说都至关重要,在很大程度上影响着校园的数字化建设和学校的影响力。因此,本文所研究的校园导航系统具有一定的使用价值和现实意义。

校园导航系统源代码

#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();

C语言校园导航系统

课程设计报告 课程设计题目:校园导航 专业:计算机科学与技术 班级:1230701 学号:2 学生姓名:胡玖龙 指导教师:刘志锋 2014年6月19日 1 / 17

实验题目: 校园导航系统 实验时间: 2014/6/16-2014/6/19 实验地点: 软件楼402 实验目的: 综合运用所学的数据结构知识解决一个关于学校导航系统的问题,侧重对图的相关内容特别是求最短路径的应用,使得能进一步熟悉掌握数据结构的基础知识,进一步提升自己的解决问题和编程调试能力,为后续专业课程的学习打下基础。 实验要求: 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从某个场所到达另一场所的最佳路径。 求最短路径用Dijkstra或Floryd算法实现。 2 / 17

实现思路: 先分析需求,本程序的主要目的是提供本学校地点的路径查询,并提供其他各种信息查询服务。 需求: 1、提供校园平面图,使得能直观的了解学校。 2、提供地点信息查询,为各地点提供简短的介绍。 3、提供任意两地点间最短路径查询,并计算总路程。 根据要求,先将校园平面图信息抽象为无向网,用邻接矩阵存储。 需求1: 定义map()函数,功能是输出校园的平面图。可简单的通过printf()函数实现。 需求2: 定义Query()函数,功能是查询输出地点信息。可直接输出无向网中的顶点信息。 需求3: 根据输入的起点和终点,运用Floryd算法,求出最短路径,计算路径长度并输出。 考虑到使用者并不一定需要使用所有的功能,所以开始时需要一个选择菜单。定义Menu()函数,功能是提供功能选择。 输入1,选择查看学校平面图 输入2,选择查看各地点信息 输入3,选择查找两地点间最短路径 输入4,退出程序 3 / 17

智能校园管理系统

智能校园管理系统 一、述概智能校园管理系统是采用物联网技术,将数字化校园内的各个网络互联网、监控网络、水电气网络、交通网络、车辆、人联系起来实现校园的信息化管理,校园安全管理。 二、求需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++程序的开发。我们日常的学习和生活中大多就用这个开发环境进行学习和编程。

校园导航系统课程设计

校园导航 课程设计报告书 专业:计算机科学与技术 课程设计名称:《数据结构课程设计》 题目:校园导航问题 班级: 学号: 姓名: 同组人员: 指导老师: 完成时间:2012年2月17日

摘要 校园导航问题是基于校园中的不同的景点,从陌生人的角度,为来往的客人提供校园景点相关信息的查询以及为来往的客人提供校园中任意景点的问路查询,以便客人能用最短的时间从某一地点到达想要去的地方。大大节约了旅客参观校园的时间。 本文是采用C++作为开发语言,又最大程度上用了C语言的有关的语法。以visual c++6.0为开发工具。旨在实现校园导航系统中,学校的简介,景点的介绍,路线查询等基本的问题。为来往客人参观校园提供方便。 关键词:C++;C;visual c++6.0;校园导航

目录 目录 (1) 第一章开发环境和开发工具 (1) 1.1 C/ C ++语言简介 (1) 1.2 开发背景 (1) 1.3 开发环境 (1) 第二章算法思想 (2) 2.1 系统需求分析 (2) 2.2 系统总体设计 (3) 2.2.1 系统设计目标 (3) 2.2.2 开发设计思想 (3) 2.2.3 系统功能模块设计 (3) 2.3 算法思想描述 (4) 第三章算法实现 (6) 3.1 数据结构 (6) 3.2 程序模块 (6) 3.3 各模块之间的调用关系上 (12) 3.4 源程序代码 (12) 第四章测试与分析 (22) 4.1 测试数据选择 (22) 4.2 测试结果分析 (26) 总结 (27) 心得体会 (28) 参考文献 (29)

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

RFID校园安全智能管理系统实施方案

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

1、校园门禁管理系统 解决问题点:非法人员进入、在校学生(住宿生、走读生)身份识别繁琐、学生冒领现象. 校门门禁管理利用RFID和人脸识别双重识别技术,对学生和校外人员地身份进行双重验证,主要负责控制校内学生和校外人员地出入管理,接送学生地家长地身份确认.杜绝非法人员进入校园,学生身份识别一一对应,消除学生冒领现象. 适用范围:校门门禁RFID+人脸识别,校园宿舍门禁RFID,校园机房门禁RFID,财务室门禁RFID. DXDiTa9E3d

人脸识别+RFID 2、宿舍进出管理系统 2 / 8 个人收集整理仅供参考学习 解决问题点:学生进出宿舍身份识别不清,进出无序,出入信息资料不健全. 对于学生进出宿舍楼进行实时地信息管理和记录,指定时间段地进出限制,进出路线判别,宿舍人员数量统计;非本住宿楼地学生禁止进入或指定时间门常闭,保障住宿安全. 场景图RTCrpUDGiT 3、家校通管理系统 解决问题点:家长和学校对学生地在校和离校信息地死角. 利用系统采集到地数据,以短信形式通知家长小孩到校离校情况.同时为家长与老师互动提供一个平台.做到家长和学校对学生在校和离校信息地无缝链接. 场景图5PCzVD7HxA 3 / 8 个人收集整理仅供参考学习

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

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

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

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

相关文档