基于java的出租车管理系统设计与实现Word文档下载推荐.docx
《基于java的出租车管理系统设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于java的出租车管理系统设计与实现Word文档下载推荐.docx(52页珍藏版)》请在冰豆网上搜索。
followedbysystematicanalysisofthespecificcompletionofthedataflowanalysisanddatadictionary;
systemcompletedthedesignphasethemainfunctionalmodulesofthedivision,thedatabasedesignandsysteminterfacedesign.Thisphaseofthefunctionofeachmoduleindetailthedesign,formingafunctionalblockdiagramofthesystem,onthisbasis,havechosentherightdevelopmentmodel;
databasedesignfirsttestedtheconceptdesign,followedbyalogicdesign,andfinallycompletedthedesignofthedatabasetable.
Accordingtopreviousanalysisanddesignphase,thesystemdecidedtouseC/Sstructure,C++asthedevelopmentoftechnology,thedatabaseusesMicrosoftSQLServer2000,completedasystematicprocesstoimplement.Designandimplementationofthissystemfortheoperationofthetaximanagementsystemasafoundationforthemanagementofthetaxicarrentalcompaniesprovidegoodconditions.
KeyWords:
taxi;
ManagementSystem;
StructuredAnalys
1引言
1.1项目开发的背景
随着经济的发展,出租车的数量不断增加,出租车已经成为人们日常生活中必不可少的一部分,出租车公司的管理日益繁重,从而对出租车的管理要求也更加严格。
在传统的手工管理时期,出租车公司出租车的各方面的管理都需要耗费大量纸张的精力,且由于业务量的日益增多,出车记录及出车预约等任务非常复杂,都严重的影响了出租车公司的发展。
经常造成出租车信息记录丢失,极大地影响了出租车公司的管理。
出租车公司要生存发展,就必须在各个方面加强管理,并要求出租车公司有更高的信息化集成,能够对出租车公司的整体资源进行集成管理以及计算机化的管理。
现代出租车公司已意识到,出租车公司间的竞争是综合实力的竞争,要求出租车公司有更强的资金实力,更快的市场响应速度。
这就要求出租车公司统一计划,协调生产步骤,汇总信息,调配出租车公司内部资源,实现既要独立又要统一的资源共享管理。
随着信息技术的发展,出租车公司为提高出租车管理的效率,加快出租车公司的运转速度,决定开发“出租车管理系统”。
1.2项目开发的目的
出租车管理系统的开发目的是使出租车公司出租车的管理模式从手工记录转变成信息管理,为其出租车管理提供方便条件。
对出租车公司的实际情况进行调研之后,进行详细的需求分析,对现有的管理模式进行改进,开发出一套新型的管理系统,从中领悟系统开发的思想,掌握系统开发的流程和方法。
随着信息系统的不断完善,出租车公司的管理将越来越依赖于信息化的管理。
所以系统开发将围绕出租车公司的实际情况,使之能迅速适应出租车公司的需要。
随着出租车公司的规模不断变大,管理系统也将不断完善,使其能更加适合出租车公司的发展需求。
出租车管理系统的实施具有如下现实意义:
第一,节省出租车管理的管理人员;
第二,出租车公司管理人员可以随时浏览查看,而且更加直观;
第三,改变了以前工资手工记账的方式,电脑录入更加方便快捷;
第四,实现了出租车管理的计算机化;
第五,对不同信息进行分类和管理。
2可行性分析及总体设计原则
2.1可行性分析
为避免投资失误,保证新系统的成功开发和运行,从技术、经济和社会三方面对本系统的可行性进行了分析和研究。
可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。
可行性分析应具有预见性、公正性、可靠性、科学性的特点。
可行性研究主要内容是要求以全面、系统的分析为主要方法,经济效益为核心,围绕影响项目的各种因素,运用大量的数据资料论证拟建项目是否可行。
对整个可行性研究提出综合分析评价,指出优缺点和建议。
为了结论的需要,往往还需要加上一些附件,如试验数据、论证材料、计算图表、附图等,以增强可行性报告的说服力软件可行性分析最根本的任务是对以后的行动方针提出建议。
如果问题没有可行的解释,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;
如果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计划。
2.1.1技术可行性
本系统的开发基于JSP和SQLServerExpress2000数据库技术。
SQLServer2000与JSP集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序[5]。
出租车管理系统是一个基于数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,利用现有技术条件可以达到该系统的功能目标[6]。
本人在学校期间已经掌握JSP和SQLServer2000的设计思想和代码编写。
同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。
JavaServerPage简介:
JavaServerPage或简称为JSP是由Sun公司在Java语言上开发出来的一种动态网页制作技术,它提供了一种建立动态网页的简单方法,并为开发人员提供了一个Server端框架,基于这个框架,开发人员可以综合使用HTML,XML,JAVA语言以及其他脚本语言,灵活,快速地创建和维护动态网页,特别是目前的商业系统。
作为JavaTM技术的一部分,JSP能够快速的开发出基于所有Web服务器和应用服务器环境,独立于平台的应用程序,而且具有非常强的可伸缩性。
同时,JSP把用户界面从系统内容中分离开来,使得设计人员能够在不改变底层动态内容的前提下改变祖国网页布局。
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
这样跨平台的特性己包含了目前大部份网站服务器配置环境,再加上它的语法写作方式可媲美ASP般的易学易懂,而且在网络安全技术方面甚至已超越ASP技术。
所以,相信很快的时间内极有可能取代现有网页编译技术,而成为商业网站的新标准。
在本节中我们将会讨论JSP技术的特性,让您更加了解这项新技术。
MicrosoftSQLServer2000简介:
SQLServer2000是一个基于关系型数据库模型建立的数据库管理系统软件(DBMS)。
它帮助用户方使地得到所需信息,并提供强大的数据处理工具。
它可以帮助用户组织和共享数据库信息,以便于根据数据库信息作出有效的决策。
另外,仅有这样—个数据库管理系统软件(DBMS),则只能进行一些信息系统所需要的简单数据处理,且对操作者有较高的操作技能要求。
因此,信息系统的开发者都是在某种数据库管理系统软件〔DBMS〕环境下编写相应的应川程序,以形成一个能够满足应用需求且操作尽可能简单的应用型信息系统,这被称之为二次开发。
SQLServer2000还具有以下特点:
1.使信息更易于查找和使用
SQLServer2000继续为简便地查找信息提供易于使用的工具。
2.支持Web功能的信息共享
SQLServer2000可以通过企业内部网络Internet很简便地实现信息共享,而且它可以很容易地将数据库定位到浏览器中,它将桌面数据库的功能和网站的功能结合在一起。
3.用于信息管理的强大解决方案
高级用户和开发人员可以创建那些将SQLServer2000界面(客户端)的易用性和SQL服务器的可扩展性和可靠性结合在一起的解决方案。
4.改变了数据库窗口
可在SQLServer2000容纳并显示新的对象,增强了SQLServer2000数据库的易用性。
5.提供名称自动更正功能
自动解决当用户重新命名数据库对象时出现的常见负面效应。
例如,当用户重命名表中的字段时,将自动在诸如查询的相关对象中进行相应的更改。
6.具有子数据表功能
子数据表在同一窗口中,提供了嵌套式的视图,这样就可以在同一窗口中专注于相关的数据并对其进行编辑。
7.用户只需简单地将SQLServer2000对象(表、查询等)从数据库放到ODBC数据源中,即可从MicrosoftSQLServer2000中将数据导出到MicrosoftACCESS2000。
8.数据访问页功能
该功能可使用户快捷方便地创建数掂HTML页,并通过数据HTML页,将数据库应用扩展到企业内部网络Internet上。
这将帮助用户比以往更快捷、高效的方式共享信息。
9.共享组件的集成
SQLServer2000利用新的Web组件和位于浏览器中的COM控件,为用户提供了多种查看和分析数据的方式。
10.MicrosoftSQLServer交互性
MicrosoftSQLServer2000支持OLEDB,使用户可以将SQLServer2000界面的易用性与诸如MicrosoftSQLServer的后端企业数据库的可升级性相结合。
JavaBeans简介
JSP作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类JSP应用程序中,JSP+JavaBean的组合成为了一种事实上最常见的JSP程序的标准.JavaBean是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。
在Java模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。
对于程序员来说,最好的一点就是JavaBean可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。
JavaBean通过Java虚拟机(JavaVirtualMachine)可以得到正确的执行,具有平台无关性。
一个JavaBean有三个部分组成:
1.属性(Property)
Bean的属性就是对象的属性,但提供了属性读取和设置的接口支持。
例如一个时钟Bean可以有时区和镇铃属性,日历Bean可以有年份和月份属性。
每个属性通常遵守简单的方法命名规则。
这样可以很方便的找出Bean提供的属性,然后查询属性值或改变属性值,对Bean进行操作。
2.方法(Method)
由于Bean本身是Java对象,调用这个对象的方法是与其交互作用的唯一途径。
JavaBean严格遵守面向对象的类设计逻辑,不让外界访问其任何实例字段(没有Public字段)。
这样,方法调用的是接触Bean的唯一途径。
3.事件(Event)
Bean与其他软件组件交流信息的主要方式是发送和接收事件。
这与对象之间通过消息通信类似。
JavaBean传统的应用在于可视化的领域,如AWT下的应用。
自从JSP诞生后,JavaBean更多的应用在非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。
利用非可视化JavaBean,来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如JSP)的分离,使得系统具有更好的健壮性和灵活性。
JAVA简介
Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。
Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
Java采用强类型变量检查,即所有变量在编译之前必须声明。
Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。
Java采用静态联,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。
Java语言是一种与平台无关的编程语言,它具有“一次编写,随处运行”的特点,所以,非常适合于分布式的网络编程。
随着Internet网络在我国的迅速普及,参与和从事网络编程的人员也在不断地增加,同时,也将有更多的网络开发者选用Java语言作为编程工具,而一些C和C++程序员也在逐步转向应用Java语言编写程序。
JDBC驱动程序简介:
从编程的角度出发,有两个主要的类负责建立与数据库的连接。
第一个类DriverManager是在JDBCAPI中提供的为数不多的实际类。
DriverManager负责管理已注册驱动程序的集合,实质上就是提取使用驱动程序的细节,这样程序员就不必直接处理它们。
第二个类是实际的JDBCDriver类。
JDBC驱动程序有四种类型。
第一种驱动程序:
它们都使用JDBC-ODBC桥,这是作为JDK的一个标准部分包括的。
第一种驱动程序通过附加在JDBC-ODBC桥的“开放式数据库连接性”(OpenDataBaseConnectivity(ODBC))驱动程序来区分。
要连接到一个不同的数据源,您只需要使用ODBC管理员注册(或有效地绑定)一个不同的ODBC数据源到合适的数据源名称即可。
第二种驱动程序也称为部分Java驱动程序,因为它们直接将JDBCAPI翻译成具体数据库的API。
对于分布式应用程序,这种需求会产生额外的许可证问题,还可能带来可怕的潜在代码分布问题。
第三种驱动程序是纯Java驱动程序,它将JDBCAPI转换成独立于数据库的协议。
JDBC驱动程序并没有直接和数据库进行通讯;
它和一个中间件服务器通讯,然后这个中间件服务器和数据库进行通讯。
这种额外的中间层次提供了灵活性:
可以用相同的代码访问不同的数据库,因为中间件服务器隐藏了Java应用程序的细节。
要转到不同的数据库,您只需在中间件服务器上改变参数。
第四种驱动程序是纯Java驱动程序,它直接与数据库进行通讯。
很多程序员认为这是最好的驱动程序,因为它通常提供了最佳的性能,并允许开发者利用特定数据库的功能。
当然,这种紧密耦合会影响灵活性,特别是如果您需要改变应用程序中的底层数据库时。
这种驱动程序通常用于applet和其它高度分布的应用程序。
JDBC是Java的开发者——Sun的JavaSoft公司制定的Java数据库连接JavaDataBaseConnectivity技术的简称,是为各种常用数据库提供无缝联接的技术。
JDBC在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。
JDBC有一个非常独特的动态连接结构,它使得系统模块化。
使用JDBC来完成对数据库的访问包括以下四个主要组件:
Java的应用程序、JDBC驱动器管理器、驱动器和数据源。
简单地说,JDBC能完成下列三件事:
1.同一个数据库建立连接;
2.向数据库发送SQL语句;
3.处理数据库返回的结果。
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。
它由一些Java语言写的类、界面组成。
JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。
也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。
用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。
不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。
Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“WriteOnce,RunEverywhere!
”
Java具有健壮、安全、易用等特性,而且支持自动网上下载,是一种很好的与数据库线连接而使用的编程语言。
它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。
JDBC扩展了Java的能力,如使用Java和JDBCAPI就可以公布一个Web页,页中带有能访问远端数据库的Applet。
或者企业可以通过JDBC让全部的职工(他们可以使用不同的操作系统,如Windwos,Machintosh或UNIX)在Intranet上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。
所有的数据库的对象和方法都在java.sql.*里面,所以首先要importjava.sql.*,要想连接数据库,首先要将驱动程序调入。
Class.forName("
sun.jdbc.odbc.JdbcOdbcDriver"
);
这是JDBC-ODBC的驱动程序。
要想连接一个指定的数据库,必须创建Connection类的一个实例。
Stringurl="
jdbc:
odbc:
Groceryprices"
;
Connectioncon=DriverManager.getConnection(url);
注意在此用到的数据库名称是在ODBC设置控制面板中输入的数据资源名。
URL语法对于不同类型的数据库会很不一样。
语法是这样的:
jdbc:
subprotocol:
subname开头都是JDBC,后面是子协议,然后是ODBC名称。
若要使用纯JDBC驱动程序,必须安装第三方软件提供的驱动程序,一般在数据库的官方网站上可以找到这里不做讨论。
本系统采用JDBC-ODBC的驱动程序连接数据库,并使用JavaBean组件,有效的避免了代码的重复,具体过程如下:
packageexam;
importjava.sql.*;
publicclassExamBean{
StringstrDBDriver="
StringstrDBUrl="
exam"
privateConnectionconn=null;
privateStatementstmt=null;
ResultSetrs=null;
publicExamBean(){
}
publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
conn=DriverManager.getConnection(strDBDriver);
//创建数据库连接对象stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//支持数据回滚
rs=stmt.executeQuery(sql);
}catch(SQLExceptionex){