基于Android开发铁路查询小助手课程设计.docx
《基于Android开发铁路查询小助手课程设计.docx》由会员分享,可在线阅读,更多相关《基于Android开发铁路查询小助手课程设计.docx(56页珍藏版)》请在冰豆网上搜索。
基于Android开发铁路查询小助手课程设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
摘要
出行一直是人们日常生活中不可或缺的一部分。
而现在的交通状态还不够完好,整个交通查询体系庞大复杂。
人们的出行却是无时无刻的,人们需要随时获取出行信息,为自己的形成进行合理的安排,其中优先考虑的就是交通工具。
本课题设计的基于Android的铁路小助手可以帮助人们解决这些生活小问题。
关键词:
Android;铁路查询;SQLite
1课程设计目的
中国地域辽阔,铁路线路纵横交错,给人们带来了方便。
但随着火车的客流量不断增长,越来越多的弊端暴露在人们面前:
●火车车次查询不方便。
●车次变动大。
●不能随时随地查询等。
这些状况已经与人们的快节奏生活方式格格不入,急切需要一个方便快捷的查询软件。
本次设计的目的将通过开发这个查询软件,帮助用户解决火车车次查询问题。
2课程设计要求
本系统主要为用户提供一个专属于自己的火车时刻表查询功能,用户在自己手机上安装此软件,根据自己的需求自行添加相关的列车信息,达到真正拥有一个专属于自己的、实用的火车查询系统。
其功能主要包括以下几点。
●站站查询,提供一个站到达另一站的所有车次的查询,包括发车时间和到站时间。
●中转站查询,提供从起点站到达中转站,然后再从中转站到达终点站的所有车次,以及车次相关信息的查询。
●车次查询,提供该车次相关信息的查询。
起点站及发车时间,终点站及到站时间。
●车站查询,提供经过该车站所有车次的查询。
●车次添加,提供某一列车的添加功能,只要提供起点站、终点站和列车类型等信息,即可实现添加车次的功能。
●车站添加,提供添加车站的功能,如果新增了某一个车站,则需提供其站名和其名字的简称。
●关系添加,该功能提供用户添加某列车经过某个站的相关信息,需要提供到站时间,发车时间等信息。
3相关知识
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
4课程设计分析
4.1技术可行性分析
本系统采用JavaJDK、Eclipse、GoogleAndroidSDK、ADT、SQLite进行开发。
Android是一个开放性移动开发平台,它为开发人员提供了大量的使用库和工具。
它使得开发人员可以快速地创建自己的应用程序。
该系统使用的SQLite,是目前最流行的开源嵌入式数据库,易于维护,简单操纵。
Android的运用程序可以在其虚拟机上运行,这给开发工作带来了极大的方便。
另外,Java语言是可以编写跨平台应用软件的面向对象的编程设计语言。
因此,这样的开发平台保证了系统设计工作在技术上的可行性。
4.2操作可行性分析
本系统是为使用安卓智能手机的用户开发的,用户还可以根据自己的需求在此软件上自行添加相关的列车信息。
其次,软件界面简单清洁,美观易懂,方便用户查询列车信息。
4.3经济可行性分析
成本:
系统开发仅使用电脑一台,程序开发软件可免费使用,系统开发成本低。
效益:
该软件可以供安卓手机用户使用,软件布局中有设置动画图片,可以考虑设立广告模块,具有不错的商业效应。
5程序代码
5.1开发环境和目标平台
5.1.1开发环境
系统:
Windows7x64
JDK:
jdk-8u65-windows-x64
AndroidSDK:
Android4.4.2(API19)、Android2.2(API8)
开发平台EclipseJ2EEMars及其ADT。
5.1.2目标平台
手机平台为Android2.2,向下兼容Android2.1、Android2.0、Android1.6。
虚拟机配置:
Device:
4.7inWXGA
CPU\ABI:
ARM(armeabi)
Target:
Android2.2(APIlevel8)
Skin:
HVGA
RAM:
512M
ROM:
30M
5.2数据库设计
(1)列车表:
用于记录列车的信息,其中包括列车名、始发站、终点站,以及列车在数据库中的编号等,如表5-2-1所示。
表5-2-1列车表
字段名称
数据类型
字段大小
是否主键
是否为空
说明
Tid
NUM
Int
Yes
No
ID
Tname
文本
20
No
No
Name
Tstartstation
文本
20
No
No
始发站
Tterminus
文本
20
No
No
终点站
Ttype
文本
20
No
No
列车类型
建立该表的SQL语句如下:
Creattableifnotexiststrain(
Tidintegerprimarykey,
Tnamechar(20),
Tstartstationchar(20),
Tterminuschar(20),
Ttypechar(20));
(2)车站表:
该表用来记录车站的信息,包括车站名和车站简称,具体如表5-2-2所示。
表5-2-2车站表
字段名称
数据类型
字段大小
是否主键
是否为空
说明
Sid
NUM
Int
Yes
No
ID
Sname
文本
20
No
No
Name
Spy
文本
20
No
No
车站简称
建立该表的SQL语句如下:
Creattableifnotexistsstation(
Sidintegerprimarykey,
Snamechar(20),
Spychar(20));
(3)关系表:
此表用来记录列车与车站关系,即某列车与其所经过的车站的信息,具体如表5-2-3所示。
表5-2-3关系表
字段名称
数据类型
字段大小
是否主键
是否为空
说明
Rid
NUM
Int
Yes
No
关系ID
Sid
NUM
Int
No
No
车站ID
Tid
NUM
Int
No
No
列车ID
Rarrivetime
文本
20
No
Yes
到站时间
Rstarttime
文本
20
No
Yes
发车时间
建立该表的SQL语句如下:
Creattableifnotexistsrelation(
Ridintegerprimarykey,
Sidinteger,
Tidinteger,
Rarrivetimechar(20),
Rstarttimechar(20));
5.3主类LCCXActivity
5.3.1主体框架
enumWhichView{MAIN_MENU,ZZCX_VIEW,CCCX_VIEW,CZCCCX_VIEW,LIST_VIEW,
PASSSTATION_VIEW,CCTJ_VIEW,CZTJ_VIEW,GXTJ_VIEW,FJGN_VIEW,WELCOME_VIEW,ABOUT_VIEW,HELP_VIEW}
publicclassLCCXActivityextendsActivity{
WelcomeViewwv;//进入欢迎界面
WhichViewcurr;//当前枚举值
staticintflag;//设置页面的标志位
String[][]msgg=newString[][]{{""}};//声明引用
Strings1[];
Strings2[];
Handlerhd=newHandler(){//声明消息处理器
@Override
publicvoidhandleMessage(Messagemsg){
switch(msg.what){
case0:
goToWelcomeView();break;
case1:
goToMainMenu();break;
case2:
setContentView(R.layout.about);
curr=WhichView.ABOUT_VIEW;
break;
case3:
setContentView(R.layout.help);
curr=WhichView.HELP_VIEW;
break;
}
}
};
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);//设置为全屏
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置横屏模式
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
CreatTable.creattable();//建表
iniTLisit();//初始化数组
this.hd.sendEmptyMessage(0);//发送消息进入欢迎界面
}
5.3.2欢迎界面
publicvoidgoToWelcomeView(){
if(wv==null)//如果该对象没创建则创建
wv=newWelcomeView(this);
setContentView(wv);
curr=WhichView.WELCOME_VIEW;//标识当前所在界面
}
5.3.3主菜单模块
publicvoidgoToMainMenu(){
setContentView(R.layout.main);
curr=WhichView.MAIN_MENU;//拿到主菜单中个按钮的引用
ImageButtonibzzcx=(ImageButton)findViewById(R.id.ibzzcx);
ImageButtonibcccx=(ImageButton)findViewById(R.id.ibcccx);
ImageButtonibczcccx=(ImageButton)findViewById(R.id.ibczcccx);
ImageButtonibfjgn=(ImageButton)findViewById(R.id.ibfjgn);
ImageButtonibabout=(ImageButton)findViewById(R.id.about_button);
ImageButtonibhelp=(ImageButton)findViewById(R.id.help_button);
ibabout.setOnClickListener(//按钮监听
newOnClickListener(){
publicvoidonClick(Viewv){
hd.sendEmptyMessage(3);//发消息进入关于界面}
}
);
ibhelp.setOnClickListener(//帮助查询的监听
newOnClickListener(){
publicvoidonClick(Viewv){
hd.sendEmptyMessage
(2);//发消息进入帮助界面
}
}
);
ibzzcx.setOnClickListener(//站站查询按钮的监听
newOnClickListener(){
publicvoidonClick(Viewv){
goTozzcxView();//进入站站查询模块
}
}
);
ibcccx.setOnClickListener(//车次查询按钮的监听
newOnClickListener(){
publicvoidonClick(Viewv){
goTocccxView();//进入车次查询模块
}
}
);
ibczcccx.setOnClickListener(//车站所有车次查询
newOnClickListener(){
publicvoidonClick(Viewv){
goToczcccxView();//进入车站查询模块
}
}
);
ibfjgn.setOnClickListener(//附加功能按钮的监听
newOnClickListener(){
publicvoidonClick(Viewv){
goTofjgnView();//进入附加功能模块
}
}
);
}
5.3.4主要功能模块
其中包含站站查询模块、车次查询模块、车站查询模块三部分。
1)站站查询:
publicvoidgoTozzcxView(){
setContentView(R.layout.zzcx);
curr=WhichView.ZZCX_VIEW;
flag=0;//标志位
Buttonbcx=(Button)findViewById(R.id.zzcxbt);//查询按钮
Buttonbfh=(Button)findViewById(R.id.zzcxfhbt);//返回按钮
iniTLisitarray(R.id.EditText01);//为各个车站输入文本框添加适配器
iniTLisitarray(R.id.zzcxzzz);
iniTLisitarray(R.id.zzcxzdz);
finalCheckBoxzzzcx=(CheckBox)findViewById(R.id.zzcxzzzbt);
bcx.setOnClickListener(//为查询按钮添加监听
newOnClickListener(){
@Override
publicvoidonClick(Viewv){
if(!
isLegal())
return;
AutoCompleteTextViewzzcx_cfz=(AutoCompleteTextView)findViewById(R.id.EditText01);//出发站
AutoCompleteTextViewzzcx_zzz=(AutoCompleteTextView)findViewById(R.id.zzcxzzz);//中转站
AutoCompleteTextViewzzcx_zdz=(AutoCompleteTextView)findViewById(R.id.zzcxzdz);//终点站
Stringstart=