Java 控制台实现计算器功能
计算器是每个人在日常生活中都可能需要的一种工具。从简单的加减法到复杂的数学运算,计算器的功能几乎涵盖了所有基本的算术操作。在这篇文章中,我们将使用Java语言实现一个简单的控制台计算器,同时介绍其设计思路和实现方法。
1. 项目概述
在本项目中,我们将创建一个控制台应用程序,允许用户输入两个数字及一个运算符(如加、减、乘、除),然后返回计算结果。为了使项目结构更清晰,我们将代码分为几个模块,分别处理用户输入、计算逻辑和输出。
2. 项目结构
在开始编码之前,先设计一下项目的结构。我们可以使用甘特图来可视化项目的各个阶段和任务分配。
gantt
title 计算器项目甘特图
dateFormat YYYY-MM-DD
section 需求分析
需求确认 :a1, 2023-10-01, 3d
section 设计
项目结构设计 :a2, after a1, 2d
section 实现
编码 :a3, after a2, 5d
section 测试
单元测试 :a4, after a3, 3d
3. 代码实现
3.1 主类
首先,创建一个主类 Calculator,这个类将包含一个 main 方法,用于启动程序。
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用简单计算器!");
while (true) {
System.out.print("请输入第一个数字: ");
double num1 = scanner.nextDouble();
System.out.print("请输入运算符 (+, -, *, /): ");
char operator = scanner.next().charAt(0);
System.out.print("请输入第二个数字: ");
double num2 = scanner.nextDouble();
double result = calculate(num1, num2, operator);
System.out.println("结果: " + result);
System.out.print("是否继续计算? (yes/no): ");
String choice = scanner.next();
if (!choice.equalsIgnoreCase("yes")) {
break;
}
}
scanner.close();
}
private static double calculate(double num1, double num2, char operator) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
if (num2 != 0) {
return num1 / num2;
} else {
System.out.println("错误: 除数不能为零");
return 0;
}
default:
System.out.println("错误: 不支持的运算符");
return 0;
}
}
}
3.2 代码分析
- 输入处理: 我们使用
Scanner类从控制台读取用户输入。用户需要输入两个数字和一个运算符。 - 计算功能:
calculate方法根据运算符执行相应的数学运算。对于除法,我们还处理了除数为零的情况,避免了潜在的错误。 - 循环实现: 使用
while循环使得用户可以连续进行多次计算,直到用户选择退出。
3.3 状态图
状态图可以有效地表示程序在不同状态下的行为。以下是计算器的状态图,用于说明程序在启动、计算和结束时的不同状态。
stateDiagram
[*] --> Idle
Idle --> Input: 用户开始输入
Input --> Calculate: 用户输入完毕
Calculate --> Output: 显示计算结果
Output --> Idle: 用户选择继续
Output --> [*]: 用户选择退出
4. 扩展功能
在实现了基本的计算功能后,我们可以考虑一些扩展功能,使计算器更加完善。例如,我们可以添加科学计算的功能(如三角函数、指数等)、历史记录功能、或者图形用户界面(GUI)等。
4.1 历史记录功能
我们可以使用一个列表来存储历史结果,并在每次计算后将结果加入列表中,允许用户查看过去的计算结果。以下是扩展代码的简单示例:
import java.util.ArrayList;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> history = new ArrayList<>();
System.out.println("欢迎使用简单计算器!");
while (true) {
// 输入和计算部分...
String record = num1 + " " + operator + " " + num2 + " = " + result;
history.add(record);
// 展示历史记录
System.out.println("历史记录: " + history);
// 继续计算的选择...
}
}
}
5. 结论
通过本项目,我们实现了一个简单的Java控制台计算器,涵盖了基本的运算功能。在实现过程中,我们不仅练习了Java编程技能,也体会到如何设计程序结构、处理用户输入以及实现基本的逻辑控制。未来,我们可以继续扩展计算器的功能,使其更加强大和灵活。
希望这篇文章能够帮助你更好地理解计算器的实现逻辑,如果你有任何问题或想法,请随时交流!
















