(完整版)基于Android计算器的设计与应⽤毕业论⽂
北京北⼤⽅正软件技术学院
毕业设计(论⽂)
题⽬:基于Android计算器的设计与应⽤系别:软件⼯程分院
专业:软件技术
学号:
姓名:王可可
指导⽼师:李强
完成⽇期:2014年5 ⽉20 ⽇
北京北⼤⽅正软件技术学院
毕业设计(论⽂)成绩评定表(理科)
年级 11级专业软件技术姓名王可可学号
论⽂题⽬:基于Android计算器的设计与应⽤指导教师:李强
项⽬评分标准优秀良好合格不合格
选题优秀:选题有重要理论意义和实际价值;良好:选题有较强理论意义和实际价值;合格:选题有⼀定理论意义和实际价值;不合格:选题⽋妥。
基础知识优秀:有坚实的理论基础和系统深⼊的专业知识;良好:有较坚实的理论基础和系统深⼊的专业知识;合格:有⼀定的理论基础和专业知识;
不合格:基础理论不够全⾯,专业知识不系统。
实践能⼒优秀:体现出较强的实践⼯作能⼒;良好:体现出较好的实践⼯作能⼒;合格:体现出⼀定的实践⼯作能⼒;不合格:体现出⼯作能⼒较差。
写作能⼒优秀:条理清楚,层次分明,⽂笔流畅,学风严谨;良好:条理性好,层次分明,⽂字通顺,⼯作认真;合格:条理较好,层次较分明,⽂字较通顺;
不合格:条理不清,写作较差。
论⽂综
合评价
优秀良好合格不合格指导
教师评定意见签字:
年⽉⽇
毕业设计
领导⼩组签字
签字:
年⽉⽇
摘要
⽬前⼿机可以说是普及率⾮常⾼的电⼦设备了,由于其便于携带,使⽤⽅便,资费适中等等原因,现
在⼿机已经在⼀定程度开始代替固定电话的通话功能,以及⼀些原来电脑软件上的功能了。⼿机上的软件也随着⼿机的发展变得丰富起来了,时⾄今⽇已经出现了很多专门制作⼿机软件的公司,虽然制作的多是游戏软件,但是⼀些辅助性的⼯具软件也有了很多。
⼿机软件简单说就是可以安装在⼿机上的软件,作⽤⾃然是扩展⼿机的原始功能,使⼿机变得更加的实⽤。但是⼿机的软件需要安装到相应的系统中才能完美的运⾏。正是由于考虑到以上这些情况,Android系统是现今⽐较流⾏的⼿机系统,所以本系统选择了java语⾔来作为开发语⾔。
现在市⾯上常见的⼿机⼤致可以分为三类,⼀类是传统的键盘⼿机,使⽤键盘对⼿机进⾏操作。另⼀类是处于过度期时使⽤的既可以使⽤⼿指或者触控笔在屏幕上进⾏触控操作⼜可以使⽤传统的键盘进⾏对⼿机的操作。第三类则是新兴的触屏⼿机,这类⼿机就是直接通过⼿指或者触控笔在屏幕上⾯进⾏操作,需要键盘的部分,基本都是以在屏幕中产⽣⼀个虚拟键盘的模式来实现的。具体⼿机的触摸屏到底是需要触控笔进⾏触控操作还是需要使⽤⼿指进⾏操作主要还是要看⼿机使⽤的触摸屏是电阻屏还是电容屏。使⽤触控笔的⼿机使⽤的屏幕都是电阻屏的⼿机,这种屏幕的触控定位实际上是利⽤你在屏幕上的点击对屏幕的电阻产⽣的变化进⾏判断以⾄于可以判断出⽤户触控的位置,⽤户只要对屏幕造成压⼒即可实现,⽆所谓是什么东西触控的。⽽电容屏就不同了,使⽤电容屏的⼿机只能判断带电物体的触控,使带电物体在屏幕上产⽣耦合电容,通过耦合电容来判断触控的位置,这种⽅法还更有利于多点触控技术的实现。在⼈们⽇常使⽤⼿机中这个带电物体就是⼈⾃⼰的⾝体,⼀般情况下
就是⼿。
综上所述,本系统是⼀个基于现有⼿机计算器开发的在触屏⼿机上运⾏的简单科学计算器。
关键字
JAVA语⾔ Eclipse JDK android-sdk LinearLayout布局
⽬录
摘要 (2)
第⼀章项⽬概述 (5)
1.1⼿机的发展及背景 (5)
1.2计算器的发展历史 (6)
第⼆章项⽬相关技术知识 (8)
2.1 JA V A技术 (8)
2.2 JDK (11)
2.3Eclipse (11)
第三章系统设计 (13)
3.1系统功能图 (13)
3.2程序流程图 (13)
3.3系统框图 (15)
3.4总体模块详细设计 (15)
3.5输⼊模块详细设计 (16)
3.6显⽰模块详细设计 (17)
3.7计算模块详细设计 (17)
第四章系统实现 (18)
4.1输⼊模块的内容 (18)
4.2输⼊模块的实现 (19)
4.3显⽰模块的内容 (19)
4.4显⽰模块的实现 (20)
4.5显⽰模块的布局代码 (20)
4.6计算模块的内容 (21)
4.7计算模块实现重要代码 (21)
谢辞 (33)
参考⽂献 (34)
制作android软件流程第⼀章项⽬概述
1.1 ⼿机的发展及背景
随着21世纪的到来,我们已经步⼊了信息化时代,这个时代的最重要的标志就是信息技术的⼴泛应⽤。⽽⼿机正是信息技术的⼀个重要体现。如今社会上⼿机的应⽤已经达到了⾮常普及的程度,基本随处都可以见到⼿机的⾝影。我们也熟悉了在社会各处遇见它们,家⾥,办公室⾥,学校,马路上,基本可以说是有⼈的地⽅就⽤⼿机的存在。⼿机发展到今天,已经和最初的⼿机有了天差地别。
1938年,在美国的贝尔实验室,美国军⽅研制成了世界上第⼀部“移动电话”即⼿机。
1973年4⽉,在美国著名的摩托罗拉公司⼯作的⼯程技术员“马丁·库帕”发明了世界上第⼀部推向民⽤的⼿机,从此以后马丁·库帕也被称为现代⼿机之⽗。
这些就是军⽅和民⽤⼿机最初的出现时间。下⾯我们按⼿机的发展来仔细介绍⼀下:
第⼀代⼿机(1G)是指模拟的移动电话,也就是在我们⼩时候活跃在各种影视作品中的“⼤哥⼤”。最先研制出这种⼿机的是美国摩托罗拉公司的 Cooper博⼠。由于当时的电池、天线和集成电路的规模等等技术⽔平的制约,这种⼿机体积很⼤,只能称的上时可移动,严格来说都算不上便携。
这种⼿机有多种制式,AMPS(北美蜂窝系统)、NMT(北欧移动电话)和TACS(全向通信系统)都是主要的模拟标准,但是⽆论是什么制式的⼯作⽅式基本上是频分复⽤,⽽且这种⼿机只能进⾏简单语⾳通信,通话的效果也不稳定,同时保密性也很不⾜,基本可以说是没有保密性。由于当时这种⼿机的通
话频率是固定的,只需要使⽤双⼯的⽆线电台就能监听到⽤户通话的内容。另外这种⼿机对于⽆线带宽利⽤也是⼗分不充分的。
第⼆代⼿机(2G)也是⼿机发展过程中最常见的⼿机。通常这些⼿机使⽤GSM或者CDMA这些成熟的标准制式,通过了⼀段时间的发展电池、天线和集成电路规模已经有了突破性的进展了,不会再成为第⼆代⼿机发展的制约,⽽⼿机也在这些技术的促进中发展的越来越快。通话质量和待机时间都得到了很⼤的发展。第⼆代⼿机为了适应⽤户对于数据通讯的需求,⼀些在现在普遍使⽤的技术也在⼿机上得到了发展,例如GPRS彩信业务和WAP上⽹业务,也是在这个时期各式各样的Java程序开始登上历史舞台,从此Java程序的拓展也成为了⼿机⼀个重要的部分。
下⾯我们来说说我们现在常常会提起的3G吧。3G是英⽂3rdGeneration的缩写,即指第三代移动通信技术。相对第⼀代⼿机(1G)和第⼆代⼿机(2G),第三代⼿机更加强调的是⽹络的部分,利⽤3G技术,⼿机能够更好的进⾏数据业务。它能够随时随地的来处理图像、⾳乐、视频等等多媒体业务,服务的范围提供包括⽐第⼆代⼿机更加快速的⽹页浏览、视频通话、电⼦商务等等多种信息服务。⽽为了确保能够给⽤户提供以上这些服务,第三代⼿机就需要更⾼的数据传输速度,据本⼈了解,现在的3G ⼿机在室内、室外和⾏车的环境中能够分别⽀持2Mbps、384kbps以及144kbps以上的传输速度。
最后我们来说说现在国际上承认的3G⼿机的标准,现在国际上3G⼿机(3G Programming Interface、简称API)构成。Java 应⽤编程接⼝为Java应⽤提供了⼀个独⽴于操作系统的标准接⼝,再进⼀步则可分为基本部分和扩展部分。在硬件或操作系统平台上安装⼀个Java平台之后,Java应⽤程序就可运⾏。由于Java技术本⾝的优势,现在Java平台已经嵌⼊了⼏乎所有的操作系统。这样Java程序的优势就更加明显了,甚⾄可以做到只编译⼀次,就可以在各种系统中运⾏的地步。Java技术的重要性就不讲了,从我了解接触过的编程语⾔来看,接触的最多的编程语⾔就是Java ,我对于编程语⾔的接触程度虽然本⾝不能不说明什么,但⾄少在⼀定程度上可以反映出编程语⾔的使⽤率和普及率。
总体的了解了Java技术以后我们来进⼀步的了解⼀下Java的语⾔。
简单的说,如书上所说的概念⼀样,Java是⼀种简单的,⾯向对象的,分布式的,解释型的,健壮安全的,结构中⽴的,可移植的,性能优异、多线程的动态语⾔。
在1995年SUN推出Java语⾔之后,全世界软件⼯程师的⽬光都被这个特别的语⾔所吸引。这种语⾔的优越性有此可见。
我了解到的Java语⾔其实最早诞⽣于1991年,起初也并不叫做Java,⽽是被称为OAK语⾔,这种语⾔是SUN公司为⼀些消费性电⼦产品⽽设计的⼀个通⽤环境。他们最初的⽬的只是为了开发⼀种独⽴于平台的软件技术,在⽹络出现之前,OAK语⾔可以说是默默⽆闻。但是,随着⽹络的出现和发展,OA
K语⾔的命运被完全的改变了。
在Java出现以前,Internet上的信息内容都是千篇⼀律的使⽤HTML这种有点死板的⽂档。这让⽹络浏览者对于⽹络的兴趣有所下降,⽹络不能满⾜他们对于趣味性和互动性的要求。这些使⽤者希望能在⽹页中看到⼀些交互式的内容,⽽⽹站的开发⼈员也极希望能够在为⽹站开发应⽤程序的时候不⽤再去考虑⽤户的软硬件平台是否
能够与程序兼容的这些问题,同时这些程序还能够提供⾜够安全保障。对于⽤户的这种要求,传统的那些编程语⾔都表现的⽆能为⼒。⽽SUN公司的⼯程师⼗分敏锐的察觉到了这些需求,从1994年起,他们开始将OAK技术应⽤于WEB上,并且于同年开发出了HotJava的第⼀个版本。⽽当SUN公司1995年正式以Java这个名字推出该语⾔的时候,⼏乎所有的WEB开发⼈员都
发现Java这种语⾔能够完全的满⾜他们之前的需求,满⾜⽤户的需求。于是Java⼀夜之间成了炙⼿可热的⼀种编程语⾔。
那么Java的主要特性⼜是什么呢?如上⽂中所说的,Java是⼀种简单的,⾯向对象的,分布式的,解释型的,健壮安全的,结构中⽴的,可移植的,性能优异、多线程的动态语⾔。下⾯我们就来详细的介绍⼀下这些特点。
1)Java语⾔是简单的。由于Java语⾔的语法与C语⾔和C++语⾔很相近,这就使得
⼤多数的程序员可以只通过很容易学习就能使⽤Java。另⼀⽅⾯,Java语⾔祛除了⼀些C++语⾔中令⼈迷惑或者难以理解的特性,⽐如操作符重载、多继承、⾃动的强制类型转换等等。另外,在Java语⾔种不使⽤指针,并提供了⾃动的废料收集的功能,从此使⽤Java的程序员再也不⽤为了内存管理⽽担忧了。
2)Java语⾔是⾯向对象的。Java语⾔中提供了类、接⼝和继承等等,其中只
⽀持类之间的单继承,想要进⾏多继承就要使⽤接⼝,⽀持类与接⼝之间的实现机制的关键字为implements。与C++ 语⾔只对虚函数使⽤动态绑定相⽐,Java语⾔全⾯⽀持动态绑定。总之,Java语⾔可以说是⼀个纯粹⾯向对象的程序设计语⾔。
3)Java语⾔是分布式的。Java语⾔⽀持Internet应⽤的开发,所以在基本
的Java应⽤编程接⼝中会有⼀个⽹络应⽤编程接⼝(java net),这个编程接⼝提供了⽤于⽹络应⽤编程的类库,包括URL、URLConnection、Socket、 ServerSocket 等。Java的远程⽅法激活机制也是开发分布式应⽤的⼀个重要⼿段。
4)Java语⾔是健壮的。Java的强类型机制、异常处理、废料的⾃动收集等是
Java程序健壮性的重要保证。⽽不再使⽤指针更是Java的明智选择。Java的安全检查机制使得Java更
具健壮性。
5)Java语⾔是安全的。由于Java通常被⽤在⽹络环境中,因此,Java特意
提供了⼀个安全机制以防恶意代码的攻击。除了Java语⾔具有的许多安全特性以外,Java对通过⽹络下载的类还具有⼀个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应⽤更加安全。
6)Java语⾔是体系结构中⽴的。Java程序(后缀为java的⽂件)在Java平
台上被编译为体系结构中⽴的字节码格式(后缀为class的⽂件), 然后可以在实现这个Java平台的任何系统中运⾏。这种适应性使得Java的应⽤变的更加的⼴泛。
7)Java语⾔是可移植的。由于Java语⾔的结构中⽴的特性,这种语⾔同时
也具备了很强的可移植性,另外,Java语⾔中还规定了各个基本数据类型的长度。
⽽Java系统的本⾝也具有很强的可移植性,Java编译器是⽤Java实现的,Java 的运⾏环境是⽤ANSI C实现的。
8)Java语⾔是解释型的。Java程序在Java平台上被编译为⼀种特殊的字节
码格式,然后该程序就可以在任何系统中装有Java平台的实现运⾏。在运⾏时,Java平台中的Java解释器对这些特殊的字节码再进⾏解释,⽽在整个过程中所需要的类在联接阶段就会被载⼊到运⾏环境中。
9)Java是⾼性能的。我了解到的Java语⾔与解释型的⾼级脚本语⾔相⽐Java
的性能确实是占优势的。Java的运⾏速度更是随着JIT(Just-In-Time)编译器技术的发展变得越来越快了。
10)Java语⾔是多线程的。Java语⾔⽀持多个线程在同⼀时间⼀同执⾏,
并且专门的提供了多线程之间的同步机制(关键字为synchronized)。
11)Java语⾔是动态的。在Java语⾔的设计之初就有要求语⾔能够适应于
动态变化的环境这个⽬标。Java程序需要的类,既可以动态地被载⼊到运⾏环境,⼜可以通过⽹络来载⼊所需要的类。这样的设计有利于软件的升级。另外,我还了解到Java中的类存在⼀个运⾏时刻的表⽰,能进⾏运⾏时刻的类型检查。
由于Java语⾔编写的Java应⽤具有很强的健壮性和可靠性,这样就能减少很多应⽤系统的维护费⽤。
Java对⾯向对象的技术的全⾯⽀持和Java平台内嵌的API能极⼤的缩短应⽤系统的开发时间同时还能降低开发成本。Java的编译⼀次,可以在任意装有Java平台的系统运⾏的特性使得它成为能够直接在多个平台之间传递信息的简单便利的⽅式。有必要⼀说的是Java企业应⽤编程接⼝还为企业计算及电⼦商务应⽤系统提供了有关技术和丰富的类库。
Java编程语⾔最与众不同之处在于:Java程序既是编译型的⼜是解释型的。编译型是指,程序会转换为⼀种称为Java字节码的中间语⾔,解释型则是指,运⾏程序的时候JVM 会对字节码进⾏解析和运⾏。这个过程中,编译只进⾏⼀次,⽽解释在每次运⾏程序时都会进⾏。
2.2 JDK
JDK(Java Development Kit)是Sun Microsystems针对Java语⾔程序开发的产品。⾃从Java推出以来,JDK已经成为使⽤最⼴泛的Java SDK。JDK 是整个Java的核⼼组件,其中包括了Java的运⾏环境,Java⼯具和Java基础的类库。可以说JDK是学好Java的第⼀步。从SUN的JDK5.0开始提供了泛型等等⼀些⾮常实⽤的功能,⽽且版本还在不断更新,到本论⽂写作时已经更新到了JDK7.0了。运⾏效率也随着版本的不断更新⽽得到了很⼤的提⾼。
2.3 Eclispe
Eclipse是⼀个开放源代码的、基于 Java 的可扩展开发平台。就其本⾝⽽⾔,它只是⼀个框架和⼀组服务,⽤于通过插件组件构建开发环境。换句话说就是Eclipse 只是提供了⼀个界⾯,所有的开发环境都要通过安装相关的插件来完成。不过Eclipse
附带了⼀个标准的插件集合,在这个集合中包括了Java的开发⼯具(Java Development Tools,JDT)。
⾸先我们来介绍⼀下Eclipse历史和版本。
Eclipse最初是由OTI和IBM公司开发的替代商业软件Visual Age for Java的下⼀代IDE开发环境,在2001年11⽉贡献给开源社区,现在它由⾮营利软件供应商联盟Eclipse基⾦会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运⾏时架构。 2007年6⽉,稳定版3.3发布。2008年6⽉发布代号为Ganymede的3.4版。2009年7⽉发布代号为GALILEO 的3.5版。2010年6⽉发布代号为Helios的3.6版。本系统开发使⽤的是3.6的版本。
此外我们再来谈谈Eclips语⾔拓展能⼒。
Eclipse基本已经成为世界最著名的跨平台⾃由集成开发环境(IDE)。最初主要⽤来Java语⾔开发,但是由于其开源的特性,也有⼈通过为其安装插件使其作为其他编程语⾔(⽐如C++和Python)的开
发⼯具。如上⽂所说,Eclipse的本⾝只是⼀个框架平台,但是众多插件的⽀持使得Eclipse拥有了其他功能固定的IDE软件很难拥有的灵活性。现在许多的软件开发商以Eclipse为框架开发出了⾃⼰的IDE。Eclipse由OTI 和IBM两家公司的IDE产品开发组创建,起始于1999年4⽉。IBM提供了最初的Eclipse 代码基础,包括Platform、JDT 和PDE。⽬前也是由IBM牵头,围绕着Eclipse已经发展成为了⼀个庞⼤的Eclipse 联盟,这个联盟中已经有150多家软件公司参与到Eclipse项⽬中,其中不乏知名的⼚商例如Borland、Rational Software、Red Hat及
Sybase等。Eclipse是⼀个开发源码项⽬,其界⾯跟先前的Visual Age for Java差不多,但由于它是个开源的系统,任何⼈都可以免费得到其码源,并可以在此基础上开发各⾃的插件,正是因此,它越来越受⼈们关注。近⼏年更有包括Oracle在内的许多⼤公司也纷纷加⼊了该项⽬,这标志着Eclipse将来能会成为可进⾏任何语⾔开发的IDE⼤集合,使⽤者只需根据⾃⼰的需要下载各种语⾔的插件即可。
接着说说Eclipse 插件开发环境。
虽然⼤多数⽤户很乐于将 Eclipse 当作 Java IDE 来使⽤,但 Eclipse 的⽬标不仅限于此,如上⽂所说,Eclipse的最终⽬标是成为可以进⾏任何语⾔开发的IDE⼤集合。所以在Eclipse中还包括插件开发环境(Plug-in Development
Environment,PDE),这个组件主要是针对希望扩展 Eclipse功能的软件开发⼈员,因为这个组件允
许开发者构建与Eclipse 环境⽆缝集成的⼯具。由于Eclipse中可以说是每样东西都是插件,所以说对于想给Eclipse提供插件,以及给⽤户提供⼀致和统⼀的集成开发环境的开发⼈员来说,所有⼈都具有了⼀个同等的发挥机会。我在⽹上到的基于Eclipse的应⽤程序的突出例⼦是 IBM 的 WebSphere Studio Workbench,它构成了IBM 关于Java开发⼯具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的⽀持。
Eclipse都有哪些的主要组成部分呢?
Eclipse作为⼀个开放源代码的软件开发项⽬,⽬标是成为可进⾏任何语⾔开发的IDE⼤集合。它主要是由Eclipse项⽬、Eclipse⼯具项⽬和Eclipse技术项⽬三个项⽬组成,其中具体的⼜包括四个部分,分别是Eclipse Platform、JDT、CDT和PDE。JDT是⽀持Java开发的、CDT是⽀持C开发的、PDE是⽤来⽀持Eclipse插件开发的,Eclipse Platform则是⼀个开放的可扩展IDE,为使⽤者提供了⼀个通⽤的开发平台。
Eclipse SDK(软件开发者包)是⼀个Eclipse Platform、JDT和PDE所⽣产的组件合并,它们可以⼀次性打包下载。这些部分⼀起提供了⼀个具有性能可靠,特性丰富的开发环境,在这个环境中允许开发者有效地建造可以⽆缝连接到Eclipse Platform 中的⼯具。Eclipse SDK由Eclipse项⽬⽣产的⼯具和来⾃其它开放源代码的第三⽅软件组合⽽成。Eclipse项⽬⽣产的软件以GPL发布,第三⽅组件有各⾃⾃⾝的使⽤许可协议。
第三章系统设计
3.1 系统的功能图
整个系统的功能⽐较多,⽐较复杂,如上节所说,可以分为⼗多个功能模块,但是逻辑上理解其实不算困难,系统包括普通计算功能,包括加减乘除;⾼级计算功能,包括平⽅,开⽅,三⾓函数(sin,cos),清零功能。下⾯就让我们⽤图3-1来表⽰:
图3-1 系统的功能图

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。