数据结构课程设计全国交通咨询模拟#include <> #include <> #define ERR 0 #define OK1 #define Dij_MAXN 33 #define MAX_VERTEX_NUM 31 #define MAX_STRING_NUM 10 #define MAX_TRAFFIC_NUM 10 const char CityFile[] ="E:\\"; const char TrainFile[] ="E:\\"; const char FlightFile[] ="E:\\"; typedef short int CityType; typedef struct ode { char name[MAX_STRING_NUM]; // 班次 int StartTime,StopTime; // 起止时间 int EndCity; // 该有向边指向的顶点在数组中的位置,即该城市编号 int Cost; // 票价} odeDat; typedef struct VNode { CityType city; int TrainNum,FlightNum; // 标记下面 Train 数组和 Flight 数组里元素个数 odeDat Train[MAX_TRAFFIC_NUM]; // 数组成员为结构体, 记录了到达城市、起止时间、票价和班次 odeDat 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 ShowMenu() { printf("\n************MENU************\n"); printf("1: 添加城市\n2: 删除城市\n3: 添加交通路线\n4: 删除交通路线\n5: 查询最小费用路线\n6: 查询最快路线\n0: 退出"); printf("\n****************************\n"); printf("\nType In mand:"); return 1; } int SeekCity (char *name) { int i; for (i=0;i<CityNum;i++) { if (strcmp(name,CityName[i])==0) { return i; }} return -1; } //=============================================Edit Info==================================================== int SaveSysInfo() { FILE *fp;int i,j,total; fp=fopen(CityFile,"w"); fprintf(fp,"%d\n",CityNum); for (i=0;i<CityNum;i++) { fprintf(fp,"%s\n",CityName[i]); } fclose(fp);total=0; fp=fopen(TrainFile,"w"); for (i=0;i<CityNum;i++) { total+=AdjList[i].TrainNum; } fprintf(fp,"%d\n",total); for (i=0;i<CityNum;i++) { for (j=0;j<AdjList[i].TrainNum;j++) { fprintf(fp,"%s %s %s ", AdjList[i].Train[j].name, CityName[i
数据结构课程设计全国交通咨询模拟 来自淘豆网www.taodocs.com转载请标明出处.