全国交通咨询系统设计(C语言)

  • 格式:doc
  • 大小:267.50 KB
  • 文档页数:50

下载文档原格式

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

/* *建立一个模拟的交通网络(用有向网来表示),编程实现从某个城市*出发到另一个城市所需的最短的时间及路径。* *建立一个模拟的交通网络(用有向网来表示),编程实现从某个城市*出发到另一个城市所需的最短的时间及路径。* */ #define MAX_VERTEX_NUM 18

#define NULL 0

#define MAX_ARC_SIZE 100

#define MAX_ROUTE_NUM 5

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#define False 0

#define True 1

#define INFINITY 10000 /*预定义*/

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;

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;

}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]; /*数据结构定义*/

char city[MAX_VERTEX_NUM][10];

int TTime[2];

int time[2];

int time1[2];

int time2[2];

int c[MAX_VERTEX_NUM];

int d[MAX_VERTEX_NUM]; /*变量定义*/

/*各种操作说明*/

void Disp();

void Administer(ALGraph *G);

void cityedit(ALGraph *G);

void CopyTimeTree(TimeTree p,TimeTree q);

void createcityfile();

void CreateGraph(ALGraph *G);

void createplanefile();

void CreateTimeTree(TimeTree p,int i,int j,LinkQueue *Q,infolist (*arcs)[MAX_VERTEX_NUM]);

void createtrainfile();

int DeleteplaneArc(ALGraph *G);

void DeleteQueue(LinkQueue *Q,int *x);

int DeletetrainArc(ALGraph *G);

void DeleteVertex(ALGraph *G);

void DemandDispose(int n,ALGraph G);

void DestoryTimeTree(TimeTree p);

void EnterplaneArc(ALGraph *G);

void EnterQueue(LinkQueue *Q,int x);

void EntertrainArc(ALGraph *G);

void EnterVertex(ALGraph *G);

void ExpenditureDispose(int k,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);

int IsEmpty(LinkQueue *Q);

int LocateVertex(ALGraph *G,char *v);

void MinExpenditure(infolist arcs,float *expenditure,int *route);

void MinTime(infolist arcs,int *time,int *route);

void PrintGraph(ALGraph *G);

int save(ALGraph *G);

void TimeDispose(int k,infolist (*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1,int (*T)[2],int *final);

void TimeTreeDispose(Node *head,infolist (*arcs)[MAX_VERTEX_NUM]);

void trainedit(ALGraph *G);

void TransferDispose(int k,infolist (*arcs)[MAX_VERTEX_NUM],ALGraph G,int v0,int v1);

void UserDemand(ALGraph G);

void VisitTimeTree(TimeTree p);

void Disp() /*软件入口,显示函数*/

{

textbackground(7);

textcolor(5);

gotoxy(20,10);

printf("--------------------------------\n");

gotoxy(20,11);