Java课程设计 您所在的位置:网站首页 计算器编写 Java课程设计

Java课程设计

2023-08-28 06:41| 来源: 网络整理| 查看: 265

目录

简介:

一.基本要求

二.功能实现

三.设计思路

 四.具体步骤操作

 五.具体代码内容展示

1.设计计算器窗口,提供了基本的界面组件以及按钮的设置和添加。

 2.部分按钮的功能实现

3.三角函数计算的实现

4.进制转换的实现

5.细节处理

6.获取当前时间

六.界面展示

1.完整界面

2.功能展示

 七.项目git地址

八.git提交记录

九.总结

简介:

  在本博客中,我将使用Java Swing构建一个科学计算器,Java Swing是一种图形用户界面(GUI)工具包。通过这个项目,我们可以学习如何使用Java Swing创建一个交互式的计算器应用程序,并实现基本的数学运算功能和一些科学计算功能。

一.基本要求

  仿照Windows计算器,编写一具有GUI的计算器,能实现整数的加、减、乘、除四则运算,并且需要支持键盘快捷键,基本可取代windows计算器。支持复制、粘贴功能,方便输入长串数字。

二.功能实现

1.加减乘除的实现

2.三角函数,乘方开方等计算的实现

3.可以直接获取当前时间

4.可以进行进制的换算

5.实现从键盘的录入以及复制粘贴导入数据

三.设计思路

导入所需的Java库:在代码开头使用import语句导入所需的Java库,包括java.awt和javax.swing等库。

创建Calculator类并继承JFrame:创建一个名为Calculator的类,并继承JFrame类,以构建应用程序的主窗口。

定义类的成员变量:在Calculator类中定义一些成员变量,用于存储计算器的状态,如start表示是否重新开始计算,result表示当前的计算结果,command表示当前的运算符等。

创建窗口和布局:在Calculator类的构造方法中设置窗口的标题、大小和位置,并创建一个面板用于容纳按钮。

添加文本域:使用JTextField组件创建一个文本域,并设置其属性,如大小和编辑性。

创建按钮:使用JButton组件创建各种功能按钮,并为每个按钮设置事件监听器。

实现事件监听器:创建一个内部类MyActionListener,实现ActionListener接口,并编写各个按钮的事件处理逻辑。根据按钮的不同,执行相应的操作,如输入数字、选择运算符、执行计算等。

界面美化和异常处理:在添加按钮时,设置按钮的背景颜色和样式,以使界面更美观。在事件处理逻辑中,进行异常处理,如处理除数为零的情况或输入错误数字的情况,并给出相应的提示信息。

完善辅助方法:在Calculator类中添加辅助方法,如去除多余的小数位数、计算阶乘等。

实例化Calculator类:在main方法中创建Calculator对象,启动应用程序。

 四.具体步骤操作

创建Java项目并导入所需的库: 首先,我们需要创建一个Java项目,并导入Java Swing库以及其他所需的库文件。

创建Calculator类并继承JFrame: 在项目中创建一个名为Calculator的类,并继承JFrame类,这将作为我们的计算器应用程序的主窗口。

设置计算器的基本属性: 在Calculator类的构造方法中,设置计算器的标题、大小和位置等基本属性。

添加文本域和按钮: 使用JTextField组件添加一个文本域,用于显示计算结果或用户输入的数字。然后,使用JButton组件创建按钮,并将它们添加到一个面板中。

实现按钮的事件监听器: 创建一个内部类MyActionListener实现ActionListener接口,用于监听按钮的事件。根据按钮的不同功能,编写相应的操作逻辑,例如数字输入、运算符、三角函数、阶乘等。

实现数学运算功能: 在事件监听器中,根据用户的输入和选择的运算符,实现基本的数学运算功能,如加法、减法、乘法和除法。使用Math类的方法实现一些常见的数学运算,如平方、开方和三角函数等。

实现其他功能: 添加一些其他的科学计算功能,例如十进制与二进制的转换、获取当前时间等。

完善用户界面: 根据需要,设置按钮的背景颜色、布局和其他样式。

测试和调试: 运行程序,通过点击按钮进行数学运算和科学计算,检查结果是否正确。在测试过程中,注意捕获并处理可能出现的异常,例如除数为零或输入错误。

 五.具体代码内容展示 1.设计计算器窗口,提供了基本的界面组件以及按钮的设置和添加。 public Calculator() { this.setTitle("科学计算器"); this.setSize(600, 300); this.setLocationRelativeTo(null); //添加文本域 jTextField = new JTextField(30); jTextField.setText(""); jTextField.setEditable(true); this.add(jTextField,"North"); //添加按钮 jPanel.setLayout(new GridLayout(5,7,3,3)); String name[] = { "+/-","PI","1/X","C","/","*","Back","X^2","X^3", "X^y","7","8","9","-","X!","√X","3^√X","4","5", "6","+","sin","cos","tan","1","2","3","%", "2进制","10进制","cot","time","0",".","=" }; jButtons = new JButton[name.length]; MyActionListener actionListener= new MyActionListener();  2.部分按钮的功能实现 if(start) { if((int)input.charAt(0)>=48 && (int)input.charAt(0) 0){ jTextField.setText(jTextField.getText().substring(0,jTextField.getText().length()-1)); } } 3.三角函数计算的实现 else if(input.equals("sin")) { result = Math.sin(Double.parseDouble(jTextField.getText())); jTextField.setText(""+getPrettyNumber(Double.toString(result))); start = true; } //实现余弦三角函数 else if(input.equals("cos")) { result = Math.cos(Double.parseDouble(jTextField.getText())); jTextField.setText(""+getPrettyNumber(Double.toString(result))); start = true; } //实现余切三角函数 else if(input.equals("cot")) { result = 1.0/Math.tan(Double.parseDouble(jTextField.getText())); jTextField.setText(""+getPrettyNumber(Double.toString(result))); start = true; } //实现正切三角函数 else if(input.equals("tan")) { result = Math.tan(Double.parseDouble(jTextField.getText())); jTextField.setText(""+getPrettyNumber(Double.toString(result))); start = true; } 4.进制转换的实现 //实现十进制到二进制的转化 else if(input.equals("2进制")) { String result2 = Integer.toBinaryString(Integer.parseInt(jTextField.getText())); jTextField.setText(""+getPrettyNumber(result2)); start = true; } //实现二进制到十进制的转化 else if(input.equals("10进制")) { try { String result2 = Integer.valueOf(jTextField.getText(),2).toString(); jTextField.setText(""+getPrettyNumber(result2)); }catch(NumberFormatException exception) { JOptionPane.showMessageDialog(null, "对不起,数字错误,请重新输入!", "Error!", JOptionPane.ERROR_MESSAGE); throw new NumberFormatException("数字格式错误"); }finally { start = true; } } 5.细节处理 //去掉小数点后没用的0 public static String getPrettyNumber(String number) { return BigDecimal.valueOf(Double.parseDouble(number)) .stripTrailingZeros().toPlainString(); } 6.获取当前时间 //实现获取当前时间 else if(input.equals("time")) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); jTextField.setText(df.format(System.currentTimeMillis())); start = true; } 六.界面展示 1.完整界面

2.功能展示

 (1).加减乘除运算(以1+1进行加法运算演示)

1+1结果输出

 

 (2).乘方开方运算(以对9进行开放演示)

 

 (3).进制换算的实现(以5的二进制为例)

 (4).时间功能的演示

 七.项目git地址

https://github.com/CanCanN33d/-1

八.git提交记录

九.总结

  通过使用Java Swing提供的组件和事件监听器,我们可以创建一个功能强大且用户友好的计算工具。无论是进行基本的数学运算还是执行一些科学计算,这个科学计算器都能够满足我们的需求。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有