公交系统实训报告_第1页
公交系统实训报告_第2页
公交系统实训报告_第3页
公交系统实训报告_第4页
公交系统实训报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长沙学院课程设计说明书题目城市公交查询软件系(部)计算机系专业(班级)11软件6班姓名罗珣丹学号2011022603指导教师邱建雄起止日期2012.12.31-2012.1.12课程设计任务书课程名称:服务外包软件工程实训Ⅲ设计题目:城市公交查询软件已知技术参数和设计要求:需求说明及要求1.主要功能模块:(1)用户管理用户管理模块为用户提供用户信息管理的功能,包括用户注册、用户登陆、用户信息修改、用户密码修改、用户注销等功能。用户注册:用户可以利用此功能完成注册,用户在界面输入注册信息,回车后,软件将注册信息保存到用户信息数据文件中。用户登陆:用户可以利用此功能完成登陆,用户在界面输入登陆信息,回车后,软件验证登录信息,登陆成功后,软件进入主功能选择界面。用户信息修改:用户可以利用此功能完成用户信息修改。用户密码修改:用户可以利用此功能完成密码修改。用户注销:用户可以利用此功能完成用户信息注销,某用户注销后,便不能再次登录。(2)线路管理线路管理模块为用户提供公交线路数据的管理和维护,包括线路添加、线路修改、线路删除等功能。线路添加:用户可以利用此功能增加一条线路。线路修改:用户可以利用此功能修改一条线路。线路删除:用户可以利用此功能删除一条线路。(3)站点管理站点管理模块为用户提供公交站点数据的管理和维护,包括站点添加、站点修改、站点删除等功能。站点添加:用户可以利用此功能增加一个站点。站点修改:用户可以利用此功能修改一个站点。站点删除:用户可以利用此功能删除一个站点。(4)公交查询公交查询模块为用户提供公交信息查询的功能,包括站点查询、线路查询、站站查询、最短距离查询、最少换乘查询等功能。站点查询:用户可以利用此功能查看某个站点所停靠的公交线路。线路查询:用户可以利用此功能查看某条线路所路经的公交站点。站站查询:用户可以利用此功能查询出发地和目的地之间的所有公交乘车方案。最短距离查询:用户可以利用此功能查询出发地和目的地之间最短距离的公交乘车方案。最少换乘查询:用户可以利用此功能查询出发地和目的地之间最少换乘的公交乘车方案。3.要求:界面友好,易于操作;数据结构运用灵活,编码规范,设计合理。

各阶段具体要求:1、需求分析阶段(1)写出需求分析(做什么)(2)要求问题分析和功能定义准确2、系统设计阶段(1)根据问题描述,设计系统的结构(3)完成数据结构中各个函数的定义(4)用户界面的设计(5)要求数据结构定义合理,类层次结构清晰3、编码实现阶段(1)完成代码编写(2)要求代码编写规范4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统(2)提交系统需求说明书、设计说明书、程序代码(3)撰写实训报告书(4)要求规范地书写文档设计工作量:(1)软件设计:完成问题陈述中所提到的所有需求功能。(2)40课时。工作计划:安排两周时间进行课程设计,软件开发步骤如下,第一周完成1~3,第二周完成4~8,论文同步进行;1) 选定题目2) 需求分析3) 系统设计4) 编码实现5) 系统测试6) 交付实施指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表姓名罗珣丹学号2011022603专业软件工程班级软件6班设计题目城市公交查询软件指导教师邱建雄指导教师意见:评定等级:教师签名:日期:答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名:日期:系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;目录1引言 61.1编写目的 61.2项目背景 61.3名词解释 61.4参考资料 62规划需求 72.1业务描述 72.2功能需求 72.2.1业务处理 72.3性能需求 82.4数据需求 93软件总体设计 113.1软件框架设计 113.2软件模块划分 113.3软件数据设计 114软件详细设计 124.1业务处理 124.1.1注册登录 125软件测试 155.1功能性测试 155.1.1注册测试 155.2数据测试 155.2.1登陆测试 156总结 16

1引言1.1编写目的通过文档可以更直观的描述本次实训的目的,价值以及学生的体会。能更好地把从中学到的东西记住,丰富知识,弥补不足。老师也能更快的了解学生对这次实训的思路,方便以后针对性的教学,从而让学员学到更多的知识。这次实训主要针对数据结构的运用,对功能实现而编写算法的整体性和逻辑性的训练,有效提高了对待程序认真态度,对命名和构造结构体的实际操作能力,对待外界的抗压能力,受打击能力。这次实训的内容是公交查询系统,希望对想学好文件和数据结构的同学起到帮助。当然,本人也只是刚学了C语言1年多,也是第一次完全自己实现最小,次小换乘的功能,所以对于算法的有效,简洁不是很好。1.2项目背景(1)项目名称:服务外包软件工程实训Ⅲ(2)创意背景:数据结构知识(3)任务提出者:邱建雄(4)开发者:软件工程服务外包学员1.3名词解释数据结构:程序设计中所需要用到的结构来存储数据和处理数据的虚拟结构。图:数据结构中经常利用的结构之一,用于求最短距离和描述两个站点之间距离的用处。邻接链表:是图的一种链式存储结构,与树型结构中的孩子链表相似。通常邻接链表也称邻接表。1.4参考资料参考文献:1.苏仕华等编,数据结构课程设计;机械工业出版社,2005年2.何钦明编,数据结构课程设计;浙江大学出版社,2007年3.李建学,数据结构课程设计案例精编;清华大学出版社,2007年2规划需求2.1业务描述站点查询功能,线路查询功能,站站查询功能,最小换乘和次小换乘功能的使用时建立在用户成功登陆之后。这些功能的实现是基于本组构成的公交系统网。站点查询功能,用户可以输入站点名称,查出经过该站点的所有公交路线名称。线路查询功能,用户输入公交线路名称,查出这条公交线路按开始到结束的站点名称。站站查询功能,用户输入两个站点名称,查出一条可以到达两点之间的公交线路名称。最小换乘和次小换乘功能,用户输入两个站点名称,查出两个站点之间的最小,第二小换乘次数的公交线路和该公交线路经过的站点名称。2.2功能需求2.2.1业务处理1.功能点站点查询表2.1功能编号1功能点名称站点查询角色所有客户功能说明公交站点查询事件流程登陆,选择功能,输入存在的站点名称前置条件登陆成功后,选择站点查询功能后置条件按任意键输入数据存在的站点名称输出数据经过该站点所有的公交线路名称备注输入存在的站点名称表2.1线路查询表2.2功能编号2功能点名称线路查询角色所有客户功能说明公交线路查询事件流程登陆,选择功能,输入存在的线路名称前置条件登陆成功后,选择线路查询功能后置条件按任意键输入数据存在的线路名称输出数据公交线路经过所有的站点名称备注无表2.2站点查询表2.3功能编号3功能点名称站站查询角色所有客户功能说明公交站点到站点查询事件流程登陆,选择功能,输入两个存在的站点名称前置条件登陆成功后,选择站站查询功能后置条件按任意键输入数据两个存在的站点名称输出数据两站点之间经过的公交线路,站点名称表2.3最小,次小换乘表2.4功能编号4功能点名称最小和次小换乘角色所有客户功能说明公交站点到站点的线路最小,次小换乘查询事件流程登陆,选择功能,输入两个存在的站点名称前置条件登陆成功后,选择最小换乘功能后置条件按任意键输入数据存在两个的站点名称输出数据两个站点经过最小,次小的公交换乘线路图备注无表2.42.3性能需求(1)系统处理的准确性和及时性(2)系统的开发性和系统的可扩充性(3)系统的易用性和易维护性(4)系统的标准性(5)系统的先进性(6)系统的响应速度2.4数据需求在以上功能实现中,要用到用户信息数据,公交站点信息,公交信息数据,构建搜索线路的结构,保存公交站点信息、公交线路信息的结构。typedefstruct{ charstationId[4];//车站编号 charstationName[20];//车站名称}ST_station;typedefstruct{ charroadId[4];//线路编号 charroadName[20];//线路名称 //ST_road*next;}ST_road;typedefstruct{ charstationId[4];//车站编号 charroadId[4];//线路编号 intseq;//车站序号}ST_sttLine;typedefstruct{ intNumber;//站点经过的公交线路数目 charstationId[4];//站点名称编号 charroadName[20];//站点经过的线路名称 charstationName[20];//站点名称intseq;//经过公交线路的序号}VexInfo;//顶点信息typedefstructNextRNode{ RElemTypedata; inttime; intfind; charFrontRoadName[20]; intlength;}NextRNode,NextRList[20];typedefstructRNode{ RElemTypedata; NextRListnextroad; inttime; intfind; charFrontRoadName[20]; structRNode*next;}RNode,*RList;3软件总体设计3.1软件框架设计查询功能如图3.1所示,在用户登陆成功后,分别选择功能来解决实际问题。选择功能运行完毕后,再次回到功能选择界面,当选择退出结束功能选择界面。图3.13.2软件模块划分这个设计分成:在文件中读取数据,判断数据信息,保存数据,输出数据。功能点结构表如上图2.1,图2.2,图2.3,图2.4所示3.3软件数据设计typedefstructRNode{ RElemTypedata;//顶点相关信息,VexInfo类型 NextRListnextroad;// inttime;//换乘次数 intfind;//判断是否找到 charFrontRoadName[20];//前一个站点名称 structRNode*next;//}RNode,*RList;4软件详细设计4.1业务处理4.1.1站点查询【功能点编号】1【功能点名称】站点查询【功能点描述】为方便客户查询站点信息的一种方式【实现函数/文件】 voidQueryStation()文件:head1.h,head2.h,head3.h,station_lxd.c【界面设计】提示选择了本功能界面:printf("欢迎进入站点查询\n");输出站点查询界面: printf("\t存在的站点:\n"); input_station();输出线路界面: printf("\t第%d条路线:%s\n",i,o.roadName);界面处理流程:当客户成功登陆并选择此功能后,提示出选择本功能界面,对用户输入的名称判断是否存在,存在输出经过该站点的线路,不存在重新输入站点名称。【输入数据】 printf("\t请输入要查询的站点:\t"); scanf("%s",n.stationName);【输出数据】 printf("公交路线上第%d号:",o.seq); printf("\t%s\n",o.stationName); printf("->"); fclose(fp);}【流程/算法设计】流程图如图4.1所示输入站点输入站点打开文件,读取数据输入是否存在否打开文件,读取数据输入是否存在是判断是否判断是否stationName相等Id交换name,输出数据Id交换name,输出数据是图4.14.1.2线路查询【功能点编号】2【功能点名称】线路查询【功能点描述】为方便客户查询线路信息的一种方式【实现函数/文件】#include<stdio.h>#include<stdlib.h> voidQueryRoad()文件:head1.h,head2.h,head3.h,road_lxd.c【界面设计】输出站点查询界面: printf("\t已存在的公交线路有:\n"); input_road();界面处理流程:当客户成功登陆并选择此功能后,对用户输入的线路名称判断是否存在,存在输出这条线路经过的所有站点名称,不存在重新输入线路名称。【输入数据】 printf("\t请输入查询的公交路线名称:"); scanf("%s",p.roadName);【输出数据】voidInput_StlineRoad(ST_sttLinep){ ST_sttLineo; FILE*fp; fp=fopen("ST_sttline.txt","r"); while(!feof(fp)) { fscanf(fp,"%s\n%s\n%d\n",o.stationId,o.roadId,&o.seq); if(strcmp(p.stationId,o.stationId)==0) { Changest(o); } } fclose(fp);}【流程/算法设计】第一步输入查询的线路名称第二步对输入的线路名称判断,若存在继续步骤,否则,返回第一步第三步打开文件,读取信息第四步比较输入的线路名称是否和读取的线路名称一致,若是下一步,否则返回第三步第五步将StationName,RoadName分别与StationId,NoadId转换,记录第五步输出数据4.1.2站站查询【功能点编号】3【功能点名称】站站查询【功能点描述】为方便客户查询两个站点之间搭乘公交路线及其路线经过站点的功能【实现函数/文件】voidQuerySByS()//站站查询intExistRoadName(charn[20])//判断输入站点是否存在voidInputSRList(RListMin)//输出最小换乘链表voidAddNRoad(VexInfoo,LinkListvisited,RListN,inttime,intrp,LinkListEndRo,charFrontName[20])//在主链表中添加新线路voidClearRList(RListN)//清空RList文件:head1.h,head2.h,head3.h,short.c【界面设计】 printf("\t==================欢迎进行站站查询================\n");界面处理流程:当客户成功登陆并选择此功能后,对用户输入的站点判断真实存在后,输出一条两站点可直接到达的公交线路及其经过的站点名称。【输入数据】 printf("\t请输入查询的公交路线名称:"); scanf("%s",p.roadName);【输出数据】voidInput_StlineRoad(ST_sttLinep){ ST_sttLineo; FILE*fp; fp=fopen("ST_sttline.txt"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论