用Java写的计算器的程序!不需要界面!

如果可以不用给我写程序给我说一下大概的程序过程就可以了谢谢... 如果可以不用给我写程序 给我说一下大概的程序过程就可以了 谢谢 展开
 我来答
小傻

推荐于2017-09-05 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

用java写的计算器的程序,主要是通过控制台输入,主要方法是使用scanner类来接收用户从键盘输入的一个算式,通过分解算式,存入两个字符串,判断中间的的符号,进行相应计算,如下代码:

System.out.println("-----------------------------------");
         System.out.println("请输入一个算术表达式,如:45*23");
         Scanner in = new Scanner(System.in);//接收用户从键盘输入的字符
         String str = in.nextLine();
         StringBuffer buffer = new StringBuffer();//保存左侧的数字
         StringBuffer buffer1 = new StringBuffer();//保存右侧的数字
         char t = ' ';//保存运算符
         for (int i = 0; i < str.length(); i++) {
             if (str.charAt(i) == '+' || str.charAt(i) == '-'
                     || str.charAt(i) == '*' || str.charAt(i) == '/') {
                 t = str.charAt(i);//识别是什么运算符

                 for (int j = i + 1; j < str.length(); j++) {
                     buffer1.append(str.charAt(j));
                 }
                 break;
             } else {
                 buffer.append(str.charAt(i));
             }
         }
         String c = buffer.toString();
         String d = buffer1.toString();
         double a = Double.parseDouble(c);
         double b = Double.parseDouble(d);
         double sum = 0;
         if (t == '+') {
             sum = a + b;
         }
         if (t == '-') {
             sum = a - b;
         }
         if (t == '*') {
             sum = a * b;
         }
         if (t == '/') {
             sum = a / b;
         }
         System.out.println("程序运算...");
         System.out.println(c+t+d+"="+sum);
         System.out.print("-----------------------------------");

运行结果如下:

百度网友e8abe02
2014-05-28 · 超过14用户采纳过TA的回答
知道答主
回答量:35
采纳率:100%
帮助的人:22.6万
展开全部
你不写界面可以直接写个Java main方法解决。输入变量为要计算的表达式如(2+4)/3-6,写一个处理方法接收并运算结果返回,打印结果即可。
处理方法需要用的逆波兰表达式,你可以直接百度java 逆波兰表达式搜索相关代码,网上有的。
其原理就是做加减乘除,但是因为括号的缘故,提高了加减的优先级(先算括号内的部分),这就用到了栈的概念,先进后出(跟洗盘子一样,先洗完的盘子放到最下面,最后才能拿出来用;队列则是先进先出,这个可以比较下)。
我手头有这样的代码,以前写验证公式用到的,用户可以配置不同的字段进行加减乘除,需要程序进行来进行平衡校验,确认结果,正好就用到逆波兰式解决。数字都用BigDecimal,网上资料搜出来的应该是dobule类型,会有误差的,最好自己改一下。

你自己先琢磨吧,回头发你份参考也行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
n个夏天
2014-05-28
知道答主
回答量:56
采纳率:0%
帮助的人:18.1万
展开全部
首先计算器工作的过程是输入第一个操作数、输入操作符号、输入第二个操作数然后就得出结果了。当然这是最简单的流程。所以你要用System.in读取用户的输入,然后解析出输入的2个操作数和一个操作符,最后用switch..case判断是哪种运算,输出结果。流程上就是这样的。如果是要能支持多步运算(带括号的)那就需要对输入表达式的优先级进行判断,这个东西就类似于编译原理了。就是拆括号,这个比较麻烦就不说了 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清水栞
2014-05-28 · TA获得超过1547个赞
知道小有建树答主
回答量:1538
采纳率:50%
帮助的人:970万
展开全部
你要实现到什么程序的计算器?要有运算优先,四则混合?三角函数还是别的什么?
更多追问追答
追问
就是普通的加减乘除的
追答
只是别人输 1+1,你得到2(仅一个运算符)

还是别人输 1+2+3+4+5*2,你得到30(无优先级)
再有就是别人输 1+2*3,你得到7(有优先级)

需求不同,完全不同的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dorawulin
2014-05-28 · TA获得超过217个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:202万
展开全部
要说的话打的太多
这样我有一套简单的C#的客户端计算器 给你代码 能看懂逻辑吧?
追问
我才开始学  你就大概说一下怎么写
追答
不知道你想实现多么复杂的呢?
是实现两个操作数的计算呢还是实现四则运算?
如果两个数的运算就简单了,你先提示输入第一个数字,然后输入操作符,然后输入第二个数字
如果是四则运算,那就要输入一个完整的四则运算表达式,全部接收,想办法拆分字符串去获得数字和操作符然后设计运算逻辑进行计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式