软件开发工具课程论文Word下载.docx
- 文档编号:16374221
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:10
- 大小:60.62KB
软件开发工具课程论文Word下载.docx
《软件开发工具课程论文Word下载.docx》由会员分享,可在线阅读,更多相关《软件开发工具课程论文Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
1、Java语言起源
Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。
由JamesGosling和同事们共同研发,并在1995年正式推出。
用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:
跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。
另一方面,Java技术也不断更新。
2、Java语言组成
Java由四方面组成:
Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口(JavaAPI)。
3、Java语言体系
Java分为三个体系JavaSE(J2SE)(Java2PlatformStandardEdition,java平台标准版),JavaEE(J2EE)(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(J2ME)(Java2PlatformMicroEdition,java平台微型版)。
4、Java语言优势
与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。
全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
2、Eclipse简介
1、Eclipse背景资料
Eclipse这样功能完整且成熟的开发环境,是由蓝色巨人IBM所释出。
IBM花了4千万美金来开发这个IDE(IntegratedDevelopmentEnvironment)。
第一版1.0在2001年11月释出,随后逐渐受到欢迎。
Eclipse已经成为开放原始码计划(OpenSourceProject),大部分的开发扔然掌握在IBM手中,但是有一部份由eclipse.org的软件联盟主导。
Eclipse项目由ProjectManagementCommittee(PMC)所管理,它综观项目全局,Eclipse项目分成3个子项目:
平台-Platform
开发工具箱-JavaDevelopmentToolkit(JDT)
外挂开发环境-Plug-inDevelopmentEnvironment(PDE)
这些子项目又细分成更多子项目。
例如Platform子项目包含数各组件,如Compare、Help与Search。
JDT子项目包括三各组件:
UserInterface(UI)、核心(Core)及除错(Debug)。
PDE子项目包含两各组件:
UI与Core。
2、Eclipse基本简介
Eclipse框架的这种灵活性来源于其扩展点。
它们是在XML中定义的已知接口,并充当插件的耦合点。
扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。
任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。
除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当用调试器逐一检查应用时,UML对话框可以突出显示正在关注的器件。
事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台。
Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
Eclipse联盟已经宣布将在2004年中期发布其3.0版软件。
这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。
缺点就是较复杂,对初学者来说,理解起来比较困难。
Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。
IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。
目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。
Eclipse是一个开发源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。
3、Eclipse体系结构
Eclipse类似于“软总线”的体系结构,Eclipse的核心部分(PlatformRuntime)类似于一条“即插即用”的“总线”,它提供了许多的“插槽”(扩展点:
extensionpoint)。
其余的部分都可看成类似于外部设备的“插件”(Plug-in),可随时加载和卸载。
更为灵活的是每个插件又提供了“插槽”可继续安装其他的插件。
Eclipse分为Eclipse平台、JDT、PDE、其他的插件几个部分。
其中Eclipse平台是整个系统的基础,Eclipse的核心。
JDT是提供了用于编辑、查看、编译、调试和运行Java代码的专门插件。
PDE构建于Eclipse平台和JDT之上,提供了专门开发插件的工具。
Eclipse平台是在其上创建插件扩展的核心框架和服务的名称,是一个通用的基础架构。
平台由平台运行时、工作空间、工作台、帮助、小组、调试构成。
平台在结构上大致可分为核心(core)和用户界面(UI)两层。
核心是与用户界面无关的基础结构,包含平台运行时和插件管理、工作空间和资源管理以及版本和配置管理。
其中平台运行时又是Eclipse平台的核心。
4、Eclipse的优点
A、Eclipse在多重平台上提供一致的特性集
B、Eclipse支持超过Java的语言
C、Eclipse是开源且免费的,但得到全面支持
D、Eclipse是真正地可扩展及可配置的
E、Eclipse是行业力量
F、Eclipse可无限扩展的强大插件功能
3、以Eclipse为工具通过Java语言解决问题
Description
Runningataxistationisnotallthatsimple.Apartfromtheobviousdemandforacentralisedcoordinationofthecabsinordertopickupthecustomerscallingtogetacabassoonaspossible,thereisalsoaneedtoscheduleallthetaxirideswhichhavebeenbookedinadvance.Givenalistofallbookedtaxiridesforthenextday,youwanttominimisethenumberofcabsneededtocarryoutalloftherides.
Forthesakeofsimplicity,wemodelacityasarectangulargrid.Anaddressinthecityisdenotedbytwointegers:
thestreetandavenuenumber.Thetimeneededtogetfromtheaddressa,btoc,dbytaxiis|a-c|+|b-d|minutes.Acabmaycarryoutabookedrideifitisitsfirstrideoftheday,orifitcangettothesourceaddressofthenewridefromitslatest,atleastoneminutebeforethenewride'
sscheduleddeparture.Notethatsomeridesmayendaftermidnight.
Input
OnthefirstlineoftheinputisasinglepositiveintegerN,tellingthenumberoftestscenariostofollow.EachscenariobeginswithalinecontaininganintegerM,0<
M<
500,beingthenumberofbookedtaxirides.ThefollowingMlinescontaintherides.Eachrideisdescribedbyadeparturetimeontheformathh:
mm(rangingfrom00:
00to23:
59),twointegersabthatarethecoordinatesofthesourceaddressandtwointegerscdthatarethecoordinatesofthedestinationaddress.Allcoordinatesareatleast0andstrictlysmallerthan200.Thebookedridesineachscenarioaresortedinorderofincreasingdeparturetime.
Output
Foreachscenario,outputonelinecontainingtheminimumnumberofcabsrequiredtocarryoutallthebookedtaxirides.
SampleInput
2
08:
001011916
079161011
069161011
SampleOutput
1
题意:
有一些出租车,分别要从一个地方去往另一个地方载客,从一个地方驶向另一个地方的时间为这两个地方的行坐标之差的绝对值+列坐标之差的绝对值(|a-c|+|b-d|),如果一个出租车从一个地方达到另一个地方然后驶向另一个起点时间足够的话,可以取代另一个出租车,这样就可以少用一个出租车,题目求的是最多可以少用几辆出租车。
给定测试数据组数,每组给定出租车数量,然后是没个出租车的出发时间,起点坐标,终点坐标。
思路:
我们把每个乘客的旅程看成一个点,那么如果去搭载第i个人的车在把第i个人送到目的地后,立即启程去第j个人的出发点,并且能在第j个人的出发时间前赶到,那么这两个人就只需要一辆车就可以满足需要,于是把每个点拆成两个点,一个代表起点,一个代表终点。
我们就在点i和点j之间建边就好,对应在二分图中的一条匹配边,依次类推,枚举每两个人的旅途,依次判断然后建边,最后求出最大二分匹配,再根据
最小路径覆盖=节点数-最大二分匹配
即可得到结果。
原理:
最小路径覆盖问题:
用尽量少的不相交简单路径覆盖有向无环图的所有顶点。
对于路径覆盖中的每条连接两个顶点之间的每条有向边pi->
pj,我们可以在匹配图中对应做一条连接pi'
与pj'
'
的边,这样做出来图的就是一个匹配图。
原图的路径覆盖和新图的匹配间有对应关系:
v路径要求不能相交,恰好对应于匹配中两匹配边不能有公共端点。
(1):
于是求最大匹配后,每条覆盖边都是匹配中的一条边,不能被匹配上的点,即是路径的最后一个点。
有多少个不能被匹配的点,就有多少条路径存在。
(2):
如果匹配数为零,那么不存在有向边,于是显然有最小路径覆盖=节点数;
如果在P'
中增加一条匹配边pi'
->
pj'
,那么在图P的路径覆盖中就存在一条由pi连接pj的边,也就是说pi与pj在一条路径上,于是路径覆盖数就可以减少一个;
如此继续增加匹配边,每增加一条,路径覆盖数就减少一条;
直到匹配边不能继续增加时,路径覆盖数也不能再减少了,此时就有了前面的公式。
路径数=原点数-匹配边数。
因此我们使匹配边数最大,即是使路径数最小。
源代码:
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.util.Arrays;
classMain{
staticintn=0;
//提前预定的taxi总数
staticfinalintMAX=505;
//最大容量
staticBooked[]booked=newBooked[MAX];
//taxi对象数组
staticboolean[][]graph=newboolean[MAX][MAX];
//建图
staticboolean[]visit=newboolean[MAX];
//访问标记
staticint[]link=newint[MAX];
//记录前节点
publicstaticvoidmain(String[]args)throwsException{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
intCase=Integer.parseInt(br.readLine());
while(Case--!
=0){
n=Integer.parseInt(br.readLine());
for(inti=1;
i<
=n;
i++){
String[]ss=br.readLine().split("
"
);
inttime=Integer.parseInt(ss[0].substring(0,2))*60+
Integer.parseInt(ss[0].substring(3));
//计算出发时间
booked[i]=newBooked(time,Integer.parseInt(ss[1]),Integer.parseInt(ss[2]),Integer.parseInt(ss[3]),Integer.parseInt(ss[4]));
//读入起始坐标
}
init();
System.out.println(n-hungray());
//节点数-最大二分匹配
}
}
staticvoidinit(){//构建图
for(inti=0;
MAX;
i++)
Arrays.fill(graph[i],false);
for(inti=1;
for(intj=i+1;
j<
j++){
if(booked[i].reachable(booked[j]))
graph[i][j]=true;
}
staticbooleanfind(intx){//寻找可增广路
for(inti=x+1;
if(graph[x][i]&
&
!
visit[i]){
visit[i]=true;
if(link[i]==-1||find(link[i])){
link[i]=x;
returntrue;
}
returnfalse;
staticinthungray(){//匈牙利求最大匹配
intans=0;
Arrays.fill(link,-1);
Arrays.fill(visit,false);
if(find(i))
ans++;
returnans;
classBooked{//预计的taxi类
inttime,a,b,c,d;
publicBooked(inttime,inta,intb,intc,intd){
this.time=time;
//出发时间
this.a=a;
//起点坐标
this.b=b;
this.c=c;
//终点坐标
this.d=d;
booleanreachable(Bookedbo){//两条路线能否用一辆taxi来代替
returnthis.time+Math.abs(this.a-this.c)+Math.abs(this.b-this.d)+Math.abs(bo.a-this.c)+Math.abs(bo.b-this.d)<
bo.time;
结果:
4、心得体会
在刚开《软件开发工具》这门学科的时候,我提前在网上查了有关这门学科的一些相关资料和如何学习这门学科,刚开始我认为学习这门学科主要掌握软件开发的一些工具就行了,但在以后的学习中我发现光是这些是不够的,我们通过学习这门学科还应该掌握关于软件开发的工具及其一些相关方面的知识。
在接下来的学习中,我学到了Eclipse的环境、平台体系结构和Eclipse集成开发环境,及在Eclipse中如何进行java开发,详细讲述Java代码的编写及Java代码的编译和调试;
并经过第一次的上机实验我掌握了实际运用Eclipse环境来进行java编程。
另外我也学习到了单元测试的方法和步骤以及TDD(软件驱动开发)和SWT程序开发,最后还了解到了MYSQL及建模工具的一些知识。
另外通过课堂外的五次上机实验实际操作了在Eclipse环境下的一些关于java编程以及调试的相关过程加深了我对Eclipse的学习。
在这门课程外,通过另外一门《Java程序设计与实践教程》的学习,使我对使用java编程知识有了一定的基础知识掌握,让我更好的来学习《软件开发工具》,更容易理解其中的知识,同时通过这门课程的学习我也知道了java的重要性。
在这门课程的最后我Java语言做了一道来自POJ的程序设计题目,并在Eclipse环境下运行并调试了。
通过此次编写的程序,我在使用中感觉Eclipse功能比较强大,不懂的地方从书上或者网上寻求帮助,也从而了解到Eclipse支持很多编程比如C++和Python,并且里面的java开发用户指南和平台插件开发指南对编程很有帮助。
也由此而认识到在学习java语言编程中,不足之处还是有很多,需要在以后的学习中更深入的研究。
也得益于本学期学习Eclipse,在这次编程中对Eclipse有了更进一步的了解,使我在今后的学习和工作中受益匪浅。
通过此次的编程学习,使我对java语言和Eclipse有了更深的认识和了解,同时通过此次的编程我也认识到自己所存在的大量的不足,还需要更努力更进一步的学习。
在以后,我会慢慢了解Eclipse的强大功能,深入学习,在编写程序的能力上争取不断的提高。
5、参考文献
1、《Java编程思想》机械工业出版社BruceEckel编著
2、《Java核心编程技术》电子工业出版社刘中兵Java研究室编著
3、《eclipse从入门到精通》清华大学出版社强锋科技陈刚编著
4、《精通Eclipse》清华大学出版社张大治应群编著
5、《Java程序设计与实践教程》清华大学出版社王薇董迎红编著
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 工具 课程 论文