android计算器编程思路,android计算器---思路以及计算器功能梳理(未完成)(示例代码)...

数字键(1-9)、0键、正负转换、小数点、平方开方取倒数、CE、C、退格、加减乘除、等于

数字键(1-9):

按下后屏幕上的字符串多加一个数字字符

如果是按下运算符后第一个数字,则先将屏幕清空,再同上

判断:前面有没有按过运算符,如果按过,前面是否按过其他数字

0键:

按下零键,只要屏幕上不是零,就会在字符串后面加一个零字符

当屏幕上只有一个0时,无论怎么按都是一个零

判断:屏幕上的是不是零

小数点:

如果前面是个零,按下小数点,再按运算符,屏幕上显示零(按运算符同事时,将该数冗余部分去掉,与等号一样)

按下后在字符串后面加一个小数点字符

如果前面已经有小数点,后面不能再输入小数点,直到按下运算符或等号或CE或退格删掉了小数点开始输入下一个数

判断:前面是否按过小数点,按下运算符后,小数点状态应该回到可以按的状态

正负转换:

如果是一个数字加一个小数点,按正负转换后,小数点不消失

如果屏幕上只有零,按此键无变化

如果屏幕上除了另还有别的并且没有负号,按此键在该字符串前面加负号

如果屏幕上有负号,就把负号去掉

判断:按下后只要不是只有零,全部都直接加减负号即可,无需对第一条单独考虑,因此判断屏幕上是否是零;屏幕第一个字符是否是负号

平方:

按下后会对前面的那个数字进行平方运算

当前面已经有另一个加减乘除,按下后对前面的数字进行平方运算后显示平方结果,再按下等于,才显示总结果

当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的平方结果,再按等于,显示总结果

判断:

开方:

1.按下后会对前面的那个数字进行开方运算

2.当前面已经有另一个加减乘除,按下后对前面的数字进行开方运算后显示开方结果,再按下等于,才显示总结果

3.当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的开方结果,再按等于,显示总结果

取倒数:

1.按下后会对最近输入的那个数字进行取倒数运算

2.当前面已经有另一个加减乘除,按下后对前面的数字进行取倒数运算后显示取倒数结果,再按下等于,才显示总结果

3.当按下一个数字和一个加减乘除,再按下此键,显示第一个数字的取倒数结果,再按等于,显示总结果

CE:

按下后会对最近输入的的数清零

无需判断

C:按下后全部归零,全部回到初始状态

无需判断

退格:按下后会删掉屏幕上字符串的最后一个字符

无需判断

加减乘除:

按下后,会记录一个运算,屏幕上的第一个数不变,若直接按运算符,则第一个数默认零

若前面已经有一次运算并且按了等于,则再按运算符时,将上次运算结果作为第一个数字,屏幕上显示的仍是第一次运算结果

若前面有一次运算但没有按等于,则再按运算符时,屏幕上显示第一次运算结果,并将其作为下一次运算的第一个数字

判断:1.需要judge记录运算方式;2.

等于:

若前面有数字和运算符按过,按下后,将屏幕上的数字作为第二个数进行运算,显示运算结果,如果继续按等于,则第二个数始终作为第二个数,进行该运算

如果按了一个数或数和小数点,按等于变成原数,并且如果最后一个字符是零或者小数点,会全去掉(循环)

按下等于号后,再按数字键,开始新一次运算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现一个控制台计算器,可以使用Scanner类来获取用户输入的表达式,然后通过解析表达式进行计算。以下是一个示例代码: ```java import java.util.Scanner; public class ConsoleCalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入表达式:"); String expression = scanner.nextLine(); // 解析表达式并计算 double result = calculate(expression); System.out.println("计算结果为:" + result); } public static double calculate(String expression) { // 在这里实现表达式的解析和计算逻辑 // 可以使用栈来实现表达式的计算过程 return 0; // 这里先返回0,表示完成的实现 } } ``` 在这个示例代码中,首先创建一个Scanner对象,用于获取用户输入的表达式。然后通过`scanner.nextLine()`方法获取用户输入的一行文本作为表达式。接下来,你可以在calculate方法中实现对表达式的解析和计算逻辑。在这个示例中,我只是简单地返回了0,你需要根据具体的需求来实现这个方法并返回正确的计算结果。 请注意,这只是一个简单的示例,实际的计算器可能需要更复杂的逻辑和处理各种不同类型的表达式。你可以根据具体的需求进行扩展和修改。<span class="em">1</span> #### 引用[.reference_title] - *1* [Java使用Scanner类进行控制台输入实现方法](https://download.csdn.net/download/weixin_38706455/12744235)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值