查询公交路线实验报告
一、功能实现
1.从excel加载数据源模块data
2.出发地是广工公交站,根据选择的目的地会选择有直达模块和转乘模块
二、效果图
1.原Excel数据源结构图
1-1
2.Data发送到matlab
1-2
3.起点
1-3
4.选择目的地,为了测试,数据很小
1-4
5.选择目的为华工,可以直达线路的公交
1-5
6.目的地为燕塘,需要换乘的公交线路指导
1-6
三、源码
1.从excel加载数据源模块
%从Excel中导入数据
data
a=importdata('I:\复习\大四第一学期\matlab\实验\实验报告\buses.xls','Sheet1');
2.输入起点和判断选择的目的地
%输入的起点
sta=menu('出发地:','广工');
A=['广工'];、
rowheaders={'381路','382路','大学城1线','大学城2线','大学城3线','大学城4线','503路'};
destination={'华师','华工','广外','科韵路','赤岗','棠安路','燕岭大厦','白云索道','动物园南门'};
%判断输入的目的地
des=menu('选择目的地:',destination{:});
for i=1:9
if
des==i
B=destination{i};
end
end
3.直达模块,flag=1
�ta数据
arr =
cell(1);
%arr =cell(1,7);
i=0;
v=0;
flag=0;
for
k=1:7
%7个,角标超过了矩阵的维数
for
f=1:33
3个
ifstrcmp(data{k,f},B)
%1.一次直达
forj=1:33
ifstrcmp(data{k,j},A)
count='选择广工站!';
i=i+1;
h=rowheaders{1,k};
arr{1,i}=sprintf('%s%s',h,'----------------->乘坐到',B,'下车');%使用=
= =
>加上矩阵尺寸必须同意。arr(1,i)=rowheaders(k,1)+'可以乘坐!'
flag=1;
break;
else
if
flag==0
v=k;
end
end
end
else
count='没有选择!';
end
end
end
4.转乘模块,flag02和flag03判断是否重复
%第一次转乘
%arr = cell(1,7);
i=0;
flag02=0;
if flag==0
for
k=1:7
forf=1:33
forz=1:33
ifk~=v
if
strcmp(data{k,f},data{v,z})&&
flag02==0
count='选择广工站!';
i=i+1;
h=rowheaders{1,k};
arr{1,i}=sprintf('%s%s',h,'----------------->乘坐!到',data{k,f},'下车');%使用=
= =
>加上矩阵尺寸必须同意。arr(1,i)=rowheaders(k,1)+'可以乘坐!'
flag02=1;
break;
end
end
end
end
flag02=0;
end
end
%第二次转乘
flag03=0;
if flag==0
for
m=1:7
for n=1:33
for z=1:33
ifstrcmp(data{m,n},data{v,z}) &&
flag03==0
i=i+1;
h=rowheaders{1,v};
arr{1,i}=sprintf('%s%s','转乘',h,'----------------->,','到',B,'下车');
flag03=1;
break
end
end
end
%flag03=0;
end
end
5.显示模块
%disp(arr);
des1=menu('可以乘坐:',arr);