Java程序设计带有函数功能的计算器
时间:2025-02-23
时间:2025-02-23
Java程序设计带有函数功能的计算器
《Java程序设计》课程设计报告
课题名称:带有函数功能的计算器设计
系别:
班级:
姓名:
学号:
Java程序设计带有函数功能的计算器
1. 课程设计题目
基于带有函数功能的计算器设计
2. 课程设计目的
1. 巩固和加深课堂所学知识;
2. 将课本上的理论知识和实际应用有机的结合起来,培养分析和解决实际问题的能力;
3. 通过对java语言程序代码的阅读、修改、设计,理解和掌握复杂的java语言应用程序的编程,提高实践编程能力。
3. 程序运行环境
本程序在windows visit的pc机上利用jdk-6u7-windows-i586-p软件运行通过。
4. 程序功能使用说明
运行该程序后,参与运算的操作数可有鼠标点击相应按钮输入,但操作符应有鼠标点击相应的按钮,当:
1. 在简易计算中可以按照常规输入计算,基本无bug,“%”未设置其用途;
2. 简易计算中,可以进行+、-、*、/、乘方(√)及阶乘(!)运算;
3. 科学计算中有许多功能为实现,主要能进行加、减、乘、除、乘方、开方、幂、开n次方、倒数、阶乘、ln、e的x次幂、三角函数等高级运算;
4. 例如:
Java程序设计带有函数功能的计算器
(1).1+8=9
(2).20+-5=15
(3).36-6=30
(4).2*8=16
(5).36/6=6
(6)4^2=16
(7).100√=10
(8).-9√=不能执行此操作!
(9).3!=6
(10).-20!=不能执行此操作!
(11).0!=1
(12).6In=1.791759469
(13).2Exp=7.38905609893065
(14).8x^y3=512
(15).20x^2=400
(16).6n!=872
(17)30sin=0.5 其它(cost,tan)依次类推;
(18).1/x计算有bug;
(19).3 x√8=2(求8开3次方);
(20).85mod10=5(85对10求余)
5. 关键算法与技术:
1. 大数阶乘;
Java程序设计带有函数功能的计算器
2. 界面切换;
3. GirdLayout布局管理器的使用;
4. 事件响应;
5. 匿名内部类的使用;
6. 设计思路:
本程序采用模块化设计,调试方便,程序的可读性好。在老师的指导下,由主程序启动简易计算器,根据使用者的需要可以在简易计算器中进行运算操作,若不能满足用户功能,可以选择使用科学计算器,具体操作与目前市面上的计算器差不多,用户还可以选择使用说明进行查看具体操作。由于时间及个人水平的问题,科学计算中还有很多功能未实现。
具体思路:用户输入(点击)某一数字或操作符,程序将自行判断是操作数还是操作符,
1. 若为一操作数的首次输入,则将显示区的“0”替换,若该操作数不为首次输入则将显示区的数字串接上此次输入的数字;
2. 若为操作符,将判断是否为带符号操作数,若是则保存符号,反之为纯操作符:若为二元操作符就将显示区的字符串转化为双精度数;若为等号就进行计算结果并显示结果;若为一目操作符就进行相应的一目运算并显示结果;
3. 进行相应的初始化操作,为下一次输入做准备;
Java程序设计带有函数功能的计算器
4. 根据自己的理解画了下面的简单的流程图。略
7. 编码实现:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.math.*;
import java.util.*;
/**
* <p>Title: 用户应用界面计算器</p>
* <p>Description: 包含简易计算与功能更加强大的科学计算</p>
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: 华中科技大学武昌分校</p>
* @author 涂小青
* @version 1.0
*/
public class Calculat {
static JTextField show;//设置输入区,显示区
static double opNum = 0;//存放操作数
static String opChar = "=";//存放操作符
static boolean flag = true;//设置标志
public static void main(String[] args) {
new EasyFrame();//产生首界面——简易计算器
}
}
class EasyFrame//构建简易计算器框架界面
{
static JFrame frame;
public EasyFrame()
{
frame = new JFrame("简易计算器");
Toolkit kit = Toolkit.getDefaultToolkit();//设置图标
//下面这条语句不好,不具有可移植性
Image image = kit.getImage("D:\\jbproject\\netTest\\src\\nettest\\1471.jpg"); frame.setIconImage(image);
frame.addWindowListener(new WindowAdapter() {//响应关闭事件
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
JMenuBar mb = new JMenuBar();//创建菜单栏
JMenu m1 = new JMenu("编辑");//创建菜单
Java程序设计带有函数功能的计算器
JMenu m2 = new JMenu("操作");
JMenu m3 = new JMenu("帮助");
JMenuItem mi1c = new JMenuItem("复制", KeyEvent.VK_C);//创建菜单项 JMenuItem mi1v = new JMenuItem("粘贴", KeyEvent.VK_V);
JMenuItem mi21 = new JMenuItem("基本计算");
JMenuItem mi22 = new JMenuItem("科学计算");
JMenuItem mi31 = new JMenuItem("使用说明");
JMenuItem mi32 = new JMenuItem("About...");
frame.setJMenuBar(mb);//添加菜单到窗口
mb.add(m1); mb.add(m2); mb.add(m3);
m1.add(mi1c); m1.add(mi1v);
m2.add(mi21); m2.add(mi22);
m3.add(mi31); m3.add(mi32);
/*菜单项监听事件 …… 此处隐藏:9552字,全部文档内容请下载后查看。喜欢就下载吧 ……