交通咨询模拟系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、问题描述

全国交通咨询模拟:处于对不同目的的旅客对交通工具有不同的要求。例如, 因公出

差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。

1、根据题目中的基本要求分析,流程设计框图如下:

255

班次

2、逻辑

结构拆分:

3、 1 2、)添加城市

3、)查找城市并返回序号

4、)删除城市

5、)添加列车

6、)添加航班

7、)删除列车或航班

8、)找出最小费用路线

9、)初始化系统数据(读入内存)

10、)找出最快路线

11、)计算最快路线耗费的时间并打印

12、)计算最小费用路线

13、)主界面

14、)存储信息到文件

15、)退出、

2、下面是各模块示意图:

基本操作:

函数变量声明:

#include

#include

#define ERR 0

#define OK 1

#define Dij_MAXN 33

#define MAX_VERTEX_NUM 31

#define MAX_STRING_NUM 10

{

} 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 main()

{

char name[MAX_STRING_NUM];

char s_city[MAX_STRING_NUM];

char e_city[MAX_STRING_NUM];

int Command,cost;

int startcity,endcity,traveltype;

int s_hour,s_minute,e_hour,e_minute;

while (1)

{

ShowMenu(); //显示菜单

printf("System Info Save OK!\n");

break;

case 2: //删除城市

InitSysData();

printf("\n输入城市名:");

scanf("%s",&name);

DelCity(name);

SaveSysInfo();

printf("System Info Save OK!\n");

break;

case 3: //添加路线

InitSysData();

scanf("%2d:%2d",&e_hour,&e_minute);

printf("票价:");scanf("%d",&cost);

if (traveltype)

{

InsertFlight(name,s_city,e_city,s_hour*60+s_minute,e_hour*60+e_minute,cost);

else

{

InsertTrain(name,s_city,e_city,s_hour*60+s_minute,e_hour*60+e_minute,cost);

}

case 5: //最小耗费

InitSysData();

printf("\n起始城市:");

scanf("%s",&name);

startcity=SeekCity(name);

if (startcity<0)

printf("Error City Name:No such city!\n");

break;

}

printf("终点城市:");

scanf("%s",&name);

break;

}

CalcMinCost(startcity,endcity,traveltype);

printf("\n");

break;

case 6: //最短时间路线

InitSysData();

printf("\n起始城市:");

scanf("%s",&name);

startcity=SeekCity(name);

if (startcity<0)

{

printf("类型(列车0,航班1) :");

scanf("%d",&traveltype);

if (traveltype!=0&&traveltype!=1) {

printf("Error Input!");

break;

相关文档
最新文档