当前位置:   article > 正文

Android计算器 (课程设计项目)_android简单计算器课程设计

android简单计算器课程设计
  1.  课程设计内容

设计一个简易的算术运算器。可实现多位数(整数和浮点数)的加、减、乘、除等基本的算术运算,可通过圆括号来改变运算优先级别,圆括号可多层嵌套。

  1. 2. 课程设计要求
  1. 运算规则为:按运算优先级从高到低进行运算,同级别的运算符,按从左至右运算;有括号出现时先算括号内的,后算括号外的,多层括号由内向外进行。
  2. 程序运行后,从键盘输入算术表达(中缀表达式),要求对输入的表达式进行合法性检测,包括字符的合法性、圆括号的匹配等。
  3. 输入合法的中缀算术表达式,程序给出运算结果

 页面大概长这样子

 

异常机制

原因:Android模拟器运行碰到空指针异常或者一些常见错误很容易直接停止运行,所以增加异常机制,极大地减少了运行停止的情况。计算器通常都能稳定的正常运行,也能保证每次保存上次的结果并在此基础上继续运算.例如当你的表达式出现不符合规则的情况时,例如“+”后面不应该出现其他操作符(括号除外), “(”必须与“)”成对出现”,操作符之后没有数字等就会触发异常机制

(2)合法性检测

  1. 圆括号的匹配,分别对左右括号进行计数,左右括号的数量必须一致否则会显“calcFailed”
  2. 小数点前只能是数字
  3. 操作符不能相邻(括号除外)

实现方式: 输入操作符之前经过多层嵌套筛选,符合条件才能有效加入

负数运算

实现方式:将0插入字符串中且跟括号一起使用,例如(-5)在程序中将以(0-5)的形式参与后缀表达式的形成及计算

中缀表达式转后缀表达式

实现方式:

1.从左至右扫描一遍中缀表达式

2.如果读取的是操作数,则判断该操作数的类型,并将该操作数存入操作数堆栈,若读取的是运算符,①运算符为左括号直接存入运算符堆栈②运算符为右括号,输出运算符堆栈中的操作符到操作数堆栈,直到遇到左括号为止③运算符为非括号运算符:若操作符堆栈栈顶元素为括号,则直接进入操作符堆栈;若比栈顶操作符的优先级高或者相等,直接进入操作符堆栈;若比运算符堆栈栈顶的运算符优先级低,则输出栈顶运算符到操作数堆栈,并将当前运算符压入运算符堆栈。

3.当表达式读取完成后运算符堆栈中尚有运算符时,则依序取出运算符到操作数堆栈,直到运算符堆栈为空。

计算后缀表达式

实现方式:

把上一步返回储存后缀表达式的数字栈遍历存储于数组1中,另外设置一数组2用于模拟储存计算过程,遍历数组一:

  • 读取的为数字,则将其储存在数组2中
  • 读取的为操作符,则移出数组2末尾的两个数据并且经过四则      运算后重新加入数组2

最后数组2将只存在一个数据,即最终结果

 翻转小功能

实现方式:

绑定TURN按钮设置点击事件 若当前页面为竖直页面则重新创建Activity为水平页面; 若当前页面为水平页面则重新创建Activity为竖直页面

最后完整代码放在gitee上啦需要自取

https://gitee.com/JacksonSpace/android-calculator

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/271973
推荐阅读
相关标签
  

闽ICP备14008679号