农妇山泉一亩田 发表于 2024-12-26 17:14:53

基于java出租车计价器设计与实现【源码+文档+摆设讲授】

目   录
1绪论
1.1 体系开辟背景
1.2 体系开辟目的
1.3 体系开辟目的
2体系开辟技能和工具
1.4 体系开辟的工具
1.4.1 MyEclipse 8.5
1.4.2 Tomcat 6.0
1.4.3 SQLyog
1.5 体系开辟技能
1.5.1 编程框架
1.5.2 Java的基本概念
1.5.3 Java 层结构的特点
1.5.4 MVC框架
1.5.5 Swing
1.5.6 Jpanel
1.5.7 Java多线程
2 可行性分析
2.1 可行性分析
2.1.1 技能可行性
2.1.2 经济可行性
2.1.3 操作可行性
2.2 设计目的
2.3 功能要求
2.3.1 出租车维护
2.3.2 司机信息的维护
2.3.3 订单信息的生成
2.3.4 订单信息的维护
2.4 体系开辟环境设置
2.5 体系开辟工具
2.5.1 开辟语言—JSP
2.5.2 Eclipse简介
2.5.3 Tomcat简介
3 需求分析
3.1 需求分析描述
3.1.1 需求分析的任务
3.2 本体系的需求
3.2.1 体系的要求
3.2.2 体系实现目的
3.3 体系流程图、数据流图和数据字典
3.3.1 体系流程图
3.3.2 数据流图
3.3.3 数据字典
4 概要设计
4.1 概要设计引入
4.1.1 概要设计引入
4.1.2 概要设计的任务
4.2 体系功能模块
4.2.1 体系功能模块描述
4.2.2 体系功能模块条理方框图
4.3 体系数据库设计
4.3.1 概念数据模型
4.3.2 数据库表
5 详细设计及实现编码
5.1 详细设计概述
5.2 体系各功能模块的实现
5.2.1 体系程序流程图
5.2.2 用户登录流程图
5.2.3 修改资料流程图
5.2.4 查询资料流程图
5.2.5 体系各模块界面
结束语
致谢
主要参考文献
外文文献及翻译


1绪论

随着我国经济的敏捷发展,人民生活水平的显著提高,都会的交通日趋美满,虽然私家车的拥有量在大幅度的提高,但出租车仍然是都会交通的重要构成部分,行业康健和发展也得到越来越多的关注。汽车计价器是搭客与司机双方的生意业务准则,它关系着生意业务双方的长处。具有精良性能的计价器无论是对出租车司机朋侪还是搭客来说都是十分的有须要。所以,出租车计价器的研究非常的有代价。该出租车计费体系的设计包括(1)出租车信息模块,始终包含:出租车辆的车型,出租车辆的车牌号,出租车辆是否维修,可以实现基本信息的维护,增加,修改,删除。(2)司机管理模块包含:司机信息设置,司机职务设置,司机学历,司机编号,司机生日等,可以实现对司机的基本信息如:员工编号,姓名等的查询,增加,修改,删除。(3)计价模块包含:通过游客点击派车,从而使得出租车按照时间生成一个订单,插入到订单表中(4)订单模块包含:订单数汇总,打印订单数,可以实现查看订单数,并且将这些数据打印出来。出租车计费体系可以大大低落出租车的成本,为出租车公司运营管理公司提供灵活的销售计谋和强力可靠的运营平台,给用户全新的打车体验和便捷的打车服务。可以想见,出租车体系即将在新媒体期间,成为推动出租车增加的助推器。为整个出租车行业向数字化,多媒体化的变化起到关键性的作用。其将是出租车行业发展的重要标记,成为是出租车行业最重要的工具。
体系开辟背景
随着出租车市场竞争的日益激烈,出租车计价事业正面临着一个亘古未有的发展机遇,捉住机遇,敏捷的响应市场,是出租车企业得到竞争优势刻不容缓的任务。信息产业的飞速发展以及技能水平的提高,使我们能够紧跟期间发展,创建先进的信息化的处置惩罚平台,将科学技能和企业的精良管理经验结合起来,推动企业的进步和发展。
基于对出租车计价业务数据管理的复杂性和重要性的深刻理解,我们推出了出租车计价器体系,实现了对出租车计价业务流程的公道规划和基础数据的整合,为出租车企业全面、实时、正确的处置惩罚业务提供了基本保证,同时为企业的内部管理和决策支持提供了坚固的数据基础和分析手段。

[*]
[*] 体系开辟目的

出租车计价体系可以大大低落出租车运营的成本,为出租车运营管理公司提供灵活的销售计谋和强力可靠的运营平台,给用户全新的打车体验和便捷的打车服务。可以想见,出租车体系即将在新媒体期间,成为推动出租车增加的助推器。为整个出租车行业向数字化,多媒体化的变化起到关键性的作用。

[*]
[*] 体系开辟目的

(1) 通过设计公道的、规范化的数据存储结构,对企业的基础数据进行有效的组织、维护,提供同一的基础数据管理平台。
(2) 为其他子体系的运行提供共享数据环境,减少数据冗余,提高管理服从。
(3) 灵活设置业务管理中须要的价格、日期等参数。
(4) 提供对出租车、司机、订单的设置和管理。
(5) 采用的是矩阵式的权限管理和各级数据的校验,颠末各个条理的数据的保密,面向不同的用户,分配不同的权限,并表现不同的界面,从而使得操作更加的方便与安全。
(6) 为各子体系提供综合服务功能。
2体系开辟技能和工具

[*]
[*] 体系开辟的工具

MySQL数据库
MySQL是个关系数据库管理体系,MySQL关系数据库管理体系,在WEB应用程序中最受欢迎的MySQL是最好的RDBMS(关系数据库管理体系、关系数据库管理体系),应用软件之一。MySQL是一个关系数据库管理体系,关系数据库数据存储在不同的表中,而不是把所有的数据放在一个大仓库,从而增加的速率和增加灵活性。MySQL使用SQL语言是一种最常用的尺度化语言访问数据库。MySQL软件采用双授权计谋(这个术语“授权政策”),它分为社区版和贸易版本,由于其体积小、速率快、总体拥有成本低,开源的特性,特别是中小网站的发展,通常选择MySQL作为数据库的网站。MySQL开辟职员的初衷是使用mSQL和快速低级的例程(ISAM)毗连到表单。颠末一些测试,开辟职员得出结论:mSQL他们不须要那么快和灵活。这导致使用几乎像mSQL API接口用于生产他们的新SQL数据库接口,如许,mSQL写的API答应第三方代码更容易迁徙到MySQL。
MySQL这个名字怎么还不清晰。基本准则和大量的库和工具与前缀“我”已经有超过十年,和在任何环境下,MySQL AB的首创人之一的女儿是我的。两个MySQL给出什么名字仍然是一个谜到目前为止,包括开辟职员,也不知道。
MySQL海豚标记是“sakila”的名称,它是由MySQL AB的首创人从用户在比赛中“海豚命名为“建议选择从大量的表中的名称。赢是开源软件开辟职员的名字来自非洲,斯威士兰安布罗斯Twebaze提供。

[*]
[*]
[*]MyEclipse 8.5


MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,使用它我们可以在数据库和JavaEE的开辟、发布和应用程序服务器整合方面有着非常大的提高工作服从。它是功能十分强大的JavaEE集成开辟环境,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。MyEclipse 8.5不但集成最新版本的Eclipse 3.5.2同时包含了大量当前最新版的开源框架的插件支持,对主流Java框架的支持都更新许多,所以,选择MyEclipse 8.5开辟相对来说是较好的选择。

[*]
[*]
[*]Tomcat 6.0


Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量型应用服务器,它运行时占用非常小的体系资源,有非常好的扩展性,有支持负载均衡和邮件服务等开辟应用体系常用的功能,是开辟和调试JSP 程序的首选。
Start UML
StarUML(简称SU),是一种创建UML类图,生成类图和其他范例的同一建模语言(UML)图表的工具。StarUML是一个开源项目之一发展快、灵活、可扩展性强。
VisioMicrosoft Office Visio 2003 是微软公司出品的一款的软件,它有助于 IT 和商务专业职员轻松地可视化、分析和交换复杂信息。它可以将复杂的文本和表格转换为简便的Visio图表。它通过创建与数据相干的Visio图表可以来表现数据,这些图表容易刷新,并提高生产率。使用 Office Visio 2003 中的各种图表可相识、操作和共享企业内组织体系、资源和流程的有关信息。
Office Visio是同一的建模语言图标的工具,其中它提供了各种各样的丰富的模板:其中大要的模板有业务流程的流程图、业务流程的网络图、业务流程的工作流图、业务流程的数据库模型图和业务流程的软件图,这些丰富的模板可用于可视简化的业务流程、跟踪项目和资源、绘制组织结构图、映射网络、绘制修建地图以及优化体系等业务流程。
PowerDesigner
PowerDesigner是美国著名Sybase公司的开辟的CASE工具集,使用它就可以十分方便地对体系进行分析设计,它几乎包括了数据库模型设计的全过程。使用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型等数据模型,它可以生成多种客户端开辟工具的应用程序,它还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用更能收缩开辟时间和使体系设计更加的优化。从而使得数据库的设计更加美满。
PowerDesigner主要包括以下几个功能部分:
(1) DataArchitect :这是一个强大的数据库设计工具,使用DataArchitect可使用实体-关系图为一个信息体系创建"概念数据模型"-CDM(Conceptual Data Model)。并且可根据CDM产生基于某一特定数据库管理体系(例如:Sybase System 11)的"物理数据模型"-PDM(Physical Data Model)。还可优化PDM,产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其他时候运行这些SQL语句创建数据库。别的,DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本。
(2)ProcessAnalyst:这部分用于创建功能模型和数据流图,创建"处置惩罚条理关系"。
(3)AppModeler:为客户/服务器应用程序创建应用模型。
(4)ODBC Administrator:此部分用来管理体系的各种数据源。
(5)XML文件:可以使用工具生成相应的XML文件,或者用XML文件生成相干模型。
PowerDesigner的3模型文件:
(1)概念数据模型(CDM):概念数据模型是表现数据库的全部逻辑的结构,与任何的软件或者数据蕴藏结构没有关系。一个概念数据模型经常包括在物理数据库中仍然不能实现的数据对象。它可以给运行计划或着业务运动的数据一个正式的表现方式。使其可以完整运行。
(2)逻辑数据模型 (LDM):在后期的PowerDesigner 15 中,又引入了新的模型 如 LDM,多维数据模型等。而逻辑模型是概念模型的延伸,表示概念之间的逻辑序次,是一个属于方法条理的模型。具体来说,逻辑模型中一方面表现了实体、实体的属性和实体之间的关系,另一方面又将继续、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间,具有物理模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。
逻辑模型主要是使得整个概念模型更易于理解,同时又不依靠于具体的数据库实现,使用逻辑模型可以生成针对具体数据库管理体系的物理模型。逻辑模型并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。
(3)物理数据模型 (PDM):PDM 叙述数据库的物理实现。藉由PDM ,你思量真实的物理实现的细节。它进入帐户两个软件或数据蕴藏结构之内拿。你能修正 PDM 得当你的表现或物理约束。

[*]
[*]
[*]SQLyog


SQLyog是美国Webyog公司研发的一款十分高效简便、有强大功能的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从天下的任何角落通过网络来维护远端的MySQL数据库。
SQLyog有如下特点:
(1) 它主要是用于MySQLAPI与C++的编程;
(2)数据库同步和数据库结构同步十分方便快捷;
(3) 数据库容易使用、还支持数据表的备份、数据表的还原;
(4) XML、HTML等多种格式的数据的导入和导出都是被支持的;
(5) 大量的SQL脚本文件可以被直接运行,速率极快;
(6) 新版本更是增加了强大的数据迁;

[*]
[*] 体系开辟技能
[*]编程框架


框架式抽取某类应用的共性设计的软件半成品,用户可以在其基础之上搭建本身的软件。它可以资助处置惩罚细节、琐碎的内容;开辟员集中精神与业务逻辑的实现,提高开辟服从;结构性好,可扩展性强,可升级;是成熟的、稳健的。

[*]
[*]
[*]Java的基本概念


Java使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。究竟上,Sun设计Java的初衷正是为相识决两层模式的弊端,在传统模式中,客户端担当了过多的脚色而显得辐重难负。在两层模式下,第一次摆设的时候比力容易,但难于升级或改进,可伸展性也不抱负。可现在Java的多层企业应用模型中将两层化模型的不同层面切分成许多的层。一个多层化应用能够为不同服务提供一个独立的层。以下是Java范例的四层结构:
(1)表现层的功能:主要的功能是负责客户端的展示。
(2)服务层的功能:主要的功能是直接为客户端提供的服务或功能。
(3)范畴层的功能: 主要的功能是体系内的范畴运动。
(4)DAO层的功能: 主要的功能是数据访问对象,通过范畴实体对象来操作数据库。

[*]
[*]
[*]Java 层结构的特点


面向对象:面临对象是真实的天下模型的延伸。真实的天下中的实体都是可以看成一个对象的。他们之间是通过信息的传递与作用,任何实体都可以归属到一类事物中,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 所有面向对象编程语言都支持三个概念:封装、多态性和继续,Java也不破例。实际天下中的对象均有属性和行为,映射到盘算机程序上,属性则表示对象的数据,行为表示对象的方法。封装,通俗的来讲就是用一个自主式的框架去把对象的数据和方法接洽在一起。面临的对象是支持封装的方式,是其最基本的单位。Java的封装性一样寻常是比力强的, Java没有变量,没有主函数, Java中绝大部分的成员都是对象,其中除过数字范例、字符范例和布尔范例。,这些范例,Java也是提供了与之对应的对象范例便于其他的对象进行交互操作。
可移植性:盘算机软件体系上的程序颠末了一次的编译可以移植到其他的盘算机软件体系上去实行,颠末粘贴与复制就能不影响到这个程序的运行的结果,该程序是可以完美运行。
安全性:Java 应用程序的安全性限定与iSeries服务器上的任何其它程序都是雷同。在iSeries服务器上去运行java程序,必须的是本身对整个的集成文件体系的类文件都有权限去运行,因为程序一经运行,它则在该用户的权限下来运行。本身可以用权限去判定该程序的用户权限与拥有该程序的权限的对象。
并发性:可以提高体系并发处置惩罚的能力。JAVA支持多线程技能,多线程技能就是多个线程并发运行的机制,特别是有利于在程序中实现并发任务。Java提供Thread线程类,实现了多线程的并发机制。程序的并发实行会出现多个线程互斥访问临界资源的局面,因此并发体系办理的关键就是对临界资源的管理和分配题目,而在进行临界资源分配时这两方面则都须要思量。

[*]
[*]
[*]MVC框架


MVC是英文Model-view-controlle:(模型-视图-控制器)首字母的缩写,即把一个应用的输入、处置惩罚、输出流程按照Model、View、Controller的方式进行分离,如许一个应用被分成三个层即模型层、视图层、控制层。
在MVC的模式,模型的封装是焦点数据和逻辑关系与业务规则,提供业务逻辑过程的处置惩罚方式。模型被控制器调用,用来处置惩罚题目的操作,并为视图获取数据提供了数据的操作。又因数据格式与模型没有关系,所以一个模型能提供数据给多个视图。视图是在MVC模式下并与之交互的界面。视图可以从模型处得到数据,它的更新又是由控制器来控制的。 
MVC的模式,控制器是起导航的作用,它能根据用户输入的范例调用出相应模型与视图来完成用户哀求,控制器可以不消输出数据,其只是用于接受哀求并且来调用哪个模型构件可以去处置惩罚,并且用哪个视图去表现模型处置惩罚的数据。MVC的模式处置惩罚过程大要是:首先控制器来吸收用户的哀求信息,并决定调用一个模型去处置惩罚,模型主要是用业务逻辑去处置惩罚用户的哀求并且返回数据,控制器用对应的视图返回这个数据,并用表示层出现给用户。

[*]
[*]
[*]Swing


Swing是一个用于开辟Java应用程序用户界面的开辟工具包。以AWT为基础使跨平台应用程序可以使用任何可插拔的表面风格。Swing开辟职员非常轻易就可以创建一个完美优雅的用户界面。AWT不能满足图形化用户界面发展的须要是Swing产生的主要缘故原由。AWT的初衷是用于开辟小应用程序的小界面。
由于图形化界面发展的须要,Swing出现了,swing与AWT相比,Swing完满是没有本地的对等组件,swing基本都是轻量级的组件,AWT几乎都是重量级的组件,swing可以不消重量级组件那样要在本地不透明的窗体绘制,轻量级组件则是在重量级组件中绘制。

[*]
[*]
[*]Jpanel


JPanel 是一样寻常轻量级容器JPanel 为javax.swing包中的,为面板容器,可以加入到JFrame中 , 它自身是个容器,可以把其他component加入到JPanel中,如JButton,JTextArea,JTextField等。

[*]
[*]
[*]Java多线程


Java编写的程序都运行在JVM中,在JVM的内部,程序的多任务是通过线程来完成实现的。
当java命令启动一个java应用程序,就会启动一个JVM历程。在同一个JVM历程中,有且只有一个历程。在这个JVM环境中,所有程序代码的运行都是以线程来运行的。JVM找到入口点main(),并且运行main(),就可以产生一个线程,这个线程称为主线程。
操作体系将线程进行管理,轮流(没有固定的次序)分配每个历程很短的一段时间(不一定是均分),然后在每个历程的内部,程序的代码本身就可以去处置惩罚该历程的内部线程时间分配,多个线程相互去切换去实行,这个切换时间也是非常短的。使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。Java中,每个线程都有一个调用栈,线程也在后台运行着。Java可以从main()开始运行,mian()运行在一个线程中,可以称之为主线程。一旦一个新的线程创建,就能产生一个新调用栈。





[*] 可行性分析   
[*] 可行性分析

可行性分析又称为可行性研究,就是在充实的体系调查的基础上,从而分析新体系的开辟是否具备须要性和可能性,对新体系的开辟要从技能、经济、管理等多方面进行分析和研究,以保证新体系的成功开辟。该体系的可行性分析包括以下几个方面的内容。

[*]
[*]
[*]技能可行性


主要思量从技能上可否能顺利完成该软件开辟工作,并且从硬件和软件上可否满足开辟者的须要等。从技能可行性上分析,开辟该体系时所使用的均是目前流行轻量级开辟技能,具体使用可以查阅工具书或者相应介绍这些技能的资料,因此在技能上可行。

[*]
[*]
[*]经济可行性


从经济可行性上分析,本次设计属于完全的出租车计价类的,开辟工具均可以免费从网上下载得到并安装,不须要支付任何费用来使用工具开辟。所以经济上可行。

[*]
[*]
[*]操作可行性


操作可行性上分析,本体系基于C/S模式,摆设简单。像客户端一样在体系中操作一样,所以操作上可行。
综合上述,出租车计价体系的设计与实现,从技能上、经济上、操作上分析均可行,故本次设计的可行性分析结果为成功通过,可以对这个体系进行开辟。

[*]
[*] 设计目的

出租车计费体系的总体目的:
(1)出租车计价体系可以实现出租车信息的管理。
(2)出租车计价体系可以实现司机信息的管理。
(3)出租车计价体系可以实现出租车计价功能。
(4)出租车计价体系可以实现订单信息的维护

[*]
[*] 功能要求

体系应该具备的基本功能:

[*]
[*]
[*]出租车维护


出租车信息的查询:通过数据库查询出租车的车型,车号,以及是否可用
出租车信息的增加:向数据库中添加出租车的车型,车号,以及是否可用
出租车信息的修改:对数据库中已经存在的出租车的车型,车号,以及是否可用的信息进行修改
出租车信息的删除:删除数据库中已经存储的出租车的信息

[*]
[*]
[*]司机信息的维护


司机信息的查询:通过数据库查询出司机的年龄,性别,学历,名字等信息
司机信息的增加:向数据库中添加司机的年龄,性别,学历,名字等信息
司机信息的修改:对数据库中已经存在的司机的年龄,性别,学历,名字等信息进行修改
司机信息的删除:删除数据库中已经存储的司机的信息

[*]
[*]
[*]订单信息的生成(出租车计价功能):


通过java多线程,模拟出租车在路上的情形,通过距离计费的方式,将订单的时间,搭客的信息,订单的价格等插入数据库中

[*]
[*]
[*]订单信息的维护:


订单信息的查询:通过数据库查询出订单的时间,价格等信息
订单信息的删除:删除数据库中已经存储的订单信息
订单信息的修改:对数据库中已经存在的订单的时间,价格等信息进行修改

[*]
[*] 体系开辟环境设置

本体系以微软平台作为主导,主要是思量目前微软的庞大市场占用率,别的从技能角度来讲,微软平台上的应用无论是在开辟上,还是在软件的摆设上都是非常容易,而且性能优越。具体如下:
(1)开辟工具:MyEclipse 8.5
(2)数据库:SQLyog
(3)服务器 :Tomcat服务器
(4)运行环境 :安装JDK1.8支持JAVA运行并且准确设置环境变量

[*]
[*] 体系开辟工具
[*]开辟语言—JSP(JAVA Server Page)


JSP页面由HTML代码和嵌入其中的JAVA代码所构成。JAVA Servlet是JSP的技能基础,而且大型的Web应用程序的开辟须要JAVA Servlet和JSP配合才能完成。JSP具备了JAVA技能的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的等特点。
(1)JSP概述
JSP是Java server page的缩写,该技能是由Sun公司为主导。其根本是一个简化的Servlet设计,,该技能是由Sun公司为主导、许多公司参与一起创建的一种动态网页技能尺度。JSP 是创建高度动态的 Web 应用的一个独特的开辟环境,提供了网页动态实行能力。
JSP在服务器端,即在web服务器上实行 ,并且将实行的结果发送到客户端的浏览器上,基本上是与浏览器没有关系的 
(2)JSP 与 ASP比力
作为动态web技能,JSP与ASP之间存在很多相似之处。究竟上JSP两者都提供在 HTML代码中混合程序代码、由语言引擎解释实行程序代码。在ASP与JSP环境下,HTML代码负责描述信息出现的表现样式,而程序代码则用来描述处置惩罚逻辑。平凡的 HTML页面只依靠于Web服务器,而ASP和JSP页面须要附加的语言用来分析和运行行程序的代码。实行结果就可以被重新的嵌入到HTML代码中,并全部发送到浏览器上。ASP和JSP都是面向Web服务器的技能,客户端浏览器是不须要任何附加的软件用于支持。
JSP使用的是Java,而ASP使用的是VBS。这是十分显著的区别。ASP与JSP还有一个更加本质区别:两种语言引擎用是用不同的方式去处置惩罚页面中嵌入的程序代码。在ASP中,VBS被ASP引擎解释和实行;在JSP中,VBS被编译为Servlet在JSP页面的首次哀求时由Java虚拟机去实行操作。
(3)安装JSP运行运行环境
安装JDK
把JDK安装到到D:\java\jdk目录中
编辑体系变量
path=%path%;d:\java\jdk1.4.0\bin
classpath=.;d:\j2sdk1.4.0\lib\tools.jar
JDK测试
编译
运行

[*]
[*]
[*] Eclipse简介


Eclipse是替换IBM Visual Age for JAVA(以下简称IVJ)的下一代IDE开辟环境,但它将来的目的不仅仅是成为专门开辟JAVA程序的IDE环境,根据它的体系结构,通过开辟插件,它能扩展到开辟可以用于任何语言,甚至能成为图片绘制的工具。目前,该软件已经开始提供功能插件主要是用于在c语言的开辟上。尤为重要的是其为开辟的源代码,成为平凡大众的福音,人人都可以免费的下载。并且还开辟了本身的功能插件。只要须要,都会有其他语言的开辟插件出现,例如perl语言。

[*]
[*]
[*]Tomcat简介


Tomcat是一个免费的开源的Serlvet容器,是Apache基金会的Jakarta中的焦点项目之一,是Apache Sun和一些公司及个人共同开辟而成。有了Sun的参与和支持,最新Servlet和JSP规范最终可以在Tomcat中得到表现。Tomcat被选为2001年最具创新的产物,可见其在业界的职位。
Eclipse是跨平台的集成开辟环境(IDE)。最初主要用来Java语言的开辟与编辑,目前也有人用其作为C++、Python、PHP等其他语言的开辟工具。
 (1)历史
Eclipse最初是由IBM自主开辟的Java IDE开辟环境,为开源社区2001年11月,现在由Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范运行时体系结构。2007年6月,稳固版3.3版本,发布2008年6月,代号为木星的3.4版本,发布于2009年6月,代号为伽利略3.5版本,发布于2010年6月,代号为Helios版本3.6 
(2)架构
Eclipse的基础是RCP。RCP包括下列组件:
焦点平台
OSGi
SWT
JFace
Eclipse工作台
视角(perspectives)
领导(wizards))
MyEclipse是基于Eclipse开辟的功能强大的企业级集成开辟环境,主要用于Java、Java EE以及移动应用的开辟。如三星、IBM、惠普、花旗集团、西门子、斯坦福大学、波音公司等着名机构均使用MyEclipse进行Java、JavaEE开辟,Eclipse采用的技能是IBM公司开辟的,是一种基于Java的窗口组件,Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。80%以上的全球产业100强企业均是MyEclipse的用户。。
Eclipse的设计思想是:一切皆插件。Eclipse焦点很小,其它功能都以插件的形式附加于Eclipse焦点上。Eclipse基本内核包括:API, JDT, PDE等。
(3)Eclipse计划
Eclipse是由不同的计划组合而成。它的计划包括Eclipse平台本身与Eclipse Java开辟工具(JDT)以及富客户端平台(RCP)。
TPTP是提供一个软件开辟职员可以构建测试和调试等环境分析和基准测试工具。
WTP:用java企业版web应用程序开辟工具扩展Eclipse平台。由以下部分构成:HTML、JavaScript、CSS、JSP、SQL、XML DTD,XSD和WSDL源代码编辑器
BIRT:提供Web应用程序基于Java enterprise edition(尤其是)陈诉的开辟工具。
VEP: 在Eclipse框架创建一个图形化用户界面的代码生成工具。
Eclipse modeling framework(EMF):在 XMI规范描述的模型的基础上,生成一个结构化的数据模型开辟工具以及生成应用程序的代码。
GEF:主要是用来让开辟职员在一个应用程序模型上方便快捷地创建一个丰富的图形化编辑工具。
UML2.0编译器:在UML2.0模型的实现上,来促进建模工具的发展。
AspectJ:Java语言扩展。
ECF:专注为Eclipse平台的应用程序的创建起沟通工作。
CDT:为Eclipse平台提供了一个功能齐全的C和c++的集成开辟环境(IDE),它使用GCC编译器。
PDT:Eclipse平台提供了一个功能齐全的PHP集成开辟环境(IDE)。
COBOL:将在Eclipse平台上创建一个功能齐全的COBOL集成开辟环境。PTP:将开辟一个框架,用于并行盘算机的一套工具集成并行的工具平台,平台是便携式,可伸缩的和基于尺度。
eRCP嵌入式平台,计划扩大Eclipse的富客户机平台的嵌入式装备。这个平台主要是一个 RCP组件的一个子集,它使应用程序模型可以大致雷同的桌面环境能够在嵌入式装备中使用。

[*] 需求分析   
[*] 需求分析描述

需求分析值得是去搭建一个新的或修改一个已经存在的软件体系时分析出体系的目的怎样、范围是什么养的、该体系是怎样定义和该体系应实现什么功能时所做的分析工作。需求分析描述的是软件编译工程中的一个十分关键的过程。需求分析阶段的主要工作是确定软件功能并分析描述软件的作用。在该过程中,软件体系分析师和软件工程师应相识和分析顾客的需求。在确定了客户须要的功能后他们才分析和寻求搭建新的体系的方法。
需求分析,指对要办理的题目进行详细的分析,弄清晰题目的要求。需求分析的任务指通过调查实际天下处置惩罚的对象,相识原体系工作概况,明确用户的各种需求并在此基础上确定出租车计价体系的各种功能。 所以需求分析是一项重要的工作,也是最困难的工作

[*]
[*]
[*]需求分析的任务


(1)确定体系要求
体系的功能需求是对软件体系的一项基本需求,但却并不是唯一需求,通常有下述几方面的综合要求:功能的需求、性能的需求、可靠性的需求、出错处置惩罚的需求、接口需求。
 (2)分析体系数据要求
体系处置惩罚的信息和体系产生的信息决定了体系的面貌,对软件设计有很大的影响,因此,分析体系数据要求,是软件分析的一个重要任务。分析体系数据要求一样寻常创建数据模型。复杂的数据由许多基本的数据元素构成,数据结构表示数据元素之间的逻辑关系。可以使用数据字典进行全面数据的定义,为了提高可理解性,通常可使用图形化工具辅助
(3)导出体系的逻辑模型
综合上述两项分析的结果可以导出体系的详细的逻辑模型,通常用数据流图、E-R图、数据字典描述这个逻辑模型。

[*]
[*] 本体系的需求
[*]体系的要求


(1) 可以添加车辆信息;
(2) 可以删除车辆信息;
(3) 可以添加司机信息;
(4) 可以删除手机信息;
(5) 可以维护车辆信息;
(6) 可以管理车辆信息;
(7) 可以维护司机信息;
(8) 可以管理司机信息;
(9) 可以查询订单,实现出租车计价

[*]
[*]
[*]体系实现目的


(1)通过设计公道的、规范化的数据存储结构,对企业的基础数据进行有效的组织、维护,提供同一的基础数据管理平台。
(2)为其他子体系的运行提供共享数据环境,减少数据冗余,提高管理服从。
(3) 灵活设置业务管理中须要的价格、日期等参数。
(4)提供对出租车、司机、订单的设置和管理。
(5)采用矩阵式权限管理和各级数据校验,实现各条理的数据保密,面向不同的用户,分配不同的权限,并表现不同的界面,使操作方便安全。

[*]
[*] 体系流程图、数据流图和数据字典
[*]体系流程图


体系流程图是一个体系流经的信息流、体系流经的部件流和体系流经的观点流的图形化代表。流程图主要用来说明某一过程的流程。这种过程是完成一项任务必需的管理过程。
出租车计价体系的体系流程图如图3-1所示。
https://i-blog.csdnimg.cn/direct/df42031979f546faae52c85dc6f37a27.png

图3-1体系流程图

[*]
[*]
[*]数据流图


数据库流图:在数据传递与加工角度中,是用图形方式表达该出软件开辟的逻辑。例如:租车计价体系的思维逻辑是怎样的,结构化体系分析方法的主要表达工具是数据流图,用数据流图是表示软件模型的图示方法。
体系数据流图如图3.2所示
https://i-blog.csdnimg.cn/direct/df3b9792b17343b9bb092255ccd746f7.png

图3-2体系顶层数据流图

  数据库回显处置惩罚,通过数据回显,将信息表现在屏幕上,如图4.3所示:

https://i-blog.csdnimg.cn/direct/e4f47854aaf645a69a1b305361532fd8.png
图3-3数据库回显处置惩罚

[*]
[*]
[*]数据字典


数据字典是指对数据的数据项、数据结构、数据流、数据存储、处置惩罚逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
数据字典(Data dictionary)是一种目录,是用户访问的记录数据库和应用程序源数据。数据字典最重要的作用是作为分析阶段的工具。在结构化分析中,数据字典的作用是给数据流图上每个因素加以定义和说明。
(1).出租车维护:
出租车信息的查询:通过数据库查询出租车的车型,车号,以及是否可用
出租车信息的增加:向数据库中添加出租车的车型,车号,以及是否可用
出租车信息的修改:对数据库中已经存在的出租车的车型,车号,以及是否可用的信息进行修改
出租车信息的删除:删除数据库中已经存储的出租车的信息
(2).司机信息的维护:
司机信息的查询:通过数据库查询出司机的年龄,性别,学历,名字等信息
司机信息的增加:向数据库中添加司机的年龄,性别,学历,名字等信息
司机信息的修改:对数据库中已经存在的司机的年龄,性别,学历,名字等信息进行修改
司机信息的删除:删除数据库中已经存储的司机的信息
(3).订单信息的生成(出租车计价功能):
通过java多线程,模拟出租车在路上的情形,通过距离计费的方式,将订单的时间,搭客的信息,订单的价格等插入数据库中
(4).订单信息的维护:
订单信息的查询:通过数据库查询出订单的时间,价格等信息
订单信息的删除:删除数据库中已经存储的订单信息
订单信息的修改:对数据库中已经存在的订单的时间,价格等信息进行修改




[*] 概要设计   
[*] 概要设计引入
[*]概要设计引入


软件的研制工作颠末需求分析阶段以后,已经完全(或者说基本)弄清了用户的需求,也就是已经办理了要让所开辟的软件的功能是怎样的,同时还在软件说明书中详尽的叙述表达了软件开辟的需求。在这设计阶段后,就可以开始着手对软件需求的实施工作。
设计阶段分为两部分,概要的设计与详细的设计 。在概要的设计阶段偏重办理了需求实现的程序设计题目。其中就包括思量被开辟的软件体系由若干个模块来构成,并且来决定各模块接口的关系以及模块之间信息的传递。详细设计是决定每个模块内部的算法。在概要设计完成后,必须进行阶段的评审工作。
软件概要设计工作由设计员完成。设计员由经验丰富的软件职员担任。软件概要设计的方法有结构化设计(SD)方法, Jackson方法, Parans方法, LCP方法等。

[*]
[*]
[*]概要设计的任务


(1)设计软件体系结构(简称软件结构)
为了实现目的体系,最终必须设计出构成这个体系的所有程序和数据库(文件),对于程序,则首先进行结构设计。软件结构的设计,在软件的需求分析阶段,体系为条理结构。设计阶段,根据需求分析的结果,划分为模块,并构成模块的条理结构。软件结构的设计会影响下一阶段设计与编码质量和团体特性。
(2)数据结构及数据库设计
数据结构设计:数据字典对数据构成、操作约束、数据的关系等进行了描述,确定了数据结构的特点,并且在概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。数据库设计:数据库的设计指数据存储文件的设计。
(3)编写概要设计文档
文档主要有:概要设计说明书,数据库设计说明书,用户手册。
(4)评审
对是否完整实现了规定的功能、性能要求,设计方案的可行性,关键的处置惩罚及内外部接口定义的准确性,各部分间的一致性等都进行了评审。

[*]
[*] 体系功能模块
[*]体系功能模块描述


(1)出租车信息模块包含:出租车辆的车型,出租车辆的车牌号,出租车辆是否维修,可以实现基本信息的维护,增加,修改,删除。
(2)司机管理模块包含:司机信息设置,司机职务设置,司机学历,司机编号,司机生日等,可以实现对司机的基本信息如:员工编号,姓名等的查询,增加,修改,删除。
(3)计价模块包含:通过游客点击派车,从而使得出租车按照时间生成一个订单,插入到订单表中
(4)订单模块包含:订单数汇总,打印订单数,可以实现查看订单数,并且将这些数据打印出来

[*]
[*]
[*]体系功能模块条理方框图


软件的结构偶然成为软件的体系结构,它是软件体系中最本质的东西。精良的体系结构意味着实用、高效和稳固。条理结构图是SD方法中使用最广泛的软件体系结构。
条理图用来描述软件的条理结构。条理图中的一个矩形框表示一个模块,矩形框之间的连线表示模块之间的调用关系。体系条理如图4-1所示。












https://i-blog.csdnimg.cn/direct/cc8007131d334ca5918e45408a0b6ca1.png
                          图4-1体系条理图

[*]
[*] 体系数据库设计
[*]概念数据模型


概念数据模型是面向数据库用户实现的模型,主要的作用是用来描述天下的概念化结构。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。其只描述信息的特性和强调语义,而不涉及信息在盘算机中的表示,是实际天下到信息天下的第一层抽象。它以实体-接洽(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。概念数据模型它的英文是:Conceptual Data Model,一样寻常用CDM来表示。
条理模型: 有且仅有一个结点无父结点,这个结点称之为根结点; ② 其他结点有且仅有一个父结点。
条理数据库模型的主要优点:
条理数据库模型本身比力简单, 条理数据库模型对具有一对多的条理关系的部门描述的非常天然、直观,并且非常容易让人理解,条理数据库模型提供了精良的完整性支持。
条理数据库模型的主要缺点:
在实际的天下中有许许多多的非条理性的接洽,如多对多的接洽等,一个结点具有许多个父结点等,条理模型表示这类接洽的方法很鸠拙,对于插入和删除的操作的限定种种比力多、查询子结点事必须颠末父结点的,由于结构的精密,条理的命令趋于程序化。
CDM是建模过程中的关键阶段,此阶段把表现天下中须要生存的信息抽象成信息天下中的实体接洽,产生实体接洽图。创建概念数据模型是一项综合性的工作。
概念数据模型的数据对象有域(Domain),数据项(Data item),实体(Entity),实体属性(Entity attribute),接洽(Relationship)和继续链(Inheritance link)等.这些数据对象只是在概念条理上的抽象,并未涉及到物理数据库的实现.
创建CDM的过程就是对信息体系进行概念条理上的抽象和表达的过程,用CDM的各种对象来描述信息体系内部的实体之间的关系,创建CDM的步骤:
(1)为CDM定义域(Domain):主要包括设置所建域的域名、数据范例、长度、精度和扩展选项等。
(2)定义数据项:是指定数据项名、代码、选择域(或指定数据范例、长度、精度)等。
(3)定义实体:打开List of Entities对话框创建相干实体
(4)定义实体属性:包括设置实体名称、代码、规则等,并为所创建的实体引入相干的数据项。
(5)定义接洽:接洽指在相干实体之间创建接洽,同时设置所建接洽的属性(包括接洽名、设置一对多、多对多等可选接洽等)。
(6)创建子模型:首先应确定所建CDM应划分成几个子模型,再对各子模型加入相应的各个实体。
(7)定义继续:使用继续毗连创建实体间继续关系,并设置继续属性(包括继续名称、代码、设置继续方向等)。
(8)定义查抄参数并查抄所创建的CDM

[*]
[*]
[*]数据库表


为了数据存储更加有服从,数据库存储时的表会有变化,在这个体系中,总共定义了4个表,如下:
                        表5.1用户表
用户表
字段名
字段范例
是否可为空
username
Varcha
N(主键,不可为空)
Password
Varchar
N
Type
varchar
N

表5.2司机表
司机表
字段名
字段范例
是否可为空
id_p
int
N(主键,不可为空,主动递增)
name
varchar
N
sex
varchar
N
nation
varchar
N
jiguan
varchar
N
idcard
varchar
N
xueli
varchar
N
school
varchar
N
tel
varchar
N
mail
Varchar
N
address
varchar
N
state
varchar
N

表5.3订单表
订单信息
字段名
字段范例
是否可为空
id_ch
int
N(主键,不可为空,主动递增)
name
varchar
N
number
varchar
N
boss
varchar
N
mile
varchar
N
charge
varchar
N

表5.4车辆表
车辆信息
字段名
字段范例
是否可为空
id_c
int
N(主键,不可为空,主动递增)
number
varchar
N
xinghao
varchar
N
type
varchar
N
F_number
varchar
N
j_number
varchar
N
selltime
datetime
N
state
String
N
inf
varchar
N





[*] 详细设计及实现编码   
[*] 详细设计概述

详细设计是软件开辟最为重要的一个步骤,即对概要设计的一个细化,是详细设计每一个模块算法的实现,所需的局部结构设计。详细设计的主要任务为设计每一个模块的实现算法、局部数据结构。详细设计的有两个设计目的:模块功能的算法逻辑上要准确,算法描述必须要简明易懂。
传统软件开辟方法的详细设计主要是用结构化程序设计法。其中的工具中:图形工具有业务流图、程序流程图、Problem Analysis Diagram图、NS图。语言工具有伪码和PDL(Program Design Language)等。

[*]
[*] 体系各功能模块的实现

详细设计阶段,每个功能模块是单独思量。详细设计要确定模块内部的详细实行过程,包括:局部数据组织、控制流、每一步的具体加工要求及种种实现细节等。详细设计的方法是结构化程序设计。
由于是分别思量每个模块,所以题目的规模已大大缩小,而且有了结构化程序设计的方法,一样寻常来说,详细设计的难度已不大了,关键是用一种合适的表示方式来描述每个模块的实行过程,这种表示方式应该是简明而准确。

[*]
[*]
[*]体系程序流程图


体系程序流程图是程序分析中最为基本、最为重要的分析技能。体系程序流程图是进行程序流程分析过程中最为基本的工具。它是运用工序图示符号对生产现场的整个制造程序做详细的记录,可以对零部件和产物在整个制造中的检验、储存、操作、搬运.等待等作详细的研究分析,最重要的是用于分析其搬运距离和储存等“隐蔽成本”的浪费。程序流程图是人们对办理题目的方法、思路或算法的一种描述。
流程图的优点:
(1)采用简单规范的符号,画法简单。
(2)结构清晰,逻辑性强。
(3)便于描述,容易理解。

[*]
[*]
[*]用户登录流程图


用户登录的图标在首页上设置,主要的作用是吸收用户登陆的信息。在点击“登录”图标的同时,则将会对用户的信息进行验证例如用户名称和暗码简直认去验证,假如数据表的用户名称和暗码简直认验证是存在在那么就是表现登陆成功直接进入下一界面,并且进行查寻与验证数据的准确与否然后返回首页,否则提示信息错误继续跳转验证用户信息界面。如图5-1所示:
https://i-blog.csdnimg.cn/direct/380f91858c0746e593c39584d505aefa.png
图5-1用户登录流程图
https://i-blog.csdnimg.cn/direct/6750c8892fde4a1ba0dc576f10f00518.png
https://i-blog.csdnimg.cn/direct/7916ee78c8884eacb71b8d08441830e3.png


https://i-blog.csdnimg.cn/direct/491f8b70b12140d8ac84a711446efaf5.png
https://i-blog.csdnimg.cn/direct/9746d7f213554191bfaa7ebcad723183.png


结束语

随着经济的发展,出租车已然成为方便市民出行的重要交通工具之一,他与我们的生活痛痒相干。出租车行业的发展必将影响这全球经济和交通的发展,因此我们应该对出租车行业的发展多加以关注并予以创新。
颠末了两个多月的学习与工作,我终于完成了关于《出租车计价器设计与实现》的论文。从开始接到论文题目到体系的实现,再到论文的独立完成,每一步对我来说都是新的实验与挑战,这也是我在大学期间独立完成的最大的项目。从我刚开始的五发开始,没有一点思路到现在对Jsp与Myeclipe等等技能的基本操作,我学到了很多非常有效的知识。使我本身的稚嫩作品一步步美满起来。每一次改进都是我学习的劳绩,每一小步的进步都让我非常的高兴。
通过这次本科毕业程序的设计,让我对体系的开辟有了更为深刻的理解,积聚了一定的软件编辑经验。虽然在去年的生产实习中打仗到了客户端制作,但是只是比力单一页面的设计,没有综合一个完整的应用项目的各环境。而颠末这次的毕业设计,颠末本身理论知识与在网上不断的学习的程序编程的能力,我基本上掌握了这个出租车计价设计与实现的编程的基础,在这不断地编程中,我的一些题目颠末老师和同学的资助下逐一办理了,在办理各种困难的过程中,我学习了很多,并且学会了一些小本领的应用。
固然,由于短短的有限一段时间,我的个人编程能力的不敷以及开辟经验的缺乏,我的这个程序还有很多须要改进的东西,如出租车计信息、出租车计费信息等的功能比力简单,我们可以充实的使用SQL语句来开辟功能更为强大的查询体系。此外,在以后体系运行的过程中,可能还会碰到种种一些小题目,我将会在以后进行进一步的修改,并加以开辟。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于java出租车计价器设计与实现【源码+文档+摆设讲授】