版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、南京晓庄学院android课程设计Android课程设计基于Android计算器功能的实现所在系(院):学生姓名:指导教师:研究起止日期:南京晓庄学院android课程设计目录1、软件产品介绍12、软件开发环境23、软件功能说明 24、程序流程图25、软件介面及程序主要代码 46、设计总结10南京晓庄学院android课程设计基于An droid计算器相关技术概述1、软件产品介绍随着移动通信技术和网络技术的迅速发展,手机系统发生了巨大的变化,从进行简单通话 功能的非智能手机到现在集上网、聊天、收发邮件、视屏电话会议等各种服务于娱乐为一 身的智能手机系统。由Google公司牵头众多实力雄厚的软硬
2、件厂商加盟成立了OMS联盟,并推出的An droid平台手机系统。作为时代的新生儿,An droid手机操作平 台 有着得天独厚的优势广阔的发展前景。本文正是基于An droid平台开发的计算器。计算器作为现在人们日常生活中常用的一种工具已经可以说是人们日常生活中必不可少的工 具了。整个程序基于an droid技术开发,出总体模块外主要分为输入模块、显示模块以及计算模 块(包括一些其他功能)这三大部分。在整个系统中总体模块控制系统的生命周期,输入 模块部分负责读取用户输入的数据,显示模块部分负责显示用户之前输入的数据以及显示最终的计算结果,计算模块部分负责进行数据的运算以及一些其他的功能。下面
3、较 为详细的做了说明。具体的说,总体模块的作用主要是生成应用程序的主类,控制应用程序的生命周期。输入模块 主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应 触屏的按键,需要监听手机按键动作以及用指针事件处理方法处理触屏的单击动作(以松开按键为准)。同时提供了较为直观的键盘图形用户界面。显示模块 描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算 结 果,同时还负责显示一些其他的信息。计算模块则主要描述了计算器的整体,实现了计算器的界面,负责计算用户输入数据,包 括加、减、乘、除、等各种计算功能以及清零的功能。用系统框图来表示即如图2-0o总体系统1 输入模
4、块显示模块计算模块11图2-0系统框图2、软件开发环境论文主要阐述以面向对象的程序开发语言eclipse为开发工具,设计并实现基于An droid的计算器。步骤1安装JDK步骤5安装Eclipse的ADT插件步骤2安装Tomcat步骤6Eclipse 的 SDK 配置步骤3安装 An droid SDK步骤7建立AVD虚拟机步骤4安装 Eclipse3、软件功能说明如图21功能图系统包括普通计算功能,基本的加减乘除,小数运算以及清零功能。如图 2-1对任意两个数据进行相加的操作对任意两个数据进行相减的操作对任意两个数相乘的操作任意两个数相除的操作,但要符合运算逻辑清除已经被记忆的数据4、程序流
5、程图知道了系统的功能以后,我们通过 main.xml来建立显示界面,完成后系统开始监听用户的按键输入,每次输入系统都会判断一次用户输入的类型,是数字还是运算符号或者 是 清除,判断完后分成不同类型如数字,符号,基本运算等等进行进一步的处理,根据用户 的要求继续进行下一步的操作,最后计算出最终结果并显示在显示区。系统流程图如图2-2所示:5、软件介面及程序主要代码1:( 1)XML文件生成Main.xml的代码:根据MVC原则,UI应该与程序逻辑相分离,因此,在XML中定义UI结构是强烈推荐的。 常用的方式是用图形化的方式来编写布局Layout,这些布局保存在XML文件中,然后编译成资源,在程序
6、中Activity通过setContentView()方法来加载,然后通过findVi ewByld()方式来获得每一个界面组件的引用。实现过程及步骤。在layout文件夹下定义自己的XML页面。如计算器属性界面的实现如下所示部分代码LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置 来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。 android:id=n+id/txt_inpuf, 定义了布局的变量名称为txtjnput,会自动写进Rjava;在 R.Java文件中会生成内部类id,可在主程序里面调用R.
7、id.txt J nput来获取这个布局变量实 体。android:orientation=verticar /这个布局是垂直布局;(水平 horizontal)an droid :layout_width=”fill_parent”设置一个顶部布局或控件强制性让它布满整个屏幕;(nwrap_contentH设置一个顶部布局或控件强制性让它布满整个屏幕) android:gravity=”right” 限定里面的内容向右对齐;(android:layout_gravity=,nghtn表示在界面上的位置向右对齐)用XML实现用户界面具有以下优点:a)XML文件结构清晰,易于扩展,系统可扩展性好
8、。b)用户界面与业务逻辑完全分离,降低了系统界面与业务逻辑的耦合性。c)XML文件简单易懂,可维护性好。2计算器控制逻辑设计与实现代码:CountMain.java用户在输入过程中,肯定会存在一定的错误,程序设计过程中需要对应用程序进行操作符不能连续容错处理。容错设计比如:在输入过程中小数的话只能有一个小数点,输入,整数数据的开头不能出现0等等。所以设计了如下代码:/数字监听public void xianshi(final Butt on but, fi nal EditText t1) but.setOnClickListener(new OnClickListener() public
9、void onClick(View v) /判断开始是否可以按操作符if (but.getText().toString()equals(T) if (strBuff.indexOf(”+”)!= -1| strBuff.indexOf(”)!= -1| strBuff.indexOf伫)!=-1| strBuff.indexOf(T) !=-1) strBuff.append(but.getText().toString();t1 .setText(strBuff);/判断一个操作数中是否可以按多个点 else if (strBuff.indexOf(.n) = -1 & strBuff.l
10、ength() !=strBuff.append(but.getText().toString();t1 .setText(strBuff);/判断在什么情况下可以按多个零 else if (butgetText().toString().equals(”0”)if (strBuff.indexOf(On) = 0 & strBuff.indexOf(n.H) =)strBuff.append(but.getText().toString(); t1 .setText(strBuff); else if (strBuff.length() = 0) strBuff.append(but.get
11、Text().toString(); t1 .setText(strBuff);判断第一个按零,接着再按整数的情况时,屏幕的显示 else if (strBuff.indexOf(HOn) = 0& strBuff.indexOf(n.n) = -1) strBuff.delete(O, strBuff.length(); strBuff.append(but.getText().toString(); t1 .setText(strBuff); else strBuff.append(but.getText().toString(); t1 .setText(strBuff););运算部分代
12、码:/符号监听public void jisuan(final Button but1, final EditText t1) but1 setOnClickListener(new OnClickListener() public void onClick(View v) /存放输入的字符String newcharl = but1 .getText()toString();判断开始是否为等号,输入一个数字后在输入等号没有反映String newchar =if (!(newchar1.equals(,=,) n ewchar = n ewcharl;float perl = 0;/用来存放
13、截取字符串的第一个操作数float per2 = 0;/用来存放截取字符串的第二个操作数/判断按的字符是否为清除键if (newchar.equalslgnoreCase(cH) strBuff.delete(O, strBuff.length(); t1.setText(n0n); return;判断按的操作符是什么计算字符判断是否为加法if (strBuff.indexOf(”+”)!= -1& strBuff.indexOf(”+”) strBuff.length() 1南京晓庄学院android课程设计& strBuff.indexOf(”+”)!= 0) int i = strBuf
14、f.indexOf(H4-n);perl = Float.parseFloat(strBuff.substring(0, i);per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff.length(); float sum = perl + per2;strBuff.delete(O, strBuffength(); strBuff.append(sum);strBuff.appe nd(newchar);t1 .setText(strBuff);判断是否为减法 else if (strBuff.indexOf(”)!= -1& str
15、Buff.indexOf(”) strBuff.length() 1& strBuff.indexOf(”)!= 0) int i = strBuff.indexOf(H-n);perl = Float.parseFloat(strBuff.substring(0, i);per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff.length();float sum = perl per2; strBuff.delete(O, strBuff.length();strBuff.append(sum); strBuff.append(new
16、char);t1 .setText(strBuff);判断是否为乘法 else if (strBuff.indexOf(“”) !=-1& strBuff.indexOf(,*n) strBuff.length() 1& strBuff.indexOf(”)!= 0) int i = strBuff.indexOf(n*n);perl = Float.parseFloat(strBuff.substring(0, i);per2 = Float.parseFloat(strBuff.substring(i + 1, strBuff.length(); float sum = perl * pe
17、r2;strBuff.delete(0, strBuff.length(); strBuff.append(sum);strBuff.append(newchar);t1 .setText(strBuff);判断是否为除法1南京晓庄学院android课程设计 else if (strBuff.indexOf(Vn) != -1& strBuff.indexOf(7H) 0& (0* = strBuff.charAt(strBuff.length() 1) strBuff.append(newchar);t1 .setText(strBuff););Overridepublic void onC
18、reate(Bundle savedInstanceState) / 这是 Activity 建立的时候一 定会 调用的onCreate()方法,第一行是声明super.o nCreate(savedl nsta nceState); / 然后是继承原来的 on Create ()方法 setContentView(R.layout.main); /然后是载入main这个视图,一般来说是在XML里定义的 /下面为变量赋值final EditText t1 = (EditText) findViewByld(R.id.txt_input);final Button but1 = (Button) findViewByld(R.id.but1);xianshi(but1, t1);final Button but2 = (Button) findViewByld(R.id.but2);符号final Button
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2019粤教版 高中美术 选择性必修2 中国书画 《第二单元 中国书法》大单元整体教学设计2020课标
- 2024届河北省邯郸市六校第一次教学质量检测试题(合肥一模)数学试题
- 茶楼合伙协议书范本
- 北京统一租赁房屋租赁合同
- 童谣儿歌我来读活动
- 肾脏移植手术
- 山东省滨州市2024-2025学年八年级上学期期中考试语文试题(含答案)
- 湖南省益阳市赫山区箴言龙光桥学校2024-2025学年一年级上学期期中考试数学试题(无答案)
- 【初中地理】影响气候的因素课件-2024-2025学年湘教版地理七年级上册
- 电影机械行业相关投资计划提议
- 2024-2030年中国户外电源行业市场趋势调查及需求场景趋势分析报告
- 《淘气的一天》(教案)-2024-2025学年一年级上册数学北师大版
- 职业健康安全培训课件(共32张课件)
- 人教新目标八年级英语上册《任务型阅读》专项练习题(含答案)
- XXX200MW光伏发电项目施工组织设计
- 2024年感动中国年度人物介绍颁奖典礼
- 口腔病例汇报模板
- 2024年军队文职人员招聘考试公共科目真题
- GB 44246-2024家用和类似用途电器、体育用品的电气部分及电玩具安全技术规范
- 广铁机考题库
- 《功能性食品开发与应用》课件-维持血糖健康水平功能食品的开发与应用
评论
0/150
提交评论