版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计 题 目 计算器 姓 名 戴雄坤 学 号 20127364 系 部 理工系 年级专业 12级计算机 指导教师 李津 2015年 6 月 24 日 中南林业科技大学涉外学院本科课程设计诚信声明本人郑重声明:所呈交的课程设计,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除设计中已经注明引用的内容外,本设计不含任何其他个人或集体已经发表或撰写过的作品成果。对本设计的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 课程设计作者签名: 二一 五 年 6 月 24日 摘要Android是当今最重要的手机开发平台
2、之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。关键词:Android Java基础 计算器目 录 1.引言-5§1.1Android开发背景 -5§1.2Android开发环境-62. Android应
3、用程序开发理论与方法-6§2.1 Activity的相关知识 -6§2.2 Intent的相关知识 -73. “计算器”应用程序的设计与实现-7§3.1 拟解决的问题及目标-8§3.2 总体设计-8§3.3 详细设计与编码实现-94. 总结-265. 参考文献-271.引言§1.1Android开发背景1.智能手机的市场 (1)功能多样化的智能手机挑战全球PC出货量 移动互联网时代的来临,直接促进了搭载智能操作系统、具有强大扩展性
4、的智能手机、平板电脑等移动终端产业的蓬勃发展。来自美国最大的风险投资机构KPCB的数据显示,全球智能手机出货量正在以远高于台式电脑、笔记本电脑出货量的速度快速增长,该机构预计2011年全球智能手机出货量将达到4.13亿,超过台式电脑与笔记本电脑出货量的总和。 (2)智能手机的用户使用数量正在高速增长。据市场调研机构Gartner信息,2011年全球智能手机的总出货量将会达到4.68亿部,相比2010年实现了57.7%的增长,而谷歌Android操作系统将会在今年之内成为全球最大的智能手机操作系统。另外,全球市场调研机构IDC预计未来5年中国手机市场上,智能手机替代传统功能手机的趋势将
5、日益明显,未来5年中国智能手机市场复合增长率将达到34.1%,人们对IT设备智能化的向往是这一增长率能够实现的主要因素,并且与其他国家相比,中国智能手机市场的发展空间更加广阔。 (3)操作系统格局预测:Android有望成为智能手机市场主导力量 搭载Android操作系统的智能手机目前已经成为市场上最炙手可热的智能产品。来自美国市场研究机构Gartner的数据显示,Android操作系统所占的市场份额从2008年的0.5%急剧增长到2011年的15.94%。开放的源代码和零成本已经让Android在全世界范围内受到青睐并迅速获得了主要手机厂商和数百万软件开发者的支持,Gar
6、tner预计,未来Android系统的市场份额有望超过其他操作系统,从而成为全球第一大智能手机操作系统。 2.安卓手机介绍 安卓手机指的是用Android操作系统的手机。安卓(Android)是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 同样都是手机上面用的智能系统,安卓的系统是新生系统,界面更为华丽,开源性更强,当然因为是新生系统,所以在第三方软件方面暂时还不太多。因此,安卓应用程序的需求还是很迫切的。 3.软件人才需求 据业内统计,目前国内的Android研发人才缺口至少30万。由于目前And
7、roid技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。 综上所述,在这样的背景下,安卓有很强的生命力。同时,作为一个新生的系统,其应用程序目前并不多,安卓应用程序的需求还是很迫切的,安卓研发人才的缺口还很大。这些都促进了我们学习开发安卓应用程序。 §1.2开发环境安卓应用程序开发环境如下: 1. JDK 7.0 or
8、JDK 8.0 (JRE alone is not sufficient) 2. Eclipse 3. Android SDK 4. ADT-23.0.65. Eclipse安装ADT 插件2.安卓应用程序开发理论与方法1、Activity的相关知识 简单理解Activity 代表一个用户所能看到的屏幕,Activity 主要是处理一个应用的整体性工作。Activity是最基本的Android 应用程序组件,应用程序中,一个活动通常就
9、是一个单独的屏幕。每一个活动都被实现为一个独立的类,并且从活动基类中继承而来,活动类将会显示由视图控件组成的用户接口,并对事件做出响应。大多数的应用是由多个屏幕显示组成,因而要用到多个Activity。 (1)Activity的相关方法及相关函数: A、void onCreate(Bundle) 首次启动时调用,接受参数:Null or savedInstanceState(保存的以前某些状态信息) B、void onStart() 说明了将要显示给用户的活动
10、; C、void onRestart() 将处于停止状态的活动重新显示给用户 D、void onResume() 用户可以开始与活动进行交互时调用。如动画播放和音乐播放。 E、void onPause() 活动将要进入后台运行时调用。(此时前台启动了另一个活动) F、void onStop() 不需要某个活动了,就调用 G、void onDestroy() 销毁活动 (2)多个Activi
11、ty之间的跳转: 通过Intent类实现屏幕之间的跳转(包括没有参数关系和需要传递参数两种情况)。 (3)两个Activity之间进行数据交换: startActivity() 只有Intent一个参数。 public void startSubActivity(Intent intent, int requestCode) (requestCode:用来
12、标识某一个调用,一般定义一个常量。) 传过去:函数原型为:public Intent setData(ContentURI data)然后,参数带到新的Activity后,同样用Activity,getIntent()函数可得到当前过来的Intent对象,然后用getData()就去到参数了。传回来:函数原型为:public final void setRsult(int resultCode,String data) 2.Intent的相关知识 Intent 是描述应用想要做什么。Android 使用了Intent
13、160;这个特殊类,实现在屏幕与屏幕之间移动。Intent 数据结构两个最重要的部分是动作和动作对应的数据。Intent类绑定一次操作,它负责携带这次操作所需要的数据以及操作的类型等。 3、Layout 用于用户界面设计。包含AbsoluteLayout, FrameLayout,GridView, LinearLayout, ListLayout, RadioGroup, TableLayout等等。 在本程序中用到的有: (1) 线性布局LinearLayout
14、60;垂直:android:orientation="vertical“ 水平:android:orientation="horizontal" (2) 相对布局RelativeLayout 让子元素指定它们相对于其他元素的位置(通过ID 来指定)或相对于父布局对象。在RelativeLayout布局里的控件包含丰富的排列属性: Layout
15、;above:控件在指定控件的上方 Layout below:控件在指定控件的下方 Layout to left of3. “计算器”应用程序的设计与实现 §3.1 拟解决的问题及目标 本计算器程序要解决日常生活中常见的基本数据计算问题,程序要实现的目标有如下几个:(1) 要实现基本的加、减、乘、除四则运算。 (2) 可以实现在前一步计算结果上继续作加、减、乘、除,即连加、减、乘、除。 (3) 有清空功能,即清除所有数据,重新开始计算。 (4)还可以进行
16、一些特别的运算,开方.乘方运算。§3.2 总体设计 1.系统结构图计算器 基本加减 其它运算乘除运算 加减乘除乘方根号2、功能的操作流程 首先用户根据自己的实际需要选择计算的类型,然后进入不同的计算类型,再进行要执行的运算,输入数据,选择运算符号,即可得到结果。§3.3 详细设计与编码实现1. Android程序图标如下图所示 2. 计算器界面如下图所示:布局Main.xml代码如下:<?xml version="1.0" encoding="utf-8"?>
17、 <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_gravity="center_vertical" android:id="+id/zhengfu" android:background="drawable/default_b
18、g"> <EditText android:text="TextView" android:id="+id/textView1" android:textSize="25sp" android:textColor="#000000" android:layout_gravity="center" android:gravity="left" android:cursorVisible="false" android:editable
19、= "false" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_marginLeft="4dip" android:layout_marginRight="4dip" android:layout_marginTop="4dip" android:layout_weight="1.5"> </EditText>
20、 <TableLayout android:id="+id/tablelayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="4dip" android:layout_weight="10"> <LinearLayout android:id="+id/linearlayout02" android:layou
21、t_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"> <Button android:layout_width="50dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:id=&quo
22、t;+id/button08" android:text="string/shan" > </Button> <Button android:layout_width="50dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:id="+id/button07" android:text="
23、string/shanchu" > </Button> </LinearLayout> <TableRow android:id="+id/row0" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <Button android:layout_width="40dip" android:la
24、yout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/one" android:id="+id/button1" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" androi
25、d:layout_weight="1" android:textSize="25sp" android:text="string/two" android:id="+id/button2" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:text
26、Size="25sp" android:text="string/three" android:id="+id/button3" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="
27、;string/jia" android:id="+id/button01" > </Button> </TableRow> <TableRow android:id="+id/row1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <Button android:layout_width
28、="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/four" android:id="+id/button4" > </Button> <Button android:layout_width="40dip" android:layout_height=
29、"fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/five" android:id="+id/button5" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_we
30、ight="1" android:textSize="25sp" android:text="string/six" android:id="+id/button6" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="
31、25sp" android:text="string/jian" android:id="+id/button02" > </Button> </TableRow> <TableRow android:id="+id/row2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> &
32、lt;Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/seven" android:id="+id/button7" > </Button> <Button android:layout_width="40d
33、ip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/eight" android:id="+id/button8" > </Button> <Button android:layout_width="40dip" android:layout_height="fil
34、l_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/nine" android:id="+id/button9" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight=&quo
35、t;1" android:textSize="25sp" android:text="string/cheng" android:id="+id/button03" > </Button> </TableRow> <TableRow android:id="+id/row3" android:layout_width="fill_parent" android:layout_height="fill_parent" android
36、:layout_weight="1"> <Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:id="+id/button06" android:text="string/dianhao" > </Button> <
37、Button android:layout_width="40dip" android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/zero" android:id="+id/button0" > </Button> <Button android:layout_width="40dip&q
38、uot; android:layout_height="fill_parent" android:layout_weight="1" android:textSize="25sp" android:text="string/dengyu" android:id="+id/button05" > </Button> <Button android:layout_width="40dip" android:layout_height="fill_
39、parent" android:layout_weight="1" android:textSize="25sp" android:text="string/chu" android:id="+id/button04" > </Button> </TableRow> <LinearLayout android:id="+id/tableRow1" android:layout_width="fill_parent" android
40、:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="1"> <Button android:textSize="25sp" android:layout_height="fill_parent" android:layout_width="50dp" android:layout_weight="1" android:text
41、="string/zhengfu" android:id="+id/zheng" > </Button> <Button android:id="+id/pingfang" android:textSize="25sp" android:layout_height="fill_parent" android:layout_width="50dp" android:layout_weight="1" android:text=&quo
42、t;string/ping" > </Button> <Button android:id="+id/kaifang" android:textSize="25sp" android:layout_height="fill_parent" android:layout_width="50dp" android:layout_weight="1" android:text="string/kai" > </Button> &l
43、t;/LinearLayout> </TableLayout> </LinearLayout>用户在文本框中输入参加运算的数据,并点击要进行的运算符号,然后点击等号之后,将在等号下方显示结果处显示出计算结果。点击delete按钮,可以将文本框中的内容以及显示的结果一起清空,用户可以输入新的数据计算。点击back可以返回上一步 。在文本框中输入时可以用图右侧的硬键盘,或者是手机自带的软键盘。 具体的实现:主要的思路是,用户先输第一个数,然后点击运算符号,在程序中监听按钮的点击,如果点击了+、-、*、/中某一按钮,这时就取EditText中的值,通过et.s
44、etText(str)实现,为了参与运算,需要把字符串类型转换为浮点型,并将其值赋给变量v,代码为vi=v;用flag的不同值记录用用户点击的不同的运算按钮。当用户点击“=”时,就将editText中的内容取出,也同样转化为数值,并记录,然后判断flag的值即可知道对应应采取哪种计算,进而算出最终结果,并用显示出结果。“清空”的实现是使对应控件的内容取空即可。核心代码如下:public double calculater()switch(c)case 0:f=g;break;case 1:f=b+g;break;case 2:f=b-g;break;case 3:f=b*g;break;cas
45、e 4:f=b/g;break;b=f;c=0;return f; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /获得按键 final Button number=new Button10;final Button fuhao=new Button11;fuhao0=(Button)findViewById(R.id.button01);fuhao1=(Button)findViewById(
46、R.id.button02);fuhao2=(Button)findViewById(R.id.button03);fuhao3=(Button)findViewById(R.id.button04);fuhao4=(Button)findViewById(R.id.button05);fuhao5=(Button)findViewById(R.id.button06);fuhao6=(Button)findViewById(R.id.button07);fuhao7=(Button)findViewById(R.id.button08);fuhao8=(Button)findViewById
47、(R.id.zheng);fuhao9=(Button)findViewById(R.id.kaifang);fuhao10=(Button)findViewById(R.id.pingfang);number0=(Button)findViewById(R.id.button0);number1=(Button)findViewById(R.id.button1);number2=(Button)findViewById(R.id.button2);number3=(Button)findViewById(R.id.button3);number4=(Button)findViewById(
48、R.id.button4);number5=(Button)findViewById(R.id.button5);number6=(Button)findViewById(R.id.button6);number7=(Button)findViewById(R.id.button7);number8=(Button)findViewById(R.id.button8);number9=(Button)findViewById(R.id.button9); et=(EditText) findViewById(R.id.textView1); et.setText(str); fuhao6.se
49、tOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stub/*str=""et.setText(str);vi=v;System.out.print("backspace");*/String field_display1=et.getText().toString(); if(field_display1.length()<2) str = "" et.setText(str)
50、; else et.setText(field_display1.substring(0,field_display1.length()-1); ); fuhao7.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubb=0.0;c=0;g=0.0;str=""et.setText(str);/System.out.println("delete");); fuhao8.setOnClickListener(new View.OnClickListener() public void onClick(View v) / TODO Auto-generated method stubif(vi!=fuhao5&&str!="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 备战2025年中考语文课内文言文(统编版)20《与朱元思书》三年中考真题+模拟题(学生版+解析)
- 股东平等原则与对赌协议书(2篇)
- 南京工业大学浦江学院《税法二》2022-2023学年第一学期期末试卷
- 殡仪馆施工组织设计
- 方爷爷和圆奶奶说课稿
- 肚子里的故事说课稿
- 《中 国美食》说课稿
- 《液体的压强》说课稿
- 南京工业大学浦江学院《公共事业管理》2023-2024学年第一学期期末试卷
- 八年级第六单元《三峡》说课稿
- 花键轴工序卡片5
- TikTok全球化运营策略解析
- 保安班长工作管理制度
- 手术体位相关周围神经损伤及预防课件
- 2024人教版初中英语单词词汇表默写背诵(中考复习必背)
- 【精】人民音乐出版社人音版五年级上册音乐《外婆的澎湖湾》课件PPT
- 《建筑企业财务 》课件
- 沪科版九年级物理全一册知识点总结(沪教版)
- 飞轮储能在电网调频中的工程应用
- 家长会课件:家庭教育为主题家长会课件
- 麻醉药品和第一类精神药品使用及残余液销毁登记记录
评论
0/150
提交评论