亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 新建 文本文檔.txt

?? 全國交通咨詢模擬
?? TXT
?? 第 1 頁 / 共 4 頁
字號:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#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 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);

 

 


int main()
/*
  顯示程序功能選擇界面
*/
{ALGraph G;
 int i;
 printf("請選擇程序功能:\n");
 printf("1=管理員管理\n2=用戶咨詢\n3=顯示交通系統\n4=退出\n");
 printf("選擇?");
 scanf("%d",&i);
 getchar();
 while(i!=4)
 {switch(i)
  {case 1:Administer(&G);break;
   case 2:UserDemand(G);break;
   case 3:PrintGraph(&G);break;
  }
  printf("\n請選擇程序功能:\n");
  printf("1=管理員管理\n2=用戶咨詢\n3=顯示交通系統\n4=退出\n");
  printf("選擇?");
  scanf("%d",&i);
  getchar();
 }
return 1;
}

 

 

 


void Administer(ALGraph *G)
/*
  顯示管理員管理項目選擇界面
*/
{int i;
 printf("\n請選擇管理項目:\n");
 printf("1=初始化交通系統\n2=城市編輯\n3=飛機航班編輯\n4=列車車次編輯\n5=返回上一級菜單\n");
 printf("選擇?");
 scanf("%d",&i);
 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請選擇管理項目:\n");
  printf("1=初始化交通系統\n2=城市編輯\n3=飛機航班編輯\n4=列車車次編輯\n5=返回上一級菜單\n");
  printf("選擇?");
  scanf("%d",&i);
  getchar();
 }
}
void initgraph(ALGraph *G)     //初始化交通系統
/*
  初始化交通系統方式選擇界面
*/
{int i;
 printf("\n請選擇初始化方式:\n");
 printf("1=鍵盤\n2=文檔\n");
 printf("選擇?");
 scanf("%d",&i);
 getchar();
 switch(i)
 {case 1:createcityfile();
         createplanefile();
         createtrainfile();
         CreateGraph(G);
         break;
  case 2:CreateGraph(G);
         break;
 }
}
void createcityfile()
/*
  創建城市名稱文檔
*/
{int i=0;
 int j;
 char flag='y';
 FILE *fp;
 printf("\n請輸入城市名稱的信息:\n");
 while(flag=='y'||flag=='Y')
 {printf("城市名稱:");
  gets(city[i]);
  i++;
  printf("繼續輸入?(Y/N)");
  scanf("%c",&flag);
  getchar();
 }
 printf("\n");
 if((fp=fopen("city.txt","wb"))==NULL)
 {printf("無法打開文件!\n");
  return;
 }
 for(j=0;j<i;j++)
  fprintf(fp,"%10s",city[j]);
 fclose(fp);
}
void createplanefile()
/*
  創建飛機航班文檔
*/
{int code,bt[2],at[2];  //code航班編號,bt出發時間,at到達時間
 float money;
 int i;
 int count;
 char vt[10],vh[10],flag; //vt起始城市,vh目標城市
 FILE *fp;
 flag='y';
 count=0;
 while(flag=='Y'||flag=='y')     /*flag為標志位,初值為1*/
 {printf("請輸入飛機航班的信息:\n"); //提示"輸入航班信息"
  printf("飛機航班編號:");  //輸入航班code
  scanf("%d",&code);
  getchar();
  printf("起始城市:");   //輸入航班的出發城市vt
  gets(vt);
  printf("目的城市:");  //輸入航班的到達城市vh
  gets(vh);
  printf("航班費用:");  //輸入機票價格money
  scanf("%f",&money);
  getchar();
  printf("起飛時間:");  //輸入航班的出發時間bt
  scanf("%d:%d",&bt[0],&bt[1]);
  getchar();
  while(bt[0]<0||bt[0]>=24||bt[1]<0||bt[1]>=60)
  {printf("\n時間輸入有誤,請重新輸入\n");
   scanf("%d:%d",&bt[0],&bt[1]);
   getchar();
  }
  printf("到達時間:");  //輸入航班的到達時間at
  scanf("%d:%d",&at[0],&at[1]);
  getchar();
  while(at[0]<0||at[0]>=24||at[1]<0||at[1]>=60)
  {printf("\n時間輸入有誤,請重新輸入\n");
   scanf("%d:%d",&at[0],&at[1]);
   getchar();
  }
  a[count].co=code; // a 為程序頭部定義的結構體
  strcpy(a[count].vt,vt);
  strcpy(a[count].vh,vh);
  a[count].bt[0]=bt[0];
  a[count].bt[1]=bt[1];
  a[count].at[0]=at[0];
  a[count].at[1]=at[1];
  a[count].mo=money;
  count++;  //計數值count+1
  printf("繼續輸入?(Y/N)");  //提示"是否要繼續輸入航班信息:"
  scanf("%c",&flag);
  getchar();
  printf("\n");
 }
 if((fp=fopen("plane.txt","wb"))==NULL) //航班文件不能以讀寫形式打開
  printf("\n無法打開文件!\n");  //提示"無法打開文件"
 fprintf(fp,"%d",count);    //將計數值count寫入航班車文件
 for(i=0;i<count;i++)
  if(fwrite(&a[i],sizeof(struct arc),1,fp)!=1) //無法將a[i]寫入航班文件
   printf("\n文件寫入錯誤!\n");  //提示"文件無法寫入"
 fclose(fp);    //關閉航班文件
}


void createtrainfile()
/*
  創建列車車次文檔
*/
{int code,bt[2],at[2];
 float money;
 int i;
 int count;
 char vt[10],vh[10],flag;
 FILE *fp;
 flag='y';
 count=0;
 while(flag=='y'||flag=='Y')
 {printf("請輸入列車車次的信息:\n");
  printf("列車車次編號:");
  scanf("%d",&code);
  getchar();
  printf("起始城市:");
  gets(vt);
  printf("目的城市:");
  gets(vh);
  printf("車次費用:");
  scanf("%f",&money);
  getchar();
  printf("發車時間:");
  scanf("%d:%d",&bt[0],&bt[1]);
  getchar();
  while(bt[0]<0||bt[0]>=24||bt[1]<0||bt[1]>=60)
  {printf("\n時間輸入有誤,請重新輸入\n");
   scanf("%d:%d",&bt[0],&bt[1]);
   getchar();
  }
  printf("到達時間:");
  scanf("%d:%d",&at[0],&at[1]);
  getchar();
  while(at[0]<0||at[0]>=24||at[1]<0||at[1]>=60)
  {printf("\n時間輸入有誤,請重新輸入\n");
   scanf("%d:%d",&at[0],&at[1]);
   getchar();
  }
  a[count].co=code;
  strcpy(a[count].vt,vt);
  strcpy(a[count].vh,vh);
  a[count].bt[0]=bt[0];
  a[count].bt[1]=bt[1];
  a[count].at[0]=at[0];
  a[count].at[1]=at[1];
  a[count].mo=money;
  count++;
  printf("繼續輸入?(Y/N)");
  scanf("%c",&flag);
  getchar();
  printf("\n");
 }
 if((fp=fopen("train.txt","wb"))==NULL)
  printf("\n無法打開文件!\n");
 fprintf(fp,"%d",count);
 for(i=0;i<count;i++)
  if(fwrite(&a[i],sizeof(struct arc),1,fp)!=1)
   printf("\n文件寫入錯誤!\n");
 fclose(fp);
}

 

 

int LocateVertex(ALGraph *G,char *v) 
/*
  城市名在交通系統中定位操作,找出城市名在圖中對應結點位置
*/
{int j,k;
 j=-1;
 for(k=0;k<G->vexnum;k++)
  if(strcmp(G->vertices[k].cityname,v)==0)  //第k個結點中的城市名與傳過來的城市名相同
  {j=k;    /*記錄位置*/
   break;
  }
 return(j);
}


void CreateGraph(ALGraph *G)
/*
  用city,plan,train三個文檔創建城市交通系統
*/
 {int i,j,k;
 int arc_num;
 int count1,count2;
 int m,t;
 ArcNode *p,*q;
 FILE *fp;
 i=0;
 if((fp=fopen("city.txt","rb"))==NULL)  //打開城市文件,文件指針返回值為空
 {printf("\n無法打開文件!\n");
  return;
 }
 while(!feof(fp))  //文件不為空
 {fscanf(fp,"%10s",city[i]);
  i++;
 }
 fclose(fp);  //關閉文件
 j=0;
 while(j<i)
 {strcpy(G->vertices[j].cityname,city[j]);//將 city[i] 中的內容復制到圖的結構體的結點數組中;
  G->vertices[j].planefirstarc=NULL; // 圖的結構體其他項賦初值;
  G->vertices[j].trainfirstarc=NULL;
  j++;
 }
 G->vexnum=i;
 if((fp=fopen("plane.txt","rb"))==NULL)
  printf("\n無法打開文件!\n");
 k=0;
 fscanf(fp,"%d",&count1);   //打開航班信息文件"plane.txt"
 while(k<count1)
 {if(fread(&a[k],sizeof(struct arc),1,fp)!=1)
   printf("\n文件讀入錯誤!\n");
  k++;
 }
 fclose(fp);  //關閉文件
 k=0;         //a的計數變量k=0
 arc_num=0;  //弧的計數變量 arc_num=0
 while(k<count1)
 {i=LocateVertex(G,a[k].vt); //調用函數 LocateVertex(G,a[k].vt)得到起始結點的位置 i
  j=LocateVertex(G,a[k].vh); //調用函數 LocateVertex(G,a[k].vh)得到起始結點的位置 j
  q=G->vertices[i].planefirstarc;
  m=0;
  while(q!=NULL)
  {if(q->adjvex==j)  //弧 q中的鄰接頂點與j相等
   {t=q->info.last+1;  // 將數組a[i] 中的內容都復制到弧q中
    q->info.stata[t].number=a[k].co;
    q->info.stata[t].expenditure=a[k].mo;
    q->info.stata[t].begintime[0]=a[k].bt[0];
    q->info.stata[t].begintime[1]=a[k].bt[1];
    q->info.stata[t].arrivetime[0]=a[k].at[0];
 q->info.stata[t].arrivetime[1]=a[k].at[1];
    q->info.last=t;
    m=1;
    break;
   }
   q=q->nextarc;
  }
  if(m==0)
  {p=(ArcNode*)malloc(sizeof(ArcNode));  //開辟一個弧結點
   p->adjvex=j;   //將數組a[i]中的內容都復制到新的弧結點中
   p->info.stata[0].number=a[k].co;
   p->info.stata[0].expenditure=a[k].mo;
   p->info.stata[0].begintime[0]=a[k].bt[0];
   p->info.stata[0].begintime[1]=a[k].bt[1];
   p->info.stata[0].arrivetime[0]=a[k].at[0];
   p->info.stata[0].arrivetime[1]=a[k].at[1];
   p->info.last=0;
   p->nextarc=G->vertices[i].planefirstarc;
   G->vertices[i].planefirstarc=p;  // 將弧結點連接到適當的位置中去
   arc_num++;
  }
  k++;
 }
 G->planearcnum=arc_num;
 if((fp=fopen("train.txt","rb"))==NULL)
 {printf("\n無法打開文件!\n");
  return;
 }
 k=0;
 fscanf(fp,"%d",&count2);  //打開列車信息文件"plane.txt"
 while(k<count2)
 {if(fread(&a[k],sizeof(struct arc),1,fp)!=1)
   printf("\n文件讀入錯誤!\n");
  k++;
 }
 fclose(fp);  //關閉文件
 k=0;       //a的計數變量k=0;
 arc_num=0;  // 弧的計數變量 arc_num=0;
 while(k<count2)
 {i=LocateVertex(G,a[k].vt);  // 調用函數 LocateVertex(G,a[k].vt)得到起始結點的位置 i
  j=LocateVertex(G,a[k].vh);  // 調用函數 LocateVertex(G,a[k].vh)得到起始結點的位置 j
  q=G->vertices[i].trainfirstarc;
  m=0;
  while(q!=NULL)
  {if(q->adjvex==j)  //弧 q中的鄰接頂點與j相等
   {t=q->info.last+1;  //將數組a[i] 中的內容都復制到弧q中
    q->info.stata[t].number=a[k].co;
    q->info.stata[t].expenditure=a[k].mo;
    q->info.stata[t].begintime[0]=a[k].bt[0];
 q->info.stata[t].begintime[1]=a[k].bt[1];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区男女羞羞无遮挡 | 在线观看一区日韩| 亚洲卡通欧美制服中文| 91久久线看在观草草青青 | 亚洲影视资源网| 欧美日韩情趣电影| 老色鬼精品视频在线观看播放| 精品国产自在久精品国产| 国产一区二区三区在线观看精品 | 一区二区三区影院| 欧美喷潮久久久xxxxx| 久久精品国产精品亚洲精品| 久久免费偷拍视频| 99精品视频在线观看| 亚洲一区二区三区精品在线| 91精品国产91久久综合桃花 | 在线观看视频一区二区欧美日韩| 亚洲大型综合色站| 精品日本一线二线三线不卡| 成人高清伦理免费影院在线观看| 一区2区3区在线看| 欧美大片在线观看一区二区| www.色精品| 天天综合色天天综合色h| 精品电影一区二区| 91在线观看污| 日韩av网站在线观看| 国产欧美一区二区在线| 在线观看成人免费视频| 久久99久久久久久久久久久| 亚洲欧洲日韩在线| 91精品国产91久久综合桃花| 成人开心网精品视频| 亚洲成人激情社区| 国产网站一区二区三区| 在线日韩一区二区| 狠狠色狠狠色合久久伊人| 中文字幕一区三区| 91精品婷婷国产综合久久竹菊| 国产精品自拍在线| 亚洲综合久久久久| 国产亚洲自拍一区| 欧美日韩1区2区| 国产成人99久久亚洲综合精品| 亚洲国产成人av| 日本一区二区三级电影在线观看| 欧美日韩国产免费| 高清视频一区二区| 日韩av电影免费观看高清完整版 | 久久网站最新地址| 欧美丝袜丝nylons| 成人精品一区二区三区四区 | 亚洲天天做日日做天天谢日日欢 | 91精品啪在线观看国产60岁| www.久久精品| 狠狠色丁香久久婷婷综| 亚洲一区二区三区不卡国产欧美| 国产日产欧产精品推荐色| 欧美日产国产精品| 色综合天天视频在线观看| 激情文学综合丁香| 亚洲18女电影在线观看| 国产精品久久久久久久午夜片| 欧美一卡在线观看| 99re成人精品视频| 国产黄色成人av| 免费观看久久久4p| 亚洲国产精品视频| ...av二区三区久久精品| 久久综合资源网| 91精品久久久久久久91蜜桃| 色婷婷久久久综合中文字幕| 国产成人综合亚洲网站| 美女视频一区二区三区| 亚洲一区二区视频在线观看| 国产精品剧情在线亚洲| 精品国产一区久久| 国产制服丝袜一区| 国产精品乱人伦一区二区| 在线成人av网站| 91影视在线播放| 成人激情黄色小说| 国产一区二区三区免费在线观看| 午夜成人免费电影| 亚洲在线观看免费视频| 中文字幕一区在线观看| 亚洲精品久久嫩草网站秘色| 国产日韩亚洲欧美综合| 精品精品国产高清a毛片牛牛| 欧美裸体一区二区三区| 欧美影院午夜播放| 日本韩国视频一区二区| 99re这里只有精品6| 波多野结衣视频一区| 国产成人精品免费看| 国产一区二区伦理片| 精品一区二区三区久久| 美女视频黄久久| 日韩精品一级二级| 丝袜脚交一区二区| 日日夜夜免费精品| 日日骚欧美日韩| 日本不卡一区二区三区| 视频一区国产视频| 日韩国产欧美在线视频| 日韩一区欧美二区| 国产成人在线视频网站| 日本成人在线电影网| 一区av在线播放| 亚洲一二三四区不卡| 亚洲美女在线国产| 亚洲美女偷拍久久| 亚洲精品一二三| 亚洲午夜在线观看视频在线| 亚洲综合色在线| 午夜久久久影院| 秋霞影院一区二区| 久久激情五月激情| 国产一区二区不卡在线| 国产一级精品在线| 成人综合激情网| 99精品桃花视频在线观看| 91国偷自产一区二区三区成为亚洲经典| 91麻豆免费视频| 在线一区二区三区做爰视频网站| 欧美曰成人黄网| 欧美一区二区视频免费观看| 欧美成人官网二区| 国产女主播一区| 亚洲色大成网站www久久九九| 亚洲与欧洲av电影| 日本午夜一区二区| 国产综合色视频| 成人深夜视频在线观看| 91视频一区二区| 欧美日本一区二区| 精品日韩一区二区三区免费视频| 久久久不卡网国产精品一区| 国产精品成人在线观看| 成人精品国产福利| 99re这里只有精品视频首页| 欧美日韩中文国产| 欧美电视剧免费全集观看| 国产婷婷色一区二区三区在线| 国产精品国产三级国产| 天堂成人免费av电影一区| 欧美96一区二区免费视频| 韩国理伦片一区二区三区在线播放 | 亚洲欧美日本韩国| 午夜精品成人在线视频| 精品一区二区三区久久久| av电影在线不卡| 91超碰这里只有精品国产| 久久青草国产手机看片福利盒子| 中文字幕一区二区三区不卡| 亚洲午夜精品网| 韩国一区二区三区| 91麻豆精品视频| 日韩一级免费一区| 中文字幕亚洲欧美在线不卡| 天天综合网天天综合色| 国产1区2区3区精品美女| 欧美日韩你懂的| 日本一区二区免费在线| 亚洲成人av免费| 丁香婷婷综合色啪| 欧美日韩国产天堂| 国产精品素人视频| 日韩电影免费在线观看网站| 丁香天五香天堂综合| 久久夜色精品国产欧美乱极品| 色94色欧美sute亚洲13| 91麻豆精品国产| 亚洲国产岛国毛片在线| 香蕉久久夜色精品国产使用方法| 国产精品一区免费在线观看| 在线视频一区二区三区| 国产午夜精品一区二区三区嫩草 | 欧美一区二区三区四区五区| 国产精品网站在线观看| 日韩欧美国产综合在线一区二区三区| 一本一道久久a久久精品| 精品99一区二区| 一区二区三区高清在线| 国产盗摄一区二区三区| 欧美放荡的少妇| 日韩码欧中文字| 国产露脸91国语对白| 欧美丰满少妇xxxxx高潮对白| 国产精品久久久久aaaa| 久久99精品国产.久久久久久| 在线观看国产一区二区| 日本一区二区三区四区在线视频| 男男gaygay亚洲| 欧美亚洲动漫精品| 亚洲欧美综合色| 国产精品综合二区| 日韩欧美二区三区| 亚洲一区精品在线| 99国产精品久久久久久久久久 |