简易Java控制台计算器

Java编写简易控制台计算器 Java编写简易控制台计算器 主要需求与功能: 包含四个基本运算:加,减,乘,除 利用while循环和switch选择结构 包含两个基本操作数 输出结果后可选择退出或继续使用 import java.util.Scanner; public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //scanner进行交互。 阅读详情

简易Java控制台计算器

源码清单:

import java.io.*;     

import java.util.*;     


public class Expression{ 


    
private ArrayList expression = new ArrayList();// 存储中序表达式     

    

    
private ArrayList right = new ArrayList();// 存储右序表达式     

    

    
private String result;// 结果     

    

    
// 依据输入信息创建对象,将数值与操作符放入ArrayList中     

    
private Expression(String input) {     

        StringTokenizer st 
= new StringTokenizer(input, "+-*/()", true);     

        
while (st.hasMoreElements()) {     

            expression.add(st.nextToken());     

        }
     

    }
     

    

    
// 将中序表达式转换为右序表达式     

    
private void toRight() {     

        Stacks aStack 
= new Stacks();     

        String operator;     

        
int position = 0;     

        
while (true) {     

            
if (Calculate.isOperator((String) expression.get(position))) {     

                
if (aStack.top == -1    

                        
|| ((String) expression.get(position)).equals("(")) {     

                    aStack.push(expression.get(position));     

                }
 else {     

                    
if (((String) expression.get(position)).equals(")")) {     

                        
if (!((String) aStack.top()).equals("(")) {     

                            operator 
= (String) aStack.pop();     

                            right.add(operator);     

                        }
     

                    }
 else {     

                        
if (Calculate.priority((String) expression     

                                .get(position)) 
<= Calculate     

                                .priority((String) aStack.top())     

                                
&& aStack.top != -1) {     

                            operator 
= (String) aStack.pop();     

                            
if (!operator.equals("("))     

                                right.add(operator);     

                        }
     

                        aStack.push(expression.get(position));     

                    }
     

                }
     

            }
 else    

                right.add(expression.get(position));     

            position
++;     

            
if (position >= expression.size())     

                
break;     

        }
     

        
while (aStack.top != -1) {     

            operator 
= (String) aStack.pop();     

            right.add(operator);     

        }
     

    }
     

    

    
// 对右序表达式进行求值     

    
private void getResult() {     

        
this.toRight();     

        Stacks aStack 
= new Stacks();     

        String op1, op2, is 
= null;     

        Iterator it 
= right.iterator();     

    

        
while (it.hasNext()) {     

            is 
= (String) it.next();     

            
if (Calculate.isOperator(is)) {     

                op1 
= (String) aStack.pop();     

                op2 
= (String) aStack.pop();     

                aStack.push(Calculate.twoResult(is, op1, op2));     

            }
 else    

                aStack.push(is);     

        }
     

        result 
= (String) aStack.pop();     

        it 
= expression.iterator();     

        
while (it.hasNext()) {     

            System.out.print((String) it.next());     

        }
     

        System.out.println(
"=" + result);     

    }
     

    

    
public static void main(String avg[]) {     

        
try {     

            System.out.println(
"Input a expression:");     

            BufferedReader is 
= new BufferedReader(new InputStreamReader(     

                    System.in));     

            
for (;;) {     

                String input 
= new String();     

                input 
= is.readLine().trim();     

                
if (input.equals("q"))     

                    
break;     

                
else {     

                    Expression boya 
= new Expression(input);     

                    boya.getResult();     

                }
     

                System.out     

                        .println(
"Input another expression or input 'q' to quit:");     

            }
     

            is.close();     

        }
 catch (IOException e) {     

            System.out.println(
"Wrong input!!!");     

        }
     

    }
     

}
     

class Calculate {     

    
// 判断是否为操作符号     

    
public static boolean isOperator(String operator) {     

        
if (operator.equals("+") || operator.equals("-")     

                
|| operator.equals("*") || operator.equals("/")     

                
|| operator.equals("(") || operator.equals(")"))     

            
return true;     

        
else    

            
return false;     

    }
     

    

    
// 设置操作符号的优先级别     

    
public static int priority(String operator) {     

        
if (operator.equals("+") || operator.equals("-")     

                
|| operator.equals("("))     

            
return 1;     

        
else if (operator.equals("*") || operator.equals("/"))     

            
return 2;     

        
else    

            
return 0;     

    }
     

    

    
// 做2值之间的计算     

    
public static String twoResult(String operator, String a, String b) {     

        
try {     

            String op 
= operator;     

            String rs 
= new String();     

            
double x = Double.parseDouble(b);     

            
double y = Double.parseDouble(a);     

            
double z = 0;     

            
if (op.equals("+"))     

                z 
= x + y;     

            
else if (op.equals("-"))     

                z 
= x - y;     

            
else if (op.equals("*"))     

                z 
= x * y;     

            
else if (op.equals("/"))     

                z 
= x / y;     

            
else    

                z 
= 0;     

            
return rs + z;     

        }
 catch (NumberFormatException e) {     

            System.out.println(
"input has something wrong!");     

            
return "Error";     

        }
     

    }
     

}
    

//栈类      

class Stacks{      

   
private LinkedList list=new LinkedList();      

   
int top=-1;      

   
public void push(Object value){      

      top
++;      

      list.addFirst(value);      

   }
      

   
public Object pop(){      

      Object temp
=list.getFirst();      

      top
--;      

      list.removeFirst();      

      
return temp;      

    

   }
      

   
public Object top(){      

   
return list.getFirst();      

   }
      

}
    

 

java控制台简易计算器(基本的加减乘除功能) java控制台简易计算器(基本的加减乘除功能) 1.源代码 package base; import java.util.Scanner; public class Example { public static void main(String[] args) { //实现计算器功能 Scanner scanner = new Scanner(System.in); boolean temp = true; while (temp 阅读详情

相关推荐

Java命令行实现简单的计算器

实现+-*/,还有()的简单计算 Myeclipse工程

Java 实现一个简单的计算器

大家好!在本篇博客中,我们将一起探索如何使用 Java 实现一个简单的计算器。计算器是编程中常见的应用,通过这个实例,我们可以学习如何结合基本的控制流和用户交互来构建一个有趣且实用的程序。让我们一起开始这个令人兴奋的编程之旅吧!

大大怪的博客 4282

java 控制台计算器-Strive

在控制台操作的计算器,有增加修改删除,我上班后一次面试做的 好久没有做基础的了

JAVA代码编写简单计算器

java编写计算器

qq_44945678的博客 2916

java特殊矩阵计算器(控制台)

压缩存储输入矩阵,允许输入多种矩阵,进行矩阵加,减,乘,转置,求逆,行列式计算

基于OpenAI Agents构建多智能体工作流:从原理到实战

多智能体系统(Multi-Agent System)是人工智能领域的重要分支,它通过多个智能体(Agent)的协作与交互,解决单一智能体难以处理的复杂任务。其核心原理在于将任务分解、分配与协调,每个智能体具备特定能力,通过通信机制实现信息共享与决策协同。在工程实践中,多智能体框架的价值在于提升任务处理效率、增强系统鲁棒性,并支持模块化开发。典型的应用场景包括自动化工作流编排、复杂问题求解以及人机协同交互。本文以OpenAI Agents SDK为例,深入探讨如何利用其提供的智能体(Agent)、会话(Ses

weixin_28725959的博客 603

java基础,简单计算器的编写

【代码】java基础,简单计算器的编写。

qdffdvv的博客 209

ADF4002分频器避坑指南:常见配置错误及解决方案

本文深入解析了ADF4002分频器在实战应用中的常见陷阱与解决方案。内容涵盖寄存器配置逻辑、硬件PCB布局要点、软件驱动时序细节及系统化调试方法,重点阐述了如何避免因配置错误导致芯片无法正常工作的问题,帮助工程师高效完成高精度频率合成系统设计。

weixin_29192141的博客 96

java计算器 控制台_JAVA控制台计算器

package com.langtao.array;import java.util.Scanner;public class Demo1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String response = "";do{System.out.println("Are ...

weixin_42133899的博客 375

VCSA 6.7证书过期别慌!手把手教你通过SSH修改系统时间恢复登录(附STS证书修复脚本)

本文详细介绍了VCSA 6.7证书过期的应急处理方案,包括通过SSH修改系统时间临时恢复登录、全面更新证书体系以及专项修复STS证书的实战步骤。文章还提供了后期验证和系统加固的建议,帮助运维人员有效应对证书过期问题,确保虚拟化平台的稳定运行。

weixin_31292729的博客 415

ERA5 数据集下载(2025最新 可运行)

众所周知,ERA5数据集经过了更新,尤其是在API访问和下载方式上发生了变化。2025年版的ERA5数据集为气象研究人员提供了更高质量的历史气象数据。本文将介绍如何通过新的API接口下载最新的ERA5数据集。

m0_72141699的博客 3594

基于Java实现计算器功能(控制台版+Java Swing图形用户界面(GUI)版+附带论文)

【代码】基于Java实现计算器功能(控制台版+Java Swing图形用户界面(GUI)版+附带论文)

weixin_51114682的博客 1230

node-red 可视化探索

配置socket选择配置流程产生url。

weixin_44133581的博客 3413

java 简易计算器 控制台

综合运用基本数据类型、运算符和控制结构的知识,完成简易计算器项目。要求提供小数 的加法、减法、乘法和除法运算,能够连续执行多次计算,客户可中断计算。 控制台界面: 代码: package com.java.demo1; import java.util.Scanner; public class JSQi { public static void main(String[] args) { double a,b; String str...

qq_59477257的博客 849

【系统架构设计师-2026上半年真题】案例分析-参考答案及详解(回忆版)

架构评估与设计:通过入侵检测系统的案例分析,阐述质量属性(性能/可用性/安全性/可修改性)的匹配方法,推荐管道-过滤器风格处理实时数据流,并设计8个核心构件实现数据采集到告警的全流程处理。 高并发优化方案: 分析悲观锁(排他锁/共享锁)与乐观锁的特性差异,提出乐观锁通过版本号/CAS实现,悲观锁适用于强一致性场景。 给出Redis优化三手段:分布式锁控制临界资源、Lua脚本保证原子操作、热点数据多级缓存,结合消息队列削峰填谷。 分层架构实践: 智

数据知道的博客 1682

YOLOv8/YOLOv11目标检测系统与多目标跟踪检测系统,使用PySide6搭建目标检测系统,支持目标检测、分割、姿势估计、旋转框,用户端系统+后台管理系统可用于大论文凑工作量或毕设必备

YOLOv8/YOLOv11目标检测系统与多目标跟踪检测系统,目标检测、分割、姿势估计、obb(旋转框),用户端系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程,系统支持 目标检测、分割、姿势估计、obb(旋转框)等模型进来检测,是一个通用的目标跟踪与目标检测系统,适配多种场景如:鱼苗检测与跟踪、行人多目标跟踪、车辆多目标跟踪、牛只行为识别与跟踪、口罩佩戴检测、安全帽佩戴检测、火灾检测等。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

Java简易计算器实现&控制台万年历的设计实现

本文例程出自《Java核心技术》,主编:马志强、张然等。感觉这本书部分章节写的还可以,比很多入门级的书更加直白和趣味性强,更接近实际项目层面! 1.Java简易计算器实现 1.1.效果 1.2.代码 package charpter06.edu.com.login.JMenuTest; import java.awt.BorderLayout; import java.awt.Color; ...

jp_zhou256的博客 416

【人工智能】Spring AI项目在定义 `response_format` 的 Invalid schema for response_format ‘custom_schema‘

确保。

奶爸的编程之路,也就一周冷个三天 562

Java控制台简易计算器

使用while循环,Scanner方法 ,Switch语句实现交互效果。

gyzs123456789的博客 800

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java方法:练习,控制台简易计算器

可以更改计算个数的简易计算器 package com.zdz.method; import java.util.Scanner; public class Operator { public static void main(String[] args) { System.out.println("===========简易计算器=========="); System.out.println("请选择:1.加法 2.减法 3.乘法 4.除法 T.退出");

张生的博客 337

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java控制台实现的简易计算器,实现加减乘除

控制台实现的简易计算器。

weixin_48595687的博客 1219

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

用java编写的简易计算器

public class Demo01{ public static void main(String[] args) { System.out.println(“请输入第一个数值”); Scanner scanner = new Scanner(System.in); double numble =scanner.nextDouble(); System.out.println(“请输入第二个数...

Raykieu_的博客 452

JAVA简易计算器

JAVA简易计算器 import java.util.Scanner; public class Demo7 { public static void main(String[] args) { int a=0; char c=' '; int b=0; Scanner scanner = new Scanner(System.in); a=scanner.nextInt(); c=scanner.n

qq_39453420的博客 596

【新手必做】Java控制台实现简易计算器 四则运算+异常处理

运行程序后,用户可反复输入表达式进行计算,直到主动退出。在IDE中新建Java项目,创建主类。

xtou234c的博客 227

java实现简易计算器功能(加减乘除)

java实现简易计算器功能(加减乘除)

优快云hdlg的博客 2192

java写简单的计算器

public class Test1 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("请输入第一个数:"); if (input.hasNextDouble()) { double num1=input.nextDouble()...

qq_43984255的博客 272
上一篇: 从控制台输出一个用“*”凑成的一个反直角三角形
下一篇: 在控制台打印输出九九乘法口诀表
CodingMouse
博客等级 码龄19年 82粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值