Android项目 计算器_第1页
Android项目 计算器_第2页
Android项目 计算器_第3页
Android项目 计算器_第4页
Android项目 计算器_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校代码: 10128学 号: 课程设计说明书题 目: 移动版计算器学生姓名: 学 院: 信息工程学院班 级: 计12-1班指导教师: 庄旭菲 2015 年 7 月 目录第一章 总体功能介绍11.1功能介绍11.2软件设计11.2.1系统软件的结构图11.2.2功能的操作流程11.2.3计算器模块1第二章 各功能模块的具体实现32.1系统主界面32.2基本加减乘除界面92.3其他运算界面12第三章 调试及运算结果163.1加法运算结果163.2减法运算结果163.3乘法运算结果173.4除法运算结果173.5带括号运算结果173.6复合运算结果17第四章 总结18 摘要:Android是当今最

2、重要的手机开发的平台之一,它是建立在Java基础上的,能够迅速建立手机软件的解决方案。Android的功能十分强大。成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、用户界面和应用软件组成,具有以下特点:开放性、应用程序无界限、应用程序是在平等条件下创建的、应用程序可以轻松的嵌入网络、应用程序可以并行运行。 第一章 总体功能介绍1.1功能介绍计算器软件的系统功能介绍:(1) 实现简单的要实现基本的加、减、乘、除四则运算。 (2) 可以实现在前一步计算结果上继续作加、减、乘、除,即连加、减、乘、 除。(3) 有清空功能,即清除所有数据,重新开始计算。(4) 拥有后退按

3、键,可以实现清除单个错误数据。(5) 可以实现复合运算。1.2软件设计1.2.1系统软件的结构图1.2.2功能的操作流程 首先用户根据自己的实际需要选择计算,得出程序结果,输入数据,选择运算符号,再输入数据,选择等号,即可以得出结果。1.2.3计算器模块图1-1 MyOntouchListener 类图图1-2 Utils类图图1-3 MainActivity类图程序中的类图如图1-1,1-2,1-3所示。Utils中主要包含了两个方法。分别是逆波兰式的生成以及计算结果的输出。这两个方法为utiNi()以及calculate()图1-1中的类是MainActivity中的子类MainActiv

4、ity中包含了按钮的点击事件以及触摸设置背景颜色,按钮字体颜色等功能。第二章 各功能模块的具体实现2.1系统主界面 本界面是用来线性布局与网格布局,控件有文本框与按钮 <LinearLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ccd0d1" android:orientation="v

5、ertical" android:paddingBottom="dimen/activity_vertical_margin" android:paddingLeft="dimen/activity_horizontal_margin" android:paddingRight="dimen/activity_horizontal_margin" android:paddingTop="dimen/activity_vertical_margin" ><LinearLayout android

6、:layout_width="match_parent" android:layout_height="116dp" android:background="#ccd0d1" android:orientation="vertical" > <EditText android:id="+id/et_number" android:layout_width="match_parent" android:layout_height="58dp"an

7、droid:layout_weight="1"android:textColor="android:color/black" android:background="drawable/et_bg1_01" android:gravity="right|bottom" android:paddingRight="10dp" android:paddingBottom="5dp" android:focusable="false" android:single

8、Line="true" android:textSize="20sp" /> <EditText android:id="+id/et_number1" android:layout_marginTop="0dp" android:layout_width="match_parent" android:layout_height="58dp"android:layout_weight="1"android:textColor="and

9、roid:color/black" android:background="drawable/et_bg1_02" android:gravity="right|bottom" android:paddingRight="10dp" android:paddingBottom="5dp" android:hint="0" android:focusable="false"android:singleLine="true" android:text

10、Size="40sp" /> </LinearLayout> <Switch android:id="+id/switchButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:thumb="drawable/thumb" android:track="drawable/track" android:layout_gravity=&

11、quot;left|top" android:layout_weight="1" android:checked="false" android:textOff="" android:textOn="" /> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="5" and

12、roid:background="#ccd0d1" android:columnCount="5" android:orientation="horizontal" android:rowCount="6" > <Button android:id="+id/bt_left" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616

13、A73" android:background="drawable/bg_bt2" android:layout_row="1" android:text="(" /> <Button android:id="+id/bt_right" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:backgro

14、und="drawable/bg_bt2" android:text=")" /> <Button android:id="+id/bt_C" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#F07E21" android:background="drawable/bg_bt2" android:text="C" /&g

15、t; <Button android:id="+id/bt_DEL" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt2" android:layout_columnSpan="2" android:layout_gravity="fill_horizontal"

16、 android:text="DEL" /> <Button android:id="+id/bt_7" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="7" /> <Button android:id=&quo

17、t;+id/bt_8" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="8" /> <Button android:id="+id/bt_9" android:layout_width="60dp" android

18、:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="9" /> <Button android:id="+id/bt_cf" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A

19、73" android:background="drawable/bg_bt2" android:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="/" /> <Button android:id="+id/bt_4" android:layout_width="60dp" android:layout_height="48dp"

20、android:textColor="#616A73" android:background="drawable/bg_bt1" android:layout_row="5" android:text="4" /> <Button android:id="+id/bt_5" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A

21、73" android:background="drawable/bg_bt1" android:text="5" /> <Button android:id="+id/bt_6" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" androi

22、d:text="6" /> <Button android:id="+id/bt_mul" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt2" android:layout_columnSpan="2" android:layout_gravity=&qu

23、ot;fill_horizontal" android:text="*" /> <Button android:id="+id/bt_1" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="1" /> <

24、Button android:id="+id/bt_2" android:layout_width="60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="2" /> <Button android:id="+id/bt_3" android:layout_width=&q

25、uot;60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="3" /> <Button android:id="+id/bt_jf" android:layout_width="60dp" android:layout_height="48dp" android

26、:textColor="#616A73" android:background="drawable/bg_bt2" android:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="-" /> <Button android:id="+id/bt_0" android:layout_width="60dp" android:layout_he

27、ight="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:layout_columnSpan="2" android:layout_gravity="fill_horizontal" android:text="0" /> <Button android:id="+id/bt_point" android:layout_width=&

28、quot;60dp" android:layout_height="48dp" android:textColor="#616A73" android:background="drawable/bg_bt1" android:text="." /> <Button android:id="+id/bt_add" android:layout_width="60dp" android:layout_height="48dp" andro

29、id:textColor="#616A73" android:background="drawable/bg_bt2" android:layout_columnSpan="2" android:layout_gravity="fill" android:layout_rowSpan="2" android:text="+" /> <Button android:id="+id/bt_sum" android:layout_width=&quo

30、t;60dp" android:layout_height="48dp" android:textColor="#FFFDFD" android:background="drawable/ic_launcher" android:layout_columnSpan="3" android:layout_gravity="fill" android:text="=" /> </GridLayout></LinearLayout>2.2基本

31、加减乘除界面用户在文本框中输入参加运算的数据,并且点击要进行的运算符号,点击等号之后,会显示出计算结果。点击清除按钮,可以将文本框的内容以及显示的结果一起清空,用户可以输入新的数据按钮计算。复合运算中的表达式先生成中缀表达式,然后转换为逆波兰式。求逆波兰式的流程图如下:0图1-4 逆波兰式生成的流程图代码实现:public static String utiNi(String str)boolean b = Pattern.matches("(|*/.).+()|-+*/.)", str);if (b)String srcStr = str;String desStr =

32、""boolean errorFlag = true, isIncreaceFlag = false;char stack = new char100;int postion = 0, top = 0;while (postion <= srcStr.length() - 1)char temch = srcStr.charAt(postion);if (temch = '(')top+;stacktop = temch;isIncreaceFlag = false; else if (temch = ')')while (stackt

33、op != '(')if (top = 0)errorFlag = false;break; elsedesStr += ','desStr += stacktop;top-;top-;isIncreaceFlag = false; else if (temch = '+' | temch = '-')while (top != 0 && stacktop != '(')desStr += ','desStr += stacktop;top-;if (postion = 0)desS

34、tr += temch;else if(postion = 1&&str.charAt(0)='(')desStr += temch;elsetop+;stacktop = temch;isIncreaceFlag = false;else if (temch = '*' | temch = '/')while (stacktop = '*' | stacktop = '/')desStr += ','desStr += stacktop;top-;top+;stacktop = t

35、emch;isIncreaceFlag = false; elseif (isIncreaceFlag = false)&& postion > 0&& srcStr.charAt(postion - 1) != '(')if(postion=2)&&(str.charAt(0)='(');else if(postion=1)&&(str.charAt(0)='+'|str.charAt(0)='-');else desStr += ','des

36、Str += temch;isIncreaceFlag = true;postion+;while (top != 0)if (stacktop = '(')errorFlag = false;break;elsedesStr += ','desStr += stacktop;top-;if (errorFlag = true)return desStr;return null;2.3其他运算界面可以实现的是切换界面风格。括号的实现以及清除和后退: else if ("".equals(opera) if (firstNumber.equal

37、s("") ed_out.setText("根号内不Null");firstNumber = ""SecondNumber = ""numberString = ""text = ""ed_in.setText(""); else result = Math.sqrt(Double.parseDouble(firstNumber);ed_out.setText(" " + firstNumber + " = "+ S

38、tring.valueOf(result);ed_in.setText(""); else if ("".equals(opera) if (firstNumber.equals("") ed_out.setText("底数不Null");firstNumber = ""SecondNumber = ""numberString = ""text = ""ed_in.setText(""); else if (Sec

39、ondNumber.equals("") ed_out.setText("指数不Null");firstNumber = ""SecondNumber = ""numberString = ""text = ""ed_in.setText(""); else result = exponentFun(Double.parseDouble(firstNumber),Double.parseDouble(SecondNumber);ed_out.setText

40、(firstNumber + " "+ SecondNumber + " = "+ String.valueOf(result);ed_in.setText(""); else if ("".equals(opera) if (firstNumber.equals("") firstNumber = ""SecondNumber = ""numberString = ""text = ""ed_in.setText(

41、""); else result = factorialFun(Double.parseDouble(firstNumber); else if ("".equals(text) opera = ""firstNumber = numberString;numberString = ""ed_in.setText(numberString);ed_out.setText(" " + firstNumber); else if ("".equals(text) opera =

42、""firstNumber = numberString;numberString = ""ed_in.setText(numberString);ed_out.setText(firstNumber + " "); else if ("".equals(text) opera = ""firstNumber = numberString;numberString = ""ed_in.setText(numberString);ed_out.setText(firstNumb

43、er + " ");sound(); else if ("c".equals(text) opera = ""firstNumber = ""SecondNumber = ""numberString = ""text = ""ed_in.setText("");ed_out.setText(""); else if ("".equals(text) if (!numberString.equals("") numberString = String.copyValueOf(numberString.toCharArray(), 0,numberString.length() - 1);ed_in.setText(numberString); else if ("".equals(text) numberString = numberString;ed_in.setText(numberString); else numberString = numberStri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论