科学计算器程序Java代码
- 格式:docx
- 大小:1.49 MB
- 文档页数:33
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class Counter extends WindowAdapter
{
static JFrame f=new JFrame("计算器"); static JTextField text1=new JTextField("0."); static String source="";
static String cal="";
static String object="";
static boolean flag=false;
static boolean flag1=true;
static boolean flag2=false;
public void init()
{
try
{
Container c=f.getContentPane();
JPanel pan1=new JPanel();
JButton b1=new JButton("1");
JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");
⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class Calcular3 extends JFrame implements ActionListener,MouseListener{
private int m1=0,n=0;//
private double m2=0;//运算的数
private int flag=0;
JFrame f;
JPanel p1,p2,p3;
JTextField t;
JButton b1[]=new JButton[18];
String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};
public Calcular3(){
f=new JFrame("计算器");
t=new JTextField(35);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
f.setBounds(100, 100, 400, 200);
计算器Java编程代码
1、界面截图
1、程序代码
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Counter implements ActionListener {// 改进小数问题private boolean append = false;
JButton[] jb = new JButton[20];
JTextField jtf = new JTextField(19);
String[] st = { "Backs", "CE", "C", "+", " 7 ", " 8 ", " 9", "-",
" 4 ", " 5 ", " 6", "*", " 1 ", " 2 ", " 3", "/",
" . ", "+/-", " 0", "=", };
String num1 = "0";
String operator = "+";
public Counter() {
JFrame jf = new JFrame("计算器");// 界面设置
GridLayout gl = new GridLayout(6, 1);
jf.setLayout(gl);
JPanel jp0 = new JPanel();
jp0.add(jtf);
jf.add(jp0);
JPanel jp1 = new JPanel();
for (int i = 0; i < 4; i++) {
jb[i] = new JButton(st[i]);
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculater extends JFrame implements ActionListener
{
private JPanel north, center;
private JButton[] buttons = new JButton[20];
private JTextField text;
private double result;
private char modifier = '\0';
private boolean flag = false;
private int door=0;
public Calculater( )
{
super("计算器");
Container c = getContentPane( );
c.setLayout(new BorderLayout( ));
text = new JTextField(25);
north = new JPanel( );
north.add(text);
center = new JPanel( );
center.setLayout(new GridLayout(5,4,2,2));
String s[] = {"sqrt","+/-","ON","OFF","7","8","9","/","4","5","6","*","1","2","3","-","0","." ,"=","+"};
import java.awt.*;
class jisuanqi
{
public static void main(String[] args)
{
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
Panel p4=new Panel();
Panel p5=new Panel();
Panel p6=new Panel();
TextField tf=new TextField(30);
tf.setEditable(false);
tf.setBackground(Color.WHITE);
p1.setLayout(new BorderLayout(3,3));
p1.add(p2,"North");
p1.add(p3,"Center");
p2.add(tf);
p3.setLayout(new BorderLayout(3,3));
p3.add(p4,"North");
p3.add(p5,"West");
p3.add(p6,"Center");
p4.setLayout(new GridLayout(1,3,3,3));
Button b1=new Button("Backspace");b1.setForeground(Color.red); Button b2=new Button(" CE ");b2.setForeground(Color.red);
Button b3=new Button(" C ");b3.setForeground(Color.red);
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jisuanqi extends JFrame implements ActionListener,ItemListener{//ItemListener用于捕获带有item的组件产生的事件
JTextField text;
JTextField textMemory;//内存中记录
boolean clickable;
double memoryd;
int memoryi;
String copy;
public jisuanqi(){
super("计算器");
setSize(450,230);
}
public void init(){
clickable = true;
JPanel pa1=new JPanel();
pa1.setBackground(new Color(236,231,210));//设置背景色
text=new JTextField("0.",38);//设置文本框长度
text.setHorizontalAlignment(JTextField.RIGHT);//从右到左
pa1.add("North",text);//面板添加和按钮的设置
JPanel pa=new JPanel();
JPanel pa2=new JPanel();
JButton bt1=new JButton("Backspace");
JButton bt2=new JButton("CE");
目录
1 课设任务及要求 (1)
1.1课设任务: (1)
1.2创新要求: (1)
1.3设计要求 (1)
2 需求分析 (2)
2.1 设计背景 (2)
2.2 开发的技术及功能 (2)
3 设计思路 (3)
4 详细设计 (4)
4.1功能实现: (4)
4.4 程序设计过程 (6)
5 系统调试 (6)
5.1 运行调试 (6)
6 参考文献 (7)
附录 (8)
1 课设任务及要求
1.1课设任务:
⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算);
⑵、有求倒数、退格和清零功能。
1.2创新要求:
能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。
1.3设计要求
①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。
②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。
③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。
2 需求分析
2.1 设计背景
设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。
用Java实现的计算器
计算器是一个广泛应用的工具,用于进行数学运算。如今,随着计算机技术的不断发展,计算器也逐渐被软件程序所替代。本文将介绍如何使用Java语言实现一个简单的计算器程序。
一、程序概述
计算器程序主要包括用户界面和计算逻辑两部分。用户界面负责显示计算器的按钮和输入输出框,计算逻辑负责根据用户输入进行运算并返回结果。
二、用户界面设计
在Java中,我们可以使用Swing或JavaFX等图形库来设计用户界面。本文选用JavaFX来实现计算器的界面。界面需要包括数字按钮、运算符按钮、输入输出框等组件。
在程序启动时,我们需要初始化界面并设置各个组件的位置、大小和样式。为了方便布局,我们可以使用GridPane等布局管理器来管理组件。
三、计算逻辑实现
1. 表达式解析
计算器需要将用户输入的表达式解析为计算机可以识别的格式。Java中可以使用正则表达式或者逆波兰表达式来解析表达式。本文选用简单的正则表达式方法进行解析。
2. 运算逻辑
解析表达式后,我们需要根据运算符的优先级进行运算。Java中可
以使用栈来实现运算符的优先级判断和运算。我们可以定义一个操作
数栈和一个运算符栈,按照规则将表达式中的数字和运算符依次入栈,并根据运算符的优先级进行运算并将结果入栈。
四、完整代码示例
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
北邮JAVA第三次作业科学计算器(附源代码)
JAVA第三次作业
选题:科学计算器
一、设计思路
(1)布局
1.数字键盘有0~9和小数点
2.符号键盘有+某÷,幂,开方,lg,ln
3.功能按键有清屏(AC)和删除(Del)
(2)计算器流程状态转移图
设定的标志位和变量有:
booleannumflag=fale;//标志:是否输入数字
booleanopflag=fale;//标志:是否输入运算操作符Stringt某
t=null;//显示到文本框里的字符串Stringnum_t某t=\;//当前操作数的字符串形式Stringop=\;//存放输入的运算操作符num1=0;//第一个操作数num2=0;//第二个操作数
privateBigDecimalbig_num1=newBigDecimal(Double.toString(0)); //解决浮点数的精度丢失问题
privateBigDecimalbig_num2=newBigDecimal(Double.toString(0));
1.关于操作数
操作数为输入数字时会改变的数,有num1和num2。按下运算符和控
制字符,会设定当前
下在键入的操作数,由opflag控制,fale表示正在操作num1,true
表示正在操作num2。
初始状态下的操作数为num1。按下AC会恢复操作数为初始状态num1。按Delete、开方、lg、ln不会改变当前的操作数。其中后三者只对num1
有效。其他的运算符和控制符都会使操作数为num2。
2.计算器的状态框图
输入第一个数,比如53numflag=true(num1)opflag=falenum_t某
import java.awt.*;
import java.awt.event.*;
public class Cal {
public static void main(String[] args) {
CalFrame f = new CalFrame();
}
}
class CalFrame extends Frame {
double d1, d2;
int op = -1;
TextField tf;
CalPanelL p1;
CalPanelR p2;
// Constructor
CalFrame() {
super("Small Calculator");
setLayout(new FlowLayout(FlowLayout.CENTER,8,10));
setBackground(new Color(100,150,150));
setForeground(Color.white);
setResizable(false);
setSize(300,200);
tf = new TextField(22);
tf.setEditable(false);
tf.setBackground(new Color(108,118,103));
tf.setForeground(Color.white);
tf.setFont(new Font("Arial",Font.BOLD,16));
add(tf);
p1 = new CalPanelL();
p2 = new CalPanelR();
add(p1);
add(p2);
package calculator;
import java.awt.*;
import java.awt.event.*;
public class Test
{
private static Test test=new Test();
private static TextField t=new TextField();
private static String a[]={"MC","7","8","9","/","sqrt","MR","4","5","6","*","%","MS","1","2","3","-","1/x ","M+","0","+/-",".","+","="};
private static Button B[];
private static Button b3=new Button("退出");
private static Button b=new Button("Backspace");
private static Button b1=new Button("CE");
private static Button b2=new Button("C");
private static double sum=0,sq;
private static int f=1, y=0; //f用于记录是否按等于号为0是按了y用于控制运算符
private static String s="4",s1="4";//s用于记录当前运算符,s1用于记录上一次的运算
private void foundation()
计算器源代码
一、计算器源代码文件名:computer1.java
import java.awt.*;
import java.awt.event.*;
public class computer1 extends Frame implements ActionListener{
//声明窗口类并实现动作事件接口。Button n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;//声明数字按钮
Button op,os,om,od,oe,oc;//声明操作按钮
TextField tfd;//声明文本框
String flg,rslt;//声明标志串、结果串
Panel p1,p2,p3;//声明面板
int i1,i2;
float flt;
computer1(){
super("加减乘除计算器");
n0 = new Button("0");//实现各按钮
n1 = new Button("1");
n2 = new Button("2");
n3 = new Button("3");
n4 = new Button("4");
n5 = new Button("5");
n6 = new Button("6");
n7 = new Button("7");
n8 = new Button("8");
n9 = new Button("9");
op = new Button("加");
os = new Button("减");
om = new Button("乘");
od = new Button("除");
java程序例子
Java程序是一种基于对象的编程语言,具有简单、实用、可靠、可移植等特点,被广泛应用于各种软件开发领域。下面我将介绍一个Java 程序的例子,希望能为初学者提供一些参考和帮助。
该程序是一个简单的计算器,可以进行加、减、乘、除四个基本运算操作,支持在命令行进行输入和输出。这个计算器的核心代码如下:
```
import java.util.Scanner; //导入Scanner类
public class Calculator {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); //创建Scanner对象 System.out.print("请输入第一个数:");
double a = in.nextDouble(); //获取第一个数
System.out.print("请输入运算符(+、-、*、/):");
String op = in.next(); //获取运算符
System.out.print("请输入第二个数:");
double b = in.nextDouble(); //获取第二个数
double result = 0; //定义计算结果变量
switch(op) { //根据运算符进行相应的运算
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
科学计算器源代码
以下是一个简单的科学计算器的源代码,包含了基本的数学运算、三角函数、指数和对数运算、阶乘和组合运算等功能。
```
#include <iostream>
#include <cmath>
using namespace std;
//计算器类
class ScientificCalculator
public:
//基本运算
double add(double a, double b)
return a + b;
}
double subtract(double a, double b)
return a - b;
}
double multiply(double a, double b)
return a * b;
}
double divide(double a, double b)
if (b != 0)
return a / b;
} else
cout << "Error: Division by zero!" << endl; return 0;
}
}
//三角函数运算
double sine(double angle)
return sin(angle);
}
double cosine(double angle)
return cos(angle);
}
double tangent(double angle)
return tan(angle);
}
//指数和对数运算
double exponent(double x) return exp(x);
}
double logarithm(double x) return log10(x);
import java.applet.*;//导入java类包中的applet包import java.awt.*;//awt委托模型import javax.swing.*; //组件图形界面程序包import java.awt.event.*;//awt事件包//import java.math.*;public class java1 extends Applet{ //定义所有需要使用的全局变量String str="0";//暂存显示屏数据String sign="null";//暂存符号数据double num=0;//暂存内部运算数据boolean change=true;//暂存内部四则运算起用GridLayout g0,g1;//定义AWT布局部件JTextField number; //轻量级组件,允许编辑单行文本Button num_p,num_0,num_1,num_2,num_3,num_4,num_5,num_6,num_7,num_8,num_9;Button act_add,act_mul,act_div,act_sub;Button mat_sin,mat_cos,mat_tan;Button do_ans,do_dele;Panel p0,p1;public void init()//主程序部分{//布局整个计算器g0=new GridLayout(1,1,0,0);//一行一列g1=new GridLayout(4,5,0,0);//四行五列p0=new Panel(); //显示屏的布局p0.setLayout(g0);p0.add(number); p0.setBounds(50,20,600,70);//左50上20长600宽70//按纽的布局 p1=new Panel();p1.setLayout(g1);p1.add(num_1);//第一排按纽p1.add(num_2);p1.add(num_3);p1.add(act_add);p1.add(act_sub);p1.add(num_4);//第二排按纽p1.add(num_5);p1.add(num_6);p1.add(act_mul);p1.add(act_div);p1.add(num_7);//第三排按纽p1.add(num_8);p1.add(num_9);p1.add(mat_sin);p1.add(mat_cos);p1.add(num_0);//第四排按钮p1.add(num_p);p1.add(do_ans);p1.add(do_dele);p1.add(mat_tan);p1.setBounds(50,100,600,300); //左50上100长600宽300setLayout(null); add(p0);add(p1);this.setBackground(Color.black);//设置背景整体颜色}{//定义各个控件的样式number=new JTextField(20);//构造宽度为20个字符的文本框number.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐方式number.setEnabled(true); number.setText("0"); num_p=new Button(".");//小数点的按钮 num_p.setForeground(Color.red); num_p.addActionListener(new getbt()); num_0=new Button("0");//数字0的按钮 num_0.setForeground(Color.red); num_0.addActionListener(new getbt()); num_1=new Button("1");//数字1的按钮 num_1.setForeground(Color.red); num_1.addActionListener(new getbt()); num_2=new Button("2");//数字2的按钮 num_2.setForeground(Color.red); num_2.addActionListener(new getbt()); num_3=new Button("3");//数字3的按钮 num_3.setForeground(Color.red); num_3.addActionListener(new getbt()); num_4=new Button("4");//数字4的按钮 num_4.setForeground(Color.red); num_4.addActionListener(new getbt()); num_5=new Button("5");//数字5的按钮 num_5.setForeground(Color.red); num_5.addActionListener(new getbt()); num_6=new Button("6");//数字6的按钮 num_6.setForeground(Color.red); num_6.addActionListener(new getbt()); num_7=new Button("7");//数字7的按钮 num_7.setForeground(Color.red); num_7.addActionLis