android实训报告.docx
《android实训报告.docx》由会员分享,可在线阅读,更多相关《android实训报告.docx(19页珍藏版)》请在冰豆网上搜索。
android实训报告
郑州轻工业学院
手机订票系统实训报告
姓名
学号
专业班级11-02班
指导教师王治国王捷王华
完成时间2015年1月11日
成绩
一、需求分析
1.1.设计背景
铁路作为中国最重要的交通工具之一,在市场经济浪潮中,面临着严峻的考验。
公路运输的便捷,航空运输的快速,这一切都对铁路运输构成很大的冲击。
在对铁路客运服务存在的最大问题进行调查时,结果表明,有29.3%的乘客认为购票难排在各项选择的第一位。
火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点,订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面,因此,随着我国铁路交通的不断发展,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,简单的窗口售票模式已经不能满足方便人们出行的目的。
采用先进的网络技术开发出方便快捷的网上订票系统是现代客运业务发展的必然需求。
电子商务的出现,正好带给了铁路客运服务一个发展契机,推出新型的订票方式--手机网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。
它既是技术上的创新,又将完善铁路服务,在一定程度上解决买票难这一大难题,增强铁路竞争力,为铁路争取到更多的客流。
本次设计的手机火车票订票系统,可以实现个人信息注册、车次车票价格查询、在线订票退票等基本功能,为用户提供方便快捷的订票服务。
本次设计便是利用开发工具eclipse和SQlite数据库共同开发的一个android客户端的火车票订购系统,它能方便快捷地运用在火车站订票业务的营运之中。
该系统要解决的是火车站网上售票工作所要解决的问题,可以满足火车票网上售票的基本要求,包括查询、订票、退票三个方面的功能。
该系统能运用到火车站售票的工作中,根据用户的需求,设置其权限,并快捷方便的为用户提供服务。
1.2系统设计目标
本系统是利用网络的方便、快捷和计算机的准确、高效实现手机网上订票系统。
手机网上订票系统是通过主页访问、身份识别实现区别不同身份用户完成车票、车次的管理操作。
系统有四个大的功能模块:
登录功能模块,验证登录信息;注册功能模块,进行新用户的注册;管理员功能模块,实现车票、车次和站点的管理;普通用户功能模块,实现车票和个人信息管理。
1.3可行性研究
可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。
可行性分析一般可定义为:
可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是否可行。
可行性研究的目的不是解决问题,而是确定问题是否值得去解决。
其最根本任务就是对以后的行动方针提出建议。
该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。
我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析。
1.3.1技术可行性
本系统开发的软硬件资源都已具备,前台开发工具使用eclipse,开发语言为java,后台数据库使用SQlite,其基本操作实质还是对数据库进行添加、删除、查找等操作开发环境安全,技术可靠,两者使用都相对比较熟练,因此具备技术可行性。
1.3.2经济可行性
开发该系统所需的相关资料可以通过已存在的网上订票系统进行调查采集,所需的其他应用软件、硬件系统也易于获得,因此,开发成本较低。
而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。
所以,从经济的角度来看,该系统可行。
1.3.3操作可行性
本系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便,界面设计十分亲切,功能标题醒目,各种功能的实现简单容易,易于理解,用户只需对订票流程和业务调查了解即可,不需掌握数据库等相关知识,上手较快,系统管理人员可以简单的实现车票的销售,车次的管理,统计,退票等功能。
通过以上可行性分析,认为该系统的开发方案切实可行,可进行开发。
1.4需求分析
需求分析是软件设计的一个重要的环节。
本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求。
用户对系统的需求我们从以下几方面进行分析。
1.4.1功能需求
手机网上订票系统是一个融合火车票订购、列车站点的管理、管理员信息、列车信息及售票信息查询为一身的综合系统。
功能需求从用户和管理员两个方面进行分析,本网上售票系统应该具备如下功能:
1.从用户的角度看:
(1)注册:
用户需要订购自己所需要的火车票,所以本系统的使用者应该有注册账户功能。
(2)登录:
用户注册过信息以后,可以通过登录权限进入用户模式。
(3)查询:
用户可以实现对个人信息的查询、车次信息的查询和对已订车票信息的查询。
要求:
1)对个人信息的查询,用户可以查看自己的基本信息。
2)对车次的查询,可以按照发车车次进行查询,也可以按照始发站和终点站进行查询。
3)对订单的查询,用户可以查看自己订单的所有车票信息。
(4)添加:
用户可以进行订票来添加订单。
(5)退票:
用户可以对自己已付款订单车次的车票进行退票操作。
(6)修改:
用户可以对自己的个人信息和密码进行修改,也可以对已付款订单的车次进行改签。
2.从管理员的角度看:
(1)登录:
管理员可以通过登录权限进入管理员模式。
(2)查询:
管理员可以对个人信息进行查询、可以对现有车次进行查询,可以对站点进行查询,可以对已注册用户信息进行查询。
1)对个人信息的查询,管理员可以查看自己的基本信息。
2)对车次的查询,可以按照发车车次进行查询,也可以按照始发站和终点站进行查询。
3)对站点的查询,管理员查看所有已存在站点的信息。
4)对已订单的查询,管理员可以查看本系统中所有订单信息。
(3)添加:
管理员可以实现对车次的添加、对站点的添加和对车票信息的添加。
(4)删除:
管理员可以实现对车次的删除、对站点的删除和对车票信息的删除。
(5)管理员可以修改站点信息、车次信息和车票信息。
1.4.2性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。
1.准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
系统应能及时而且准确的根据用户权限及所输入的信息做出响应。
由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。
2.易用性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
3.安全性
手机网上订票系统中涉及到的数据是客运公司相当重要的信息,系统要保证用户的权限,对于车次等信息用户只享有查询服务,不得更改;系统还要提供方便的手段供系统维护人员进行数据备份、日常安全管理、以及系统意外崩溃时数据的恢复等工作。
同时系统还要保证对数据库进行及时更新,保证数据一致性。
2、详细设计
2.1系统功能分析
该系统参考12306网上火车票订票官方客户端进行设计,并根据自己的变成和设计能力对其功能进行进一步简化,系统可分为四大模块:
登录模块,用户根据自己身份的不同进行登陆;注册模块:
没有账户的用户可以输入个人信息和有效证件号码注册一个帐号;普通用户模块,进行个人车票的查询和预定,对自己订单和信息进行管理;管理员模块,对车次、车票、站点和订单进行管理。
通过身份识别判断账户信息并区别不通身份的用户。
火车票网上订票系统简单、操作灵活、方便、反应快速、计算准确,系统运行稳定、安全可靠,而且有良好的交互界面,让使用者可以方便、快速地掌握。
2.1.1登录功能分析
用户进入系统后根据身份的不同选择不同的身份进入系统,如果身份有误,则不能进入系统,在系统的主页上,用户登录之前可以查看车次信息,但不能进行预定和修改车次信息。
2.1.2注册功能分析
没有账户的用户在注册功能模块可以注册一个有效的帐号,注册成功之后就可以登录系统进行车票预定。
用户可以根据需要进行注册,拥有账户后,可以根据自己的账户名和密码进行登录,进入系统之后,用户可以查看自己的订单和未完成订单,可以对已付款订单进行改签和退票。
用户可以查看自己的个人资料,并可以对资料进行修改,用户可以为自己的账户进行充值,也可以修改登录密码。
2.1.4管理员功能分析
管理员根据自己的用户名和密码登录进系统之后,可以对车次、车票。
站点进行增删改查操作,还可以查看所有用户的订单,可以查看个人信息和修改密码。
2.2系统模块设计
通过多系统的功能进行分析绘制出系统的模块图如下图所示:
程序运行以后进入主界面,点击登录可以进入登录子模块,用户根据自己的身份的不同,可以选择是普通用户还是管理员进行登录。
2.2.3注册子模块
程序运行之后进入主界面,点击注册可以进入注册子模块,可以输入自己的有效信息进行注册,该注册模块只能进行普通用户的注册,管理员不能进行注册,管理员帐号应是系统管理人员添加的,该模块不能实现。
2.2.4普通用户子模块
(1)车次查询模块:
用户进入自己的主页之后可以点击余票查询,来获取自己想查询的车次信息,查询有两个方法,一是输入出发地、目的地和出发日期进行查询,二是可以输入出发地、目的地、出发日期和车次进行查询。
(2)车票预定模块:
用户进行车票预定前应首先查询一下自己想要预定的车次的余票信息,然后进行点击车票,预定预定自己想要的订票。
(3)我的订单模块:
用户可以查看自己所有的订单,可以查看自己未付款的订单,还可以对已付款的订单进行退票和改签。
(4)我的信息模块:
用户可以查看并修改自己的个人信息,可以对账户进行充值,而且可以修改自己的密码。
2.2.5管理员子模块
(1)信息管理模块:
在该模块,管理员可以查看该系统中所有的订单信息,可以查看已完成订单和未完成订单信息。
管理员也可以查看个人信息以及修改密码。
(2)车次管理模块:
管理员可以查看系统中的所有车次,可以增加车次,可以删除没有余票的车次,可以修改车次信息。
(3)车票管理模块:
管理员可以查看所有车票、查询已被订车票、未被订的车票,以及可以按车次查看车票信息。
管理员还可以添加车票,先选择需要添加车票的车次,再选择座位类型,对该车次添加车票后会将相应的车次的相应座位的余票进行增加。
管理员还可以修改和删除车票,相应的修改和删除过车票之后,该车票对应车次的余票都要进行相应的修改。
(4)站点管理模块:
管理员可以查看所有站点,也可以增加站点,可以删除没有车次的站点,也可以修改站点信息。
2.3详细设计
系统的设计总共分为登录模块设计、注册模块设计、普通用户模块设计和管理员模块设计四部分,以下是对各模块的详细介绍:
2.3.1登录模块设计
用户选择自己的身份,然后输入用户名和密码,后台代码连接数据库查找该用户输入的信息是否可以找到,如果可以找到则该用户可以登录到自己的主页,否则就停留在此页面无法登录。
2.3.2注册模块设计
打开注册页面之后可以输入自己的有效用户名和密码注册一个账号,后台代码连接数据库往数据库里面插入一个新的用户信息,如果注册成功,则该用户立即可以登录到自己的主页进行车票查询和预定。
如果注册失败,则系统继续停留在此页面并提示用户注册失败。
2.3.3普通用户模块设计
(1)普通用户登录到自己的主页面之后可以进行余票查询,这时候系统会根据用户输入的有效信息从数据库里面检索车次信息并把车次的余票信息显示出来。
用户进行车票预定时,用户可以输入需要预定的车次号、座位类型以及自己的有效信息进行预定,点击提交订单之后,系统会为用户生成一张未付款的订单,并从车次的余票信息中把相应的座位类型的车票数量减一,用户提交订单之后进入确认订单页面,如果用户选择重新预定,系统会把刚刚生成的订单删除并把车次的余票信息恢复原状,并跳转到车票预定的界面进行重新预定。
如果用户选择取消订单,则会直接删除该订单,并把车次余票信息还原。
如果选择网上之后,系统会先查询用户的余额信息,如果用户的余额多余该订单的票价,则会从用户的账户中直接扣除票价,并把该订单的状态改为已付款。
(2)用户可以在自己的主页面查看自己的所有订单信息和未完成订单信息,并且可以对付款的订单进行退票和改签,退票以后,系统会自动删除该订单,并把系统中对应的车票状态改为未被订,也会把对应车次的余票信息进行更改。
改签之后也会把就该订单删除,把车次和车票的信息进行修改,并跳转到预定车票页面重新进行车票预定。
(3)用户在自己的主页面查看自己的资料,并可以对资料进行修改,用户不可以修改用户名,因为用户名是用户的唯一标识,系统中不存在同名的用户,而且用户名是用户注册时已确定的,所以不能予以更改权限,但用户可以对自己的其他信息进行更改,以及时更新自己的最新的有效信息。
用户还可以在主页面进行账户充值,账户充值就是更新自己信息的账户余额,把数据库中的余额信息增加。
用户还可以进行修改密码,把数据库中已存在的密码换成自己想要重新设定的密码。
2.3.4管理员模块设计
(1)管理员可以对系统进行信息管理,包括对系统中所有订单、已完成订单和未完成订单的查询,根据管理员选择的查询条件,分别从数据库中检索出相应的订单信息。
因为订单是用户自己管理的,所以管理员没有权限对用户的订单进行增加、修改和删除权限。
管理员还可以对自己的个人信息进行管理,如查看个人信息和修改密码,将自己的新密码更新到数据库中。
(2)管理员可以对车次进行管理,管理员可以查看系统中的所有车次,查看车次时,连接数据库从数据库中检索所有的车次信息。
管理员还可以增加车次,往数据库的车次中添加新的车次,添加车次时应注意,车次的始发站和终点站依赖站点的站点号,所以始发站和终点站的站点号必须是已经存在的站点,而且添加车次时不能给该车次添加余票,因为车票的添加功能在车票的管理中,该车次的余票默认为零。
管理员可以删除车次,并且删除的车次必须是没有余票的车次,如果有余票信息的话,因为车票的车次编号对其有依赖关系,所以会导致删除失败。
管理员可以修改车次信息,先从列表中选择要修改的车次号,然后对车次信息进行修改并更新到数据库。
(3)管理员可以对车票进行管理,管理员可以查看系统中的车票信息,可以查询所有车票信息,也可以查询已被订和未被订的车票信息,同时还可以按照车次查看该车次的车票信息。
管理员可以添加车票,从列表中选择好需要添加车票的车票和座位类型后就可以往数据库中对车票表中添加一张车票,同时将相应车次的相应座位类型余票进行添加。
管理员还可以进行车票的删除,删除一张车票以后会将该车票对应的车次信息的余票也进行修改。
管理员还可以对车票进行修改,从列表中先选择要修改的车票编号,再选择修改过后的座位类型、车票价格、出发地和目的地,修改过该车票之后会把车次信息的余票情况进行修改。
(4)管理员可以对站点信息进行管理,管理员可以查询系统中的所有站点,也可以增加新站点,管理员可以对站点信息进行删除,但是只能删除对它没有依赖车次的站点,如果站点中有车次对它依赖,则该站点无法删除,管理员还可以修改站点信息,从列表中选择相应站点的编号,然后可以更改站点的名称,并把新的站点信息更新到数据库中。
三、数据分析与设计
3.1数据库介绍
数据库是指自描述的完整记录的集合。
它除了包含用户的源数据外,还包含关于它本身结构的描述。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
另外,合理的数据库结构将非常有利于程序的实现。
数据库设计(DatabaseDesign)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程,就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
1.数据库设计的一般性原则
第一个基本规则:
对于每一个要存储其信息的实体(或事物),我们都应该给他一个自己的表;
第二个处理规则:
如果你需要在一个列中存储多个值,那证明你的设计可能是有缺陷的。
简单的数据关系:
一对一;一对多;多对一;多对多
在数据库的设计中:
要做到数据规范化、完整性、数据冗于和规范实例化。
在整个设计过程中,我们必须按步骤认真完成。
2.数据库设计的过程(六个阶段)
需求分析阶段,准确了解与分析用户需求(包括数据与处理)是整个设计过程的基础,是最困难、最耗费时间的一步
概念结构设计阶段是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
逻辑结构设计阶段将概念结构转换为某个DBMS所支持的数据模型对其进行优化
数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
数据库实施阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行
数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改
在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计
数据库的设计在数据库应用系统的开发中占有很重要的地位。
只有设计出合理的数据库,才能为建立在数据库上的应用提供方便。
3.2概念结构设计
按照系统功能需求和设计,本系统数据库主要E-R图如下:
图3-1管理员实体图
如图3-1所示,管理员的属性包括管理员编号、管理员的密码和管理员的真实姓名。
图3-2普通用户实体图
所图3-2所示,普通用户的属性包括用户名、密码、真实姓名、性别、身份证号、电话、账户余额。
图3-3火车车次实体图
如图3-3所示,火车车次的属性包括车次号、发车日期、始发站、终点站、软卧、软座、硬卧、硬座、无座。
图3-4火车车票实体图
如图3-4所示,火车车票的属性包括火车编号、车次编号、座位类型、价格、出发地、目的地、是否被订。
图3-5订单实体图
如图3-5所示,订单属性包括订单编号、车票编号、用户名、订票时间、车票单价、是否付款。
图3-6站点实体图
如图3-6所示,站点属性包括站点编号、站点名。
3.3逻辑结构设计
将系统的E-R图转换为关系模型,关系的码用下划线给出,如下:
(1)manager(Mid,Mpwd,Mname)
此为管理员实体所对应的关系模式。
(2)commonusers(Cid,Cpwd,Cname,Csex,CIDnum,Ctel,Cmoney)
此为普通用户实体所对应的关系模式。
(3)trains(Tid,Cpwd,Tdate,Tstart,Tend,Tsoftsleeper,Tsoftseat,Thardsleeper,Thardseat,Tnoseat)
此为车次实体所对应的关系模式。
(4)stations(Sid,Sname)
此为站点实体所对应的关系模式。
(5)traintickets(Ticketid,Tid,Ttype,Tprice,Tstart,Tend,Torder)
此为车票实体所对应的关系模式。
(6)orders(Oid,Ticketid,Cid,Odate,Oprice,Opay)
此为订单实体所对应的关系模式。
3.4物理结构设计
通过对该系统的分析和设计该系统形成的物理结构有如下信息:
该系统的物理结构表如下:
1.管理员信息表,包含管理员帐号,管理员密码,管理员姓名,具体结构如表3-1所示:
管理员表的物理结构:
表3-1管理员信息表
字段名
数据类型
长度
约束
属性
Mid
varchar
50
NOTNULL
主码
Mpwd
varchar
50
NOTNULL
非主属性
Mname
nvarchar
50
非主属性
2.普通用户信息表,包含用户名,密码,真实姓名,性别,身份证号,电话,账户余额,具体结构如表3-2所示:
普通用户表的物理结构:
表3-2普通用户信息表
字段名
数据类型
长度
约束
属性
Cid
nvarchar
50
NOTNULL
主码
Cpwd
varchar
50
NOTNULL
非主属性
Cname
nvarchar
50
NOTNULL
非主属性
Csex
nvarchar
2
非主属性
CIDnum
varchar
18
NOTNULL
非主属性
Ctel
varchar
11
非主属性
Cmoney
decimal
10
非主属性
3.火车车次信息表,包含车次号,发车日期,始发站,终点站,软卧,软座,硬卧,硬座,无座,具体结构如表3-3所示:
火车车次表的物理结构:
表3-3火车车次信息表
字段名
数据类型
长度
约束
属性
Tid
varchar
50
NOTNULL
主码
Tdate
datetime
非主属性
Tstart
varchar
50
NOTNULL
非主属性
Tend
varchar
50
NOTNULL
非主属性
Tsoftsleeper
int
非主属性
Tsoftseat
int
非主属性
Thardsleeper
int
非主属性
Thardseat
int
非主属性
Tnoseat
int
非主属性
4.站点信息表,包含站点编号,站点名,具体结构如表3-4所示:
火车车次表的物理结构:
站点表的物理结构:
表3-4站点信息表
字段名
数据类型
长度
约束
属性
Sid
varchar
50
NOTNULL
主码
Sname
nvarchar
50
NOTNULL
非主属性
5.车票信息表,包含车票编号,车次,座位类型,价格,出发地,目的地,是否被订,具体结构如表3-5所示:
车票表的物理结构:
表3-5车票信息表
字段名
数据类型
长度
约束
属性
Ticketid
int
NOTNULL
主码
Tid
varchar
50
NOTNULL
非主属性
Ttype
nvarchar
10
非主属性
Tprice
decimal
10
非主属性
Tstart
varchar
50
非主属性
Tend
varchar
50
非主属性
Torder
varchar
10
NOTNULL
非主属性
6.订单信息表,包含订单编号,车票编号,用户名,订单时间,车票单价,是否付款,具体结构如表3-6所示:
订单表的物理结构:
表3-6订单信息表
字段名
数据类型
长度
约束
属性
Oid
int
NOTNULL
主码
Ticketid
int
NOTNULL
非主属性
Cid