




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Android的列车查询系统班 级: 学号: 学生姓名: 学 院: 专 业: 指导教师: 年 月基于Android的列车查询系统摘要随着中国“一带一路”经济建设的提出以及中国高铁的飞速发展,我国未来五到十年铁路运输将会迎来蓬勃发展。当前我国铁路交通每天运输上百万人次,铁路网上信息系统的发展处于一个较高的水平,人们可以随时根据自己的出行情况选择不同的路线。在此背景下,我们考虑到不同的交通状况以及不同乘客的实际需求,设计出了基于智能手机操作系统Android的列车查询系统。该系统分析了不同乘客可能在实际生活中面临的各种情况,包括中途换乘,无网的可快速查询列车时刻等等,从而达到相应的功能。通过总
2、结开发此系统的经验和心得,进一步熟练开发手机应用软件,为“互联网+”时代添砖加瓦。 关键词: 中国高铁;列车查询; Android;互联网+Train inquiry system based on AndroidAbstractWith the proposal of economic constraction -One Belt and One Road and rapid development of high-speed rail in China, our countrys railway transportation will flourish within the next fi
3、ve to ten years. Nowadays, Chinese rail transportation has a traffic volume of millions of people everyday and the development of network information system of rsilway keeps on a higher level in China, so that people can take different routes at any time based on their own circumstances.To increase
4、the security and reliability of the system, we have a further improvement of the system by finding the problems in the stage of system development and test. Through the summary of experiences and recommendations, we become more skilled in development of mobile phone application and make a little con
5、tribution to Internet plus era.Key word: Chinese high-speed rail train inquiry Android Internet plus目 录1 引言11.1 选题背景11.2 选题意义11.3 研究方法与设计思路11.3.1 研究方法11.3.2 设计思路12 需求分析与可行性分析22.1 界面需求22.2 运行需求22.3 数据需求22.4 功能需求22.5 其他需求32.6 可行性分析32.6.1 技术可行性32.6.2 经济可行性32.6.3 操作可行性32.6.4 法律可行性33 数据库设计53.1 数据库分析53.2
6、数据库建立53.3 数据库链接74 详细设计84.1 系统分析84.1.1 系统结构图84.1.2 系统流程图84.1.3 系统ER图104.2 系统界面开发114.3 系统功能开发184.3.1 关系添加功能开发184.3.2 车次查询功能开发224.3.3 车站查询功能开发234.3.4 中转站查询功能开发245 系统测试265.1 测试方案265.2 系统黑盒测试26参 考 文 献28致 谢29第II页 共II页1 引言第1页 共 27 页1.1 选题背景自从改革开放国策的实施,如今已有三十余年,中国社会日新月异,人们的生活质量不断提高。生活节奏变得越来越快,衣食住行的要求也变得越来越高
7、,尤其是出行成了社会发展的血脉流通剂。其中火车成了大多数人出行的主要方式,火车发挥着举足轻重的作用,同时也意味着列车信息交互变得越来越频繁。但随着越来越多的人选择火车出行,随之而来的问题也不断增多,举例如下:l 火车车次查询不方便。l 车次变动大。l 不能随时随地查询。这些问题越来越引起人们的重视,随着互联网的普及,人们生活越来越依赖计算机带来的便利,所以把计算机与列车查询结合到一起便是大趋势。此次开发的应用软件,将切实帮助用户解决这些问题。1.2 选题意义随着生活节奏加快,人们需要强调高效率、高流通,而现在的交通状态还不够好,整个交通查询体系庞大复杂。此次开发的列车查询系统能够很方便的解决这
8、些问题,开发本软件,不仅用户需求量巨大,而且是基于Android的开发平台,用户只需用手机即可获得及时信息,可见市场量是巨大的。1.3 研究方法与设计思路1.3.1 研究方法本软件运用了当前大多数用户使用的Android手机操作系统,采用eclipse为开发工具,用系统自带的SQLite数据库,建立了三张数据表,列车表、车站表、关系表。为系统的升级、维护等留有余地,降低了程序开发的难度和资源的投入度。1.3.2 设计思路软件开发前期应该,应向市场采取大量数据,调查用户希望此次列车查询系统应有的功能,以及美观、实用、方便等方面的要求,从而提高本软件系统的商业价值。系统使用的操作系统应尽量满足在广
9、大用户手机上能运行,兼容性必须要好。同时应考虑到的软件的可行性和相关的维护工作1。2 需求分析与可行性分析2.1 界面需求系统界面应该美丽大方、布局合理、按钮控件友好、颜色搭配和谐,便于用户操作。例如图2.1车次查询界面:图2.1车次查询界面2.2 运行需求操作系统:Android手机基于Linux操作系统支持环境:Android 2.1及以上,向下兼容Android1.6、Android2.0开发环境:Eclipse 8.5 ADT 22.32.3 数据需求本系统涉及到的数据较多,整体来说一个列车信息需要包括列车名称、始发站、终点站、列车类型、以及列车所停靠的所有车站,包括每个车站的发车时间
10、和到站时间。2.4 功能需求本系统主要功能包括以下几点: 1)站站查询:提供一个站到达另外一个站的所有车次的查询,包括发车时间和到站时间。 2)中转站查询:提供从起点站到达中转站,然后再从中转站到达终点站的所有车次,及其车次相关信息的查询。 3)车次添加:提供某一列车的添加功能,用户需要提供需要提供列车的始发站、终点站以及列车类型等信息。 4)车站添加:提供车站添加的功能,需提供其站名和其名字的简称。5)关系添加:该功能提供用户添加某列车经过某个站的相关信息,需要提供到站时间,发车时间等信息。2.5 其他需求开发此软件应该考虑到Android手机系统响应处理时间不能延时时间超过5秒,同时本软件
11、系统应该具有良好的可靠性、安全性、扩展性和可维护性2。开发时,应该充分考虑各个方面的因素(市场需求、时间、软件与硬件方面的要求),结合自己的技术优势,尽可能的满足各方面的要求,达到利益最大化。2.6 可行性分析2.6.1 技术可行性技术可行性需要考虑程序员能否在现有的技术下能够开发出能达到客户需要达到相应功能的应用软件,并在要求时间内完成该软件的开发。该软件需要在Android平台上运行,编写语言选用java,开发平台在eclipse上。 2.6.2 经济可行性经济可行性,即需要考虑到软件开发成本以及软件维护所产生的费用和软件运营时可能产生的经济效益,人力管理消耗大量的时间和物资3。本系统由于
12、是我个人开发,开发成本以及维护成本相对较低,而市场估计利润相对客观,所以本软件开发在经济上是可行的。2.6.3 操作可行性操作可行性应考虑到用户能够方便快捷使用此软件,从而通过系统功能实现自己的需求。该软件是基于Android平台开发的,用户使用手机即可操作,同时本软件设计方面专门添加了帮助界面,这样可以帮助用户能够快速适应使用本软件,既方便又快捷。2.6.4 法律可行性(1)本软件使用的开发平台都是交过费的,所以不存在侵权问题。(2)本软件开发不涉及国家安全和商业机密,整个产品是合法的。(3)本软件不存在侵犯知识产权、抄袭问题,完全是本人独立开发。(4)本软件开发过程中的参考资料,在文章结尾
13、都会提到。 可见通过从技术性、经济角度、操作性、法律可行性上的分析,可见本列车查询系统是可以开发出来的。3 数据库设计3.1 数据库分析经过对系统的需求分析,可知本系统应有列车和车站两个实体。(1) 列车实体属性图如图3.1所示。到站时间列车(2) 车站实体属性图如图3.2所示。信息车次途径车站 类型出战时间始发站终点站图3.1 列车实体属性图 (2) 车站实体属性图如图3.2所示。车站信息车站名称车站简称图3.2 车站实体属性图3.2 数据库建立本系统共有3张表,分别为列车表、车站表、关系表。同时本系统采用的是SQLite,在建表时需要用到SQL语句进行建表,下面对其进行逐一介绍。(1) 列
14、车表:用于记录列车的信息,其中包括列车名、始发站、终点站,以及列车在数据库中的编号等,其具体情况如表3-1所示。表3-1 列车表字段名称类型字段大小是否主键是否为空字段说明Tid数字整型是否列车IDTname文本20否否列车名称Tstartstation文本20否否始发站Tterminus文本20否否终点站Ttype文本20否否列车类型建立该表的SQL语句如下: create table if not exists train( /列车表的创建 Tid integer primary key, Tname char(20), /列车名称 Tstartstation char(20), /列车始
15、发站 Tterminus char(20), /列车终点站 Type char(20) /列车类型 );(2) 车站表:该表用来记录车站的信息,包括车站名和车站简称,具有情况如表3-2所示。表3-2 车站表字段名称数据类型字段大小是否主键是否为空字段说明Sid数字整型是否车站IDSname文本20否否车站名称Spy文本20否否车站简称建立该表的SQL语句如下: create table if not exists station( /车站表的创建 Sid integer primary key, Sname char(20), /车站名称 Spy char(20), /车站简称 );(2) 关
16、系表:此表用来记录列车与车站关系,即某列车与其所经过的车站的信息,详细信息如表3-3所示。表3-3 关系表字段名称数据类型字段大小是否主键是否为空字段说明Rid数字整型是否关系IDSid文本整型否否车站IDTid文本整型否否列车IDRarrivetime文本20否是到站时间Rstarttime文本20否是发车时间 建立该表的SQL语句如下: create table if not exists relation( Rid integer primary key, Tid integer, /车站ID Sid integer, /列车ID Rarrivetime char(20), /到站时间
17、Rstarttime char(20) /发车时间 );3.3 数据库链接public static SQLiteDatabase createOrOpenDatabase() /连接数据库 SQLiteDatabase sld = null; /数据库引用 try sld = SQLiteDatabase.openDatabase( /连接数据库 “/data/data/com.bn.lccx/myd”, null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_ NECESSARY); catch(Exception e) e
18、.printStackTrace(); return sld; /返回已创建的数据库 4 详细设计4.1 系统分析4.1.1 系统结构图由用户的市场调查可得系统结构如图4.1所示。列车查询系统站站查询车次查询车站查询附加功能帮助关于车次添加车站添加关系添加 图4.1 系统结构图4.1.2 系统流程图通过需求分析,可以得出用户对本软件系统的大概操作流程,具体情况如图4.2所示。是进入系统查询或修改输入查询内容输入修改内容查询数据库修改数据库输出查询内容查询或修改退出系统否查询修改是否图4.2 系统流程图4.1.3 系统ER图车站运行区间发车时间车次到站时间车站名属于属于1n列车信息终点站始发站类
19、型车次属于车站信息nn11车站名车站简称图4.3 系统ER图列车信息(车次,列车类型,始发站,终点站) 列车运行区间(车次,车站名,到站时间,出站时间) 车站信息(车站名,车站简称)4.2 系统界面开发系统界面应处于一个风格、方便用户操作。本软件共开发了12个界面。具体情况如图4.4所示。 图4.4 系统界面文件图 这里主要介绍主菜单界面的开发。 图4.5 主菜单界面 如图4.5所示,主菜单界面整体布局是LinearLayout,其中有一个FrameLayout和左右分布的两个较大的LinearLayout。左面的LinearLayout里包含3个垂直分布的LinearLayout,右面的Li
20、nearLayout中加载图片。具体代码如下: 4.3 系统功能开发4.3.1 关系添加功能开发 图4.6 关系添加功能截图图4.6为关系功能添加直观图,主要代码如下:public void goTogxtjView()/去关系添加界面 setContentView(R.layout.gxtj);/切换界面 curr=WhichView.GXTJ_VIEW;/标识界面 Button bgxtjtj=(Button)findViewById(R.id.gxtj_tj);/拿到添加按钮的引用 Button bgxtjfh=(Button)findViewById(R.id.gxtj_fh);/拿到
21、返回按钮的引用 iniTLisitarray(R.id.et_gxtj_zm);/为车站名字添加适配器 bgxtjtj.setOnClickListener/为添加按钮添加监听 (new OnClickListener()Overridepublic void onClick(View v) EditText gxtjcnm=(EditText)findViewById(R.id.et_gxtj_cm); AutoCompleteTextView gxtjclx=(AutoCompleteTextView)findViewById(R.id.et_gxtj_zm);/拿到站名输入框的引用Edi
22、tText gxtjcsf=(EditText)findViewById(R.id.et_gxtj_dzsj);/拿到到站时间输入框的引用EditText gxtjczd=(EditText)findViewById(R.id.et_gxtj_kcsj);/拿到发车时间输入框的引用String cnm=gxtjcnm.getText().toString().trim(); /得到对应的文本信息String znm=gxtjclx.getText().toString().trim();String dct=gxtjcsf.getText().toString().trim();String
23、fct=gxtjczd.getText().toString().trim(); int Rid=LoadUtil.getInsertId(relation,Rid)+1;/查出relation表中最大的ID加1得到当前插入的关系的ID int cnmm=0;/车次对应的IDint cznm=0;/车站对应的IDif(!isLegal()return;String sql = select Tid +from train where Tname=+cnm+;VectorVector ss=query(sql);if(ss.size()0)/得到车次对应的IDcnmm=Integer.parse
24、Int(String)ss.get(0).get(0);else if(ss.size()=0)Toast.makeText(LCCXActivity.this, 对不起,没有该车!, Toast.LENGTH_SHORT).show();return;ss=query(sql);if(ss.size()0)/得到车站对应的IDcznm=Integer.parseInt(String)ss.get(0).get(0);else if(ss.size()=0)Toast.makeText(LCCXActivity.this, 对不起,没有该站!, Toast.LENGTH_SHORT).show
25、();return;sql=select Rid from relation where Sid=+cznm+ and Tid=+cnmm;if(query(sql).size()0)/如果已经存在Toast.makeText(LCCXActivity.this, 对不起,该关系已经有了!, Toast.LENGTH_SHORT).show();return;/否则进行插入操作sql=insert into relation values( +Rid +, +cnmm +, +cznm +, +dct +, +fct );if(!insert(sql)/如果插入失败Toast.makeText
26、(LCCXActivity.this, 对不起,添加失败!, Toast.LENGTH_SHORT).show();return;elseToast.makeText(LCCXActivity.this, 恭喜你,添加成功!, Toast.LENGTH_SHORT).show(); ); bgxtjfh.setOnClickListener/为返回按钮添加监听 (new OnClickListener()Overridepublic void onClick(View v) goTofjgnView();/返回到附加功能界面 );4.3.2 车次查询功能开发 图4.7 车次查询截图这里主要介绍
27、此功能下有关数据库的开发,具体代码如下:public static VectorVector trainSearch(String tname)/车次查询String sql =/查找车名,始发站,终点站和车类型select Tname,Tstartstation,Tterminus,Ttype +from train where Tname=+tname+;String sql1 =select Tstartstation,Rstarttime from train,relation +where train.Tid=relation.Tid and +Tname=+tname+ and r
28、elation.Sid=+(select Sid from station +where Sname=train.Tstartstation);String sql2 = /查找终点站和火车到站时间Rarrivetimeselect Tterminus,Rarrivetime from train,relation +where train.Tid=relation.Tid and +Tname=+tname+ and relation.Sid=+(select Sid from station +where Sname=train.Tterminus);VectorVector temp =
29、 query(sql);/得到车名,始发站,终点站和车类型的VectorVectorVector temp1 = query(sql1);VectorVector temp2 = query(sql2);temp = combine(temp,temp1,temp2);return temp;4.3.3 车站查询功能开发 图4.8 车站查询截图这里主要介绍此功能下有关数据库的开发,具体代码如下:public static VectorVector stationSearch(String station)/根据车站名字查询经过车站的所有车/查询有关火车的信息String sql = selec
30、t Tname,Tstartstation,Tterminus,Ttype +from train where Tid in +(select Sid from station where +Sname=+station+);/查询出发站及出发时间String sql1 = select +station+,Rstarttime from relation +where Sid = +(select Sid from station where +Sname=+station+);String sql2 = select +station+,Rarrivetime from relation
31、+where Sid = +(select Sid from station where +Sname=+station+);VectorVector temp = query(sql);VectorVector temp1 = query(sql1);/得到终点站和火车到站时间的vectorVectorVector temp2 = query(sql2);/将三个Vector组合在一起temp = combine(temp,temp1,temp2);return temp;4.3.4 中转站查询功能开发 图4.9 中转站查询截图这里主要介绍此功能下有关数据库的开发,具体代码如下:public static VectorVector Zjzquery(String start,String zjz,String end)/中转站查询VectorVector vector=getSameVector(start,zjz);/分两步,先查出起点站到中转站,然后再查出中转站到终点站车次即可VectorVector vector2=getSameVector(zjz,end);if(vector.si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研发中心装修保修合同样本
- 农业人才培养与引进发展方案
- 工厂光伏太阳能发电
- 施工现场安全隐患整改方案
- 无菌医疗器械项目可行性报告
- 亲子游乐场转让
- 跨境电商物流saas
- 燃气设备居间贸易合同模板
- 关于旅游景点信息化管理与服务平台建设的思考
- 电子商务中的在线支付与物流配送指南
- 我国医疗保障现状问题
- 工程项目部安全生产治本攻坚三年行动实施方案
- 家电以旧换新风险管控与应对策略
- 第三单元名著阅读《经典常谈》-2023-2024学年八年级语文下册同步教学课件
- 排污许可证申请与核发技术规范 火电(二次征求意见稿)
- QB-T 2673-2023 鞋类产品标识
- 邻近铁路营业线施工安全监测技术规程 (TB 10314-2021)
- 《中国帕金森病诊疗指南(第四版)》(2023)要点
- 2024年扬州市职业大学高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 2024年北京京北职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 流感病人护理版
评论
0/150
提交评论