java基础项目 |
您所在的位置:网站首页 › 计算器设定了怎么返回 › java基础项目 |
简单计算器的设计与实现
本项目我已开源,感兴趣的可以去 gitee Calculator简单计算器 下载源码。 练习java代码基础用,应付平时作业应该够了。 简介在这个数字化的时代,计算器成为了我们日常生活中不可或缺的工具之一。无论是学生进行数学计算,还是财务人员处理账目,都离不开计算器的辅助。本文将介绍一个简单的计算器应用程序的设计与实现过程,该程序使用了Java语言开发,具有基本的混合四则运算功能,并且支持负数和一些高级运算符的使用。 运行演示截图:结果为-31.0 不信大家可以验证验证 逻辑实现 采用事件驱动编程模型,响应用户的点击事件。使用字符串来记录输入的表达式,并在点击等号按钮时进行计算。实现一个算法来将中缀表达式转换为后缀表达式,然后对后缀表达式进行计算以得到结果。通过异常处理机制来捕获和处理可能发生的错误,如除以零等。 程序架构该计算器程序主要由以下几个部分组成: MainFrame - 主窗体类,负责界面的显示和用户的交互。MainCalculator - 主程序入口类,用于启动计算器。Test - 测试类,用于测试程序的各个部分是否正常工作。MTool - 工具类,包含了从中缀表达式转后缀表达式,以及对后缀表达式进行计算的方法。 主窗体设计 使用Swing组件构建界面,包括按钮、文本框等。设计一个简洁明了的布局,使用户能够轻松地找到并使用所需的功能。使用图标和颜色来增强视觉效果,提高用户体验 MainFrame 类MainFrame 类继承自 JFrame,是计算器的主窗体。它包含了以下关键部分: 成员变量:包括用于存储显示内容的字符串、后台处理字符串、按钮数组等。静态代码块:用于加载计算器的图标资源。构造函数:初始化窗体,设置标题、图标、默认关闭操作等,并调用绘图和事件监听的方法。绘图方法:负责绘制计算器的界面,包括数字和操作符按钮的布局。事件监听:为每个按钮添加动作监听器,当用户点击按钮时,会触发相应的操作。字符串处理:将用户的操作映射到显示字符串和后台处理字符串上,进行相应的运算逻辑处理。运算逻辑:对后台字符串进行处理,包括中缀转后缀和后缀表达式的计算。 关键代码块以下是 MainFrame 类中的关键代码块: // 静态代码块,加载计算器图标资源 static { try { img = ImageIO.read(new File("resource//image//apap.jpg")); } catch (IOException e) { e.printStackTrace(); } } // 构造函数,初始化计算器窗体 public MainFrame() { initFrame(); redrawUI(); ClickService(); setVisible(true); } // 事件监听,响应按钮点击 private void ClickService() { for (JButton button : buttons) { button.addActionListener(e -> { Maping(button.getText()); }); } } // 字符串处理,处理用户输入 private void Maping(String buttontext) { // ... 省略部分代码 ... if (!"=".equals(buttontext) && !"AC".equals(buttontext)) { // ... 省略部分代码 ... MainFrame.this.jisuanString += temp; } else { // ... 省略部分代码 ... if ("=".equals(buttontext)) { Foperations(this.jisuanString); this.jisuanString = this.displayString; MainFrame.this.redrawUiP1(); } if ("AC".equals(buttontext)) { MainFrame.this.displayString = " "; MainFrame.this.jisuanString = ""; MainFrame.this.redrawUiP1(); } } } // 运算逻辑,中缀转后缀和后缀表达式的计算 private void Foperations(String str) { // ... 省略部分代码 ... String replace = str.replace("$($$-", "$($0$-").replace("$sqrt$", "$^$0.5$").replace("$$", "$"); // ... 省略部分代码 ... } 工具类实现 MTool 类MTool 类是一个工具类,它提供了两个核心方法: InfixTosuFfix:将中缀表达式转换成后缀表达式。FfixCalculate:对后缀表达式进行计算,并返回计算结果。 关键代码块以下是 MTool 类中的关键代码块: // 用于中缀表达式转后缀表达式 public static ArrayList InfixTosuFfix(String[] splitll) { // ... 省略部分代码 ... for (String s : splitll) { // ... 省略部分代码 ... if (!Nofu(s, you)) { arrayList.add(s); continue; } // ... 省略部分代码 ... } return arrayList; } // 用于对后缀表达式进行计算 public static String FfixCalculate(ArrayList arrayList) { // ... 省略部分代码 ... for (String s : arrayList) { // ... 省略部分代码 ... if (!Nofu(s, yuo) && stack2.size() > 1) { // ... 省略部分代码 ... fuyunsuan(stack2, s, aa, bb); } } return stack2.peek(); } // 判断是否该是运算符号 public static boolean Nofu(String str, String[] strs) { for (String s : strs) { if (str.equals(s)) return false; } return true; } // 根据符号进行对应的运算 static private void fuyunsuan(Stack stack2, String temp, double aa, double bb) { switch (temp) { case "+": stack2.push(String.valueOf(bb + aa)); break; // ... 省略其他运算符的代码 ... } } 用户体验该计算器程序提供了一个直观的用户界面,用户可以通过点击按钮来输入数字和运算符,并在屏幕上看到实时的计算过程。当用户点击等号按钮时,程序会显示最终的计算结果。此外,程序还提供了清空功能,方便用户重新开始新的计算。 总结本文介绍了一个基于Java的简单计算器的设计与实现。通过这个项目,我们可以看到如何使用Java Swing库来创建用户界面,并处理用户的输入事件。同时,我们也学习了如何将中缀表达式转换为后缀表达式,并进行计算。这个项目可以作为学习Java编程和理解计算器工作原理的一个良好示例。点赞点赞>_ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |