公交换乘课程设计报告

上传人:第*** 文档编号:35896321 上传时间:2018-03-22 格式:DOC 页数:26 大小:609KB
返回 下载 相关 举报
公交换乘课程设计报告_第1页
第1页 / 共26页
公交换乘课程设计报告_第2页
第2页 / 共26页
公交换乘课程设计报告_第3页
第3页 / 共26页
公交换乘课程设计报告_第4页
第4页 / 共26页
公交换乘课程设计报告_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《公交换乘课程设计报告》由会员分享,可在线阅读,更多相关《公交换乘课程设计报告(26页珍藏版)》请在金锄头文库上搜索。

1、广东海洋大学信息学院课程设计报告设计题目公交换乘系统公交换乘系统课程名称数据结构姓名(学号)XXX联系电话XXX专业名称计算机科学与技术所在班级XXX指导教师XXX 教师职称教授起止时间2011 年 12 月 26 日至 2012 年 1 月 6 日评定成绩1一、课程设计的主要内容1、 公交线路中,为用户查找最短路径,有【0】次换乘就能到达目的地和【1】次换乘就能到达目的地。2、 为用户计算出路程所需费用。3、 该课程设计的公交系统中有分权限;分管理员用户和普通用户,管理员的登陆需要帐号和密码(暗文) ,普通用户可以直接登陆。4、 管理员可以重新输入新公交路线、输出公交路线、读取已经存盘的公交

2、路线资料、存入新公交路线资料(慎用!) 、查找最短公交路线、新增管理员用户和删除管理员用户。5、 普通用户只能输出公交路线和查找最短公交路线两个功能。二、功能和结构设计1、 为用户分权限2、 管理员有重新输入新公交路线、输出公交路线、读取已经存盘的公交路线资料、存入新公交路线资料(慎用!) 、查找最短公交路线、新增管理员用户和删除管理员用户3、 普通用户只能输出公交路线和查找最短公交路线两个功能。2注:系统默认的公交线路图(系统开发者为用户事先存好的,在 f1.txt 文档中)三、流程图和算法设计34567算法:(给出查找最短路径的方法)void Bus:findline() int x,y,

3、i,j,k,l,longers; longers=0; /x、y是起始和终止车站的编码;i、j是每个站点后两位编码;k是每个站点后两位编 码的差值;l是转乘站点的后两位编码 while(1) coutx; couty; if(x/100)lineNum|(x/100)=busStationNumx/100- 1|(y/100)lineNum|(y/100)=busStationNumy/100-1)/前两个是判断车站 编码的首位的,第三个是判断车站编码的后两位的 cout0) for(k=0;k“; longers+=linex/100-1x%100+k.longer; coutj-i;k-)

4、 cout“; longers+=linex/100-1x%100+k-1.longer; cout0) for(k=0;k“; longers+=linex/100-1x%100+k.longer; cout“; / money+=linex/100-1x%100+k.longer; else for(k=0;kl-i;k-) cout“; longers+=linex/100-1x%100+k-1.longer; cout“; / money+=linex/100-1x%100+k.longer; l=takeNum1b%100; if(j-l0) longers+=liney/100-1

5、l.longer; for(k=1;k“; longers+=liney/100-1l+k.longer; coutj-l;k-) cout“; longers+=liney/100-1l+k.longer; cout #include using namespace std; template class Bus public: struct BusStation int number; /车站编号 string busStationName;/车站名称 bool take; /是否可乘换 int longer; /到下一个车站的路程 ; Bus(); Bus(); void input()

6、; void output(); void findline();/查找线路 void readfile();/读取公交路线数据 void writefile();/存入公交路线数据 typedef BusStation* Pointer; private: Pointer *line; /指向三条路线的指针 int lineNum;/路线数 int *busStationNum;/每条路线的车站数 ; template class Administrator public: Administrator(); Administrator(); void readAdministrator();

7、/读取管理员资料11void writeAdministrator();/存入管理员资料 void addAdministrator();/增加用户 void deleteAdministrator();/删除用户 bool land(); private: string *name; string *mima; int num; ; /Bus.cpp #include“Bus.h“ #include template Bus:Bus() lineNum=0; line=new PointerlineNum;/三条线路 busStationNum=new int lineNum;/每条线路的车

8、站数 template Bus:Bus() for(int i=0;i void Bus:input() coutlineNum; line=new PointerlineNum;/三条线路 busStationNum=new int lineNum;/每条线路的车站数 for(int a=0;abusStationNuma; for(int b=0;blineij.busStationName; if(jlineij.longer;/到下一站点有3公里 else cinlineij.longer; /以下是要找出线路中可换乘的车站 for(k=0,m=k+1;k=lineNum-1) k+;

9、 m=k; m+; template void Bus:output() cout void Bus:findline() int x,y,i,j,k,l,longers; longers=0; /x、y是起始和终止车站的编码;i、j是每个站点后两位编码;k是每个站点后两位编 码的差值;l是转乘站点的后两位编码 while(1) coutx; couty; if(x/100)lineNum|(x/100)=busStationNumx/100- 1|(y/100)lineNum|(y/100)=busStationNumy/100-1)/前两个是判断车站 编码的首位的,第三个是判断车站编码的后

10、两位的 cout0)14 for(k=0;k“; longers+=linex/100-1x%100+k.longer; coutj-i;k-) cout“; longers+=linex/100-1x%100+k-1.longer; cout0) for(k=0;k“; longers+=linex/100-1x%100+k.longer; cout“; / money+=linex/100-1x%100+k.longer; else for(k=0;kl-i;k-) cout“; longers+=linex/100-1x%100+k-1.longer; cout“; / money+=l

11、inex/100-1x%100+k.longer; l=takeNum1b%100; if(j-l0) longers+=liney/100-1l.longer; for(k=1;k“; longers+=liney/100-1l+k.longer; coutj-l;k-) cout“; longers+=liney/100-1l+k.longer; cout void Bus:readfile() ifstream infile(“f1.txt“,ios:in); if(!infile) cerrlineNum; line=new PointerlineNum;/三条线路 busStatio

12、nNum=new int lineNum;/每条线路的车站数 for(int a=0;abusStationNuma; for(int b=0;blineij.number; infilelineij.busStationName; infilelineij.longer; infilelineij.take; cout void Bus:writefile() ofstream outfile(“f1.txt“,ios:out); if(!outfile) cerr Administrator:Administrator() num=0; name=new stringnum; mima=n

13、ew stringnum;18 template Administrator:Administrator() num=0; delete name; delete mima; name=NULL; mima=NULL; template void Administrator:readAdministrator() ifstream infile(“Administrator.txt“,ios:in); if(!infile) cerrnum; name=new stringnum; mima=new stringnum; for(int i=0;inameimimai; template vo

14、id Administrator:writeAdministrator() ofstream outfile(“Administrator.txt“,ios:out); if(!outfile) cerr bool Administrator:land()19 string myname; string mymima; coutmyname; coutmymima; readAdministrator(); for(int i=0;i void Administrator:addAdministrator() string *name_aux,*mima_aux; name_aux=new stringnum+1; mima_aux=new stringnum+1; for(int i=0;inamenum-1; coutmimanum-1;for(int k=0;k void Administrator:deleteAdministrator() string dname,dmima;/分别存放要删除的管理员用户的帐号和密码 coutdname; coutdmima; for(int i=0;i=num-1) cout #include #include void main() /system(“Color 3D“); Bus b; Adminis

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号