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

校园导航系统课程设计

校园导航系统课程设计
校园导航系统课程设计

课程设计

课程名称数据结构题目名称校园导航系统专业班级13软件工程

二○一五年六月一日

目录

1 引言 (5)

1.1 问题的提出 (5)

1.2国内外研究的现状 (5)

1.3任务与分析 (5)

2 程序的主要功能 (6)

3程序运行平台 (6)

4 总体设计 (7)

4.1数据结构类型定义 (7)

4.2函数声明 (7)

4.3创建导航图,即无向图 (8)

4.4最短路径导航函数 (8)

5 程序方法的说明 (9)

5.1主菜单 (9)

5.2主函数 (10)

5.3迪杰斯特拉算法实现 (13)

6 模块分析 (15)

7 系统测试 (15)

7.1系统登录界面 (15)

7.2功能一:学校简介 (16)

7.3功能二:两点最短距离导航 (16)

7.4功能三:某点到其他所有点的最短距离 (17)

7.5功能四:显示全校地图 (17)

7.5退出导航系统 (18)

8 结论 (19)

附录: (19)

蚌埠学院计算机科学与技术系本科课程设计成绩评定表项目权重分值具体要求得分

文献阅读与调查论证0.20 100

能独立查阅文献和从事其它调研;有收集、加工各种

信息的能力

设计质量0.30 100 设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强的实际动手能力

论文撰写质

量0.20 100

设计说明书完全符合规范化要求,用A4复印纸打印

成文

学习态度0.20 100 学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务

学术水平与

创新

0.10 100 设计有创意,有一定的学术水平或实用价值

总分

评语:

等级:

指导教师:

年月日

附件4 分工协作说明(以列表形式具体说明每个人所做的工作);课题名称学生姓名学号所做的工作

校园导航系统张小蒙51302041036

算法设计、程序调试、课程设计报

告撰写

张浩51302041045

算法设计、程序调试、课程设计报

告排版

王威风51302041011

算法设计、程序调试、课程设计报

告撰写

柏祝林51302033026 算法设计、程序调试、资料查询鲍金林51302041041 部分算法设计、程序调试

张红伟51302041043

部分算法设计、程序调试、资料查

杨伟平51302041006 部分算法设计、程序调试

1 引言

1.1 问题的提出

设计一个校园导航系统,为来访的客人提供各种信息查询服务。

1.2国内外研究的现状

这个问题一直是国内外研究的热门话题。

1.3任务与分析

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

2 程序的主要功能

(1)设计校园平面图,在校园景点选8个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。

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

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

3 程序运行平台

计算机 windows7 Virtual c++ 6.0

4 总体设计

4.1数据结构类型定义

#include

#include

#include

#define MAX_V 30 //最大顶点个数

#define INFINITY 32767 //最大值

typedef struct

{

char* vexs[MAX_V]; //顶点向量

int arcs[MAX_V][MAX_V];//邻接矩阵

int vexnum,arcnum;//图的当前顶点数和弧数

}MGraph;

4.2函数声明

int CreateUDN(MGraph &G); //创建导航图函数声明

extern have[30];

void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]);//最短路径导航函数声明

int have[30];

void menu(); //导航菜单函数声明

void show1(); //显示全校面貌

int jianjie();//读取文件

4.3创建导航图,即无向图

int CreateUDN(MGraph &G)

函数描述:主要将每个节点进行命名,每个定点到其他所有定点的路径值用邻接矩阵进行存储。

例如:

G.vexs[0] = "小池塘";

G.vexs[1] = "东门";

作用:使0号定点命名为“小池塘”,1号节点命名为“东门”。

G.arcs[1][4] = G.arcs[4][1] =260 ;

作用:使1号定点到4号定点的路径赋值为260,同时4号定点到1号定点的路径长度也为260.

4.4最短路径导航函数

void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[])

函数描述:用迪杰斯特拉算法求最短路径。

5 程序方法的说明

5.1主菜单

void menu()

{

printf("\t\t\t\t☆☆☆☆学院各区名称☆☆☆☆ \n");

printf("\t\t\t\t☆(1) 小池塘(2) 东门(3) 西门☆ \n");

printf("\t\t\t\t☆(4) 北门(5) 东区宿舍楼(6) 西南宿舍楼☆ \n");

printf("\t\t\t\t☆(7) 北区田径场(8) 南区田径场(9) 一号食堂☆ \n");

printf("\t\t\t\t☆ (10) 二号食堂 (11) A B C教学楼(12) 重行楼☆ \n");

printf("\t\t\t\t☆(13) 行政楼(14) 艺术楼(15) 图书馆☆ \n");

printf("\t\t\t\t☆(16) 超市(17) 医务室(18) 没有了☆ \n");

printf("\t\t\t\t\t\t\t请选择导航功能:\n");

printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");

printf("\t\t\t\t\t≈ (1) 学校简介≈\n");

printf("\t\t\t\t\t≈ (2) 两点最短距离导航≈\n");

printf("\t\t\t\t\t≈ (3) 某点到其他所有点的最短距离≈\n");

printf("\t\t\t\t\t≈ (4) 显示全校地图≈\n");

printf("\t\t\t\t\t≈ (5) 退出导航系统≈\n");

printf("\t\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");

}

描述:程序主菜单显示。

5.2主函数

void main()

{

//system("color 09"); /*修改控制台的颜色信息,改为白字蓝底的模式*/

system("mode con: cols=140 lines=130"); /*设置运行时窗口大小*/ MGraph G;

int v0,i,end,j;

int P[MAX_V][MAX_V];

int D[MAX_V];

int choice,choice1;

printf("\t\t\t\t ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");

printf("\n\t\t\t\t≈≈欢迎光临蚌埠学院,祝您旅程愉快!≈≈\n");

printf("\n\t\t\t\t≈≈蚌埠学院校园导游系统为你服务≈≈\n");

printf("\n\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n\n");

CreateUDN(G);

while(1){

menu();

scanf("%d",&choice);

switch(choice){

case 1: jianjie();

break;

case 2: {

while(1)

{

printf("分别输入起点和终点代号以空格分开\n");

scanf("%d%d",&v0,&end);

ShortPath(G,v0,P,D);

printf("最短路径:\n ");

for(i=0;i

{

if(P[end-1][have[i]]==1)

printf("-->%s",G.vexs[have[i]]);

}

printf("\n路径长度:%d\n",D[end-1]);

printf("^_^ 本次导航结束:\n1.继续导航 2.返回主菜单\n");

scanf("%d",&choice1);

if(choice1==2)

break;

}

else if(choice1<1||choice1>2){

printf("你输入选项有误,请继续导航!!!\n");

}

}

break;

case 3: {

printf("请输入出发点:");

scanf("%d",&v0);

ShortPath (G,v0,P,D);

printf("v0到其他所有点的最短路径为:\n");

for(i=0;i

{

for(j=0;j

if(P[i][have[j]]==1)

printf("-->%s",G.vexs[have[j]]);

printf("\n路径长度:%d\n",D[i]);

}

}

break;

case 4:

show1();

break;

case 5:

break;

default:

printf("选择错误,请重新输入!\n");

}

if(choice==5)

{

system("cls");

printf("\n\n\n\n\n\n");

printf(" \t\t\t ┏━━━━━━━━━━━━━━━━━━━━┓\n"); printf(" \t\t\t ┃感谢使用┃\n"); printf(" \t\t\t ┃蚌埠学院┃\n"); printf(" \t\t\t ┃智能导航系统┃\n"); printf(" \t\t\t ┗━━━━━━━━━━━━━━━━━━━━┛\n"); printf("\n\n");

printf(" \t\t\twelcom to bengbu college,Good Bay!!!回车键退出。^_^\n");

break;

}

}

printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

}

5.3迪杰斯特拉算法实现

void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]) { //迪杰斯特拉发求最短路径

int v,w,i,j,min;

int final[MAX_V];

int k=1;

for(v=0;v

{//初始化

final[v]=0;

d[v]=G.arcs[v0-1][v];

for(w=0;w

p[v][w]=0;

if(d[v]

{

p[v][v0-1]=1;

p[v][v]=1;

}

}

d[v0-1]=0;

final[v0-1]=1;

have[0]=v0-1;

for(i=1;i

{

//其余的vexnum-1个顶点

min=INFINITY;

for(w=0;w

if(!final[w])

if(d[w]

{

v=w;

min=d[w];

}

final[v]=1;

have[k]=v;

k++;

for(w=0;w

{

d[w]=min+G.arcs[v][w];

for(j=0;j

p[w][j]=p[v][j];

p[w][w]=1;

}

}

}

描述:迪杰斯特拉算法求最短路径。

6 模块分析。

7 系统测试

7.1系统登录界面

7.2功能一:学校简介

7.3功能二:两点最短距离导航

7.4功能三:某点到其他所有点的最短距离

7.5功能四:显示全校地图

7.5退出导航系统

8 结论

在本次课程设计所做的校园导航系统中,最关键的问题是最短路径问题,在教材中有具体的算法——迪杰斯特拉算法求最短路径问题。但是想一次性就把程序调试出来是不可能的,我们组也是经过多次讨论才把程序完整的调试出来。通过这次的课程设计,我们学到了很多知识,也认识到很多不足,那就是知识的不足和经验的缺乏。但是我们相信自己可以在以后的学习中不断进步。

附录:

源代码:#include

#include

#include

#define MAX_V 30 //最大顶点个数

#define INFINITY 32767 //最大值

typedef struct

{

char* vexs[MAX_V]; //顶点向量

int arcs[MAX_V][MAX_V];//邻接矩阵

int vexnum,arcnum;//图的当前顶点数和弧数

}MGraph;

int CreateUDN(MGraph &G); //创建导航图函数声明

extern have[30];

void ShortPath(MGraph &G,int v0,int p[MAX_V][MAX_V],int d[]);//最短路径导航函数声明

int have[30];

void menu(); //导航菜单函数声明

void show1(); //显示全校面貌

int jianjie();//读取文件

void main()

{

// system("color F2"); /*修改控制台的颜色信息,改为白字蓝底的模式*/ system("mode con: cols=140 lines=130"); /*设置批处理运行时窗口大小的*/

MGraph G;

int v0,i,end,j;

int P[MAX_V][MAX_V];

int D[MAX_V];

int choice,choice1;

printf("\t\t\t\t ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n");

printf("\n\t\t\t\t≈≈欢迎光临蚌埠学院,祝您旅程愉快!≈≈\n");

printf("\n\t\t\t\t≈≈蚌埠学院校园导游系统为你服务!≈≈\n");

printf("\n\t\t\t\t≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈\n\n");

CreateUDN(G);

while(1){

menu();

scanf("%d",&choice);

switch(choice){

case 1: jianjie();

system("cls");

break;

case 2: {

while(1)

{

printf("分别输入起点和终点代号以空格分开\n");

scanf("%d%d",&v0,&end);

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

算法设计与分析课程设计 题目:校园导航问题 文档: 物联网工程学院物联网工程专业 学号 学生姓名 班级物联网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

校园导游系统程序课程设计报告

1、需求分析 设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。 (1).设计工商学院校园无向图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2).为来访客人提供图中任意景点相关信息的查询。 (3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2、设计思路 校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。

3 算法设计 3.1 概要设计 3.1.1程序中包含的模块 (1)主程序模块 主函数:void main(void) void cmd(void) cmd修改显示框大小,字体背景颜色,初始化景点,景点信息打印菜单, MGraph InitGraph(void); //初始化图。 MGraph * CreatUDN(MGraph *G);//初始化图形接受用户输入 void Menu(void);//菜单函数 void Browser(MGraph *G);//浏览函数 void ShortestPath_DIJ(MGraph *G); void Floyd(MGraph *G);//查询图中任意两个景点间的所有路径 void Search(MGraph *G);//查找函数 int LocateVex(MGraph *G,char*v); // 迪杰斯特拉算法计算起点各顶点间短路径, void print(MGraph *G);//输出函数 (2)查询模块 景点信息查询:void introduce() 最短路径查询:要查找的两景点的最短距离:用floyd算法求两

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

数据结构课程设计-校 园导航 -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)十三个单位的图

数据结构课程设计报告(校园导游系统)附有源代码

课程论文(设计)2011-2012学年第2学期 课程名称:数据结构课程设计 课程性质:实践课 专业班级: 考核方式:考查 学生姓名: 学号: 学时:1周 教师姓名:

目录 1. 作业内容 (1) 2. 基本思路 (1) 2.1 本校10个景点 (1) 2.2 图的初始化 (2) 2.3 图的遍历 (2) 2.4 求最短路径 (3) 3.系统流程 (4) 3.1 系统的简单说明 (4) 3.2 系统流程图 (5) 4. 系统运行效果图 (5) 4.1 校园导游界面 (5) 4.2 华农校园地图 (6) 4.3 景点的相关信息查询 (6) 4.4 任意两个景点间的最短路径 (7) 4.5 退出校园导游系统 (8) 5.总结 (9) 6.参考文献 (10)

1. 作业内容 设计一个校园导游程序,为来访客人提供各种信息查询任务。基本要求: (1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介信息,以边表示路权,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点相关信息的查询 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2. 基本思路 要完成对整个导游图系统的功能实现,需要对的每一项功能都有清楚的设想和认识,了解并明确每一项功能的实现需要解决的问题,选择正确并且高效的算法把问题逐个解决,最终实现程序的正确调试运行。有以下设计思路: (1).结合本校的实际情况,选出10个景点; (2).人为手工为选出的10个景点赋上相关信息(名称、代号、简介信息、以及路权等等); (3).根据选出来的10个景点用邻接矩阵存储校园图。 (4).依照景点的相关信息创建校园图。 (5).把纸质上的内容,利用C++编程语言编写查找景点相关信息的程序。 (6).根据人为赋值的路权,迪杰斯特拉算法计算任意两点之间的最短路径。 (7).综上所诉,用一个主函数把这些板块合成,生产一个菜单界面呈现在用户面前。 为此,可把系统分为以下几个核心:图的初始化、图的遍历、求最佳路线。 2.1 选出本校10个景点 结合华南农业大学实际情况,我选出以下10个景点,从1到10编号:

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

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

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

校园导航系统

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

校园导航系统源代码

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

校园导游系统设计与实现

校园导游系统设计与实现

目录 1.设计要求 2.1需求分析 2.2概要设计 2.3各个模块名称和功能 2.4 系统导游主界面 2.4.1前台系统 2.4.2后台系统 2.4.3退出系统 3实验总结 参考文献 附件

1.设计要求 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 2.1需求分析 ⑴设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于30 个。以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。 ⑵存放景点代号、名称、简介等信息供用户查询。 ⑶为来访客人提供图中任意景点相关信息的查询。 ⑷为来访客人提供图中任意景点之间的问路查询。 ⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。 景点距离图 2.2概要设计

校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。最后用switch 选择语句选择执行浏览景点信息或查询最短路径。 1、主界面设计 为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。 2、存储结构设计 本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量vexnum、arcnum 表示,它们是整型数据。 3、系统功能设计 本系统除了要完成图的初始化功能外还设置了9个子功能。图的初始化由initgraph()函数实现。依据读入的图的顶点个数和边的条数,分别初始化图结构中图的顶点数组和图的邻接矩阵。9个子功能的设计描述如下。 ⑴景点信息查询 景点信息查询由函数seeabout()实现。该功能根据用户输入的景点编号输出该景点的相关信息。如景点编号、名称等。 ⑵学校景点介绍 学校景点介绍由函数browsecampus()实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点介绍。 ⑶相邻的景点及其距离 为使游客能够知道其周围的景点和路径,方便他们迅速知道其所在位置和周围信息 ⑷查看浏览线路 查看浏览线路由函数shortestpath_dij()实现。该功能采用迪杰斯特拉(Dijkstra)算法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其他景点的最短路径线路及距离。当用户选择该功能,系统能根据用户输入的起始景点及目的景点编号,查询任意两个景点之间的最短路径线路及距离。 ⑸更改图信息 修改一个已有景点的相关信息、删除一个景点及其相关信息、删除一条路径、加一条路径、修改路径长度、添加一个景点 ⑹数据安全防范 设置密码,能保证数据不会被随便更改,由pass()判定密码是否正确,可由changepw()函数修改密码,初始密码为gdufsx ⑺写入文件并保存修改 打开该软件,若没有graph.txt,则会由系统初始化生成一个graph.txt,若已存在该文档会由该文档中的内容初始化系统。 ⑻恢复初始状态 若数据已经显得很杂乱并很难修理,就可以启用这个功能

数据结构课程设计—校园导航报告

课程设计报告 院、系: 专业:软件工程 班级: 课程设计科目数据结构 学生姓名: 指导教师: 完成时间:

校园导航系统设计报告 一、设计任务与目标 设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 本系统是一个涉及吉林大学珠海学院相关景点和场所查询系统,是为了方便人们能够更快更准地获得学校各个景点和场所的详细信息。 本系统为用户提供以下功能: (一)、查询了解学校概况,为导游参观者提供关于学校的相关信息。 (二)、查询校园各个场所和景点信息; (三)、为导游者或外来人员参观人员提供校园交通信息,方便用户走访学 校。 校园导航查询系统的开发方法总结如下: (1) 调查,了解学校各个场所与场所或者是各个景点与景点之间的信息, 路径和距离,从外来人员或者参观者和走访者的角度出发,该如何设 计才能满足用户需求。 (2) 分析,对调查得到的数据进行分析,根据其要求实现的功能分析系统 结构和界面将实现的基本功能。 (3) 设计与开发,设计系统界面并编辑实现其各个功能的代码。 (4) 调试,在设计完成后,调试系统运行的状况,修改完善系统,然后进行 测试。 二、方案设计与论证 校园旅游模型是由各个景点和景点以及场所和场所之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点或场所,用图的

边代表景点或场所之间的路径。所以首先应创建图的存储结构。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值采用图存储。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度,最短路线和最佳路径时可分别用迪杰斯特拉(Dijkastra)算法和哈密而顿回路算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径和距离。 搭建程序框架图,其图如下所示: 三、算法说明 (一)设计功能的实现 接下来根据以上搭建的程序框架完成各个模块的算法 1、首先是抽象数据类型的定义:

校园导游系统

课程设计说明书 课程名称:数据结构与算法 设计题目:校园导游系统 院系:计算机科学与信息工程学院 学生姓名: 学号: 专业班级:计算机科学与技术信息技术方向11-1 指导教师: 2013年6月21日

课程设计任务书 校园导游系统

摘要: 随着社会经济的发展,人们接近自然的机会就越多,因此外出旅游现在被越来越多的都市人所看中,所以如何快速方便的找到我们想要的旅游景点的信息和最短路径,如何简单的修改相关的信息,就成了很重要的问题。 本设计基于图的结构,用数组表示法创建一个无向图,针对游客的实际需求,将安阳工学院的景点编号、名称、介绍等信息放入到图的顶点当中,将路径长度的信息存放在弧当中。利用弗洛伊德算法求出两个景点之间的最短路径,利用迪杰斯特拉算法来求从一个景点到其他剩余的所有景点的最短距离;用相应的函数来查找景点,并显示出它的编号,信息,简介。并进行一定的界面美化,更贴近用户,相应的提示使用户操作起来更容易。 关键词:最短路径、查找景点信息、无向图 目录

1. 设计背景 (3) 1.1程序设计内容 (4) 1.2程序设计要求 (4) 2.设计方案 (4) 2.1 校园景点图 (5) 2.2 程序模块图 (5) 2.3 主函数设计简要 (6) 2.4 各函数模块的功能 (6) 3. 方案实施 (7) 3.1 程序执行流程图 (7) 3.2 主函数设计思想 (7) 4. 结果测试 (9) 4.1 主函数功能模块测试 (9) 4.2 主函数功能测试 (9) 4.3 各功能所执行的操作 (12) 5. 结论 (12) 6. 收获与致谢 (13) 7. 参考文献 (14) 8. 附件 (14) 1. 设计背景

实用文库汇编之数据结构课程设计校园导航

*作者:座殿角* 作品编号48877446331144215458 创作日期:2020年12月20日 实用文库汇编之一、课程设计目的 本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。 设计中要求综合运用所学知识,上机解决一些与实际应用结合紧密的、规模较大的问题,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析、解决实际问题的能力。 通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 二、课程设计内容 1)问题描述 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 2)基本要求 (1)查询各景点的相关信息; (2)查询图中任意两个景点间的最短路径。 (3)查询图中任意两个景点间的所有路径。

(4)增加、删除、更新有关景点和道路的信息 三、课程设计过程 1.需求分析 (1)设计学校的校园平面图,选取出若干的具有代表性的景点构成一个抽象的无向带权图,顶点为景点,边的权值代表了景点间路径的长度。 (2)将景点的序号,名称,介绍存放起来准备查询。 (3)提供任意景点的信息; (4)提供任意经典的路径查询及其最优路线的查询 (5)平面图景点的增加及删除,以及边和权值(长度)的改变 2.概要设计 1:第一点是主界面的设计,首先,为了该系统各个功能的管理,设计出含有多个菜单项的主菜单界面,可以更方便的使用该系统。 2:第二点是存储结构的设计,采取了图结构类型(mgraph)存储校 园图的信息,景点信息用结构数组vexs存储,而且利用全局变量:visited[]数组用于存储顶点是否被访问标志;d[]数组用于存放权值和查找路径顶点的编号;campus是一个图结构的全局变量。 3:第三点是设计各个功能的实现,学校景点的介绍通过函数 browsecompus()来实现;查询景点间的最段路径通过Floyd(弗洛伊德)算法实现;查询景点间的所有路径通过allpath函数和path函数来实现;更改图的信息可以由主函数changegraph以及其他函数可以实现。 3.详细设计 (1)主要的操作界面的显示以及无向网操作 void initgraph(graph *ga)

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

《校园导航系统》课程设计报告 姓名: 学号: 班级:网络 专业:网络工程 指导教师: 时间: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;

校园导航课程设计

数据结构课程设计

蚌埠学院计算机科学与技术系课程设计任务书

目录 1 引言 (4) 1.1 问题的提出 (4) 1.2任务与功能简介 (4) 1.2.1任务 (4) 1.2.2功能简介 (4) 2 程序运行平台 (5) 3 总体设计与模块分析 (6) 3.1抽象数据类型定义 (6) 3.2主程序模块的整体流程 (6) 3.3各模块调用和函数关系如下 (6) 4 程序的主要功能实现 (8) 4.1 main()——主函数 (8) 4.2赋值init函数 (8) 4.3输出蚌埠学院校园导航平面图的map函数 (10) 4.4菜单menu函数 (11) 4.5输出地点信息的information函数 (12) 4.7输出路径way函数 (13) 4.8调用floyd和way的最短路径shortestpath算法 (14) 5系统测试 (15) 5.1系统运行后主界面 (15) 5.2查询最短路径 (16) 5.3查询地点信息 (17) 致谢 (19) 参考文献 (20) 附录 (21)

1 引言 为了加深对《数据结构》这一课程所学内容的进一步理解与巩固,我们这一组按课程设计要求完成了校园导航系统的设计。 1.1 问题的提出 我们这次基于对导航这个热门问题的研究设计了简易校园导航系统,我们的导航平面图中至少包括8个以上校园的场所,每两个场所间可以有不同的路,且路长也可能不同,给出校园各主要建筑的名称信息及有线路联通的建筑之间的距离,利用校园导航系统计算出给定的起点到终点之间的最近距离及线路。本导航系统能够很好的向同学们提供距离与地点的详细信息。 1.2任务与功能简介 1.2.1任务 (1)本次作业的核心是利用弗洛伊德算法计算给定有向网中两点最短距离;给出有向网中所要求点的信息。在调试过程中,除了简单语法错误外,就是对弗洛伊德算法的理解和实现,以及菜单的设置,这是我以前没有实现过的。出于简单化,并没有对有向图中各个点进行输入,而是在程序中直接赋值。 (2)在对各个功能操作的实现上,由于有弗洛伊德算法时间复杂度大多数是O(n3),空间上增加了二维数组,空间复杂度为O(n+s)。 1.2.2功能简介 程序所能达到的功能: (1) map——输出蚌埠学院导航平面图。 (2) init()——按相应编号输入各个节点内容,对相应路径赋值的函数。 (3) menu()——菜单函数 (4) information()——输出简介的函数 (5) way()——最短路径的输出函数 (6) shortestpath()——调用弗洛伊德和最短路径输出的函数 (7) main()——主函数

校园导航系统 数据结构课程设计 C++开发

分类号编号 华北***大学 North China Institute of Water Conservancy and Hydroelectric Power 课程设计 题目校园导航 院系信息工程学院 专业计算机科学与技术 姓名****** 学号201117000 指导教师***** 2012年7月6 日

目录 1.需求分析 (1) 1.1问题描述 (1) 1.2课程设计目的 (1) 1.3设计要求 (1) 2.概要设计 (2) 2.1任务定义 (2) 2.2数据结构 (2) 2.3 校园平面图展示 (2) 2.4系统功能图 (4) 3.详细设计 (4) 3.1各个模块名称和功能 (4) 3.2具体函数模块详解 (5) 3.2.1校园平面图展示 (5) 3.2.2任意两点的所有路径 (5) 3.2.3校园基础设施介绍 (6) 3.2.4指定两点间最短路径 (6) 3.2.5单点到其他左右顶点间最短路径 (6) 3.2.6华北水利水电学院简介 (7) 3.2.7访客留言 (7) 3.2.8浏览访客留言 (7) 3.3 主要算法思想描述 (7) 3.4各函数之间的调用关系示意图 (7) 4.测试与分析 (8) 4.1测试显示 (8) 4.2调试分析 (12) 4.2.1调试过程中遇到的问题与解决方案 (12) 4.2.2算法的时空复杂度分析 (12) 5.用户使用说明 (12) 6.实验总结 (14) 7.参考文献 (14) 8.附件 (15)

校园导航系统 1.需求分析 1.1问题描述 我们熟悉一个地方的地形情况通常是借助于一张地图,通常的地图包含的信息十分的有限,而且具体到某一个建筑物,你不能了解到它的进一步的详细的情况。因此,导航系统就应运而生了。 具体到本系统,作为用户浏览校园时,只拿着学校的地图是能够游遍全校,但是各建筑内部的情况就必须实地考察才能了解,既费时又费力。有了我们的校园的导航系统,用户可以根据自己的需要,迅速找到所关心的地点,并且可以看到它的详细的信息。 1.2课程设计目的 本课程设计的目的就是要达到理论与实际应用相结合,使我们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,培养程序设计技能如下: (1)了解并掌握数据结构算法的设计方法,具备初步的独立分析和设计能力; (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (3) 独立完成,提高运用所学的理论知识和方法独立分析和解决问题的能力; 1.3设计要求 设计一个校园导航系统,为来访的客人提供导航服务,具体要求: (1) 设计学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。 (2)以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息 (3) 为来访客人提供图中任意景点相关信息的查询。 (4) 提供途中任意景点问路查询,即求任意两个景点间的一条最短的简单路径以及任意景点到其他所有景点的最短路径查询。 (5) 列出所有校内无重复排列的景点,将所有景点的距离以邻接矩阵的方式呈现给使用者,提供使用者选择功能界面,按照提示进行操作。

数据结构 校园导游系统课程设计

滨江学院 《数据结构》课程设计题目校园导游咨询程序设计 学号 学生姓名 院系 专业 指导教师 二O一二年月日

1、题目的内容及要求 设计一个校园导游程序,为来访的客人提供各种信息查询服务。 2、需求分析 (1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 (2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。 3、概要设计 1.功能模块图; void CreateUDN();//创建无向网 void Search();//查询景点信息 void Shortestpath(int i);//计算最短路径 void Output(int sight1,int sight2);//输出函数

2.各个模块详细的功能描述。 CreateUDN();//创建无向网、主要用来保存各景点信息Search();//查询景点信息、景点的名称及介绍Shortestpath(int i);//计算两景点间最短路径 Output(int sight1,int sight2);//输出两景点最短路径及信息3.模块图

4、详细设计 一、图的储存结构 #define Max 30000 #define NUM 10 typedef struct ArcCell { int adj; /*相邻接的景点之间的路程*/ }ArcCell;/*定义边的类型*/ typedef struct VertexType { int number; /*景点编号*/ char *sight; /*景点名称*/

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

题目石铁大校园导航系统 学院信息科学与技术学院 专业计算机科学与技术 学号 20112840 学生姓名刘铸辉 指导教师姓名陈娜 日期:2013-8-31

一.题目与要求 实习一 校园导游程序 [ 问题描述] 用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景 点介绍、游览路径等问题。游客通过终端可询问: (1 )从某一景点到另一景点的最短路径。 (2 )游客从公园进入,选取一条最佳路线。 (3 )使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。 [ 基本要求] (1 )将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。 (2 )把各种路径都显示给游客,由游客自己选择浏览路线。 (3 )画出景点分布图于屏幕上。 [ 实现提示] (1 )构造一个无向图G 并用邻接矩阵来存储。 (2 )利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][] 来记录,最短路径长度就用一维数组d[i] 存放;i 的范围:0 ~20 。 (3 )一维数组have[] 是用来记录最短路径出现顶点的顺序。 (4 )根据起点和终点输出最短路径和路径长度。 二.需求分析 本校园导航系统由C语言编写,主要掌握最短路径的实现方法,以及构造无向图G并用邻接矩阵来存储,掌握迪杰斯特拉算法来算最短路径。 1.输入的形式和输出的范围: 2.输出的形式: 3.程序所能到达的功能: A.图中任意景点的相关信息查询 B.任意两个景点间的最短路径 C.任意两个景点间的所有路径 D.增加有关景点和道路的信息 E.删除更新有关景点和道路的信息 F.更新有关景点和道路的信息 G.显示全景 H.退出该系统

数据结构—课程设计—校园导航问题报告

数学与计算机学院 课程设计说明书 课程名称: 数据结构-课程设计 课程代码: 8404181 题目: 校园导航问题 年级/专业/班: 学生姓名: 学号: 开始时间:年月日 完成时间:年月日 课程设计成绩: 指导教师签名:年月日

数据结构课程设计任务书 学院名称:数学与计算机学院课程代码:8404181 专业:年级: 一、设计题目 校园导航问题 二、主要内容 设计西华大学的平面图,至少包括10个以上的场所,找出从任意场所到达另一场所的最短路径。 三、具体要求及应提交的材料 1.每个同学以自己的学号和姓名建一个文件夹,如:“312009*********张三”。里面应包括:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中)、任务书和课程设计说明书的电子文档。 2.打印的课程设计说明书(注意:在封面后夹入打印的“任务书”以后再装订)。 四、主要技术路线提示 涉及无向图的操作。该设计共分三部分,一是建立西华大学平面图的存储结构,二是解决单源点最短路径问题,最后再实现任意一对场所之间的最短路径问题。 五、进度安排 共计两周时间,建议进度安排如下: 选题,应该在上机实验之前完成 需求分析、概要设计可分配4学时完成 详细设计可分配4学时

调试和分析可分配10学时。 2学时的机动,可用于答辩及按教师要求修改课程设计说明书。 注:只用课内上机时间一般不能完成设计任务,所以需要学生自行安排时间做补充。 六、推荐参考资料(不少于3篇) [1]苏仕华等编著,数据结构课程设计,机械工业出版社,2007 [2]严蔚敏等编著,数据结构(C语言版),清华大学出版社,2003 [3]严蔚敏等编著,数据结构题集(C语言版),清华大学出版社,2003 指导教师签名日期年月日 系主任审核日期年月日

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

校园导航系统

目录 摘要 (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 开发环境 随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进行校园导航已成为衡量校园数字化的重要标志。校园导航效率的好坏对于来校参观的客人和学校管理者来说都至关重要,在很大程度上影响着校园的数字化建设和学校的影响力。因此,本文所研究的校园导航系统具有一定的使用价值和现实意义。

相关文档
相关文档 最新文档