程序功能
1.实现两个数(整数、浮点数)的加、减、乘、除、取余等5种运算。
2.用户可直接输入要计算的表达式,无需等待多步骤的输入提示,例如计算3.14+4.5,可直接输入“3.14+4.5=”,实现运算目的;在允许用户输入整数的基础上加以改进,增加浮点数计算功能。
Java代码
3. import java.util.Scanner;
4.
5. public class SimpleCalculator {
6. public static void main(String[] args) {
7. Scanner input = new Scanner(System.in);
8. System.out.println("简易计算器功能:实现两个数的+、-、*、/、%运算");
9. System.out.println("请输入您要计算的算术表达式(例如输入:3.5+2.8=):");
10. String exp= input.nextLine();
11. exp=exp.trim();//trim() ⽅法是⽤于删除字符串的头尾空⽩符
12. String str1="";//第一个数
13. char str2;//算数运算符
14. String str3="";//第二个数
15. char str4;//等于号“=”
16. int j,k;
17. if(!exp.isEmpty()){
18. for(j=0;((exp.charAt(j)>=48 && exp.charAt(j)<=57)||exp.charAt(j)=='.');j++){
19. str1+=exp.charAt(j);
20. }
21. float num1=Float.parseFloat(str1);//Float.parseFloat()方法将字符串转换为浮点数
22. str2=exp.charAt(j);
23. k=j+1;
24. while((exp.charAt(k)>=48 && exp.charAt(k)<=57)||exp.charAt(k)=='.')
25. {
26. str3+=exp.charAt(k);
27. k+=1;
28. }
29. float num2=Float.parseFloat(str3);//Float.parseFloat()方法将字符串转换为浮点数
30. str4=exp.charAt(j);
31. calculate(num1,str2,num2);
32. }else{
33. System.out.println("算术表达式输入不规范,请重新输入!");
34. }
35. }
36. public static void calculate(float x,char sign ,float y){
37. switch (sign){
38. case '+':
39. System.out.println(x + "+" + y + "=" + (x + y));
40. break;
41. case '-':
42. System.out.println(x + "-" + y + "=" + (x - y));
43. break;
44. case '×':
45. System.out.println(x + "×" + y + "=" + (x*y));
46. break;
47. case '÷':
48. System.out.println(x + "÷" + y + "=" + (x /y));
49. break;
50. case '%':
51. System.out.println(x + "%" + y + "=" + (x %y));
52. break;
53. default:
54. System.out.println("超出运算功能(+、-、*、/、%)!");
55. break;
56. }
57. }
58. }
代码重点
使用charAt()方法返回指定索引位置的char值、Float.parseFloat()方法将字符串转换为浮点数以及switch case分支语句等,实现简易计算器程序的编写。
运行结果
通过控制循环判断条件,实现整数、浮点数的加、减、乘、除、取余等5种运算方式,因为未定义“&”计算,所以输出“超出运算功能!”。