
云代码会员 - 云代码空间
——
目 录
2.2.2站点维护...................................................................................................... 6
2.2.3线路维护...................................................................................................... 9
2.2.4业务查询.................................................................................................... 12
3.2.1 用户管理模块............................................................................................ 21
3.2.2 站点维护模块............................................................................................ 22
3.2.3 线路维护模块............................................................................................ 22
3.2.4 用户管理模块............................................................................................ 23
3.3 软件数据设计.................................................................................................. 23
4.1 程序流程图...................................................................................................... 26
4.2 各模块的存储结构........................................................................................... 27
4.2.1 管理员存储结构..................................................................................... 27
4.2.2 用户存储结构........................................................................................ 27
4.2.3 线路的存储............................................................................................ 28
4.2.4 各线路查询的存储结构.......................................................................... 28
4.3 各个程序的程序图............................................................................................. 29
4.3.1 用户和管理员的注册和登陆的总程序框图.............................................. 29
4.3.2 线路维护的程序框图.............................................................................. 30
4.3.3 公交查询的程序框图.............................................................................. 31
编写这个文档可以让城市交通管理公司更快、更清晰的了解我们开发的城市公交查询软件的功能,同时为公司和广大市民提供具体的服务进行描述。让我们的公交系统管理的更加完善,发展的更好。
城市公共交通运输以其覆盖面广、经济快捷的特点,目前,仍然是绝大多数出行者的首选方式,许多国家和城市都在积极地研究和发展本地的公交设施与服务,不断地对交通路线和人口的分布进行优化和合理解度。如果能提供一种服务,为市民特别是外来旅游、出差、就医等急需了解本地道路情况的人提供方便、经济、快捷、高效地利用公交线路的方案,将极大的方便出行和生活,同时减少不必要的交通流量,提高交通运输和城市的地位。
城市集团(虚拟化名)是一个具有数十年历史的交通管理公司。该集团长沙分公司希望通过信息化的手段,未长沙市民以及外来游客提供理想的公交线路方案,因此现在我们实训5组开发一套“城市公交查询软件”,该软件将为公司的日常运营提供用户管理、站点管理、线路管理等功能,同时为广大人民群众提供快捷的公交查询功能,为社会又回顾一份便捷。
| 
				 userld  | 
			
				 用户编号  | 
		
| 
				 loginName  | 
			
				 用户登录名  | 
		
| 
				 loginPassWd  | 
			
				 用户登录密码  | 
		
| 
				 CBS_linelist * CBS_Adjacency list Init  | 
			
				 创建邻接链表  | 
		
| 
				 CBS_linelist _free  | 
			
				 释放链表空间  | 
		
| 
				 CBS_linelist _clear  | 
			
				 清除链表  | 
		
| 
				 CBS_linelist _isempty  | 
			
				 表是否为空  | 
		
| 
				 CBS_linelist _count  | 
			
				 计数  | 
		
| 
				 CBS_linelist _get  | 
			
				 得到选择编号  | 
		
| 
				 element CBS_linelist _get  | 
			
				 得到查找的起始和终结站点  | 
		
| 
				 CBS_linelist_DRS  | 
			
				 直达计算  | 
		
| 
				 CBS_linelist_MSS  | 
			
				 最短路径查询  | 
		
| 
				 userName  | 
			
				 用户真实姓名  | 
		
| 
				 userSex  | 
			
				 用户性别  | 
		
| 
				 userAge  | 
			
				 用户年龄  | 
		
| 
				 userAddr  | 
			
				 用户籍贯  | 
		
现在公交查询信息系统的发展处于一个较落后的水平,很多乘客几乎无法获取到相关信息的,这样给乘客的出行和生活都带来了很多不便。为了解决这个问题,加快发展城市公交信息化。设计一个城市公交查询系统是非常具有实际意义。
而本软件实现的业务功能有四大模块:
(1)用户管理:用户注册、用户登录、用户信息修改、用户注销
(2)站点维护:站点修改、站点添加、站点删除
(3)线路维护:线路修改、线路添加、线路删除
(4)查询业务:站点查询、线路查询、最短路径查询、直达线路查询
2.2.1用户管理
1、注册
表2.1 管理员注册(表头在上)
| 
					 功能点编号  | 
				
					 ADR001  | 
			
| 
					 功能点名称  | 
				
					 管理员注册  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员通过本功能点完成注册操作  | 
			
| 
					 事件流程  | 
				
					 1. 用户输入管理员权限密码,并回车 2. 判断权限密码是否正确,是,进入注册界面;否,回到管理员注册界面。  | 
			
| 
					 前置条件  | 
				
					 选择管理员注册功能  | 
			
| 
					 后置条件  | 
				
					 管理员注册成功,进入登陆界面  | 
			
| 
					 输入数据  | 
				
					 管理员权限密码  | 
			
| 
					 输出数据  | 
				
					 注册信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
| 
					 功能点编号  | 
				
					 ADR002  | 
			
| 
					 功能点名称  | 
				
					 用户注册  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 用户通过本功能点完成注册操作  | 
			
| 
					 事件流程  | 
				
					 1. 用户输入依次输入注册信息.并回车 2. 判断注册信息是否合法。 3. 若合法,则储存用户信息,否则,提示“请重新输入注册信息!”  | 
			
| 
					 前置条件  | 
				
					 选择用户注册功能  | 
			
| 
					 后置条件  | 
				
					 用户注册成功,进入登陆界面  | 
			
| 
					 输入数据  | 
				
					 用户注册信息  | 
			
| 
					 输出数据  | 
				
					 注册信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表1.2 用户注册
2、登录
| 
					 功能点编号  | 
				
					 ADL001  | 
			
| 
					 功能点名称  | 
				
					 管理员登录  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员通过本功能点完成登陆操作  | 
			
| 
					 
 
 事件流程 
 
  | 
				
					 1、管理员输入用户名和密码,并回车。 2、软件校验用户名和密码格式是否合法。 3、软件校验该用户是否为管理员。 4、若是,则跳转到管理员登录界面,否则,提示“用户名或密码输入错误,请重新输入!”  | 
			
| 
					 前置条件  | 
				
					 管理员成功注册。  | 
			
| 
					 后置条件  | 
				
					 管理员成功进入软件主功能处理界面。  | 
			
| 
					 输入数据  | 
				
					 用户名和密码  | 
			
| 
					 输出数据  | 
				
					 软件主功能处理界面  | 
			
| 
					 备注  | 
				
					 无  | 
			
表 2.1 管理员登录
| 
					 功能点编号  | 
				
					 ADL002  | 
			
| 
					 功能点名称  | 
				
					 用户登录  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 用户通过本功能点完成登陆操作  | 
			
| 
					 
 
 事件流程 
 
  | 
				
					 1、用户输入用户名和密码,并回车。 2、软件校验用户名和密码格式是否合法。 3、软件校验用户名和密码格式是否正确。 4、若正确,则跳转到主功能处理界面,否则,提示“用户或密码输入错误,请重新输入!”  | 
			
| 
					 前置条件  | 
				
					 用户成功注册。  | 
			
| 
					 后置条件  | 
				
					 用户成功进入软件主功能处理界面。  | 
			
| 
					 输入数据  | 
				
					 用户名和密码  | 
			
| 
					 输出数据  | 
				
					 软件主功能处理界面  | 
			
| 
					 备注  | 
				
					 无  | 
			
表2.2 用户登录
3、用户信息修改
| 
					 功能点编号  | 
				
					 UMC001  | 
			
| 
					 功能点名称  | 
				
					 信息修改  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 用户通过本功能点完成用户信息修改操作  | 
			
| 
					 
 
 事件流程 
 
  | 
				
					 1、用户登陆进入软件主功能处理界面。 2、软件校验用户信息能否找到。 3、若能找到,则进入到用户信息修改模块,否则,提示“用户信息不存在!”  | 
			
| 
					 前置条件  | 
				
					 用户成功登陆。  | 
			
| 
					 后置条件  | 
				
					 用户回到软件主功能处理界面。  | 
			
| 
					 输入数据  | 
				
					 用户信息  | 
			
| 
					 输出数据  | 
				
					 修改后的用户信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表3.1 用户信息修改
4、用户注销
| 
					 功能点编号  | 
				
					 ULS001  | 
			
| 
					 功能点名称  | 
				
					 用户注销  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 用户通过本功能点完成用户注销操作  | 
			
| 
					 
 
 事件流程 
 
  | 
				
					 1、用户登陆进入软件主功能处理界面。 2、进入注销模块。 3、确定是否注销,若是执行此操作,否则返回软件主功能处理界面。  | 
			
| 
					 前置条件  | 
				
					 用户进入软件主功能处理界面。  | 
			
| 
					 后置条件  | 
				
					 返回到注销界面。  | 
			
| 
					 输入数据  | 
				
					 确定注销  | 
			
| 
					 输出数据  | 
				
					 注销成功  | 
			
| 
					 备注  | 
				
					 无  | 
			
表4.1 用户注销
2.2.2站点维护
| 
				 功能点编号  | 
			
				 ADBus001  | 
		
| 
				 功能点名称  | 
			
				 站点修改  | 
		
| 
				 角色  | 
			
				 管理员  | 
		
| 
				 功能说明  | 
			
				 管理员实现站点的修改  | 
		
| 
				 事件流程  | 
			
				 1.管理员登陆进入软件主功能处理界面; 2.选择站点修改功能; 3.找到站点修改位置,并对其做相应修改; 4.确定是否注销,若是执行此操作,否则返回软件主功能处理界面。  | 
		
| 
				 前置条件  | 
			
				 管理员成功进入功能处理界面。  | 
		
| 
				 后置条件  | 
			
				 站点修改成功  | 
		
| 
				 输入数据  | 
			
				 站点信息  | 
		
| 
				 输出数据  | 
			
				 修改后的站点  | 
		
| 
				 备注  | 
			
				 无  | 
		
1.站点修改
2.站点添加
| 
					 功能点编号  | 
				
					 ADBus001  | 
			
| 
					 功能点名称  | 
				
					 站点添加  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员实现站点的添加  | 
			
| 
					 事件流程  | 
				
					 1.管理员登陆进入软件主功能处理界面; 2.选择站点添加功能,进入站点添加界面; 3.输入路线并验证路线正确性; 4.找到添加站点位置并进行添加站点操作; 5.确定是否注销,若是执行此操作,否则返回软件主功能处理界面。  | 
			
| 
					 前置条件  | 
				
					 管理员成功进入功能处理界面。  | 
			
| 
					 后置条件  | 
				
					 站点添加成功  | 
			
| 
					 输入数据  | 
				
					 站点信息  | 
			
| 
					 输出数据  | 
				
					 添加的站点  | 
			
| 
					 备注  | 
				
					 无  | 
			
表2.1 站点添加
3.站点删除
| 
					 功能点编号  | 
				
					 ADBus001  | 
			
| 
					 功能点名称  | 
				
					 站点添加  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员实现站点的添加  | 
			
| 
					 事件流程  | 
				
					 1.管理员登陆进入软件主功能处理界面; 2.选择站点添加功能,进入站点添加界面; 3.输入路线并验证路线正确性; 4.找到添加站点位置并进行添加站点操作; 5.确定是否注销,若是执行此操作,否则返回软件主功能处理界面。  | 
			
| 
					 前置条件  | 
				
					 管理员成功进入功能处理界面。  | 
			
| 
					 后置条件  | 
				
					 站点删除成功  | 
			
| 
					 输入数据  | 
				
					 站点信息  | 
			
| 
					 输出数据  | 
				
					 站点维护功能处理界面  | 
			
| 
					 备注  | 
				
					 无  | 
			
表3.1站点添加
2.2.3线路管理
1.线路修改
| 
					 功能点编号  | 
				
					 LM001  | 
			
| 
					 功能点名称  | 
				
					 线路修改  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员实现线路的修改  | 
			
| 
					 事件流程  | 
				
					 1.管理员登陆进入软件主功能处理界面; 2. 选择线路修改功能,进入线路修改界面; 3.输入路线并判断线路是否存在; 4.若存在则进行线路修改操作,否则提示“请重新输入线路”; 5. 验证修改后的的路线是否合法; 6.若合法则线路修改成功,线路修改界面,否则,提示“该线路不合法,请重新修改”。  | 
			
| 
					 前置条件  | 
				
					 管理员成功进入功能处理界面  | 
			
| 
					 后置条件  | 
				
					 线路修改成功  | 
			
| 
					 输入数据  | 
				
					 线路信息  | 
			
| 
					 输出数据  | 
				
					 修改后的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表1.1线路修改
2.线路添加
| 
					 功能点编号  | 
				
					 LM002  | 
			
| 
					 功能点名称  | 
				
					 线路添加  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员实现线路的添加  | 
			
| 
					 事件流程  | 
				
					 1. 管理员登陆进入功能处理界面; 2. 选择线路添加功能,进入线路添加界面; 3.执行路线添加操作并验证路线正确性; 4.若添加的线路合法,则添加线路成功,否则,提示“请重新添加线路。” 
  | 
			
| 
					 前置条件  | 
				
					 管理员成功进入功能处理界面。  | 
			
| 
					 后置条件  | 
				
					 线路添加成功  | 
			
| 
					 输入数据  | 
				
					 线路信息  | 
			
| 
					 输出数据  | 
				
					 添加的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表2.1 线路添加
3.线路删除
| 
					 功能点编号  | 
				
					 LM003  | 
			
| 
					 功能点名称  | 
				
					 线路删除  | 
			
| 
					 角色  | 
				
					 管理员  | 
			
| 
					 功能说明  | 
				
					 管理员实现线路的删除  | 
			
| 
					 事件流程  | 
				
					 1.管理员登陆进入功能处理界面; 2. 选择线路删除功能,进入线路删除界面; 3.判断线路是否存在,若存在,则对该线路进行删除操作,否则,提示“该线路不存在,请重新输入”;  | 
			
| 
					 前置条件  | 
				
					 管理员成功进入功能处理界面  | 
			
| 
					 后置条件  | 
				
					 返回线路删除界面  | 
			
| 
					 输入数据  | 
				
					 线路信息  | 
			
| 
					 输出数据  | 
				
					 线路管理界面  | 
			
| 
					 备注  | 
				
					 无  | 
			
表3.1 线路删除
2.2.4查询业务
1.站点查询
| 
					 功能点编号  | 
				
					 BSCA002  | 
			
| 
					 功能点名称  | 
				
					 站点查询  | 
			
| 
					 角色  | 
				
					 管理员、用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询中的站点查询  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择站点查询功能 4.输入查询站点 5.输出查询结果,如果没有此下路就输出“不存在此站点”  | 
			
| 
					 前置条件  | 
				
					 进入管理员公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 站点信息  | 
			
| 
					 输出数据  | 
				
					 站点相关的线路信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表1.1 管理员站点查询
| 
					 功能点编号  | 
				
					 BSCU002  | 
			
| 
					 功能点名称  | 
				
					 站点查询  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询中的站点查询  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择站点查询功能 4.输入查询站点 5.输出查询结果,如果没有此下路就输出“不存在此站点”  | 
			
| 
					 前置条件  | 
				
					 进入用户公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 站点信息  | 
			
| 
					 输出数据  | 
				
					 站点相关的线路信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表1.2 用户站点查询
2.线路查询
| 
					 功能点编号  | 
				
					 BSCA003  | 
			
| 
					 功能点名称  | 
				
					 线路查询  | 
			
| 
					 角色  | 
				
					 管理员、用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询中的线路查询  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择线路查询功能 4.输入查询线路 5.输出查询结果,如果没有此下路就输出“不存在此线路”  | 
			
| 
					 前置条件  | 
				
					 进入管理员公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 线路信息  | 
			
| 
					 输出数据  | 
				
					 线路相关的站点信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表2.1 管理员线路查询
| 
					 功能点编号  | 
				
					 BSCU003  | 
			
| 
					 功能点名称  | 
				
					 线路查询  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询中的线路查询  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择线路查询功能 4.输入查询线路 5.输出查询结果,如果没有此下路就输出“不存在此线路”  | 
			
| 
					 前置条件  | 
				
					 进入用户公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 线路信息  | 
			
| 
					 输出数据  | 
				
					 线路相关的站点信息  | 
			
| 
					 备注  | 
				
					 无  | 
			
表2.3 用户线路查询
3.最短路径查询
| 
					 功能点编号  | 
				
					 BSCA005  | 
			
| 
					 功能点名称  | 
				
					 最短路径查询  | 
			
| 
					 角色  | 
				
					 管理员、用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询界面  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择最短路径查询功能 4.输入起始站点和到达终点 5.输出最短路径,如果不存在线路就输出“错误!!”  | 
			
| 
					 前置条件  | 
				
					 进入管理员公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 起始站点和到达站点  | 
			
| 
					 输出数据  | 
				
					 中间最短的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表3.1 管理员最短路径查询
| 
					 功能点编号  | 
				
					 BSCU005  | 
			
| 
					 功能点名称  | 
				
					 最短线路  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询界面  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择最短线路查询功能 4.输入起始站点和到达终点 5.输出最短线路,如果不存在线路就输出“错误!!”  | 
			
| 
					 前置条件  | 
				
					 进入用户公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 起始站点和到达站点  | 
			
| 
					 输出数据  | 
				
					 中间最短的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表3.2 用户最短线路查询
4.直达线路查询
| 
					 功能点编号  | 
				
					 BSCA004  | 
			
| 
					 功能点名称  | 
				
					 直达线路查询  | 
			
| 
					 角色  | 
				
					 管理员、用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询界面  | 
			
| 
					 事件流程  | 
				
					 1.选择公交查询功能 2.进入公交查询选择菜单 3.选择直达查询功能 4.输入起始站点和到达终点 5.输出所有直达线路,如果没有就输出“没有直达线路”  | 
			
| 
					 前置条件  | 
				
					 进入管理员公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 起始站点和到达站点  | 
			
| 
					 输出数据  | 
				
					 中间直达的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表4.1 管理员直达线路查询
| 
					 功能点编号  | 
				
					 BSCU004  | 
			
| 
					 功能点名称  | 
				
					 直达线路  | 
			
| 
					 角色  | 
				
					 用户  | 
			
| 
					 功能说明  | 
				
					 进入交通查询界面  | 
			
| 
					 事件流程  | 
				
					 1选择公交查询功能 2进入公交查询选择菜单 3选择直达查询功能 4.输入起始站点和到达终点 5.输出所有直达线路,如果没有就输出“没有直达线路”  | 
			
| 
					 前置条件  | 
				
					 进入用户公交查询界面  | 
			
| 
					 后置条件  | 
				
					 成功输出信息  | 
			
| 
					 输入数据  | 
				
					 起始站点和到达站点  | 
			
| 
					 输出数据  | 
				
					 中间直达的线路  | 
			
| 
					 备注  | 
				
					 无  | 
			
表4.2 用户直达线路查询
数据在城市公交查询软件中占有非常重要的地位,为了提高系统的效率以及更好的实现该系统的效果保证数据的完整和一致,我们选用了一些合理的数据结构设计。
此处为数据需求,以下表格可放至详细设计中。
表2.3.1 用户信息记录
| 
				 数据项名  | 
			
				 数据类型  | 
			
				 长度  | 
			
				 是否为空  | 
			
				 唯一标识  | 
			
				 说明  | 
		
| 
				 userld  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 是  | 
			
				 用户编号  | 
		
| 
				 loginName  | 
			
				 char【】  | 
			
				 20  | 
			
				 否  | 
			
				 否  | 
			
				 用户登录名  | 
		
| 
				 loginPassWd  | 
			
				 char【】  | 
			
				 6  | 
			
				 否  | 
			
				 否  | 
			
				 用户登录密码  | 
		
| 
				 userName  | 
			
				 char【】  | 
			
				 40  | 
			
				 否  | 
			
				 否  | 
			
				 用户真实姓名  | 
		
| 
				 userSex  | 
			
				 char【】  | 
			
				 2  | 
			
				 否  | 
			
				 否  | 
			
				 用户性别  | 
		
| 
				 uesrAge  | 
			
				 int  | 
			
				 2  | 
			
				 否  | 
			
				 否  | 
			
				 用户年龄  | 
		
| 
				 userAddr  | 
			
				 char【】  | 
			
				 40  | 
			
				 否  | 
			
				 否  | 
			
				 用户籍贯  | 
		
| 
				 数据项名  | 
			
				 数据类型  | 
			
				 长度  | 
			
				 是否为空  | 
			
				 唯一标识  | 
			
				 说明  | 
		
| 
				 roadld  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 是  | 
			
				 线路编号  | 
		
| 
				 rodeName  | 
			
				 char【】  | 
			
				 20  | 
			
				 否  | 
			
				 否  | 
			
				 线路名称  | 
		
| 
				 station1  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 站点一  | 
		
| 
				 Station2  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 站点二  | 
		
| 
				 Station3  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 站点三  | 
		
| 
				 Station4  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 站点四  | 
		
| 
				 Station5  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 站点五  | 
		
| 
				 数据项名  | 
			
				 数据类型  | 
			
				 长度  | 
			
				 是否为空  | 
			
				 唯一标识  | 
			
				 说明  | 
		
| 
				 stationld  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 是  | 
			
				 车站编号  | 
		
| 
				 stationName  | 
			
				 char【】  | 
			
				 20  | 
			
				 否  | 
			
				 否  | 
			
				 车站名称  | 
		
| 
				 rode1  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 公交路线一  | 
		
| 
				 Rode2  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 公交路线二  | 
		
| 
				 rode3  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 公交路线三  | 
		
| 
				 rode4  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 公交路线四  | 
		
| 
				 rode5  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 否  | 
			
				 公交路线五  | 
		
表2.3.2 公交线路信息记录
表2.3.3 公交站点信息记录
为了保证系统能够长期、安全、稳定、可靠、高效的运行,城市公交查询系统应该充分满足一下的性能需求:
1. 系统处理的准确性和及时性
2. 系统的开放性和系统的课扩充性
3. 系统的易用性和易维护性
4. 系统的标准性
5. 系统的先进性
6. 系统的响应速度
我组设计的城市公交查询系统每个业务都大体满足了以上性能需求。
本软件采用结构化设计的方法来实现软件总体功能,提高软件的各项指标,即将整个软件合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的软件来实现整个软件的功能。
| 
					 系统入口  | 
			
| 
					 用户管理  | 
			
| 
					 站点管理  | 
			
| 
					 线路管理  | 
			
| 
					 交通查询  | 
			
| 
					 业务处理  | 
			
| 
					 用 户 注 册  | 
			
| 
					 用户登录  | 
			
| 
					 用户信息修改  | 
			
| 
					 站点修改  | 
			
| 
					 用户密码修改  | 
			
| 
					 用户注销  | 
			
| 
					 线路添加  | 
			
| 
					 线路删除  | 
			
| 
					 站点添加  | 
			
| 
					 线路修改  | 
			
| 
					 站点删除  | 
			
| 
					 站点查询  | 
			
| 
					 线路查询  | 
			
| 
					 直达线路查询  | 
			
| 
					 最短线路查询  | 
			
| 
					 数据处理  | 
			
| 
					 串处理库 线性表处理库  | 
			
| 
					 栈处理库队列处理图处理库  | 
			
| 
					 文件存储  | 
			
| 
					 
 文件存储 
 
  | 
			
图3.1 系统结构图
本次实训开发的这个城市公交查询软件,总共有四项业务,分别为:用户管理、站点维护、线路维护和公交查询。
为了区分用户和管理员的职能,我们设置了两个不同的登陆方式,在用管理员登陆时,才能对站点或线路进行修改、添加、删除操作。
为了对数据进行处理,我们设计了专门的文本文件,对站点、线路和图的信息采用链表操作处理,通过比较站点或线路的信息来实现增加、删除和查询等等操作;
系统入口
| 
					 用户管理  | 
			
| 
					 站点维护  | 
			
| 
					 线路维护  | 
			
| 
					 交通查询  | 
			
| 
					 用 户 注 册  | 
			
| 
					 用户登录  | 
			
| 
					 用户信息修改  | 
			
| 
					 用户密码修改  | 
			
| 
					 用户注销  | 
			
| 
					 站点修改  | 
			
| 
					 线路添加  | 
			
| 
					 线路删除  | 
			
| 
					 线路修改  | 
			
| 
					 直达线路查询  | 
			
| 
					 最短线路查询  | 
			
| 
					 站点查询  | 
			
| 
					 线路查询  | 
			
| 
					 站点添加  | 
			
| 
					 站点删除  | 
			
图 3.2 软件功能结构图
根据软件需求分析结果,城市公交查询软件设计四大功能模块来完成软件业务,其分别是:用户管理、站点维护、线路维护、交通查询。
3.2.1 用户管理模块
包括用户注册、用户登录、用户信息修改、用户注销和用户密码修改。其中用户登录和用户注册分为管理员和普通用户两种角色。登录时必须要全部正确填入信息才能成功登录。用户注销时是删除用户的所有信息。
用户管理
| 
					 用 户 注 册  | 
			
| 
					 用户登录  | 
			
| 
					 用户信息修改  | 
			
| 
					 用户密码修改  | 
			
| 
					 用户注销  | 
			
图3.2.1 用户管理功能模块图
3.2.2 站点维护模块
包括站点增加、站点删除、站点查询。其中站点增加是要求添加到那一条线路上,该线路的那一站点之前,而站点删除同样如此,查询站点则查询到该站点所经过的所有线路;
站点维护
| 
					 站点添加  | 
			
| 
					 站点删除  | 
			
| 
					 站点修改  | 
			
图3.2.2 站点维护功能模块图
3.2.3 线路维护模块
包括增加线路、删除线路、查询线路。其中添加线路是要求添加的线路在此系统中没有的,同时添加到线路末尾,而删除线路则删除该线路上的所有站点,查询站点则查询到该线路所经过的所有站点。
线路维护
| 
					 线路添加  | 
			
| 
					 线路删除  | 
			
| 
					 线路修改  | 
			
图3.2.3 线路维护功能模块图
3.2.4 交通查询模块
站点查询要求输入起始和终点站,输出乘坐哪条线路,最短路径查询从字面就可理解,查询到起始到终点的最短路经,参考权值;线路查询指用户可以利用此功能查看某条线路所经过的公交站点。(不通,模块图没画好)
交通查询
| 
					 站点查询  | 
			
| 
					 线路查询  | 
			
| 
					 直达线路查询  | 
			
| 
					 最短线路查询  | 
			
图3.2.4 交通查询功能模块图
数据在城市公交查询软件中占有非常重要的地位,数据结构数据1好坏直接对应应用系统的效率以及实现的效果产生影响。合理的数据结构设计可以提高数据存储的效率,保证数据的完整和一致性。
城市公交查询软件中,有三种类型的数据:用户信息数据、公交站点信息数据和公交线路信息数据。经过分析,发现这公交站点信息数据和公交线路信息数据之间存在一定的联系,即每一个公交站点都有经过其的公交线路,且可能有一条或多条公交线路同时经过;每一条公交线路都有其经过的公交站点,且可能有一个或多个站点。根据业务的需要,我们将分析本软件中对各方面数据信息的要求。如此一来,我们设计的数据记录及其记录的数据项应当为如下表格:
| 
					 数据项名  | 
				
					 数据类型  | 
				
					 长度  | 
				
					 是否为空  | 
				
					 唯一标识  | 
				
					 说明  | 
			
| 
					 userld  | 
				
					 char【】  | 
				
					 4  | 
				
					 否  | 
				
					 是  | 
				
					 用户编号  | 
			
| 
					 loginName  | 
				
					 char【】  | 
				
					 20  | 
				
					 否  | 
				
					 否  | 
				
					 用户登录名  | 
			
| 
					 loginPassWd  | 
				
					 char【】  | 
				
					 6  | 
				
					 否  | 
				
					 否  | 
				
					 用户登录密码  | 
			
| 
					 userName  | 
				
					 char【】  | 
				
					 40  | 
				
					 否  | 
				
					 否  | 
				
					 用户真实姓名  | 
			
| 
					 userSex  | 
				
					 char【】  | 
				
					 2  | 
				
					 否  | 
				
					 否  | 
				
					 用户性别  | 
			
| 
					 uesrAge  | 
				
					 int  | 
				
					 2  | 
				
					 否  | 
				
					 否  | 
				
					 用户年龄  | 
			
| 
					 userAddr  | 
				
					 char【】  | 
				
					 40  | 
				
					 否  | 
				
					 否  | 
				
					 用户籍贯  | 
			
表 3.3.1 用户信息数据记录结构
| 
					 数据项名  | 
				
					 数据类型  | 
				
					 长度  | 
				
					 是否为空  | 
				
					 唯一标识  | 
				
					 说明  | 
			
| 
					 roadld  | 
				
					 char【】  | 
				
					 4  | 
				
					 否  | 
				
					 是  | 
				
					 线路编号  | 
			
| 
					 rodeName  | 
				
					 char【】  | 
				
					 20  | 
				
					 否  | 
				
					 否  | 
				
					 线路名称  | 
			
| 
				 数据项名  | 
			
				 数据类型  | 
			
				 长度  | 
			
				 是否为空  | 
			
				 唯一标识  | 
			
				 说明  | 
		
| 
				 stationld  | 
			
				 char【】  | 
			
				 4  | 
			
				 否  | 
			
				 是  | 
			
				 车站编号  | 
		
| 
				 stationName  | 
			
				 char【】  | 
			
				 20  | 
			
				 否  | 
			
				 否  | 
			
				 车站名称  | 
		
表 3.3.2 公交线路数据记录结构
表 3.3.3 公交线路数据记录结构
| 
					 竹园路口  | 
			
| 
					 五里牌  | 
			
| 
					 火车站  | 
			
| 
					 车站路口  | 
			
| 
					 广清桥  | 
			
| 
					 识字岭  | 
			
| 
					 红旗药号  | 
			
| 
					 高建市场  | 
			
| 
					 湘雅二院  | 
			
| 
					 梓园路口  | 
			
| 
					 瑶岭东  | 
			
| 
					 地质中学  | 
			
| 
					 东方新城  | 
			
| 
					 远大路口  | 
			
| 
					 万家丽广场  | 
			
| 
					 马王堆  | 
			
| 
					 12  | 
			
| 
					 3  | 
			
| 
					 6  | 
			
| 
					 12  | 
			
| 
					 4  | 
			
| 
					 21  | 
			
| 
					 14  | 
			
| 
					 18  | 
			
| 
					 10  | 
			
| 
					 5  | 
			
| 
					 6  | 
			
| 
					 9  | 
			
| 
					 10  | 
			
| 
					 5  | 
			
| 
					 5  | 
			
| 
					 竹园路口  | 
			
| 
					 100  | 
			
| 
					 100  | 
			
| 
					 101  | 
			
| 
					 122  | 
			
| 
					 405  | 
			
| 
					 各线路颜色  | 
			
4.1 程序流程图
| 
					 公交查询系统  | 
			
| 
					 登陆  | 
			
| 
					 注册  | 
			
| 
					 权限密码  | 
			
| 
					 注册信息  | 
			
| 
					 注册信息  | 
			
| 
					 用户  | 
			
| 
					 管理员  | 
			
| 
					 直达查询  | 
			
| 
					 最短线路  | 
			
| 
					 站点查询  | 
			
| 
					 线路查询  | 
			
| 
					 站点增加  | 
			
| 
					 站点删除  | 
			
| 
					 退出  | 
			
| 
					 线路增加  | 
			
| 
					 线路删除  | 
			
| 
					 退出  | 
			
| 
					 信息修改  | 
			
| 
					 站点增添  | 
			
| 
					 用户查询  | 
			
| 
					 线路增添  | 
			
| 
					 交通查询  | 
			
| 
					 销户  | 
			
| 
					 用户  | 
			
| 
					 信息修改  | 
			
| 
					 交通查询  | 
			
| 
					 直达查询  | 
			
| 
					 最短线路  | 
			
| 
					 站点查询  | 
			
| 
					 线路查询  | 
			
| 
					 销户  | 
			
| 
					 管理员  | 
			
图4.1 程序操作总流程图
4.2 各模块的存储结构
4.2.1 管理员存储结构
| 
					 SIZE  | 
			
| 
					 *admins 
  | 
			
| 
					 COUNT  | 
			
| 
					 编号  | 
			
| 
					 addata  | 
			
| 
					 *next  | 
			
| 
					 addata  | 
			
| 
					 ^  | 
			
| 
					 姓名  | 
			
| 
					 密码  | 
			
图4.2.1 管理员的存储结构
4.2.2 用户存储结构
| 
					 *users  | 
			
| 
					 用户编号  | 
			
| 
					 SIZE  | 
			
| 
					 COUNT  | 
			
| 
					 登陆密码  | 
			
| 
					 userdata  | 
			
| 
					 *next  | 
			
| 
					 userdata  | 
			
| 
					 ^  | 
			
| 
					 用户姓名  | 
			
| 
					 用户性别  | 
			
| 
					 用户年龄  | 
			
| 
					 用户籍贯  | 
			
图4.2.2 用户的存储结构
| 
					 **lines  | 
			
| 
					 COUNT  | 
			
| 
					 ^  | 
			
| 
					 SIZE  | 
			
| 
					 *Line11  | 
			
| 
					 station  | 
			
| 
					 …..  | 
			
| 
					 sion  | 
			
| 
					 *Line2 
  | 
			
| 
					 *Line3  | 
			
| 
					 ….. ne2  | 
			
| 
					 *next  | 
			
| 
					 …..  | 
			
4.2.3 线路的存储结构
| 
					 **lines  | 
			
| 
					 COUNT  | 
			
| 
					 ^  | 
			
| 
					 SIZE  | 
			
| 
					 *Line11  | 
			
| 
					 station  | 
			
| 
					 …..  | 
			
| 
					 station  | 
			
| 
					 *Line2 
  | 
			
| 
					 *Line3  | 
			
| 
					 ….. ne2  | 
			
| 
					 *next  | 
			
| 
					 …..  | 
			
*CBS_ALLline
图4.2.3 线路的存储结构
4.2.4各线路查询的存储结构
线路查询的结构存储在十字链表中,把各个站点通过十字链表储存,并通过一个指针*CBS_Cline来访问结构体,然后结构体是一个二级结构体,一级结构是储存一个指向二级结构的指针、一个十字链表中的线性表长度的size和一个计数的count,第二级结构就为一个十字链表。(图略)
4.3各个程序的程序图
| 
					 错误!!是否继续?  | 
			
| 
					 成功  | 
			
| 
					 成功  | 
			
| 
					 继续?  | 
			
| 
					 结束 
  | 
			
| 
					 Y  | 
			
| 
					 N 
  | 
			
| 
					 Y 
  | 
			
| 
					 N 
  | 
			
| 
					 N 
  | 
			
| 
					 Y 
  | 
			
| 
					 正确?  | 
			
| 
					 登陆人  | 
			
| 
					 输入登陆选择编号  | 
			
| 
					 输入管理员登陆信息  | 
			
| 
					 输入用户登陆信息  | 
			
| 
					 1  | 
			
| 
					 2  | 
			
| 
					 1  | 
			
| 
					 权限密码  | 
			
| 
					 输入注册信息  | 
			
| 
					 输入注册信息  | 
			
| 
					 正确?  | 
			
| 
					 2  | 
			
| 
					 注册人  | 
			
| 
					 输入注册选择编号  | 
			
| 
					 1  | 
			
| 
					 2  | 
			
| 
					 编号码  | 
			
| 
					 Y  | 
			
| 
					 N  | 
			
| 
					 正确?  | 
			
| 
					 输入选择编号  | 
			
| 
					 开始  | 
			
| 
					 其他  | 
			
| 
					 其他  | 
			
| 
					 其他  | 
			
4.3.2线路维护的程序框图如下图所示
| 
					 是否继续? 功能 
  | 
			
| 
					 开始  | 
			
| 
					 根据编号选择功能  | 
			
| 
					 站点维护  | 
			
| 
					 线路维护  | 
			
| 
					 退出  | 
			
| 
					 根据编号选择功能 
  | 
			
| 
					 根据编号选择功能 
  | 
			
| 
					 站点删除  | 
			
| 
					 站点增添  | 
			
| 
					 线路删除  | 
			
| 
					 线路增添  | 
			
| 
					 是否继续? 功能 
  | 
			
| 
					 维护结束  | 
			
| 
					 是  | 
			
| 
					 1  | 
			
| 
					 2  | 
			
| 
					 其他  | 
			
| 
					 是  | 
			
图4.3.2 线路维护的程序框图
4.3.3公交查询的程序框图
| 
					 开始  | 
			
| 
					 输入选择编号  | 
			
| 
					 根据编号选择功能  | 
			
| 
					 1  | 
			
| 
					 2  | 
			
| 
					 4  | 
			
| 
					 其他  | 
			
| 
					 输入站点  | 
			
| 
					 输入线路  | 
			
| 
					 输入起止站点  | 
			
| 
					 输入起止站点  | 
			
| 
					 存在站点?  | 
			
| 
					 有最短线路  | 
			
| 
					 有直达线路  | 
			
| 
					 存在线路?  | 
			
| 
					 输出最短路径  | 
			
| 
					 输出直达线路  | 
			
| 
					 输出相关站点  | 
			
| 
					 输出相关线路  | 
			
| 
					 Y  | 
			
| 
					 Y  | 
			
| 
					 Y  | 
			
| 
					 Y  | 
			
| 
					 N  | 
			
| 
					 N  | 
			
| 
					 N  | 
			
| 
					 N  | 
			
| 
					 查询出错  | 
			
| 
					 重新查询?  | 
			
| 
					 结束  | 
			
| 
					 N  | 
			
| 
					 Y  | 
			
图4.3.3 公交查询的程序框图