页眉内容
41
页脚内容
页眉内容
基本操作:
TrafficNodeDat 交通工具 信息 UNodeDat 路线 信息 Char name[MAX_STRING_NUM] Int starttime Int starttime Int cost Short int city Int TrainNum int FlightNum TrafficNodeDat Train[MAX_TRAFFIC_NUM] TrafficNodeDat Flight[MAX_TRAFFIC_页脚内容
班次 出发时间 到达时间 票价 城市编号 火车路线数 航班路线数 火车路线信息 航班路线信息 41
页眉内容
NUM] 函数变量声明:
#include
#define ERR 0 #define OK 1 #define Dij_MAXN 33
#define MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #define MAX_TRAFFIC_NUM 10
const char CityFile[] =\ const char TrainFile[] =\ const char FlightFile[] =\
typedef short int CityType;
typedef struct TrafficNode {
char name[MAX_STRING_NUM]; //班次 int StartTime,StopTime; //起止时间
int EndCity; //该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; //票价 } TrafficNodeDat;
typedef struct VNode {
CityType city;
int TrainNum,FlightNum; //标记下面Train数组和Flight数组里元素个数 TrafficNodeDat Train[MAX_TRAFFIC_NUM]; //数组成员为结构体,记录了
页脚内容
41
页眉内容
到达城市、起止时间、票价和班次
TrafficNodeDat Flight[MAX_TRAFFIC_NUM]; // int Cost; //遍历时到达该城市的耗费(时间或者费用) } VNodeDat;
typedef struct PNode {
int City; int TraNo; } PNodeDat;
VNodeDat AdjList[MAX_VERTEX_NUM]; //System Info
char CityName[MAX_VERTEX_NUM][MAX_STRING_NUM]; //城市名,采用第一下标为该城市在本程序中的编号 int CityNum; //城市数目
PNodeDat Path[MAX_VERTEX_NUM]; //存储临时最小时间路径
PNodeDat MinPath[MAX_VERTEX_NUM]; //存储搜索到当前的最小时间路径
int MinTime,StartTime; int curPath;
函数构成:
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)
页脚内容
41
页眉内容
{
ShowMenu(); //显示菜单 scanf(\ switch (Command)
{
case 0: //退出 return 0; case 1: //添加城市 InitSysData();
printf(\输入城市名:\ scanf(\ InsertCity(name); SaveSysInfo();
printf(\ break; case 2: //删除城市 InitSysData();
printf(\输入城市名:\ scanf(\ DelCity(name); SaveSysInfo();
printf(\ break; case 3: //添加路线 InitSysData();
printf(\起始站城市名:\ scanf(\ printf(\终点站城市名:\ scanf(\
printf(\类型(列车0,航班1):\ scanf(\ printf(\输入列车/飞机班次:\ scanf(\
printf(\起始时刻(00:00,24小时制):\ scanf(\
41
页脚内容