课程设计 - 全国交通咨询系统 - - 试验报告(2)

2019-04-21 14:20

}LinkQueue;

typedef struct TimeNode {int adjvex; int route; int begintime[2]; int arrivetime[2];

struct TimeNode *child[MAX_ROUTE_NUM]; }TimeNode,*TimeTree; struct arc {int co; char vt[10]; char vh[10]; int bt[2]; int at[2]; float mo;

}a[MAX_ARC_SIZE];

基本操作:

void Administer(ALGraph *G); void cityedit(ALGraph *G);

void CopyTimeTree(TimeTree p,TimeTree q); void createcityfile();//创建城市文件 void CreateGraph(ALGraph *G);//创建图 void createplanefile();//创建飞机航班文件

word文档 可自由复制编辑

void CreateTimeTree(TimeTree p,int i,int j,LinkQueue *Q,infolist (*arcs)[MAX_VERTEX_NUM]); void createtrainfile();//创建列车文件 void DeleteQueue(LinkQueue *Q,int *x);

void DemandDispose(int n,ALGraph G);//用户需要的方案 void DestoryTimeTree(TimeTree p); void EnterplaneArc(ALGraph *G);?//增加航班 void EnterQueue(LinkQueue *Q,int x);//入队Q void EntertrainArc(ALGraph *G);//增加列次 void EnterVertex(ALGraph *G);

voidExpenditureDispose(intk,infolist(*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1,float *M,int *final);//最少花费安排 void flightedit(ALGraph *G);//编辑航班

void initgraph(ALGraph *G);//创建图的方式:通过键盘或者文档 void InitQueue(LinkQueue *Q);//创建队列Q int IsEmpty(LinkQueue *Q);

int LocateVertex(ALGraph *G,char *v);//找到v在图中的位置

void MinExpenditure(infolist arcs,float *expenditure,int *route);//计算金

void MinTime(infolist arcs,int *time,int *route);//计算时间 int save(ALGraph *G);//保存图

voidTimeDispose(int k,infolist (*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1,int (*T)[2],int *final);//最少时间安排

word文档 可自由复制编辑

voidTimeTreeDispose(Node*head,infolist(*arcs)[MAX_VERTEX_NUM]);

void trainedit(ALGraph *G);//编辑列车

voidTransferDispose(intk,infolist(*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1);//最少换乘安排

void UserDemand(ALGraph G);//用户需要的选择 void VisitTimeTree(TimeTree p);

2.2 程序模块

2.2.1 管理员模块

管理员模块包括初始化交通系统、城市编辑模块、飞机航班编辑模块、列车车次编辑模块。初始化交通系统包括键盘和文档两种创建方式。键盘创建包括创建城市文件、创建航班文件、创建列次文件。

2.2.2 客户查询

用户咨询界面包括用户需要的最少金钱花费、最少时间花费和最少转乘次数。没种方案都可以选择用户需要的起始地和目的地,可以根据用户需要选择乘坐的飞机或者列车。

2.3各模块之间的调用关系以及算法设计

2.3.1各个模块之间的调用关系

主函数 word文档 可自由复制编辑

键盘 文档 最少旅行费用 最少旅行时间 初始化交通系统 最少中转次数 返回上一级菜单 初始化交通系统 城市编辑 飞机航班编辑 列车车次编辑 返回上一级菜单 管理员管理 用户咨询 管理员管理 退出 用户咨询

城市编辑 飞机航班编辑 火车列次编辑 图1

新增城市 新增航班 新增车次 3 详细设计

3.1 管理员模块

初始化交通系统通过键盘和文档两种方式实现,使用了函数是

word文档 可自由复制编辑

initgraph(ALGraph *G)函数。调用了创建城市文件createcityfile()函数、创建火车车次文件createtainfile()函数和创建图的CreateGraph(G)函数。

城市编辑模块使用函数cityedit(ALGraph*G)调用了添加城市函数EnterVertex(ALGraph*G)实现对城市的添加功能。

飞机航班编辑模块使用函数flightedit(ALGraph *G)调用En TerplaneArc(ALGraph*G)函数实现增加航班功能。

列车车次编辑模块使用函数traintedit(ALGraph *G)调用EnTertrainArc(ALGraph*G)函数实现增加航班功能。

3.2 用户查询模块

用户需求使用函数UserDemand(ALGraph *G)调用需求方案函数DemandDispose(int n,ALGraph G),需求方案函数中调用了花费方案函数 voidExpenditureDispose(intk,infolist(*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1,float *M,int *final)、最少时间方案函数voidTimeDispose(int k,infolist (*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1,int (*T)[2],int *final)和最少换乘函数voidTransferDispose(intk,infolist(*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1)实现,而最少花费函数又调用了计算金钱的MinExpenditure(infolist arcs,float *expenditure,int *route)函数;最少时间函数调用了计算时间函数MinTime(infolist arcs,int *time,int *route);最少转乘函数使用了队列和图的广度优先遍历。在计算最小时间时用到了时间树。

用户可以在选择了三种方案任一种之后选择起始城市和目的城市,然后选择想要乘坐的是飞机还是火车,就可以找出三种不同方案的各自的最优方案。

3.3 函数调用关系图

word文档 可自由复制编辑


课程设计 - 全国交通咨询系统 - - 试验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北师大版语文第十册《微笑》word优秀教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: