Java课程设计:科学计算器实现

版权申诉
0 下载量 81 浏览量 更新于2024-07-01 收藏 1.68MB PDF 举报
在Java课程设计中,"java课程设计计算器3科学计算器.pdf"文件涉及的是一个基于Swing GUI工具包的科学计算器程序设计。该计算器项目主要使用了Java编程语言,利用了多个Java标准库模块,如`javax.swing`, `java.awt`, 和 `java.awt.event`等,以构建一个功能丰富的图形用户界面。 首先,通过`import javax.swing.*;`语句,开发人员引入了Swing组件,这是Java用于创建图形用户界面的核心库,包含了各类按钮、文本框、面板等控件。Swing提供了更现代的外观和交互体验,适用于跨平台的窗口应用程序。 `import java.awt.*;` 和 `import java.awt.event.*;` 是为了引入基本的Java AWT(Abstract Window Toolkit)库,它提供了低级别的窗口和图形绘制功能,以及事件处理机制,比如鼠标和键盘事件。 `import java.text.DecimalFormat;` 和 `import java.text.SimpleDateFormat;` 是用来进行数值格式化和日期处理的,这对于显示和处理用户输入时的数据精度和格式非常重要。例如,`DecimalFormat` 可以控制数字的小数位数和千位分隔符。 `import java.util.Calendar;` 和 `import java.util.Date;` 用于处理时间和日期的操作,包括获取当前时间、日期计算等。`GregorianCalendar` 类在此可能被用于处理更复杂的日历操作。 其他导入的库如`BasicStroke`, `BorderLayout`, `Color`, `Font`, `Graphics`, `Graphics2D`, `GridLayout`, `Image`, `Toolkit`, `ActionEvent`, `ActionListener`等,分别与图形渲染、布局管理、颜色处理、字体设置、图形绘制、窗口管理、事件监听器等核心功能相关。 程序的主要类`Biaozhunjisuanqi`是一个`JFrame`子类,`JFrame`是Java中的顶级窗口组件。该类继承了`JFrame`类,表明这是一个独立的窗口,同时也实现了`ActionListener`接口,这意味着它可以响应用户的动作事件。`actionPerformed(ActionEvent e)` 方法是ActionListener接口的一部分,当用户触发特定动作(如点击按钮)时,这个方法会被调用,从而执行相应的计算逻辑。 在类的内部,还定义了一个`final long serialVersionUID = 1L;`,这是为了确保序列化对象时的一致性,避免版本冲突。序列化是将对象的状态保存到文件或流中的过程,这个常量用于标识特定版本的类。 这份课程设计涉及到的知识点包括GUI编程、事件驱动编程、Swing组件使用、日期和数值格式化、布局管理以及面向对象编程的基本概念。通过这个项目,学生可以深入了解Java在创建复杂交互式应用程序中的实际应用。
2023-05-29 上传
目录 1 课设任务及要求 1 1.1课设任务: 1 1.2创新要求: 1 1.3设计要求 1 2 需求分析 1 2.1 设计背景 1 2.2 开发的技术及功能 2 3 设计思路 2 4 详细设计 4 4.1功能实现: 4 4.4 程序设计过程 5 5 系统调试 5 5.1 运行调试 5 6 参考文献 7 附录 7 1 课设任务及要求 1.1课设任务: 、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进 行浮点数和负数的运算); 、有求倒数、退格和清零功能。 1.2创新要求: 能进行正切、余弦,以及求平方根、指数 (包括对e)、自然对数运算。 1.3设计要求 设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正 负号、求倒数、退格和清零功能。 课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通 过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 认真按时完成课程设计报告,课程设计报告容包括:设计任务与要求、需求分析、 设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 2 需求分析 2.1 设计背景 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限 制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他 的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运 算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦( cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以 及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单, 代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 2.2 开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成 。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负 数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算, 还有求倒数、退格和清零功能。 3 设计思路 、本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout边缘布局,将单行文本框加入到"North"区域,包含各种按钮的面板 JPanel p加入到"Center"区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加 到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); 、事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件("0","1" ,"2"…"8","9")、运算符按钮事件("+","-","*","/","%")、正负号按钮事件 ("+/- ")、小数点按钮事件(".")、等号按钮事件("=")、求倒按钮事件("求倒")、退 格按钮事件("退格")、清除按钮事件("C") 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数 (pow)、对e的指数(exp)、对数运算(log)。 、在事件处理,触发按钮事件时,先判断是或是数字是或是"- /+"是或是".",是的话就将负号"-" 、数字、小数点"."分别写入文本框并存放在sum中,然后判断是或是"退格"、"求倒"等 ,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放 在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件 还是计算中间触发的按钮事件。 、计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字 符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 、利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能 。 、利用文本框显示操作数和运算结果。 4 详细设计 4.1功能实现: 加减乘除求余以及指数运算 其他运算 、求平方根 、对数运算 、余弦运算 、正切运算 、e的指数运算 、倒数运算 主要方法说明 public cos(double x) //求x的余弦函数 public tan (double x) //求x的正切函数 public sqrt(double x) //求x的平方根 public log (double x) //求x的自然对数运算