数据结构—交通指南系统

数据结构—交通指南系统
数据结构—交通指南系统

南通大学数据结构实验课

实验报告

学生姓名

所在院系

专业

学号

指导教师

南通大学

2013年 12 月 11 日

交通指南系统

1.问题描述

假设以一个带权有向图表示某一区域的公交线路图,图中顶点代表一些区域中的重要站点,弧代表已有的公交线路,弧上的权表示该线路上的票价(或搭乘所需时间),试设计一个交通指南系统,指导前来咨询者以最低的票价或最少的时间从区域中的某一站点到达另一站点。

2.基本要求

(1)设计结点和图的存储结构;

(2)设计任意两点最短路径方法;

(3)输入:图的相关信息以建立公交线路网,以及公交线路网咨询的任意两个站点;

(4)输出:两个站点间一条最短的简单路径。

3.实现提示

(1)结点和图的存储结构

typedef struct node

{ int no;

float wgt;

struct node*next;

}edgenode;

typedef struct

{ char vtx;

edgenode*link;

} vexnode;

typedef vexnode Graph[n];;

void Floyd(Graph G,float A[n][n],int p[n][n])

{ int i,j,k;

for(i=0;i

fot(j=0;j

{ A[i][j]=G[i][j];

P[i][j]=-1;

}

for(k=0;k

for(i=0;i

for(j=0;j

if(A[i][k]+A[k][j]

{ p[i][j]=k;

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

}

}

(2)算法提示

采用任意两点最短路径的相关算法。

4.算法设计

(1)结点类型:

struct ArcCell

{

int adj; //存放弧长

bool *info; //是否用过该弧

};

struct _MGraph

{

char vexs[20]; //存放站点

ArcCell arcs[20][20]; //

int vexnum;

int arcnum;

};

(2)类定义:

class MGraph //没用私有成员

{

public:

_MGraph mgraph;//

void DestroyGraph(); //析构函数销毁图

int LocateVex (char u); // 返回顶点在图中的位置bool CreateDN(); //构造有向网

void ShortestPath_FLOYD(Path &P,Distanc &D);

};

(3)构造有向网:

bool MGraph::CreateDN()//构造有向网

{

int i,j ,w;

char v1, v2;

cout<<"请输入站点个数,直接线路的条数: ";

cin>>mgraph.vexnum>>mgraph.arcnum ;

cout<<"\n请输入各站点名: ";

for(i = 0;i

{

cin>>mgraph.vexs[i];

}

for(i = 0;i

{

for(j = 0;j

{

if(i==j)

mgraph.arcs[i][j].adj = 0;

else

mgraph.arcs[i][j].adj = 20000; //infinity;

mgraph.arcs[i][j].info = false;

}

}

for(i = 0;i

{

cout<<"\n请输入一条线路的起点,终点,距离(公里): ";

cin>>v1>>v2>>w;

int m = LocateVex(v1);

int n = LocateVex(v2);

mgraph.arcs[m][n].adj = w; // 的权值}

return true;

}

(4)销毁有向图:

void MGraph::DestroyGraph()

{

for(int i = 0 ;i

for(int j = 0;j

{

if(mgraph.arcs[i][j].info)

{

delete []mgraph.arcs[i][j].info;

mgraph.arcs[i][j].info = false;

}

}

mgraph.vexnum = 0;

mgraph.arcnum = 0;

}

(5)定位点:

int MGraph::LocateVex(char u)

{

for(int i = 0 ;i<20;i++)

{

if(u == mgraph.vexs[i])

{return i;}

}

return -1;

}

(6)最短路径

void MGraph::ShortestPath_FLOYD(Path &P,Distanc &D)//求每对顶点间的最短路径

// 用Floyd算法求有向网G中各对顶点v和w之间的最短路径P[v][w]及其带权长度D[v][w]

// 若P[v][w][u]为TRUE,则u是从v到w当前求得最短路径上的顶点。

{

int u,v,w,i;

for(v = 0;v

{

for(w = 0;w

{

D[v][w] = mgraph.arcs[v][w].adj;// 顶点v到顶点w的直接距离

for(u = 0;u

P[v][w][u] = false; //路径矩阵初值

if(D[v][w]<20000) //从v到w有直接路径

P[v][w][v] = P[v][w][w] = true;//由v到w的路径经过v和w两点

}

}

for(u = 0;u

{

for(v = 0;v

{

for(w = 0;w

{

if(D[v][u]+D[u][w]

//从v经u到w的一条路径更短

{

D[v][w] = D[v][u]+D[u][w];// 更新最短距离

for(i = 0;i

P[v][w][i] = P[v][u][i]||P[u][w][i];//从v到w的路径经过从v到u和从u到w 的所有路径

}

}

}

}

}

5.源代码

#include

using namespace std;

struct ArcCell

{

int adj; //存放弧长

bool *info; //是否用过该弧

};

struct _MGraph

{

char vexs[20]; //存放站点

ArcCell arcs[20][20]; //

int vexnum;

int arcnum;

};

typedef int Path[20][20][20];

typedef int Distanc[20][20];

class MGraph //没用私有成员

{

public:

_MGraph mgraph;//

void DestroyGraph(); //析构函数销毁图

int LocateVex (char u); // 返回顶点在图中的位置bool CreateDN(); //构造有向网

void ShortestPath_FLOYD(Path &P,Distanc &D);

};

bool MGraph::CreateDN()//构造有向网

{

int i,j ,w;

char v1, v2;

cout<<"请输入站点个数,直接可达线路的条数: ";

cin>>mgraph.vexnum>>mgraph.arcnum ;

cout<<"\n请输入各站点名: ";

for(i = 0;i

{

cin>>mgraph.vexs[i];

}

for(i = 0;i

{

for(j = 0;j

{

if(i==j)

mgraph.arcs[i][j].adj = 0;

else

mgraph.arcs[i][j].adj = 20000; //infinity;

mgraph.arcs[i][j].info = false;

}

}

for(i = 0;i

{

cout<<"\n请输入其中一条线路的起点站点名,终点站点名,需要时间(分钟): ";

cin>>v1>>v2>>w;

int m = LocateVex(v1);

int n = LocateVex(v2);

mgraph.arcs[m][n].adj = w; // 的权值}

return true;

}

void MGraph::DestroyGraph()

{

for(int i = 0 ;i

for(int j = 0;j

{

if(mgraph.arcs[i][j].info)

{

delete []mgraph.arcs[i][j].info;

mgraph.arcs[i][j].info = false;

}

}

mgraph.vexnum = 0;

mgraph.arcnum = 0;

}

int MGraph::LocateVex(char u)

{

for(int i = 0 ;i<20;i++)

{

if(u == mgraph.vexs[i])

{

return i;

}

}

return -1;

}

void MGraph::ShortestPath_FLOYD(Path &P,Distanc &D)//求每对顶点间的最短路径// 用Floyd算法求有向网G中各对顶点v和w之间的最短路径P[v][w]及其带权长度D[v][w]

// 若P[v][w][u]为TRUE,则u是从v到w当前求得最短路径上的顶点。

{

int u,v,w,i;

for(v = 0;v

{

for(w = 0;w

{

D[v][w] = mgraph.arcs[v][w].adj;// 顶点v到顶点w的直接距离

for(u = 0;u

P[v][w][u] = false; //路径矩阵初值

if(D[v][w]<20000) //从v到w有直接路径

P[v][w][v] = P[v][w][w] = true;//由v到w的路径经过v和w两点}

}

for(u = 0;u

{

for(v = 0;v

{

for(w = 0;w

{

if(D[v][u]+D[u][w]

//从v经u到w的一条路径更短

{

D[v][w] = D[v][u]+D[u][w];// 更新最短距离

for(i = 0;i

P[v][w][i] = P[v][u][i]||P[u][w][i];//从v到w的路径经过从v到u和从u到w的所有路径

}

}

}

}

}

void main()

{

MGraph g;

Path p; // 3维数组

Distanc d; // 2维数组

int s,t,k;

char v1,v2;

float sum=0;

cout<<"\n***************欢迎使用交通指南系统**************\n"<

g.CreateDN();

cout<<"\n请依次输入您的出发站和目的站站点名称:";

cin>>v1>>v2;

s=g.LocateVex (v1);

t=g.LocateVex (v2);

g.ShortestPath_FLOYD(p,d);

if(s!=t)

{

int a=s;

cout<<"\n由站点"<

for(k = 0;k

if(p[s][t][k] == 1)

{ cout<

sum=sum+g.mgraph.arcs[a][k].adj;

a=k;

}

}

cout<<"最短时间:"<

cout<<"\n\n***************感谢您的使用!*****************"<

cout<<"\n\n***************祝您旅途愉快!*****************"<

g.DestroyGraph();

}

6.举例测试及运行结果例:

7.收获与体会

这是一个实际应用题。本实验的核心代码是用FLOYD算法求有向网G中各对顶点v

和w之间的最短路径P[v][w]及其带权长度D[v][w],其中利用到了一些稍许繁琐的数据存储结构。通过本实验,我觉得熟练掌握所学的算法对于编程解决实际问题非常有效。我们应该在平时多用我们所学的数据结构知识编写程序,尝试解决实际的问题。

刚开始的时候,根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。

这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。

数据结构这门课程更加注重设计灵活、巧妙的算法,提高程序运行效率,这对我逻辑思维能力的提高有相当大的帮助。虽然这学期学完了这门课程,但我在以后的学习中不会放下数据结构,而是经常回顾温习,并多从生活中寻找和发现问题,进而尝试用数据结构的知识设计算法,并进行简单的实现。相信这样的积累过程对我今后的学习生活大有帮助,让我受益终生。

数据结构课程设计停车场管理系统

实验二停车场管理 班级:A0712 学号:12 姓名:冷清淼成绩:__________ 指导教师签名:__________ 一、问题描述 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 设计要求: 1.模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2.从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码; (3)“到达”或“离开”的时刻。 3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 二、算法说明 1.数据结构说明 (1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车场*/ (2)一个队列结构,存储便道车辆信息:

typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟便道*/ 2.算法说明 (1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 停车场系统车辆到达 车辆离开列表显示 3 2 1 图1 (2)以模块为单位分析算法 1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图2。 车辆到达 停车场是否满 结束 进入停车场 进入便道 是 否 图2

交通管控大数据分析研判系统

交通管控大数据分析研 判系统 Document number【AA80KGB-AA98YT-AAT8CB-2A6UT-A18GG】

交通管控大数据分析研判系统 设 计 方 案 目录

1 系统概述 1.1 系统背景 随着经济迅猛发展,机动车辆不断增加,道路交通拥堵、交通肇事现象也越来越严重。交通管理部门部署了大量交通监控设备对道路交通情况进行监控,这些设备24小时不间断捕获过车数据和图像数据,产生了海量的历史记录。在此情况下,如何利用先进的技术手段,对交通监控设备采集的海量的、格式多样的数据进行深度分析应用,对海量数据进行查找、关联、比对等处理,实时发现其中潜在的问题并预警,成为当前迫切需要解决的问题。 主要体现在以下两个方面:一是交通管理部门的现有系统还处于结构化数据处理模式架构体系中,要实现对城市道路交通的整体运行状况、车辆出行规律等方面以日、月甚至年为时间粒度进行数据分析还存在不足。二是交通管理部门的现有系统在对这些具有逻辑关联的海量多源异构数据处理过程中,数据

存储结构、处理种类、处理效率等方面仍存在不足,不能满足持续扩大的交通管理数据规模以及对数据深度快速挖掘和应用需求。 交通管控大数据平台构建了一个支持横向扩展,具有分布、并行、高效特点的大数据处理平台的体系架构。综合运用云计算、云存储、并行数据挖掘、图像识别等技术,开展数据的存储、挖掘、联动、分析。通过将电子监控设备的数据、图像等异构的数据资源接入大数据处理平台,通过分布式存储和并行数据挖掘,提供在线实时分析模式和离线统计分析模式两种应用模式,对交通管理的各类大数据全方位地进行实时和离线分析处理。可以将隐藏于海量数据中的信息挖掘出来,可全面掌握道路通行情况,为策略制定、分析研判、行动部署提供依据,大大提升综合管理的集约化程度。 1.2 系统意义 (1)信息查询和预警分析 借助在线实时分析、离线统计分析和数据共享等手段,通过接口与集成指挥平台等各个业务系统关联,高效开展交通管理工作。例如通过分析一段时间内的过车信息进行查询分析对比,确定该时期造成交通拥堵的主要原因和发展趋势,对交通拥堵的发生进行一定的预测和判断,并采取相应的管控措施控制诱发交通拥堵的原因,科学预防交通拥堵。 (2)多维度布控打击违法犯罪 通过车辆特征二次识别比对,可对特定车辆的局部特征进行提取分析和建模,在车辆号牌信息缺失(套牌、遮挡号牌或无牌)情况下,按照车辆品牌、型号、颜色、类别以及局部特征等自定义组合布控报警,准确快速地实现特定车辆追踪与锁定,获取车辆真实行踪,将有价值的图片数据提供给公安刑侦部门,为侦破交通肇事逃逸案、利用机动车作为犯罪工具的刑事案、以及抢劫出租车等恶性案件提供线索和证据,为刑侦部门确定线索侦查破案提供支持。 (3)大粒度的数据分析为决策提供支持 通过交通流大数据采集存储、流量查询分析,车辆特征研判、车辆轨迹分析等深度应用,系统不仅仅可以实现对车辆和人员的分析研判,通过大量数据

数据结构课程设计交通咨询系统设计(DOC36页)

设计题目<二>:7.3.4交通咨询系统设计P160 一、设计要求 1.问题描述 根据不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能的短,出门旅行的旅客希望旅费尽可能的少,而老年人则要求中转次数少。模拟一个全国城市之间的咨询交通程序,为旅客提供两种或三种最优的交通路线。 2.需求分析 二、概要设计 1.主界面设计 (图2.1“交通咨询系统”主菜单) 2.存储结构设计 本系统采用图结构类型存储抽象交通咨询系统的信息。 typedef struct TrafficNode { char name[MAX_STRING_NUM]; //班次//MAX_STRING_NUM最为10 int StartTime, StopTime; //起止时间 int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; //票价

} TrafficNodeDat; typedef struct VNode { CityType city; int TrainNum, FlightNum; //标记下面Train数组和Flight数组里元素个数 TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了到达城市、起止时间、票价和班次 TrafficNodeDat Flight[MAX_TRAFFIC_NUM]; // int Cost; //遍历时到达该城市的耗费(时间或者费用) } VNodeDat; typedef struct PNode { int City; int TraNo; } PNodeDat; 3.系统功能设计 (1)添加城市。添加一个城市的名称 (2)删除城市。输入一个城市名称,删除该城市。 (3)添加交通路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间和票价 (4)删除交通路线。输入火车或飞机的班次删除该交通路线。 (5)查询最小费用路线。输入起始城市、终点城市、航班或火车、车次、起始时间、终点时间查询最小费用路线。 三、模块设计 1.模块设计 (图2.2 模块调用示意图)

员工信息管理系统(数据结构)

员工信息管理系统课程设计报告 系别:计算机与信息工程系 班级: B080501 姓名:李海鹏 学号: B08050128 指导教师:张红霞 课设时间:2010-6-21到2010-6-25

摘要 员工信息管理系统属于信息管理系统。员工信息管理是每个公司不可缺少的。系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。 本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。整个系统使用起来也比较方便,入手简单,操作方便。论文主要介绍了程序设计过程、设计方案以及测试过程,重点讲解了设计过程中的思想,技术解决方案等等。 关键字:员工信息管理,C程序,数据结构

前言 (3) 第1章课设题目 (4) 第2章开发运行环境及相关知识 (4) 第3章程序总体设计 (5) 3.1 主要功能模块 (5) 3.2 数据结构 (6) 第4章程序详细设计及实现 (7) 4.1 输入函数 (7) 4.2 排序函数 (7) 4.3 显示函数 (7) 4.4 查找函数 (7) 4.5更改函数 (8) 4.6 删除函数 (8) 4.7 主函数 (8) 4.8 其他函数 (9) 第5章系统功能测试 (9) 5.1 系统主界面 (9) 5.2 输入数据 (9) 5.3 显示数据 (10) 5.4 信息排序 (10) 5.5 更改信息 (11) 5.6 删除信息 (11) 第6章课设总结 (12) 第7章程序清单 (13) 参考文献 (22)

前言 本课程设计旨在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。 本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。 报告将分6个章节来详细讲述本次课设题目的开发过程。 第1章主要描述课设的题目及要求; 第2章来介绍程序开发运行环境; 第3章介绍程序主体设计,网络程序概要; 第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息; 第5章为测试过程,主要用测试过程中的图片来表述最终信息; 第6章也是最后一章,为本次实践活动的心得体会。

智慧交通产品总体解决方案-机动车查控分析系统

智慧交通产品解决方案 机动车查控分析系统 【面向城市交通】

目录 1.1.机动车查控分析系统 (4) 1.1.1.系统概述 (4) 1.1.2.系统特点 (4) 1.1.3.系统结构 (5) 1.1.4.业务流程 (7) 1.1.5.系统功能 (10)

1.1.机动车查控分析系统 1.1.1.系统概述 机动车查控分析系统是公安交警日常任务中应用广泛的业务系统,,面向公安交管提供个体交通违法嫌疑车辆准实时查控报警和群体车辆通行特性分析应用,面向公安治安提供涉案嫌疑车辆预警、筛查应用。 1.1. 2.系统特点 1.海量数据秒级响应 底层采用分布式大数据架构,海量过车数据实时查询与分析,无延迟秒级响应。 2.案件模型丰富且可以灵活扩展 系统针对公安、交通各警种的常见案件场景,设计了各种案件分析模型,且可根据案件实际场景灵活扩展与定制。 3.灵活布控、定向报警 提供了单车布控、批量布控、专项布控等多种布控形式,操作简便且支持模糊布控,报警数据流向定向化避免互相干扰。 4.可与公安、交通多系统联动 系统具备灵活的数据共享互通机制,与全国缉查布控系统无缝对接,联网布控。同时可根据需要对接警综平台、警务通、公安情报平台等各类实战系统,做到数据实时共享。

1.1.3.系统结构 1.1.3.1 逻辑结构 1、数据采集服务集群 对厂家提供标准化接口协议,接收卡口厂家数据,将数据转化为系统内部标准格式后传输给kafka(分布式消息队列),并对外提供标准的过车数据共享接口; 采用java语言编写标准的webservice接口,跨语言跨平台; 协议字典完全符合公安部与无锡所标准; 利用kafka作为消息缓冲层,可分布式扩展集群数据量,线性提升缓冲能力。 2、数据入库及流量统计服务 负责图片写入分布式存储(Hadoop),过车数据写入分布式数据库(Hbase),同时将数据写入消息队列对外提供共享;并计算一分钟流量数据写入Hbase; 系统可集群部署,多进程间自动负载均衡; 进程内部采用多线程方式,提升处理效率。 3、分布式存储、计算服务集群 采用Hadoop、Hbase等分布式技术搭建的可扩展存储与计算集群,集群数

全国交通咨询模拟数据结构课程设计

数据结构课程设计报告 题目:全国交通咨询模拟 一.需求分析 1.程序设计任务:从中国地图平面图中选取部分城市,抽象为程序所需要图的结点,并以城市间的列车路线和飞机路线,作为图结点中的弧信息,设计一个全国交通咨询模拟系统。利用该系统实现两种最优决策:最快到达或最省钱到达。 2. 明确规定: (1) 输入形式和输入值的范围:每条飞机弧或者火车弧涉及的信息量很多,包括:起始城市、目的城市、出发时间、到达时间、班次以及费用。作为管理员要输入的信息包括以上信息,而作为用户或者客户,要输入的信息有起始城市和目的城市,并选择何种最优决策。 (2) 输出形式:按用户提供的最优决策的不同而输出不同的信息,其中输出的所搭飞机或火车的班次及其起始地点和终点、起始时间和出发时间还有相关的最优信息,比如最快经多少时间到达、最省钱多少钱到达和最少经多少中转站到达。 (3) 程序所能达到的功能 a. 该系统有供用户选择的菜单和交互性。可以对城市、列车车次和飞机航班进行 编辑,添加或删除。 b. 建立一个全国交通咨询系统,该系统具备自动查找任意两城市间铁路、飞机交通的最短路径和最少花费及中转次数最少等功能。 c. 初始化交通系统有两种方式,键盘和文档。

二.设计概要 1.算法设计 (1)、总体设计 (1)数据存储:城市信息(城市名、代码)、交通信息(城市间的里程、各航班和列车时刻)存储于磁盘文件。建议把城市信息存于文件前面,交通信息存于文件的后面,用fread和fwrite函数操作。 (2)数据的逻辑结构:根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为有向图,图的顶点是城市,边是城市之间所耗费的时间(要 包括中转站的等候时间)或旅费。 (3)数据的存储结构:采用邻接表和邻接矩阵都可作为数据的存储结构,但当邻接边不多时,宜采用邻接表,以提高空间的存储效率。这里采用邻接表作为数据的存储结构。 (4)用不同的功能模块对城市信息和交通信息进行编辑。添加、修改、删除 功能可用菜单方式或命令提示方式。只要能方便的对城市信息和交通信息进行管理即可,但要注意人机界面。 (5)最优决策功能模块(fast or province)。 ①读入城市信息和交通信息,用邻接表生成含权网络,表头数组中的元素存放城市名及对方城市到达该元素所代表城市的所有信息;表头数组中的元素所对应的单链表存放与该元素所代表的城市有交通联系的城市(代码、里程、航班、列车车次)。 ②根据具体最优决策的要求,用Dijkstra算法求出出发城市到其它各城市 的最优值(最短时间或最小的费用),搜索过程中所经过城市的局部最优信息都保存在邻接表的表头数组中。其目的城市所代表的元素中就保存了所需的最优决策结果。这过程中,要用队列或栈保存局部最优决策值(局部最短的时间或最省的费用)变小的城市,其相应的初始值可为%,并在表头数组对应的城市元素中保 存响应的信息。开始时,栈(队列)中只有出发地城市,随着对栈(队列)顶(首)城市有交通联系的城市求得决策值(最短时间或最小的费用),若该值是局部最优值且该城市不在栈(队列)中,则进栈(队列),直至栈(队列)为空,本题采用队列实现。 ③输出结果:从目的城市出发,搜索到出发城市,所经过的城市均入栈(队列),再逐一出栈栈(队列)中的城市,输出保存在表头数组中对应城市的信息 (对 方城市的出发信息,里程、时间、费用等)及最终结果。即输出依次于何时何地乘坐几点的飞机或火车于何时到达何地;最终所需的最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间。 (6)主程序可以有系统界面、菜单;也可用命令提示方式;选择功能模块执行,要求在程序运行过程中可以反复操作。 (2).详细设计思想: 本题所要求的交通系统是一个有向带权图结构,考虑到要求该系统有动态增加飞机和列车航班的功能,因而采用邻接表的形式存储:对每个顶点建立一个 单链表,单链表中的子结点表示以该顶点连接的弧,单链表中子结点的顺序可以 按权值递增的顺序排列,表头结点按顺序存储。题目中提到要提供三种策略,最快到达,最省钱到达和最少中转次数策略,前两种策略采用迪杰斯特拉算法思想,其中最快到达的权值为到达两城市所需的最短时间,最省钱到达的权值为到达两城市所需的费用,后一种采用广度优先算法的思想,只需求的两城市所在的层数,就可以求的到达两城市所需的最少中转次数。

C++数据结构停车场管理

数据结构实验报告 实验题目:停车场管理 学生姓名: 班级: 学号: 问题描述 设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n 辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。 例题分析 每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。 若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。 程序源代码 #include #include #include #include #include #include #include

数据结构—交通系统

课程设计报告 课程名称数据结构 课题名称交通咨询系统 专业通信工程 班级通信0902班 学号 姓名 指导教师田娟秀、李杰君、张鏖烽 2011 年07月01 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题交通咨询系统 专业班级通信工程0902 学生姓名肖彬 学号200903020205 指导老师田娟秀、李杰君、张鏖烽 审批 任务书下达日期2011 年06月27 日任务完成日期2011 年07月01 日

1设计内容与设计要求 1.1设计内容 课题六:交通咨询系统 在交通网络非常发达的今天,人们出差、旅游或做其他出行时,不仅关心节省交通费用,而且对里程和所需时间等问题也很感兴趣。对于这样一个人们关心的问题,可用一个图结构来表示交通网络系统,利用计算机建立一个交通咨询系统。图中顶点表示城市,边表示城市之间的交通关系。设计一个交通咨询系统,能让旅客咨询从任一个城市顶点到达另外一个城市顶点之间的最短路径(里程)的问题。 要求完成以下功能: (a).根据实际情况,先建立交通网络图的存储结构。 (b).求某个城市到达其余各城市的最短路径。 (c).任一输入两个城市,要求求出他们之间的最短路径。 1.2设计要求: 1.2.1 课程设计报告规范 (1)需求分析 a.程序的功能。 b.输入输出的要求。 (2)概要设计 a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模 块的功能。 b.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样 的结构,它们之间有什么关系等。 (3)详细设计 a.采用C语言定义相关的数据类型。 b.写出各模块的类C码算法。 c.画出各函数的调用关系图、主要函数的流程图。 (4)调试分析以及设计体会 a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和 含有错误的输入及输出结果。 b.程序调试中遇到的问题以及解决问题的方法。

数据结构课程设计全国交通咨询系统方案

工业应用技术学院 课程设计任务书 题目全国交通资询系统 主要容: 设计了一个方便用户查询交通咨询系统。该系统所做的工作的是模拟全国交通咨询,为旅客提供三种最优决策的交通咨询。该系统可以进行城市,列车车次和飞机航班的编辑的基本信息输入操作。程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供三种最优决策:最快到达、最省钱到达、最少中转次数到达。 基本要求: 1、掌握C语言的变量及函数的灵活使用; 2、熟练掌握图的深度、广度优先遍历算法思想及其程序实现; 3、掌握C语言中文件的基本操作; 4、掌握VC++6.0软件的熟练使用。 主要参考资料: [1] 春葆.数据结构程序设计[M].:清华大学,2002,03 [2] 王黎,袁永康https://www.360docs.net/doc/8a16139971.html,战略[M].:清华大学,2002,01 [3] 谭浩强.C程序设计第二版[M].:清华大学,2003,03 [4] 任哲.MFC Windows程序设计[M].:清华大学,2004,06 完成期限:2016.12.05—2017.01.05 指导教师签名: 课程负责人签名:

随着高科技的飞速发展,列车、飞机、动车、高铁的出现极大的减少了人们花在旅途上的时间。对于城市间错综复杂交通网的管理,是一项庞大而复杂的工作。在此基础上,如何实现交通网智能化的管理达到帮助乘客选择经济高效的交通工具是目前仍处空白。尤其乘客交通工具的择优选择是一个令人懊恼的工作,一个原因就是各种交通工具的查询十分分散和繁琐。即使有互联网的帮忙,但是没有一个统一的归类、没有一个精细的算法、系统的软件帮助,人们仍然无法获得最优方式。为此开发一个交通择优系统是十分必要的。采用计算机对城市间的交通工具进行系统录入和管理,进一步提高了交通部门针对城市间客运网络的管理效率,实现交通运营网络的系统化、规化和自动化。同时使乘客能通过网络进行称心的交通工具的选择,这也是交通网络优选智能决策的体现。交通信息的咨询和管理是交通部门管理工作中异常重要的一个环节,因此,运用交通资询管理系统对春运时减轻乘客购票压力、舒缓紧的城际拥堵有重要意义。 关键字:错综复杂;智能化;最优方式;择优系统

数据结构公交换乘系统

数据结构程序设计课程设计 题目公交换乘系统 专业 学号 姓名 指导老师 完成日期2010年6月17日

目录 1.公车换乘流程图 (3) 2.数据储存结构 (4) 3. 程序 (4) 4.分析..................................................................................... (16) 5. 总结..................................................................................... . (18)

一、公车换乘流程图

二、数据存储结构 Ⅰ线路信息:定义在结构体中 ①经过站点的所有公交路线,采用整型的1维的数组;数组长度为默认为50。 ②字串符指向下一站和最后一站。 struct str //定义双重链表 { char s[50]; str *next; str *last; }; Ⅱ站点信息:定义在结构体中 ①经过该站点的路线条数。是一个整型变量。 ②把该站作为所要求路线的第一站。 struct location//定义一个结构体来保存车站位置 { int i; str *first; }; 三、程序 location Find(str *pos,char *s)//查找车站位置 { //初始化基本信息 int i=0; location f; f.first=NULL; f.i=0; str *p=pos; //查找车站的位置 while(p) { if(::strcmp (s,p->s)==0) { f.first =p; f.i=i;//车站的位置 return f; } i++; p=p->next;

交通管控大数据分析研判系统

交通管控大数据分析研判系统 设 计 方 案

目录 1 系统概述 (5) 1.1 系统背景 (5) 1.2 系统意义 (5) 1.3 研发原则 (6) 1.4 系统内容 (7) 2 需求分析 (8) 2.1 业务需求 (8) 2.1.1 面向交通管理的大数据业务需求 (8) 2.1.2 面向交通安全的大数据业务需求 (8) 2.2 功能需求 (9) 2.2.1 基于大数据的在线统计和离线分析需求 (9) 2.2.2 基于大数据的车辆特征分析需求 (9) 2.2.3 基于大数据的违法事故分析需求 (9) 2.2.4 基于大数据的勤务快速处置需求 (10) 2.2.5 基于大数据平台的车辆特征二次识别需求 (10) 2.2.6 基于大数据平台的技战法需求 (10) 2.3 性能需求 (10) 2.3.1 高并发实时数据采集需求 (10) 2.3.2 海量数据存储需求 (10) 2.3.3 分布式流处理需求 (11) 2.3.4 车辆二次识别需求 (11) 3 架构设计 (11) 3.1 总体应用架构 (11) 3.2 软件框架结构 (12)

3.3 网络部署架构 (12) 3.4 数据流结构 (13) 3.5 关键技术路线 (13) 3.5.1 Hadoop技术 (14) 3.5.2 Spark技术 (14) 3.5.3 车辆特征二次识别技术 (16) 4 功能设计 (16) 4.1 功能结构图 (16) 4.2 功能模块 (16) 4.2.1 首页 (16) 4.2.2 实时预警 (20) 4.2.3 信息查询 (21) 4.2.4 统计分析 (27) 4.2.5 技战法 (31) 4.2.6 车辆布控 (34) 4.2.7 系统设置 (35) 4.2.8 运维管理 (36) 5 数据库设计 (37) 5.1 数据库ER模型 (37) 5.2 数据库表 (37) 6 接口设计 (37) 6.1 接口分布图(接口关联图) (37) 6.2 接口详细说明 (37) 7 系统特色 (37) 7.1 优化交通大数据集中存储能力 (37)

2数据结构_全国交通咨询模拟系统实验报告

全国交通咨询模拟 一、设计目的 掌握线性表、栈、图结构和对文件的操作,学习屏幕编辑和菜单技术,掌握用最短路径及其搜索算法编制较综合性的程序,能用图的邻接存储结构求解最优路线问题,解决有关实际问题。得到软件设计技能的训练。 二、问题描述 交通咨询模拟。根据旅客的不同需要,要考虑到旅客希望在旅途中的时间尽可能短、希望旅费尽可能省等的要求。 三、基本要求 1、对城市信息(城市名、城市间的里程)进行编辑:具备添加、修改、删除功能; 2、对城市间的交通工具:火车。对列车时刻表进行编辑:里程、和列车班次的添加、修改、删除; 3、提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具,可以不考虑回程; 4、咨询以用户和计算机对话方式进行,要注意人机交互的屏幕界面。由用户选择最优决策原则和交通工具,输入起始站、终点站、出发时间,输出信息:最快需要多长时间才能到达及旅费,或者最少需要多少旅费才能到达及时间,并详细说明依次于何时何地乘坐哪一趟列车何时到达何地。

四、具体实现 1、思路 (1) 数据存储。城市信息(城市名、代码)、交通信息(城市间的里程、各航班和列车时刻)存储于磁盘文件。在实验中本想用文本储存数据,但操作不熟悉,而是改用图的邻接矩阵储存原始信息,而后用数组进行添加删改 (2) 数据的逻辑结构。根据设计任务的描述,其城市之间的旅游交通问题是典型的图结构,可看作为无向图,图的顶点是城市,边是城市之间所耗费的时间(要包括中转站的时间)或旅费。 (3) 数据的存储结构。采用邻接表和邻接矩阵都可作为数据的存储结构,这里建议采用邻接矩阵作为数据的存储结构。 (4) 用不同的功能模块对城市信息和交通信息进行编辑。添加、修改、删除功能可用菜单方式或命令提示方式。只要能方便的对城市信息和交通信息进行管理即可,但要注意人机界面,具体实现由学生自行设计,也可参考有关程序(届时在网上提供)。这些工作有不小的工作量。 (5) 最优决策功能模块 ① 读入城市信息和交通信息,用邻接表生成含权网络,表头数组中的元素存放城市名及对方城市到达该元素所代表城市的所有信息;表头数组中的元素所对应的单链表存放与该元素所代表的城市有交通联系的城市(代码、里程、列车车次)。 ② 根据具体最优决策的要求,用floyd算法求出出发城市到其它各城市的最优值(最短时间或最小的费用),搜索过程中所经过城市的局部最优信息都保存在邻接表的表头数组中。其目的城市所代表的元素中就保存了所需的最优决策结果。其相应的初始值可为∞,并在表头数组对应的城市元素中保存响应的信息。 ③主程序可以有系统界面、菜单;也可用命令提示方式;选择功能模块执行,要求在程序运行过程中可以反复操作。 2、数据结构 本程序运用了关于图这种数据结构。 他的抽象数据类型定义如下: typedef struct unDiGraph

数据结构物流信息管理系统

2014-2015学年第一学期学号 《数据结构》 课程设计报告 题目:物流信息管理系统 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师: 成绩: 目录 摘要 (1) 1设计内容及要求 (1) 1.1内容描述 (1) 1.2基本要求 (1) 2详细设计 (1) 2.1概要设计 (1) 2.2功能模块详细设计 (1) 2.3程序流程图 (4) 3源代码 (5)

4程序结果 (9) 5总结 (12) 6参考文献 (12)

摘要 物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。 本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。 关键词结构体,链表,指针,函数 1设计内容及要求 1.1内容描述 对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。 1.2基本要求 1.采用一定的存储结构进行客户信息的存储; 2.对客户的信息可以进行修改、删除、查询; 2详细设计 2.1概要设计 本系统用到的主要数据结构为数组和文件。一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。然后将数组写入文件,查询时读取文件,提取相应信息。 2.2功能模块详细设计 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。 void create(Linklist &h){ Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode)); h->next=NULL;t=h; while(j){ s=(Listnode*)malloc(sizeof(Listnode)); printf("顾客取货号为%d\n",i); s->customer.m=i; printf("请输入身份证号码:"); scanf("%c",&x);

数据结构课程设计报告停车场管理系统

课程设计报告 课程名称数据结构课程设计 课题名称停车场管理系统 专业信息管理与信息系统 班级 09级1班 学号 200903110112 姓名洪俊斌 指导教师赵锦元、李峰、罗敬 2011年 1 月 9 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题停车场管理系统 专业班级信息管理0901班 学生姓名洪俊斌 学号200903110112 指导老师赵锦元、李峰、罗敬 审批 任务书下达日期2011 年1 月 3 日任务完成日期2011 年1 月20 日

一、设计内容与设计要求 1.设计内容: [问题描述] 设停车场只是一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出,还有一个等停的的狭长通道。汽车在停车场内按车辆的先后顺序依次排列,若车站内已停满汽车,则后来的汽车只能在门外的通道上等停,一旦停车场内有车开走,则排在通道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车站为它让路,待该车辆开出大门,为它让路的车辆再按原来次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。 [基本功能] (1)车辆成批入站。 当一个停车场刚开始投入运行的时候,会有很多车进来,因此,要设计一个函数来实现车辆批量进站。并要检测车辆的数目是否超过规定的最大容量,给出相关提示信息。 (2)单个车辆入站。 当系统正常投入运行后,会有零散的车辆进进出出,因此,设计一个函数实现单个车辆入站。 (3)车站内信息实时显示。 车站内信息包括两个部分:停车场内停放的车辆以及在外面通道上等停的车辆。 (4)车辆出站。 当停车场内车辆出站后,检查通道上是否有车等停,如果有,则要把排在最前面的车调入停车场内。

(完整版)城市交警局智慧交通决策分析系统解决方案

城市交警局智慧交通决策分析 系统解决方案 国内各城市交警局智慧交通相关基础应用系统和前端电子警察、高清卡口、信号灯控制等系统已大规模建成,并实现城区较高密度的覆盖;在数据资源方面,已实现GPS数据、交通违法数据、道路过车数据、车速、流量等基础数据都的大规模采集。在缓解道路交通拥堵,提升路网运行效率等方面发挥了重要作用。但各系统独立运行,未实现数据的共享,未对现有数据进行深度数据挖掘,缺乏针对性智能决策支,无法了解城区路网的运行状况、不能为城区路网的拥堵疏通、交通组织、交通管制、紧急事件处置、路网优化、交通规划等提供决策依据。因此,建设智慧交通交警业务支撑平台,实现跨部门、跨系统的信息的共享应用,对于提升各级城市的道路交通综合管理和应用水平,实现对城市主要路段交通运行状况的实时、动态掌控具有重要的意义。

? 解决方案介绍 通过对交通数据的深入分析,实现定性管理与定量分析管理相结合,为交通管理决策提供可靠、准确的科学依据,并提高对道路交通的科学化管理水平,警务人员的现代化管理及交通意外事件的预案报警和快速反应能力,促进交通管理决策科学化。 1、路网整体运行状况的研判分析 通过对高清视频综合信息采集系统、公路车辆智能监测记录系统采集的车辆号牌信息和出租车的GPS数据的综合分析,得到不同路段的交通运行状况,并基于GIS地图进行展示,使交通管理者可以实时了解城市整体路网的运行状况;利用高清视频综合信息采集系统采集的车辆号牌信息进行OD数据的分析,得到车辆出行的OD矩阵,为路网规划、交通管理提供决策依据。

2、主次干道运行态势的分析 分析研判主次干道的交通运行态势,实现主次干道交通信息的综合显示,对主次干道路段车辆来源及密度进行研判分析,提出交通疏导、交通组织优化的建议;对主次干道交通拥堵状况、交通违法、交通事故进行关联分析,提出缓解交通拥堵、预防交通事故的对策建议。 3、交叉口综合信息管理与研判 通过对平台汇集的海量交通数据进行综合的研判分析,实现交叉口交通信息的综合显示,包括相位信息、视频信息、违法信息、交通流信息、过车信息等;实现交叉口交通量的双向对比分析、车型构成分析、违法类型构成分析、车辆来源构成分析等。 ?具体优势 本方案基于大数据分析挖掘,采用了十多种先进的仿真和数学模型,实现了交通的决策分析支持,服务于交通规划、城市路网优化、城市交通治堵和提升交通安全,在业内目前没有一个厂商能够提供此类决策分析系统。 具体优势如下: 1、决策分析智慧化 通过对交通数据的深入分析,实现定性管理与定量分析管理相结合,从宏观路网、干线、路口三个层级进行监测、模拟、分析、决策,为交通管理决策提供可靠、准确的科学依据,并提高对道路交通的科学化管理水平,警务人员的现代化管理及交通意外事件的预案报警和快速反应能力,促进交通管理决策科学化。

数据结构全国交通模拟系统

全国交通模拟系统课程设计报告 姓名:唐文龙 班级: 2班 学号: 411417080216 学院:华信学院 专业:计算机科学与技术 指导: 日期:2013.06.20

目录 1 需求分析 (1) 1.1 概述 (1) 1.2 数据需求 (1) 1.3 功能性需求 (1) 1.4 其他需求 (1) 2 概要设计 (2) 3 详细设计 (4) 3.1 记录的定义 (4) 3.2 子程序说明 (5) 3.3 子程序的算法说明 (5) 3.3.1主函数流程图 (6) 4 系统实现 (7) 4.1开发环境 (8) 4.2运行界面 (9) 4.3测试用例 (10) 5 总结 (11) 6.参考文献 (11) 附录:源程序 (11)

1 需求分析 出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。 1.1 概述 程序的功能包括:提供对城市信息的编辑,提供列车时刻表和飞机航班表的编辑,提供两种最优决策:最快到达、最省钱到达。 1.2 数据需求 输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据;在选择功能时,应输入与所选功能对应的一个整型数据。 1.3 功能性需求 总体功能描述 (1) 提供对城市信息进行编辑的功能。 (2) 城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑的功能。 (3) 提供两种最优决策: 最快到达或最省钱到达。全程只考虑一种交通工具,不考虑回程; (4) 旅途中耗费的总时间应该包括中转站的等候时间。 (5) 咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原 则和交通工具, 输出信息: 最快需要多长时间才能到达或者最少需要多少旅费才能到达。 1.4 其他需求 (1)具有可靠性,可用性。

数据结构物流信息管理系统设计

数据结构物流信息管 理系统设计 Revised on November 25, 2020

目 录 摘要...................................................1 1设计内容及要求...........................................................................1 内容描述..............................................................................1 基本要求..............................................................................1 2详细设计....................................................................................1 概要设计..............................................................................1 功能模块详细设计..................................................................1 程序流程图...........................................................................4 3源代码 .....................................................................................5 4程序结果....................................................................................9 5总结...........................................................................................12 6参考文献 (12) 数据结构物流信息管理系统设计 【最新资料,WORD 文档,可编辑修改】

数据结构 公交路线管理模拟系统

《数据结构》课程设计报告 一、课程设计名称 公交线路管理模拟系统 二、实用工具软件 Microsoft visual C++ 6.0 三、课程设计内容简介 1、实践目的 1)、掌握图的概念、图的两种存储结构(邻接矩阵和邻接表)的存储思想及其存储实现; 2)、掌握上机实现图的基本方法; 3)、掌握有关图的操作并用高级语言编程实现; 4)、熟练掌握图的深度、广度优先遍历算法思想及其程序实现; 5)、掌握图的常见应用算法的思想及其程序实现。 2、实践要求 1)、掌握本章实践的算法; 2)、上机运行本章的程序,保存和打印出程序的运行结果,并结合程序进行分析; 3)、按照你对图的操作需要,重新改写程序并运行,打印出文件清单和运行结果; 4)、注意理解各算法实现时所采用的存储结构; 5)、注意正、逆邻接表。 3、系统简介及设计思路 本项目是对公交车路线信息的简单模拟,以完成建立公交路线信息、修改公交路

线信息和删除公交路线信息等功能。 本项目的实质是完成对公交路线信息的建立、查找、插入、修改、删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。 公交站点之间的关系可以是任意的,任意两个站点之间都可能相关。而在图形结构中,结点之间的关系可以是任意的,图中任意两个数据之间都可能相关。所以可以用图形结构来表示n个公交站点之间及站点之间可能设置的公交路线,其中网的顶点表示公交站点,边表示两个站点之间的路线,赋予边的权值表示相应的距离。因为公交路线是有一定的连续关系的,如果想输出从某一个起始点开始到某一终点结束的公交路线,就需要找到从某一点开始的第一个邻接点和下一个邻接点。因为在邻接表中容易找到任一顶点的第一个邻接点和下一个邻接点,所以本项目使用了图的邻接表存储结构。 4、程序设计流程 为了创建公交路线,首先建立结构体载入公交车的相关信息:名称、司机、起始站、终点站、站数以及距离。利用邻接表把站点与站点之间的信息储存起来。用文件详细记载了路线信息,便于管理者初始化公交路线信息。再构造子函数来创建、及时修改、插入、删除公交信息、以及查询公交路线是否出错,各站点之间的距离。用主函数来调用子函数,进入导航系统而进行操作。

相关文档
最新文档