1.前言
随着我国高速铁路网络的快速发展和智能化移动设备的普及,列车出行已成为大众日常交通的重要组成部分。然而,传统的列车时刻查询方式(如纸质时刻表或网页查询)存在信息更新滞后、操作流程繁琐、界面交互不友好等问题,难以满足用户对实时性、便捷性和稳定性的需求。尤其在节假日高峰期或突发运营调整时,用户亟需一款轻量、高效且易于操作的移动应用,以快速获取准确的列车信息。
基于此背景,本课题旨在设计并实现一款基于Android平台的列车时刻表程序,通过整合现代移动开发技术与数据库管理方案,为用户提供多维度、实时化的列车信息查询服务。系统的核心设计目标与功能如下:
1.站站查询功能:支持用户输入起始站与终点站,快速检索两站间所有符合条件的列车车次及其详细时刻信息,解决用户跨区域出行的规划需求;
2.车次查询功能:允许用户通过车次号(如G123)直接查询特定列车的全程停靠站点与时间,便于追踪列车实时动态;
3.车站查询功能:提供指定车站所有经停车次的列表展示,帮助用户掌握车站的列车到发情况;
4.用户友好性与系统稳定性:采用Material Design规范设计交互界面,确保操作流程简洁直观;同时通过Room数据库优化数据存储与查询效率,保障系统在高并发场景下的稳定运行。
本系统的开发不仅顺应了移动互联网时代下用户对便捷出行工具的需求,也为Android平台的应用开发提供了技术实践范例。通过本项目的实施,团队深入掌握了Android架构设计、数据库集成及多模块协作开发的核心技术,为后续复杂应用的开发奠定了坚实基础。
2.系统分析
2.1 可行性分析
2.1.1 技术可行性
本系统采用以下技术方案:
开发框架:基于Android Studio 2022.3.1(Giraffe)开发,使用Java语言,兼容Android SDK 33(API Level 33)。
数据库:通过Room Persistence Library(2.4.2版本)实现本地数据存储,利用SQLite轻量级特性支持高效查询。
界面组件:使用RecyclerView动态加载列表数据,搭配Material Design 3组件(如CardView、FloatingActionButton)优化交互体验。
数据格式:车站与时间信息采用JSON格式存储,通过org.json库解析数据,确保灵活性与扩展性。
技术难点包括JSON字段的模糊匹配查询(如站站查询中的LIKE语句优化)及多线程数据加载(避免主线程阻塞),均通过合理的架构设计解决。
2.1.2 经济可行性
开发成本:无需硬件采购,开发周期为15天,投入5名成员,人均日工作量6小时。
维护成本:系统依赖开源技术栈(Room、RecyclerView),无第三方服务费用,后期维护成本极低。
收益预期:作为工具类应用,可通过广告植入或高级功能订阅实现盈利(非本阶段实现)。
2.1.3 操作可行性
用户交互:遵循Material Design 3设计规范,采用以下设计原则:
一致性:所有查询页面统一使用蓝色主题色与图标风格;
反馈机制:输入框为空时通过Snackbar提示用户,查询结果无数据时显示空白页提示;
简化流程:主界面仅保留三个功能入口按钮,用户3步内可完成任意查询操作。
设备适配:支持4.7英寸至6.7英寸屏幕,通过ConstraintLayout实现自适应布局。
2.2 功能需求分析
2.2.1 功能模块划分
如表2.1所示:
表2.1 功能模块划分表
| 模块名称 | 输入 | 输出 |
| 站站查询 | 起始站、终点站 | 车次列表(含车次号、时刻、历时) |
| 车次查询 | 车次号(如G103) | 车次详情(停靠站、到发时间) |
| 车站查询 | 车站名称(如北京) | 车次列表(含车次号、到发时间) |
2.2.2 数据流分析
通过performSearch读取模拟数据,关键代码如图2.1和图2.2所示:

图2.1 模拟数据

图2.2 performSearch类
2.3.3 可维护性需求
1.代码规范:
遵循Google Java编码规范,类名使用大驼峰,变量名使用小驼峰;
关键方法添加Javadoc注释(如DAO接口、Adapter类)。
2.版本控制:使用Git进行协作开发,分支策略如下:
main分支:稳定版本;
dev分支:功能开发;
feature/query:站站查询模块开发。
2.3.4 安全性需求
数据存储:敏感操作(如未来扩展的用户登录)使用AES加密;
输入校验:防止SQL注入(通过Room参数化查询自动处理)。
2.4 用例分析
2.4.1 主要用例图描述
1.用户角色:普通乘客
2.核心用例:
用例1:站站查询
前置条件:用户打开应用并进入站站查询页面。
后置条件:显示符合条件的车次列表。
用例2:车次查询
异常流:输入车次号不存在→显示“未找到车次”提示。
3.用例关系:扩展用例“收藏车次”依赖查询功能
2.4.2 活动流程图示例(站站查询)
如图2.3所示:

图2.3 站站查询流程图
3. 系统设计
3.1 系统架构设计
本系统采用内存数据管理方案,通过静态集合类存储模拟数据,结合Android平台的界面交互逻辑,系统架构如下:
1.数据层(Model):
使用List<Train>在内存中存储所有车次数据,通过代码直接初始化模拟数据。
数据操作通过遍历集合实现,无需持久化存储。
2.业务逻辑层(Controller):
通过自定义工具类(如DataManager)实现数据查询与过滤逻辑。
输入验证、数据排序和结果处理均在内存中完成。
3.表示层(View):
沿用原有界面设计(Activity与XML布局),直接绑定内存数据到RecyclerView。
架构图示例如图3.1所示:

图3.1 架构图示例
3.2 功能模块设计
3.2.1 数据初始化
![]() |
在应用启动时加载静态模拟数据,如图3.2所示:
图3.2 静态数据源
3.2.2 站站查询模块
输入:起始站、终点站。
处理流程:
1.遍历所有车次,筛选出同时包含起始站和终点站的车次。
2.按发车时间排序结果。
![]() |
核心代码逻辑,如图3.3所示:
图3.3 站站查询核心代码
3.2.3 车次查询模块
输入:车次号
处理流程:
1.遍历车次列表,匹配车次号。
2.返回第一个匹配项,若无结果则提示用户。
![]() |
核心代码逻辑如图3.4所示:
图3.4 车次查询核心代码
3.2.4 车站查询模块
输入:车站名称
处理流程:
1.遍历所有车次,筛选出包含该车站的车次。
2.按到站时间排序结果。
核心代码逻辑如图3.5所示:

图3.5 车站查询核心代码
3.2.5车次详情模块
输入:车站名称
处理流程:
1.获取数据
2.解析数据
3.绑定数据
核心代码逻辑如图3.6所示:

图3.6 车次详情核心代码
3.2.6收藏功能模块
核心代码逻辑如图3.7所示:

图3.7 收藏功能核心代码
3.3 数据结构设计
3.3.1 Train类定义
![]() |
如图所示
图3.6 Train类定义
3.4关键技术实现
1.集合操作:使用List的contains和stream API(需Android API Level 24+)简化查询。
2.排序算法:通过Collections.sort和自定义比较器实现时间排序。
3.数据更新:通过Adapter.notifyDataSetChanged()动态刷新界面。
4.系统测试
4.1 测试目标
验证系统功能是否符合任务书要求,确保以下核心功能正常运行:
1.站站查询、车次查询、车站查询功能准确无误;
2.界面操作流畅,无崩溃或卡顿现象;
4.2 测试环境
如表4.1所示:
表4.1测试环境
| 项目 | 配置说明 |
| 设备型号 | Pixel |
| 操作系统 | Pixel API 35 |
| 应用版本 | Android 15.0 x86_64 |
4.3 功能测试用例
4.3.1 站站查询功能测试
测试效果如图4.1所示:

图4.1 站站查询功能测试效果
4.3.2 车站查询功能测试
测试效果如图4.2所示:

图4.2车站查询功能测试效果
4.3.3 车次查询功能测试
测试效果如图4.3所示:

图4.3 车次查询功能测试效果
4.3.4 车次详情功能测试{徐黄杰}
![]() |
测试效果如图4.4所示:
图4.4 车次详情功能测试效果
4.3.5收藏功能测试
![]() |
测试效果如图4.5所示:
图4.5 收藏功能测试效果
4.4 测试结论
1.所有核心功能(站站查询、车次查询、车站查询、车次查询、收藏功能)均通过测试,符合任务书设计要求
2.界面简洁美观
5.总结与展望
本项目基于Android平台成功开发了一款轻量化列车时刻表查询系统,实现了站站查询、车次查询及车站查询三大核心功能。在功能实现上,系统通过遍历内存数据集合(List<Train>)动态匹配用户输入,例如站站查询采用双重循环验证起始站与终点站的包含关系,并基于发车时间排序结果;车次查询通过精确匹配车次号快速定位目标列车,支持大小写不敏感的灵活输入;车站查询则利用contains方法实现模糊匹配,覆盖用户可能的拼写误差。技术方案上,选择内存数据管理显著降低了开发复杂度,尤其适合小型数据集场景,但牺牲了数据的持久化能力,未来可通过引入SQLite或Room数据库扩展数据规模。界面设计严格遵循Material Design规范,使用CardView与RecyclerView优化视觉层次,确保操作流畅性。团队协作方面,通过Git分支管理与每日站会同步进度,有效解决了代码冲突与任务分配问题,同时借助Android Profiler实时监控内存泄漏风险,确保系统稳定性。尽管系统在测试中表现优异,但仍存在静态数据更新依赖手动维护、缺乏网络请求模块支持实时信息同步等局限。未来计划集成Retrofit库调用铁路开放API动态获取数据,并设计用户账户系统以支持收藏车次与行程提醒功能,同时探索MVVM架构提升代码可维护性。通过本项目,团队不仅掌握了Android核心组件的应用技巧,更深刻体会到模块化开发与版本控制的重要性,为后续复杂应用的迭代奠定了坚实基础。






1219

被折叠的 条评论
为什么被折叠?



