if(p) *p=0; i++; }
maxline=i; fclose(fp); return 0;
}
/* 对读取的文件信息进行预处理函数 */ void StrPx() {
int i,j; char c;
for(i=0;i for(j=0;j c=GJ[i][j]; if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||(c>='0'&&c<='9')); else GJ[i][j]='—'; } } /* 实现直达和一次换乘的函数 */ int DirChange(char a[],char b[]) { int i, j, k, p, q, m, n; int h,ii,i1,flag,l; int L,M,N,A,B; char pp[300]; char qq[300]; char M[300]; char N[300]; char K[300]; int cnt = maxline; for (i = 0; i < maxline; i++) { for (j = 7; j if (GJ[i][l] == a[h]) { flag=1; 21 */ L=l; } else flag=0; } if(flag) { for (h = L - 4; h < strlen(GJ[i]); h++) for (p = 7; p < 300; p++) { /* 将存在起始站台 a 的线路信息存储在数组 pp 中 */ pp[p] = GJ[i][h] for (j = 0; j < 7; j++) pp[j] = GJ[i][j]; N = p; } for (m = 0; m < maxline; m++) { for (n = 7; n < strlen(GJ[m]); n+6) /* 取出与目的站 b 相同的站台 */ for(h=0,l=n;l if (GJ[m][l] == b[h]) { flag=1; L=l; } else flag=0; } if(flag) { for(h=L-4;h qq[j] = GJ[m][j]; M=p; } for (p = 7; p < N; p+6) for (q = 7; q < M; q+6) { /* 判断 pp 与 qq 中是否有交集 */ for(j=0,i=q;i 22 flag=1; else flag=0; if(flag) /* 有交集,则说明有直达线路 */ { cnt1 = 0; for (i1 = 7, ii = q-5; ii < M; ii++, i1++) { N[i1] = qq[ii]; for(j=0;j<8;j++) N[j] = qq[j]; } printf(\printf(\for(i=0;i<4;i++) printf(\printf(\for (i = 7; i < ii; i++) printf(\return 1; else /* 如果没有交集,则输出发生一次换乘的线路 { for(i=p,j=q;i flag=1; A=i; B=j; } else flag=0; if(flag) { for(i=0;i for(i=7;j=B+1;qq[j]!=NULL;j++,i++) K[i]=qq[j]; for(i=0;i<7i++) K[i]=qq[i]; printf(\printf(\for(i=0;i<4;i++) printf(\ 23 */ } printf(\for(i=7;i printf(\for(i=0;i<4;i++) printf(\printf(\ for(i=7;K[i]!=NULL;i++) printf(\return 1; } } return 0; } } } } } } /* 实现两次换乘的函数 */ InDirChange(char a[],char b[]) { int m=0,s=0; int i,j,h,l,n,t; int L,H,P,Q; int flag,k; char pp[200][300]; char qq[200][300]; char A[10],B[10],C[10],D[10]; for (i = 0; i < maxline; i++) { for (j = 7; j < strlen(GJ[i]); j + 6) { for (h = 0, l = j; l < j + 5; l++, h++) { /* 将含有 a 的线路信息记录if (GJ[i][l] == a[h]) { flag = 1; L = l; } else flag = 0; } 24 */ for(h=0,k=j;k flag=2; K=k; } else flag=0; } } if (flag==1) { for (h = L - 4; h < strlen(GJ[i]); h++) for (n = 7; n < 300; n++) { pp[m][n] = GJ[i][h]; for (j = 0; j < 7; j++) pp[m][j] = GJ[i][j]; m++; } } if(flag==2) { for(h=K-4;h qq[s][t]=GJ[i][h]; for(j=0;j<7;j++) qq[s][j]=GJ[i][j]; s++; } } } for(m=0;m for(n=7;n for (h = 0, l = n; l < n + 5; l++, h++) {A[h]=pp[m][l];L=l;} /* 依次从数组 pp 中取出各站台号存入数组 A */ for(s=0;s for (t = 7; t < strlen(qq[s]); t + 6) { 25 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2007优秀论文 - 图文(5)在线全文阅读。
相关推荐: