1、 公交地铁查询系统报告需求分析:系统作为一种是实用工具,为在广州出行旅游的游客、学生群体等提供公交路线、地铁路线查询,具体包括:1、为用户提供经过某个地点附近的公交站点、地铁站点;2、查询经过某个站点的公交路线,公交地铁线路的具体站点信息;3、输入起始公交站点和终止站点,系统搜索可到达的路线;4、可实现鼠标操作;数据结构设计与算法:第一个功能:涉及到地点的查询,主要用到模式匹配,利用模式匹配的对输入地点与系统记录地点进行匹配,同时利用模糊查找的算法,实现了模糊查找功能。第二个功能:涉及到文件的读取的部分算法以及函数。第三个功能:利用邻接矩阵的原理,参考了邻接矩阵查找的算法以及大量公交地铁查询算
2、法,设计了一种更为有效的算法。具体如下:对起始点及终止点经过的路线进行比较,如果有相同路线,则可直接到达。如没有,则考虑转车,转车时要考虑经过每个站点的路线,如经过站点的路线与终止点相同,则转车成功。编译环境:CodeBlocks具体实现过程鼠标操作算法核心代码:void mouseCtr()int *mousePos;while(1)while(1)if(GetKeyState(VK_LBUTTON)=161main();int* GetMousePos()int a2;POINT point;GetCursorPos(a0=point.x;a1=point.y;/cout“X:“point
3、.x“tY:“point.yendlendl;return a;模糊查找核心代码:if(!strcmp(entersite,temp)flag=0;printf(“n“);printf(“ %s 附近的公交地铁站点有:“,entersite);strcpy(filename,entersite);strcat(filename,“.txt“);if(fp1=fopen(filename,“r“)!=NULL)/printf(“文件打开成功!n“);while(!feof(fp1)/打开源文件c=fgetc(fp1);/每次获取一个字符putchar(c);/输出获取到得字符/fputc(c,f
4、w);/将字符写入到要复制的文件中去printf(“nn“);fclose(fp1);/printf(“ -n“);/printf(“ 返回n -n“);/printf(“ 继续查询n -“);else if(strstr(temp,fuzzySearch) != NULL)strcat(cache,temp);strcat(cache,“nn “);i=0;查询转车路线核心代码:for(k=0;kstrlen(temp2);k+)if(temp2k!= )temp5m=temp2k;m+;else temp5m=0;if(!strcmp(temp1,temp5)printf(“ 乘坐 %s
5、可直接到达n“,temp1);flag=1;for(k=0;kstrlen(temp2);k+)if(temp2k!= )temp5m=temp2k;m+;else temp5m=0;if(!strcmp(temp4,temp5)printf(“ 乘坐 %s 到 %s 转 %s 可到达终点站n“,temp1,temp3,temp4);m=0;程序测试:测试用的数据主要包括:华南农业大学附近的站点,B10 公交部分站点的信息,转车测试站点:华农大正门华工大,华农大正门天河公园。运行结果:模糊查找结果查找公交地铁路线,站查询公交路线总结:这个课程设计花费了大部分课余的时间,不过觉得很有收获。在这个课程设计中,充分的参考利用了上学期学的数据结构里面的知识,例如模式匹配,最小路径,邻接矩阵。每一个关键核心问题的解决