全国交通咨询系统 第二章概要设计
第二章概要设计
2.1 功能模块设计
交通咨询管理系统通过主控模块进入系统并提示相应功能供用户选择。用户选择后进入到各个功能模块,实现管理员管理、用户咨询、交通信息总览功能,管理员管理时可依据不同对系统信息进行增减,使用户在咨询时得到依据最少旅行时间、旅行费用、最少中转站的购票依据,为用户购票选择提供智能决策。也可通过显示模块对系统中存储的全部信息进行总览和查询。基于此,提供以上功能。如下图2.1所示:
交通咨询管理系统 主控模块 用户资询模块 管理员管理模块 交通信息总览模块 最少旅行时间 最 少 旅 行 费最 少 中 转 站 系 统 初 始 化 城 市 编 辑 飞 机 航 班 编列 车车次编 显 示 城 市 用 辑 辑 显 示 飞 机 航 班 显 示 列 车 车 次
图2.1 交通咨询查询系统模块图
2.2算法分析与设计
系统用到的抽象数据类型定义:
1.ADT Graph{
数据对象V:一个集合,该集合中的所有元素具有相同的特性
3
全国交通咨询系统 第二章概要设计
数据关系R:R={VR} VR={
(1)initgraph(&G); (2)CreateGraph(&G); (3)EnterVertex(&G); (4)DeleteVertex(&G); (5)EnterplaneArc(&G); (6)DeleteplanArc(&G); (7)EntertrainArc(&G); (8)DeletetrainArc(&G); }ADT Graph 2.ADT LinkQueue{
数据元素:可以是任意类型的数据,但必须属于同一个数据对象 关系:队列中数据元素之间是线性关系。 基本操作:
(1)InitQueue(&Q); (2)IsEmpty(&Q); (3)EnterQueue(&Q,x); (4)DeleteQueue(&Q,&y); }ADT LinkQueue 3.ADT TimeTree{
数据对象D:一个集合,该集合中的所有元素具有相同的特性
数据关系R:若D为空,则为空树。若D中仅含有一个数据元素,则R为空集,否则R={H},H为如下二元关系:
(1)在D中存在唯一的称为根的数据元素root,它在关系H中没有前驱; (2)除root以外,D中每个结点在关系H下有且仅有一个前驱; (3)CreateTimeTree(p,i,j,&Q,infolist arcs); (4)CopyTimeTree(p,q); (5)VisitTimeTree(p);
}ADT TimeTree
4
全国交通咨询系统 第三章详细设计
第三章详细设计
3.1管理员功能模块设计
设计思想:
本系统的管理员模块,当我们从键盘输入有关图的顶点及弧的信息后,用显示图的函数验证,DOS中显示的图的信息与从键盘输入的信息相同,表明交通系统可以从键盘正确输入信息。通过管理员模块的操作,我们可以对系统的相关信息进行修改与添加。如下图3.1所示:
开始 进入管理员界面 是否进行初始化 进入主菜单 选择编辑项目 进入编辑子菜单 是否增加城市,航班或车次 是否删除信息 输入添加信息 删除信息 返回上一级菜单 结束 图3.1 管理员模块流程图
5
全国交通咨询系统 第三章详细设计
详细功能:
本系统实现并建立了有关图的3个文本文件(city.txt,plan.txt,train.txt),在交通系统程序中,选择从文本文件输入图的信息后,用显示操作验证,表明文本文件的内容可以正确调入图的结构体中,说明交通系统可以从文本文件中读取信息。当从键盘或文本文件初始化交通图后,测试增加或删除城市结点,增加或删除航班或列车弧,修改信息完毕后返回上一级菜单。以下是管理员模块的主要代码: Administer(ALGraph *G) { int i;
printf(\ ┏━━━━━━━━━━━━━━━━━┓\\n\ printf(\ ┃请选择管理员管理项目┃\\n\ printf(\ ┃┃\\n\
printf(\ ┃ 1 初始化交通系统┃\\n\ printf(\ ┃ 2 城市编辑┃\\n\ printf(\ ┃ 3 飞机航班编辑┃\\n\ printf(\ ┃ 4 列车车次编辑┃\\n\ printf(\ ┃ 5 返回上一级菜单┃\\n\
printf(\ ┗━━━━━━━━━━━━━━━━━┛\\n\ printf(\ 你的选择是:\ scanf(\ system(\ getchar(); while(i!=5) {switch(i)
{case 1:initgraph(G); break; case 2:cityedit(G); break; case 3:flightedit(G); break; case 4:trainedit(G); break; }
printf(\ ┏━━━━━━━━━━━━━━━━━┓\\n\printf(\ ┃请选择管理员管理项目┃\\n\
6
全国交通咨询系统 第三章详细设计
printf(\ ┃┃\\n\
printf(\ ┃ 1 初始化交通系统┃\\n\printf(\ ┃ 2 城市编辑┃\\n\printf(\ ┃ 3 飞机航班编辑┃\\n\printf(\ ┃ 4 列车车次编辑┃\\n\printf(\ ┃ 5 返回上一级菜单┃\\n\
printf(\ ┗━━━━━━━━━━━━━━━━━┛\\n\ printf(\ 你的选择是:\ scanf(\ system(\ getchar(); } }
initgraph(ALGraph *G) {int i;
printf(\ ┏━━━━━━━━━━━━━━━┓\\n\ printf(\ ┃请选择初始化方式┃\\n\ printf(\ ┃ 1 键盘┃\\n\ printf(\ ┃ 2 文档┃\\n\
printf(\ ┗━━━━━━━━━━━━━━━┛\\n\ printf(\ 你的选择是:\ scanf(\ system(\ getchar(); switch(i)
{case 1:createcityfile(); createplanefile(); createtrainfile(); CreateGraph(G); break; case 2:CreateGraph(G); break; } }
7