




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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系统主界面 本界面是用来线性布局与网格布局,控件有文本框与按钮 2.2基本加减乘除界面用户在文本框中输入参加运算的数据,并且点击要进行的运算符号,点击等号之后,会显示出计算结果。点击清除按钮,可以将文本框的内容以及显示的结果一起清空,用户可以输入新的数据按钮计算。复合运算中的表达式先生成中缀表达式,然后转换为逆波兰式。求逆波兰式的流程图如下:0图1-4 逆波兰式生成的流程图代码实现:public static String utiNi(String str)boolean b = Patte
5、rn.matches(|*/.).+()|-+*/.), str);if (b)String srcStr = str;String desStr = ;boolean errorFlag = true, isIncreaceFlag = false;char stack = new char100;int postion = 0, top = 0;while (postion 0& srcStr.charAt(postion - 1) != ()if(postion=2)&(str.charAt(0)=();else if(postion=1)&(str.charAt(0)=+|str.ch
6、arAt(0)=-);else desStr += ,;desStr += 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
7、s() ed_out.setText(根号内不Null);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = Math.sqrt(Double.parseDouble(firstNumber);ed_out.setText( + firstNumber + = + String.valueOf(result);ed_in.setText(); else if (.equals(opera) if (firstNumber.equals() ed_out.setText(底数不
8、Null);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else if (SecondNumber.equals() ed_out.setText(指数不Null);firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = exponentFun(Double.parseDouble(firstNumber),Double.parseDouble(SecondNumber);ed_o
9、ut.setText(firstNumber + + SecondNumber + = + String.valueOf(result);ed_in.setText(); else if (.equals(opera) if (firstNumber.equals() firstNumber = ;SecondNumber = ;numberString = ;text = ;ed_in.setText(); else result = factorialFun(Double.parseDouble(firstNumber); else if (.equals(text) opera = ;f
10、irstNumber = 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(firstNumber + ); else if (.equals(text) opera = ;firstNumber = numberString;numb
11、erString = ;ed_in.setText(numberString);ed_out.setText(firstNumber + );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.t
12、oCharArray(), 0,numberString.length() - 1);ed_in.setText(numberString); else if (.equals(text) numberString = numberString;ed_in.setText(numberString); else numberString = numberString + text;ed_in.setText(numberString););private Double exponentFun(double x, double n) double result = 0.00d;if (n = 0
13、) result = 1.00d;return result; else if (n = 1) result = x;return result; else if (isEven(n) result = exponentFun(x * x, n / 2);return result; else result = exponentFun(x * x, (n - 1) / 2) * x;return result;private boolean isEven(double n) if (n % 2 = 0) return true; else return false;private Double
14、 factorialFun(double n) double result = 1;if (n = 0) result = 1;return result;for (int i = 1; i = n; i+) result = result * i;return result;public void sound()MediaPlayer mediaPlayer=MediaPlayer.create(this, R.raw.nbk);mediaPlayer.start();第三章 调试及运算结果3.1加法运算结果3.2减法运算结果3.3乘法运算结果3.4除法运算结果3.5带括号运算结果3.6复合
15、运算结果 3.7切换界面风格第四章 总结 通过三周的实训课设设计,使我学习到了很多的知识。让我对于Android系统有了更加深刻的了解,并且能够做一些简单的应用程序,懂得了在做实验的时候,必须要有一个基础的知识和探索求知的精神,熟练掌握专业的基础知识,只有这样才可以在实验中发现问题和解决问题,同时在实验中还要有足够的耐心去发现问题,去解决问题。设计制作计算器,首先要实现的是基本的加减乘除四则运算,然后在此基础上进一步完善丰富其运算功能。首先要做的是一个键盘。利用button制作,设置好布局,在输入界面用两个文本框输入数据。这样基本的加减乘除功能已经实现,但是这样的话计算器的功能就比较简单了,所以就需要的是扩充功能,我决定增加清除和开方以及多次幂的功能。在原有的界面上进行扩充。 这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 催乳知识培训内容
- 规范干部使用管理办法
- 检察救助基金管理办法
- 税务稽查发票管理办法
- 校区巡查工作管理办法
- 纪委公车使用管理办法
- 成为新质生产力的路径
- 基于增强现实的卫星导航定位系统应用研究-洞察及研究
- 麻醉药品考试试题及答案
- 兆芯招聘笔试题库2025
- 声音的特性讲课件
- 教学勇气课件
- 2025福建省特安安全技术服务中心有限公司招聘9人笔试参考题库附带答案详解析集合
- T/CCS 075-2023煤矿柔性薄喷材料喷涂施工技术要求
- 医院感染诊断标准课件
- 2025城镇公寓买卖合同范本
- 黄褐斑患者护理课件
- 部队项目保密合同协议
- 《绩效管理实操》课件
- 中医调理男女生殖系统疾病的技巧
- K12教育行业转介绍策略
评论
0/150
提交评论