java简易计算器实训报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java简易计算器实训报告

Java简易计算器实训报告

随着人们对数学和计算机的需求不断增长,计算器也成为了必备的工具之一。而在计算机领域,Java语言因其跨平台和易于学习的特点而备受青睐。因此,我选择了利用Java语言来编写一款简易计算器的实训项目。

一、需求分析

在编写计算器之前,我们需要对其功能进行需求分析。一般来说,计算器的功能包括加、减、乘、除等基本数学运算符,以及括号、百分号、小数点等其他计算功能。在此基础上,我们可以考虑增加科学计算、历史记录、单位转换等功能。

二、设计思路及实现

在需求分析的基础上,我们设计了一款基于Java语言的简易计算器。其基本功能包括加、减、乘、除、括号、百分号、小数点等。在实现过程中,我们采用了以下设计思路:

1. 利用Java Swing构建GUI界面,让用户可以通过鼠标点击输入数字和运算符。

2. 通过Java的逻辑运算符实现基本的数学运算,包括加、减、乘、除等。

3. 利用Java的正则表达式判断用户输入的数字是否合法,并进行相应的处理。

4. 通过栈的数据结构实现括号运算,使得程序能够正确处理带有括号的数学表达式。

5. 实现百分号功能,使得用户可以快速进行百分比运算。

6. 通过Java的异常处理机制,处理用户输入不合法的情况,避免程序崩溃。

三、代码实现

在代码实现过程中,我们主要采用了Java Swing和Java核心库中的一些类和方法。以下是代码的核心部分:

1. GUI界面代码

在Java Swing中,我们可以通过JFrame、JPanel、JButton等组件构建出一个GUI界面,使得用户可以通过鼠标点击输入数字和运算符。以下是界面代码的核心部分:

JPanel panel = new JPanel();

panel.setLayout(new GridLayout(4,4));

//数字按钮

panel.add(new JButton("7"));

panel.add(new JButton("8"));

panel.add(new JButton("9"));

panel.add(new JButton("/"));

panel.add(new JButton("4"));

panel.add(new JButton("5"));

panel.add(new JButton("6"));

panel.add(new JButton("*"));

panel.add(new JButton("1"));

panel.add(new JButton("2"));

panel.add(new JButton("3"));

panel.add(new JButton("-"));

panel.add(new JButton("0"));

panel.add(new JButton("."));

panel.add(new JButton("+"));

panel.add(new JButton("("));

panel.add(new JButton(")"));

panel.add(new JButton("%"));

2. 数学运算代码

在Java中,我们可以通过逻辑运算符实现基本的数学运算。以下是计算加法的核心代码:

double result = num1 + num2;

3. 正则表达式代码

在Java中,我们可以通过正则表达式判断用户输入的数字是否合法,并进行相应的处理。以下是判断用户输入是否为数字的核心代码:

Pattern pattern = pile("^\\d+(\\.\\d+)?$"); Matcher matcher = pattern.matcher(strNum);

if (!matcher.matches()) {

throw new IllegalArgumentException("输入不合法!");

}

4. 括号运算代码

在Java中,我们可以通过栈的数据结构实现括号运算,使得程序能够正确处理带有括号的数学表达式。以下是实现括号运算的核心代码:

Stack stack = new Stack<>();

for (int i = 0; i < len; i++) {

char c = s.charAt(i);

if (c == '(') {

stack.push(res);

res = 0;

sign.push(1);

} else if (c == ')') {

res = sign.pop() * res + stack.pop();

}

}

五、总结

通过本次实训项目,我深入了解了Java语言的特点和应用场景,并学习了Java Swing、正则表达式、异常处理等技术。同时,我也加深了对计算器的理解和使用。

在未来的学习和工作中,我将继续学习和掌握Java语言和相关技术,不断提高自己的编程能力和实践经验,为自己的职业生涯打下坚实的基础。

相关文档
最新文档