1.设计任务及要求

(1)设计一款基于Android系统下的计算器,实现加减乘除算法,以及清零、撤销操作。界面设计应该就尽量简洁而美观,具有良好的交互性,程序应具有较好的稳健性;
     (2)另起一行显示运算结果;
     (3)在整个输入和计算过程中,首先应该对输入的数据进行容错处理,这样有利于提高用户体验。容错设计比如:在输入过程中操作符不能连续输入,整数数据的开头不能出现0等。在程序设计过程中,需要设计数据结构来存储数字、操作符和容错标记;
     (4)对于连续输入的多组数据,如3+8/2-98或(1+2) 3+5-4/2,应当能够区分各个数字和运算符,并且根据优先级进行运算。

2.设计原理及结构框图

将表达式的字符串进行处理,将数字和运算符分别存放在两个栈中,设计方法来处理两个栈从而得到相应的计算结果,将操作符设计优先级,乘除优先级设置为2,加减优先级设置为1。
     (1)从操作符栈中弹出两个操作符,假设为symbol1和symbol2,比较两个操作付的优先级,如果symbol1的优先级大于等于symbol2的则执行二,否则执行三。
     (2)从数字栈中弹出两个数字,计算这两个数字在操作符symbol1下的运算结果,结束后将结果压入数字栈,将symbol2压入操作符栈,最后返回一。
     (3)从数字栈中弹出三个数字,计算后两个数字在操作符symbol2下的运算结果,结束后将运算结果压入栈,将剩下的第一个数字压入栈,将操作符symbol1压入栈,最后返回一。
结构框图如下所示:

图1 简易计算器软件结构框图

图1 简易计算器功能结构框图

3.详细设计

输入模块主要描述了计算器键盘以及键盘的监听即主要负责读取用户的键盘输入以及响应触屏的按键,当用户点击按键或者屏幕的时候监听器会去调用相应功能的按键,分别是清零,0,1,2,3,4,5,6,7,8,9,+,-,*,/,=,@,左括号,右括号等。显示模块主要描述了计算器的显示区,即该区域用于显示用户输入的数据以及最终的计算结果和一些其他信息。
根据输入多项式的不同(比如输入3+8/2-9*8),需要对多项式进行分割,找出各个数字和符号并分别保存,再根据运算符的优先级来进行计算。

(1)初始化部分代码

Button btn_0;
Button btn_1;
Button btn_2;
Button btn_3;
Button btn_4;
Button btn_5;
Button btn_6;
Button btn_7;
Button btn_8;
Button btn_9;
Button btn_clear;               //清除数据输入区
Button btn_del;                 //删除一位
Button btn_plus;                // +
Button btn_minus;               // -
Button btn_multiply ;           // *
Button btn_divide;              // /
Button btn_equal;               // =
Button btn_left;                //左括号
Button btn_right;               //右括号
private TextView et_input;      //数据输入区
private StringBuilder pending = new StringBuilder();   //数据输入区字符串private void initView() {btn_0 = (Button) findViewById(R.id.btn_0);btn_1 = (Button) findViewById(R.id.btn_1);btn_2 = (Button) findViewById(R.id.btn_2);btn_3 = (Button) findViewById(R.id.btn_3);......btn_0.setOnClickListener(this);    //设置按键监听btn_1.setOnClickListener(this);btn_2.setOnClickListener(this);btn_3.setOnClickListener(this);......}

(2)按钮键值判断及执行函数代码

public void onClick(View v) {int last = 0;if(pending.length()!=0) {last = pending.codePointAt(pending.length()-1);}switch (v.getId()) {case R.id.btn_0:pending = pending.append("0");et_input.setText(pending);break;case R.id.btn_1:pending = pending.append("1");et_input.setText(pending);break;case R.id.btn_2:pending = pending.append("2");et_input.setText(pending);break;case R.id.btn_3:pending = pending.append("3");et_input.setText(pending);break;case R.id.btn_4:pending = pending.append("4");et_input.setText(pending);break;case R.id.btn_5:pending = pending.append("5");et_input.setText(pending);break;case R.id.btn_6:pending = pending.append("6");et_input.setText(pending);break;case R.id.btn_7:pending = pending.append("7");et_input.setText(pending);break;case R.id.btn_8:pending = pending.append("8");et_input.setText(pending);break;case R.id.btn_9:pending = pending.append("9");et_input.setText(pending);break;......}}

(3)优先级判断函数

使用集合定义符号的运算优先级,如果有括号,首先计算括号内的式子,然后按照先乘除、后加减的顺序进行计算。

4. 测试与分析

测试过程:
     (1)安装相关软件,JDK安装配置
     (2)安装Java的JDK至默认路径 D:\Program Files\Java\,一般需要300M的空间,硬盘空间充足的话,所有组件全部安装。然后完成环境变量的配置。
     (3)配置Eclipse开发环境,设置代码字体大小,调整为12(或14),显示行号,代码格式化,改变一行能容纳的最大字符数,设置智能提示,运行eclipse.exe完成路径设置后,选择菜单Help—Install New Software…

     配置SDK路径:
     (1)安装java开发的JDK到本机,配置好环境变量。
     (2)解压Android SDK和Eclipse,配置Eclipse的SDK路径。
系统默认的是在线安装新的SDK组件,选取Use existing SDKs,然后点击下一步完成经一部的配置。完成配置到Windows里找到Android SDK Manager运行,检测是否可以正常启动,在启动之后,选择国内的镜像网站来进行下一步操作。
!配置完成的Eclipse配置完成的Eclipse
     总结:需要先安装JDK后配置环境变了,然后完成SDK的解压,解压有ADT的Eclipse,最后在Eclipse里重新配置SDK路径。就可以使用了。
至此Android开发环境就基本搭建完成了。
测试情况如下图:

5. 参考文献

[1] 孙更新,宾晟,孙海轮.Java ME手机应用开发大全.北京:科学出版社,2008.6
[2]郭克华.JavaME移动开发实例精讲.北京:清华大学出版社,2010.1

Andriod设计简易计算器相关推荐

  1. 基于MATLAB的GUI设计简易计算器

    MATLAB语言基于GUI设计简易计算器 GUI界面的设置 主页----新建----应用程序----GUIDE 进入下图所示界面 点击确定,即可生成GUI设计界面. 设计计算器界面,放置按键和显示屏, ...

  2. android studio线性布局做计算器,Android studio设计简易计算器

    本文实例为大家分享了Android studio设计简易计算器的具体代码,供大家参考,具体内容如下 效果显示: 第一步,简单的界面布局 xmlns:tools="http://schemas ...

  3. javaweb设计简易计算器

    javaweb设计简易计算器 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  4. C语言--使用循环语句设计简易计算器

    文章目录 前言 一.for语句 1.for语句的一般形式: 2.for语句的执行步骤 3.for语句的表达式省略: 二.Switch语句 三.函数的声明与调用 四.使用循环语句设计简易计算器 总结 前 ...

  5. 单片机编程简易计算机的设计,简易计算器设计

    <简易计算器设计>由会员分享,可在线阅读,更多相关<简易计算器设计(25页珍藏版)>请在人人文库网上搜索. 1.广东海洋大学寸金学院单片机课程设计论文题目: 简易计算器设计系 ...

  6. 基于python:利用pyqt5设计简易计算器

    实训内容: 跟随学习,用python写一个能进行简易运算的计算器,并自己设计计算器的UI界面,并根据实际对外观做出一定的美化. 准备过程 本次使用的是Windows11,python环境3.9.15 ...

  7. 基于Android平台的简易计算器,基于Andriod的简易计算器

    这学期有安卓这门课,这里做了一个简易的计算器,实现了两位数加减乘除的基本功能,比较简单适合用来入门学习. 运行效果 预备知识 实现这个计算器之前要先了解实现计算器需要的基本组件 1.TextView ...

  8. VC++设计简易计算器笔记(一)

    实现一个简单的计算器,类似于Windows自带的计算器.从中学习一下内容: 1.设计一个基于对话框的应用程序的基本步骤:     首先,创建一个给予对话框的工程文件:其次,编辑对话框并添加所需要的控件 ...

  9. java课程设计简单计算器_JAVA课程设计--简易计算器(201521123022 黄俊麟)

    1.团队课程设计博客链接 2.个人负责模板或任务说明 1.初始化业务逻辑. 2.开方.正负.清零.退格.数字内容输入拼接,输出结果的实现. 3.四则运算算法的实现. 4.每个按钮返回对应的业务(每个按 ...

最新文章

  1. 美团把AI搞出一股烟火气
  2. 稳定婚姻问题(自己的总结)
  3. tableau必知必会之用参数操作实现数据下钻
  4. morality and strength
  5. boost::coroutine模块实现power的测试程序
  6. 改变照片分辨率的软件_AI黑科技竟如此强大,模糊照片无损放大600%变得更清晰!...
  7. 使用C#操作XML文件
  8. apk图标存放位置_安卓系统下安装完apk程序后,具体的文件夹位置在哪里呢?
  9. LeetCode 435. 无重叠区间(贪心/动态规划)
  10. QQ版本更新 除了一起听歌现在还能一起看球赛了
  11. 【暴力枚举】LeetCode 78. Subsets
  12. 直播http-flv原理
  13. matlab chrom(i pos),Matlab遗传算法问题 MATLAB遗传算法
  14. VeryCD关闭音乐视频下载视频网站的正版化历程
  15. 硬盘是计算机的 奥鹏,奥鹏2016计算机应用基础一
  16. 【时间之外】数据中台建设要点
  17. DRAM DDR4DDR5 UDIMMRDIMM的内存测试固件开发的经验总结
  18. MIC:最大信息系数
  19. 关于Windows10的dll文件缺失报错---解决方法
  20. [JVM]了断局:常量池 VS 运行时常量池 VS 字符串常量池

热门文章

  1. jmeter文件上传
  2. loadrunner Web_类函数之web_reg_save_param_ex()
  3. 【莫问前路】数据结构篇 绪论
  4. kafka基础学习(三)ConsumerAPI
  5. DevOps《凤凰项目》实战沙盘演练将亮相光环中国·2017敏捷千人峰会
  6. C#采集麦克风话筒声音
  7. python入门到放弃恶搞图-学Python方法用错,直接从入门到放弃!
  8. 朴素贝叶斯--过滤垃圾邮件实例
  9. 隧道股份“盾构云平台”试运行,年内将在上海全市范围推广
  10. 安卓玩机搞机技巧综合资源-----手机蝰蛇音效 杜比安装步骤 多种方式【九】