for(h=0,l=t;l for(i=0;i for(j=7;j C[h]=GJ[i][l]; P=l; } for(x=0;x<5;x++) { /* 判断 A 中站点是否与 C 相同 */ if(A[x]==C[x]) flag=1; else flag=0; } if(flag==1) { for(h=0,l=j;l for(x=0;x<5;x++) { /* 判断 B 与 D 中的站台是否相同 */ if(B[x]==D[x]) flag=2; else flag=0; } if(flag==2) { /* 输出两次换乘的路线 */ printf(\printf(\for(x=0;x<4;x++) printf(\printf(\ for(x=L;pp[m][x]!='\\0';x++) printf(\printf(\ 26 */ for(x=0;x<4;x++) printf(\printf(\for(x=P;x<=Q;x++) printf(\printf(\third line:\for(x=0;x<4;x++) printf(\printf(\for(x=7;x printf(\ } } } } } } } 字符串倒排算法程序清单: /* 实现字符串倒排函数 */ void InSort(char ch[][]) { int i,j,k,l,strl; char s; for(i=0;i for(j=0;j s=ch[i][j]; if((s>='A'&&s<='Z')||(s>='a'&&s<='z')||s==' '||(s>='0'&&s<='9')); else ch[i][j]=' '; } for(l=0;l char qq[200]={0}; char pp[200]={0}; strl=strlen(ch[l]); i=strl-1; k=l; while(1) { 27 while((ch[l][i]>='A'&&ch[l][i]<='Z')||(ch[l][i]>='a'&&ch[l][i]<='z')|| (ch[l][i]>='0'&&ch[l][i]<='9')&&i>=0) { for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=ch[l][i]; k++; i--; } strcat(qq,pp); strcpy(pp,\k=l; if(i==-1) break; while((ch[l][i]<'0'||(ch[l][i]>'9'&&ch[l][i]<'A')||ch[l][i]>'z')&&i>=0) { for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=ch[l][i]; k++; i--; } strcat(qq,pp); strcpy(pp,\k=0; if(i==-1) break; } strcpy(ch[l],qq); for(j=0;j 28 附录二 matlab 编程程序清单: dis.m 文件: function d=dis(bus,l,s1,s2) %返回两站点的距离,其中 s1,s2 为起终站点,l 为线路编号, %输入时注意起始 顺序。 d=(strfind(bus{l}.plat1,s2)-strfind(bus{l}.plat1,s1))/5; if d<0 d=(strfind(bus{l}.plat2,s2)-strfind(bus{l}.plat2,s1))/5; %否则计算反向乘车的距离,注意距离与起终点的方向有关, %plat2 为 plat1 的反向线路。 end dist.m 文件: function [d1,d2]=dist(bus,n1,m,n2,a,b) d1=[]; d2=[]; for i=1:length(n1) d1=dis(bus,n1(i),a,m{i}); d2=dis(bus,n1(i),m{i},b); end j=j+5; end end ff2.m 文件: function [n1,m1,m,n2,m2]=ff2(bus,a,b) %查看站点 a,b 是否有一次换乘的线路,n1,n2 为车换乘车次,m 为换乘站点。 n1=[]; n2={}; m1={}; m2={}; m={}; u=1; for i=1:520 if strfind(bus{i}.plat1,a) start=strfind(bus{i}.plat1,a); str=bus{i}.plat1; j=start; while j<=length(str)-4 c=str(j:j+4); 29 if isup(bus,c,b) n2{u}=isup(bus,c,b);%换乘线路序号 n1(u)=i; m{u}=c; %中转站点 m1{u}='up'; %乘车方向 m2{u}='up'; u=u+1; end j=j+5; end end end ff3.m 文件: function [n1,m1,m,n2,m2]=ff3(bus,a,b) %查看站点 a,b 是否有一次换乘的线路,n1,n2 为车换乘车次,m 为换乘站点。 n1=[]; n2={}; m1={}; m2={}; m={}; u=1; for i=1:520 if strfind(bus{i}.plat1,a) start=strfind(bus{i}.plat1,a); str=bus{i}.plat1; j=start; while j<=length(str)-4 c=str(j:j+4); if isdown(bus,c,b) n2{u}=isdown(bus,c,b);%换乘线路序号 n1(u)=i; m{u}=c; %中转站点 m1{u}='up'; %乘车方向 m2{u}='down'; u=u+1; end j=j+5; end end end ff4.m 文件: function [n1,m1,m,n2,m2]=ff4(bus,a,b) 30 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2007优秀论文 - 图文(6)在线全文阅读。
相关推荐: