城市公交查询系统_毕业设计论文(编辑修改稿)内容摘要:

R 方法中,局部概念结构又称为局部 ER 模式,其图形表示称为 ER 图。 具体实体属性的关系图如 图所示 : 实体属性关系图 车次信息 车辆序号 车次号 经过站点信息 夏季发车时间 夏季 结束 时间 票价 冬 季 结束 时间 冬 季发车时间 管理员信息 管理员密码 备注 管理员帐号 管理员姓名 河南工业职业技术学院毕业论文 (设计 ) 14 ER 模型的 “联系 ”用于刻画实体之间的关联。 一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。 若有联系,进一步确定是 1:N, M:N,还是 1:1 等。 还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。 设计全局 ER 模式 所有局部 ER 模式都设计好了后,接下来就是把它们综合成单 一的全局概念结构。 全局概念结构不仅要支持所有局部 ER 模式,而且必须合理地表示一个完整、一致的数据库概念结构。 1) 确定公共实体类型 为了给多个局部 ER 模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。 在这一步中我们仅根据实体类型名和键枕认定公共实体类型。 一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。 2) 局部 ER 模式的合并 合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立 的局部结构。 3) 消除冲突 冲突分为三类:属性冲突、结构冲突、命名冲突。 设计全局 ER 模式的目的不在于把若干局部 ER 模式形式上合并为一个 ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。 4) 全局 ER 模式的优化 在得到全局 ER 模式后,为了提高数据库系统的效率,还应进一步依据处理需求对 ER 模式进行优化。 一个好的全局 ER 模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。 本系统的 ER 模型如图 所示 河南工业职业技术学院毕业论文 (设计 ) 15 表设计 考虑系统的实际需要,系统 需要公交信息表,管理员表。 1. 公交信息表 ( Bus) 公交信息表 存储 公交线路 的 详细 信息,字段说明如表 31 所示 Bus 表的字段说明 编号 字段名称 字段类型 字段说明 1 BusID nvarchar 车次号 主键 2 Detail ntext 车次经过站点 3 A_STime ntext 夏季发车时间 4 W_STime ntext 冬 季发车时间 5 A_ETime ntext 夏 季 结束 时间 6 W_ETime ntext 冬 季 结束 时间 7 T_Value int 票价 8 Sort int 车序号 CREATE TABLE bus ( BusID nvarchar Primary key, Detail ntext Not Null, 线 路 车 次 票 价 站 点 时 间 1:n 1:1 1:1 1:1 图 ER 模型图 河南工业职业技术学院毕业论文 (设计 ) 16 A_STime ntext, W_STime ntext, A_ETime ntext, W_ETime ntext, T_Value int Not Null, Sort int Not Null ) 其中 Detail 存放车次的站点信息,其格式为。 2. 管理员表 管理员表存储管理员的详细信息,字段说明如表 31 所示 编号 字段名称 字段类型 字段说明 1 ManagerID nvrchar 管理员编号 2 TrueName nvrchar 管理员姓名 3 Password nvrchar 密码 4 Comment nvrchar 备注 CREATE TABLE manager ( ManagerID nvrchar Primary key, TrueName nvrchar Not Null, Password nvrchar Not Null, 河南工业职业技术学院毕业论文 (设计 ) 17 Comment nvrchar ) 系统部分模块设计 无锡 公交线路查询系统总体上可分为普通查询模块(包括清晰站点查询、清晰 线路 查询、清晰换乘查询)、高级查询模块(包括 模糊车次查询、 模糊站点查询、模糊 线路 查询、模糊换乘查询) , 后台管理模块(包括 删除线路、修改线路、添加线路 等 功能 )。 普通查询模块 1. 线路 查询 首先用户准备查询公交线路,在下拉菜单中选择选择公交车次号,启动 车次查询,系统从数据库中读取公交车次信息, 在新窗口中显示车次经过的站点等详细信息。 选择公交车次号 用户准备查询公交线路信息 启动车次查询 从数据库中读取公交车次信息 选择查询的站点 用户准备查询公交站点信息 启动站点查询 从数据 库 中 读取 站点 信息 河南工业职业技术学院毕业论文 (设计 ) 18 2. 站点查询 首先用户准备查询 站点信息 ,在下拉菜单中选择选择 要查询的站点 ,启动 站点 查询,系统从数据库中读取公交 站点 信息,在新窗口中显示经过 该 站点 的公交线路的 详细信息。 3. 换乘查询 首先用户准备查询 换乘 信息,在下拉菜单中选择选择 起始站点和到达站点,启动换乘 查询,系统 首先判断是否有直达车,如果有直 达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息, 在新窗口中显示 显示换乘信息查询结果。 选择起始站点 用户准备查询线路换乘信息 选择到达站点 显示换乘信息查询结果 在数据库中查找 换乘线路和中转站 启动换乘查询 判断是否有 直达车 生成换乘信息 换乘查询流程图 Y N 河南工业职业技术学院毕业论文 (设计 ) 19 高级查询模块 1. 车次查询 首先用户准备查询公交车次,在文本框中输入公交车次号,系统判断输入车次号是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动车次查询,系统从数据库中读取公交车次信息,在新窗口中显示车次经过的站点等详细信息 提示错误信息 要求重新输入 检验输入 是否有效 输入查询的车次 用户准备查询公交车次信息 启动车次查询 显示车次信息查询结果 从数据库中 读取车次信息 模糊车次查询流程图 Y N 河南工业职业技术学院毕业论文 (设计 ) 20 2. 模糊站点查询 首先用户准备查询公交站 点 ,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询,系统从数据库中读取与站点关键字匹配的站点,在新窗口中显示 所有与输入关键字匹配的所有站点。 提示错误信息 要求重新输入 检验输入 是否有效 输入查询的站点关键字 用户准备查询公交站点信息 启动模糊查询 显示站点信息查询结果 从数据库中读取与 站点关键字匹配的站点 模糊站点查询流程图 Y N 河南工业职业技术学院毕业论文 (设计 ) 21 3. 模糊线路查询 首先用户准备查询公交站点,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询,系统从 从数据库中读取经过与站点关键字匹配的站点的线路 ,在新窗口中显示 所 有与输入关键字匹配的所有 线路,即与关键字相关的车次及详细信息。 提示错误信息 要求重新输入 检验输入 是否有效 输入查询的站点关键字 用户准备查询公交线路信息 启动模糊查询 显示线路信息查询结果 从数据库中读取经过与 站点关键字匹配的站点的线路 模糊线路查询流程图 Y N 河南工业职业技术学院毕业论文 (设计 ) 22 4. 模糊 换乘 查询 首先用户准备查询公交站点,在文本框中输入查询的站点关键字,系统判断输入关键字是否有效,如输入错误,系统提示错误信息,要求重新输入,若输入正确启动模糊查询, 系统从数据库中读取与关键字匹配的站点 ,然后启动换乘查询,系统先判断是否有直达车,如果有直达车直接给出换乘信息,如没有直达车则在数据库中查找换乘线路和中转站,再给出换乘信息,在新窗口中显示显示换乘信息查询结果。 模糊换乘查询流程图 用户准备查询线路换乘信息 输入起始站点和到达站点关键字 显示线路信息查询结果 在数据库中查找 换乘线路和中转站 启动换乘查询 判断是否有 直达车 生成换乘信息 检验输入 是否有效 提示错误信息 要求重新输入 Y N N Y 河南工业职业技术学院毕业论文 (设计 ) 23 后台管理模块 管理员维护整个系统,管理员输入用户名和密码后,登陆后台管理系统,在后台管理系统,管理员可以进行添加车次信息,修改车次信息,删除车次信息等操作。 输入用户名和密码登录后台管理系统 管理员要进行后台管理 添加车次信息 修改车次信息 删除车次信息 退出后台 管理系统 后台管理流程图 河南工业职业技术学院毕业论文 (设计 ) 24 5 系统的实现 普通查询模块 系统主页即是普通查询模块,是由 页面实现,它包括了站点查询子模块、 线路 查询子模块和换乘查询子模块。 如图所示。 主页核心是把数据库中的车次和站点取出来,在下拉列表中显示。 主要采用了 ()方法, 首先设置两个 数据库结果集 ( ResultSet) result busid[]、 all_station[],分别存放车次号和站点名,因为站点采用 的方式存在数据库中所以采用 StringTokenizer 河南工业职业技术学院毕业论文 (设计 ) 25 str=new StringTokenizer(detail,)。 方法将站点取出来存入 all_station[],然后遍历数组在下拉列表中显示。 其核心代码如下: while(()) { busid[i]=(BusID)。 i++。 } ()。 //把车次查询的车次号存入 busid[]中。 while(()) { //把每一条记录放入临时变量 detail中 detail=(Detail)。 StringTokenizer str1=new StringTokenizer(detail,)。 //对 每一条记录的每一个站点进行比较 while(()) { mark=0。 //恢复 mark的值 ,以便比较下一条记录 StringTokenizer str2=new StringTokenizer((), )。 station2=()。 //注 :count是。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。