java简易计算器实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
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语言和相关技术,不断提高自己的编程能力和实践经验,为自己的职业生涯打下坚实的基础。