课程设计 - 全国交通咨询系统 - - 试验报告
更新时间:2024-05-30 10:01:01 阅读量: 综合文库 文档下载
- 课程设计推荐度:
- 相关推荐
分类号 编 号
课 程 设 计
题目 全国交通咨询系统
院 系 信息工程学院 专 业 计算机科学与技术 姓 名 学 号
指 导 教 师
word文档 可自由复制编辑
目录
1 需求分析 ............................................... 3 1.1 问题描述 ...................................................................................... 3 1.2 基本要求 ...................................................................................... 3 2 概要设计 ............................................... 4 2.1数据结构 ....................................................................................... 4 2.2 程序模块 .................................................................................... 8 2.2.1 管理员模块 ..................................................................... 8 2.2.2 客户查询 .......................................................................... 8 2.3各模块之间的调用关系以及算法设计 ....................................... 8 2.3.1各个模块之间的调用关系 ................................................. 8 3 详细设计 .............................................. 9 3.1 管理员模块 ................................................................................ 9 3.2 用户查询模块 ............................................................................ 10 3.3 函数调用关系图 ........................................................................ 10 4 测试与分析 ............................................ 12 4.1合法数据的测试 ......................................................................... 12 4.1.1 测试截图 .......................................................................... 12 4.2 非法数据的测试 ........................................................................ 17 五.总结 ................................................ 18 参考文献 ................................................ 21 附录 .................................................... 21
word文档 可自由复制编辑
全国交通咨询系统
1 需求分析
1.1 问题描述
随着我国交通系统的发展,从一个城市到另一个城市可以选择多个交通工具,比如火车,飞机。不同的交通工具的价格,所用的时间也不一样。
对旅客来说,可以根据自己的时间安排,资金的情况选择不能的交通工具和不同的乘车路线。本系统就是主要完成这个的功能,旅客在出发前可以根据出发地和到达地查询不同的路线,旅客可以有三个决策方案,第一个是时间最短,第二个是费用最小,第三个是中转次数最少。
对管理员来说,可以对城市进行增加,可以对列车时刻表和飞机航班表的信息进行的增加。
1.2 基本要求
① 输入的形式和输入值的范围
在程序中输入城市名称时,需输入10个字母以内的字母串;输入列车或飞机编号时需输入一个整型数据;输入列车或飞机的费用时需输入一个实型数据;输入列车或飞机开始时间和到达时间时均需输入两个整型数据(以hh:mm的形式);在选择功能时,应输入与所选功能对应的一个整型数据。
② 输出的形式
程序的输出信息主要是:最快需要多少时间才能到达,或最少需要多少旅费才能到达,或最少需要多少次中转到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
③ 程序所能达到的功能
(1)管理员可以细化为对城市信息的管理,对列车时刻表的管理,对飞
word文档 可自由复制编辑
机航班表的信息的管理,初始化交通图;
(2)用户可以查询两个城市之间的航班和车次。用户只需要选择起始城市和目的城市,就可以选择时间最短、费用最少和中转次数最少的方案; (3)用户可以按照自己的需求选择乘坐飞机和火车。 (4)退出系统。
2 概要设计
2.1数据结构
(1)本程序运用了关于图这种数据结构。图的存储结构采用邻接表的结
构抽象数据类型定义。
typedef struct {int number; float expenditure; int begintime[2]; int arrivetime[2]; }Vehide; typedef struct
{Vehide stata[MAX_ROUTE_NUM]; int last; }infolist;
typedef struct ArcNode {int adjvex;
struct ArcNode *nextarc;
word文档 可自由复制编辑
infolist info; }ArcNode;
typedef struct VNode {char cityname[10];
ArcNode *planefirstarc,*trainfirstarc; }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct {AdjList vertices;
int vexnum,planearcnum,trainarcnum; }ALGraph; typedef struct Node {int adjvex; int route; struct Node *next; }Node;
typedef struct QNode {int adjvex; struct QNode *next; }QNode; typedef struct {QNode *front; QNode *rear;
word文档 可自由复制编辑
}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文档 可自由复制编辑
正在阅读:
浅谈莎士比亚戏剧中的人文主义理想05-19
氦气安全技术说明书(终审稿)04-25
北师大版五年级数学下册四单元试卷及答案学生专用(三篇)04-28
操作系统课后题 课后作业 第三次作业06-30
初中数学教学渗透美育的探索10-08
领导者如何激励员工课后测试答案12-24
大型钢轨探伤车作业标准112-28
高级英语第三版_课文翻译06-22
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 试验
- 课程
- 交通
- 报告
- 咨询
- 全国
- 设计
- 系统
- 2014年人教新课标小学二年级上册数学科期末质量检测试卷
- 2015年高二历史小高考考点解读
- 金融学复习题及部分参考答案
- 四川省自贡市荣县五宝中学2015-2016学年八年级上学期
- 幼儿文学练习题以及答案
- 基于AHP与信息熵的制造企业财务风险预警研究
- 六年级上册写字课教案
- 小学数学高效课堂教学心得体会
- 四年级英语绘本故事 - 图文
- 肝病科 非酒精性脂肪性肝炎中医临床路径(试行版)
- 2018年中国氢氧化铝微粉行业分析发展前景报告目录
- 2018年中国无烟锅市场及行业调研报告目录
- ISO手册
- 初中英语教师集体备课心得体会
- 《厘米和米的认识》教学设计
- 如何在课堂教学中实现教师和学生角色的转变
- 江苏开放大学西方行政制度形成考试1.2.4套试卷答案
- 数控车工_中级理论试题2
- 电气设备倒闸操作规范
- 电调制作附程序