用JAVA设计一个科学型计算器

合集下载

用Java编写一个简单的计算器

用Java编写一个简单的计算器
b3 = new JButton("MC");
b3.setForeground(Color.red);
b3.addActionListener(new button());
b4 = new JButton("MR");
b4.setForeground(Color.red);
b4.addActionListener(new button());
p4.add(tf2);
p4.setBounds(10,88,50,60);
p1.setLayout(gl1);
p1.setBounds(75, 87, 317, 35);
p2.setLayout(gl2);
p2.setBounds(10, 135, 60, 250);
p3.setLayout(gl3);
tf2 = new TextField(10);
tf2.setEditable(false);
setBackground(new Color(180,127,120));
setBounds(300, 250, 400, 400);
p0.add(tf1);
p0.setBounds(5, 50, 390,40);
gl3 = new GridLayout(4, 5, 5, 5);
tf1 = new JTextField(27);
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setText("0.");
MenuItem mi1=new MenuItem("复制(C) Ctrl+C ");

java科学计算器源代码

java科学计算器源代码

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");JButton b0=new JButton("0");JButton b11=new JButton("+");JButton b12=new JButton("-");JButton b13=new JButton("*");JButton b14=new JButton("/");JButton b15=new JButton(".");JButton b16=new JButton("=");JButton bclar=new JButton("清零");text1.setHorizontalAlignment(JTextField.RIGHT);c.add(text1,"North");c.add(pan1);A aa=new A();Result re=new Result();Opertion op=new Opertion();Clar cl=new Clar();b1.addActionListener(aa);b2.addActionListener(aa);b3.addActionListener(aa);b4.addActionListener(aa);b5.addActionListener(aa);b6.addActionListener(aa);b7.addActionListener(aa);b8.addActionListener(aa);b9.addActionListener(aa);b0.addActionListener(aa);b11.addActionListener(op);b12.addActionListener(op);b13.addActionListener(op);b14.addActionListener(op);b16.addActionListener(re);b15.addActionListener(aa);bclar.addActionListener(cl);pan1.add(b1);pan1.add(b2);pan1.add(b3);pan1.add(b11);pan1.add(b4);pan1.add(b5);pan1.add(b6);pan1.add(b12);pan1.add(b7);pan1.add(b8);pan1.add(b9);pan1.add(b13);pan1.add(b0);pan1.add(b15);pan1.add(b16);pan1.add(b14);pan1.add(bclar);f.setSize(200,220);f.setVisible(true);}catch(Exception e){System.out.println(e.getMessage());}}class A implements ActionListener{public void actionPerformed(ActionEvent e) {String a=text1.getText();String s=e.getActionCommand();if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/")) text1.setText(s);else {if(flag2){text1.setText(s);flag2=false;}elsetext1.setText(a+s);}}}class Opertion implements ActionListener{public void actionPerformed(ActionEvent e){cal=e.getActionCommand();if(flag1==true)source=text1.getText();text1.setText(cal);flag1=false;flag=true;}}class Result implements ActionListener{public void actionPerformed(ActionEvent e){double num1;num1=Double.parseDouble(source); object=text1.getText();double num2;num2=Double.parseDouble(object); double result=0;if(cal.equals("+"))result=num1+num2;if(cal.equals("-"))result=num1-num2;if(cal.equals("*"))result=num1*num2;if(cal.equals("/"))if(num2==0)text1.setText("除数不能为0");elseresult=num1/num2;String s1=Double.toString(result);text1.setText(s1);flag1=true;flag2=true;}}class Clar implements ActionListener{public void actionPerformed(ActionEvent e) {text1.setText("0.");}}public static void main(String[] args){Counter count=new Counter();count.init();}public void windowClosing(WindowEvent e){ System.exit(1);}public void windowOpened(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} }。

用java代码写的简易计算器(可以实现基本的加减乘除功能)

用java代码写的简易计算器(可以实现基本的加减乘除功能)

⽤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);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。

java课程设计科学计算器

java课程设计科学计算器

java课程设计科学计算器。

一、课程目标知识目标:1. 理解Java编程中算术表达式的组成及运算规则;2. 掌握Java中的基本数据类型及其在算术运算中的使用;3. 学会使用Java控制结构和函数实现科学计算器的功能;4. 了解科学计算器中常见的数学函数及其在Java中的实现。

技能目标:1. 能够编写简单的Java程序,实现加、减、乘、除等基本运算;2. 能够运用循环和条件语句,实现科学计算器的逻辑功能;3. 能够利用Java类和对象,设计并实现具有图形用户界面的科学计算器;4. 能够运用调试技巧,找出并修正程序中的错误。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发其探究科学计算器原理的欲望;2. 培养学生严谨、细致的编程习惯,提高其问题解决能力和团队协作能力;3. 培养学生热爱科学、勇于创新的精神,使其认识到编程在科学计算中的重要性。

本课程针对高年级学生,结合Java编程知识,旨在帮助学生掌握科学计算器的核心功能实现。

课程注重实用性,通过设计具体的学习成果,使学生在完成课程后能够独立编写并优化科学计算器程序。

同时,关注学生的情感态度价值观培养,提高其综合素质。

二、教学内容1. Java基本语法与数据类型:回顾Java基本语法规则,重点掌握整型、浮点型等基本数据类型及其在运算中的使用。

- 教材章节:第一章 Java语言概述,第二章 基本数据类型与运算符2. 算术表达式与运算规则:讲解算术表达式的构成,介绍运算符优先级和结合性。

- 教材章节:第二章 基本数据类型与运算符3. Java控制结构:学习顺序、分支和循环结构,实现科学计算器的基本运算功能。

- 教材章节:第三章 控制结构4. 函数的定义与调用:介绍函数的概念,学会编写自定义函数,实现计算器中的特定功能。

- 教材章节:第四章 函数与数组5. 图形用户界面设计:学习Java Swing库,使用其组件设计科学计算器的界面。

- 教材章节:第七章 Java Swing图形用户界面6. 数学函数与运算:介绍科学计算器中常见的数学函数,如三角函数、指数函数等,并在Java中实现。

JAVA科学计算器

JAVA科学计算器

JAVA科学计算器Java是一种广泛应用于科学计算和数据分析领域的编程语言,拥有强大的数学计算库和丰富的科学计算函数,因此非常适合用于开发科学计算器。

本文将介绍如何使用Java开发一个功能强大的科学计算器。

一、需求分析1.支持基本的四则运算(加、减、乘、除)2.支持高级的数学函数(三角函数、指数函数、对数函数等)3.支持科学计数法(输入和显示均支持科学计数法)4.支持清空功能,删除单个字符功能5.支持键盘输入和界面按钮输入两种方式输入计算表达式二、界面设计1. 界面采用图形用户界面(GUI)设计,使用Swing或JavaFX等界面库进行开发2.使用文本框显示计算结果和表达式3.使用按钮实现数字和运算符的输入4.添加清空按钮和删除按钮5.添加科学计数法开关按钮三、代码实现1. 创建一个继承自JFrame的主窗口类,设置窗口标题、大小和关闭方式```public class ScientificCalculator extends JFrameprivate JTextField outputField;//其他界面组件声明public ScientificCalculatosuper("科学计算器");setSize(400, 600);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//初始化界面组件并添加到窗口//...setVisible(true);}```2. 创建一个继承自JPanel的面板类,用于放置计算器的按钮和文本框```public class CalculatorPanel extends JPanelprivate JTextField outputField;//其他按钮和变量声明public CalculatorPanesetLayout(new BorderLayout();//初始化界面组件并添加到面板//...}```3.在面板类中添加按钮事件监听器,实现按钮的点击响应```public class CalculatorPanel extends JPanel implements ActionListenerprivate JTextField outputField;private JButton[] numberButtons;private JButton[] operatorButtons;//其他按钮和变量声明public CalculatorPanesetLayout(new BorderLayout();//初始化界面组件并添加到面板//...//添加按钮事件监听器for (JButton button : numberButtons)button.addActionListener(this);}for (JButton button : operatorButtons)button.addActionListener(this);}//其他按钮添加监听器//设置文本框只读outputField.setEditable(false);}public void actionPerformed(ActionEvent e)//根据按钮的命令执行相应的操作//...}```4.在按钮事件监听器中实现计算逻辑,调用数学库中的函数完成计算```public void actionPerformed(ActionEvent e)//清空操作outputField.setText("");//删除操作String currentText = outputField.getText(;outputField.setText(currentText.substring(0,currentText.length( - 1));} else//数字或运算符输入}```5.在启动类中创建主窗口对象,并将面板对象添加到主窗口中```public class Mainpublic static void main(String[] args)SwingUtilities.invokeLater(( ->ScientificCalculator calculator = new ScientificCalculator(;calculator.add(new CalculatorPanel();});}```四、测试与优化在开发完成后,需要对科学计算器进行测试,保证其功能正常,并进行优化,确保使用体验良好,例如添加键盘监听器,支持键盘输入,修复可能出现的Bug等。

java科学计算器(进制转换)

java科学计算器(进制转换)

java科学计算器(进制转换)JAVA综合程序设计与分析一、题目:用java语言编写科学计算器,要求完成加、减、乘、除以及基本函数处理还有数的进制转换。

二、摘要:本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,还可以进行(二进制,八进制,十进制)之间的相互转换,还有基本三角函数和平方根,对数等基本数学函数运算三、功能说明:A.运用两个面板的叠加做出界面。

B.通过在按钮的单击事件处理方法中调用类的成员方法calculate ()来进行简易计算器的各种运算,并正确实现运算功能。

C.调用Math包中的方法实现各函数功能。

D.添加菜单条,列出‘选项’、‘进制转换’、‘帮助’等菜单选项,并分别实现‘选项’中‘退出’的功能,通过调用Integer包中的方法实现二进制、八进制的转换,‘帮助'菜单栏中‘用法’的提示对话框。

E.整个程序对话框可实现最小化、最大化、关闭。

四、详细设计package计算器;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener, WindowListener{privateprivateprivate GridBagConstraints constraints;private JTextField displayField; //计算结果显示区private String lastCommand; //保存+,-,*,/,=命令0private double result; //保存计算结果private boolean start; //判断是否为数字的开始private JMenuBar menubar;private JMenuItem m_exit,m2_ejz,m2_bjz;private Dialog dialog;private Label label_dialog;private JButtonbutton_sqrt,button_plusminus,button_CE,button_cancel,butt on_1,button_ 2,button_3,button_4,button_5,button_6,button_7,button_8,but ton_9,button _0,button_plus,button_minus,button_multiply,button_divide,bu tton_point,button_equal,button_log,button_tan,button_cos,button_sin,butt on_exp;public Calculator() //构造方法设置布局、为按钮注册事件监听器{super("Calculator");this.setLocation(240,200);this.setSize(350,300);this.setResizable(true);this.setLayout(new GridLayout(7,1));this.addmyMenu(); //调用成员方法添加菜单displayField=new JTextField(30);this.add(displayField);displayField.setEditable(true);start=true;result=0;lastCommand = "=";JPanel panel0=new JPanel();panel0.setLayout(new GridLayout(1,4,4,4)); JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,5,4,4)); this.add(panel1);button_sqrt=new JButton("sqrt");button_plusminus=new JButton("+/-"); button_exp=new JButton("exp");button_CE=new JButton("退格");button_cancel=new JButton("C"); JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,5,4,4)); this.add(panel2);button_7=new JButton("7");button_8=new JButton("8");button_9=new JButton("9");button_log=new JButton("log");button_divide=new JButton("/");JPanel panel3=new JPanel();panel3.setLayout(new GridLayout(1,5,4,4)); this.add(panel3);button_4=new JButton("4");button_5=new JButton("5");button_6=new JButton("6");button_tan=new JButton("tan");button_multiply=new JButton("*");JPanel panel4=new JPanel();panel4.setLayout(new GridLayout(1,5,4,4)); this.add(panel4);button_1=new JButton("1");button_2=new JButton("2");button_3=new JButton("3");button_cos=new JButton("cos");button_minus=new JButton("-");JPanel panel5=new JPanel();panel5.setLayout(new GridLayout(1,5,4,4)); this.add(panel5);button_0=new JButton("0");button_point=new JButton(".");button_equal=new JButton("=");button_sin=new JButton("sin");button_plus=new JButton("+");panel1.add(button_sqrt);panel1.add(button_plusminus);panel1.add(button_exp);panel1.add(button_CE);panel1.add(button_cancel);panel2.add(button_7);panel2.add(button_8);panel2.add(button_9);panel2.add(button_log);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_tan);panel3.add(button_multiply);panel4.add(button_1);panel4.add(button_2);panel4.add(button_3);panel4.add(button_cos);panel4.add(button_minus);panel5.add(button_0);panel5.add(button_point);panel5.add(button_equal);panel5.add(button_sin);panel5.add(button_plus);button_sqrt.addActionListener(this); button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this); button_cancel.addActionListener(this); button_7.addActionListener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_log.addActionListener(this); button_divide.addActionListener(this); button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_tan.addActionListener(this); button_multiply.addActionListener(this); button_1.addActionListener(this);button_2.addActionListener(this);button_3.addActionListener(this);button_cos.addActionListener(this);button_minus.addActionListener(this);button_0.addActionListener(this);button_point.addActionListener(this);button_equal.addActionListener(this);button_sin.addActionListener(this);button_plus.addActionListener(this);this.addWindowListener(new WinClose()); //注册窗口监听器this.setVisible(true);}private void addmyMenu() //菜单的添加{JMenuBar menubar=new JMenuBar();this.add(menubar);JMenu m1=new JMenu("选项");JMenu m2=new JMenu("进制转换");JMenuItem m1_exit=new JMenuItem("退出");m1_exit.addActionListener(this);JMenuItem m2_ejz=new JMenuItem("二进制");m2_ejz.addActionListener(this);JMenuItem m2_bjz=new JMenuItem("八进制");m2_bjz.addActionListener(this);JMenu m3 = new JMenu(" 帮助");JMenuItem m3_Help = new JMenuItem("用法");m3_Help.addActionListener(this);dialog = new Dialog(this,"提示",true); //模式窗口dialog.setSize(240,80);label_dialog = new Label("",Label.CENTER); //标签的字符串为空,居中对齐dialog.add(label_dialog);dialog.addWindowListener(this); //为对话框注册窗口事件监听器m1.add(m1_exit);menubar.add(m1);m2.add(m2_ejz);m2.add(m2_bjz);menubar.add(m2);m3.add(m3_Help);menubar.add(m3); }public void actionPerformed(ActionEvent e) //按钮的单击事件处理方法{if(e.getSource().equals(button_1)||e.getSource().equals(butto n_2) ||e.getSource().equals(button_3)||e.getSource().equals(button _4)||e.getSource().equals(button_5)||e.getSource().equals(button_6)||e.getSource().equals(button_7)||e.getSource().equals(button_8)||e.getSource().equals(button_9)||e.getSource().equals(button_0)||e.getSource().equals(button_point)||e.getSource().equals(but ton_plusm inus)||e.getSource().equals(button_cancel)||e.getSource().equals(b utton_CE)) { //非运算符的处理方法String input=e.getActionCommand();if (start){displayField.setText("");start=false;if(input.equals("+/-"))displayField.setText(displayField.getT ext()+"-");}if(!input.equals("+/-")){String str=displayField.getText();if(input.equals("退格")) //退格键的实现方法{if(str.length()>0)displayField.setText(str.substring(0,str.length()-1));}else if(input.equals("C")) //清零键的实现方法{displayField.setText("0");start=true;}elsedisplayField.setText(displayField.getT ext()+input);}}else if (e.getActionCommand()=="二进制") //二进制的转换{int n=Integer.parseInt(displayField.getText()); displayField.setText(Integer.toBinaryString(n));}else if (e.getActionCommand()=="八进制") //八进制的转换{int n=Integer.parseInt(displayField.getText()); displayField.setText(Integer.toOctalString(n));}else if (e.getActionCommand()=="退出") //选项中退出的处理方法{System.exit(0);}else if(e.getActionCommand()=="用法") //按下'帮助'菜单栏中用法的处理方法{label_dialog.setT ext("sqrt,exp等键是先输运算符再输数字\");dialog.setLocation(400,250);dialog.setVisible(true);}else//各运算符的识别{String command=e.getActionCommand();if(start){lastCommand=command;}else{calculate(Double.parseDouble(displayField.getText()));lastCommand=command;start=true;}}}public void calculate(double x) //各运算符的具体运算方法{double d=0;if (lastCommand.equals("+")) result+= x;else if (lastCommand.equals("-")) result-=x;else if (lastCommand.equals("*")) result*=x;else if (lastCommand.equals("/")) result/=x;else if (lastCommand.equals("=")) result=x;else if (lastCommand.equals("sqrt")) {d=Math.sqrt(x);result=d;}else if (lastCommand.equals("exp")) {d=Math.exp(x);result=d;}else if (lastCommand.equals("log")) {d=Math.log(x);result=d;}else if (lastCommand.equals("tan")) {d=Math.tan(x);result=d;}else if (lastCommand.equals("cos")){d=Math.cos(x);result=d;}else if (lastCommand.equals("sin")){d=Math.sin(x);result=d;}displayField.setText(""+ result);}public void windowClosing(WindowEvent e){if(e.getSource()==dialog)dialog.setVisible(false); //隐藏对话框elseSystem.exit(0);}public void windowOpened(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } public void windowClosed(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public static void main(String args[]){Calculator calculator=new Calculator();}}class WinClose implements WindowListener{public void windowClosing(WindowEvent e) //单击窗口关闭按钮时触发并执行实现窗口监听器接口中的方法{System.exit(0); //结束程序运行}public void windowOpened(WindowEvent e){}public void windowActivated(WindowEvent e){}public void windowDeactivated(WindowEvent e){}public void windowClosed(WindowEvent e){}public void windowIconified(WindowEvent e){}public void windowDeiconified(WindowEvent e){}}五、程序运行结果1.界面2.基本运算,如54 -12 =42:3.数学函数运算,如9的开平方为3:六、总结与体会总结:(1)通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。

用Java实现的计算器

用Java实现的计算器

用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;import javafx.scene.control.TextField;import yout.GridPane;import javafx.stage.Stage;public class Calculator extends Application {private TextField inputField; // 输入框private Button[] numberButtons; // 数字按钮private Button[] operatorButtons; // 运算符按钮@Overridepublic void start(Stage primaryStage) {primaryStage.setTitle("计算器");primaryStage.setResizable(false);// 初始化界面GridPane gridPane = new GridPane();gridPane.setHgap(10);gridPane.setVgap(10);gridPane.setPadding(new Insets(10));// 初始化输入框inputField = new TextField();inputField.setEditable(false);inputField.setPrefHeight(40);inputField.setMaxWidth(Double.MAX_VALUE);gridPane.add(inputField, 0, 0, 4, 1);// 初始化数字按钮numberButtons = new Button[10];for (int i = 0; i < 10; i++) {numberButtons[i] = createNumberButton(String.valueOf(i), i); }gridPane.add(numberButtons[7], 0, 1);gridPane.add(numberButtons[9], 2, 1);gridPane.add(numberButtons[4], 0, 2);gridPane.add(numberButtons[5], 1, 2);gridPane.add(numberButtons[6], 2, 2);gridPane.add(numberButtons[1], 0, 3);gridPane.add(numberButtons[2], 1, 3);gridPane.add(numberButtons[3], 2, 3);gridPane.add(numberButtons[0], 0, 4);gridPane.add(createDotButton(), 1, 4);gridPane.add(createEqualButton(), 2, 4);// 初始化运算符按钮operatorButtons = new Button[4];operatorButtons[0] = createOperatorButton("+"); operatorButtons[1] = createOperatorButton("-"); operatorButtons[2] = createOperatorButton("*"); operatorButtons[3] = createOperatorButton("/"); gridPane.add(operatorButtons[0], 3, 1);gridPane.add(operatorButtons[1], 3, 2);gridPane.add(operatorButtons[3], 3, 4);Scene scene = new Scene(gridPane);primaryStage.setScene(scene);primaryStage.show();}private Button createNumberButton(String text, int number) { Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + number);});return button;}private Button createDotButton() {Button button = new Button(".");button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + ".");});return button;}private Button createEqualButton() {Button button = new Button("=");button.setPrefSize(60, 40);button.setOnAction(e -> {String expression = inputField.getText();// 调用计算逻辑进行计算if (expression != null && !expression.isEmpty()) { double result = calculate(expression);inputField.setText(String.valueOf(result));}});return button;}private Button createOperatorButton(String text) {Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + text);});return button;}private double calculate(String expression) {// 进行计算逻辑的实现// ...}public static void main(String[] args) {launch(args);}}五、总结通过本文的介绍,我们可以了解到使用Java语言实现一个简单计算器的基本框架和思路。

java课程设计简易计算器

java课程设计简易计算器

前端:使用JavaFX进行界面设计 后端:使用Java进行逻辑处理和数据存储 数据库:使用MySQL进行数据存储 功能模块:包括加法、减法、乘法、除法、平方根等计算功能 测试:使用JUnit进行单元测试和集成测试 打包:使用Maven进行项目打包和部署
功能按钮:包括数字、运算 符、清除、等于等
易于阅读
输入框:用于输入数字和运算符号 输出框:用于显示计算结果 格式化规则:数字和运算符号之间用空格分隔 错误提示:当输入错误时,给出提示信息 计算结果:显示计算结果,并保留小数点后两位 清空按钮:用于清空输入框和输出框中的内容
输入两个数字 调用加法函数 返回结果 打印结果
输入两个数字
判断两个数字的大小关系
使用代码覆盖率工具:检查 代码覆盖率,确保所有代码 都被测试到
使用调试工具:如Eclipse、 IntelliJ IDEA等,提供丰富的 调试功能
阅读错误信息:仔细阅读错 误信息,找出问题所在,并 尝试解决
测试目的:验证程序的正确性和稳 定性
测试结果:记录测试过程中的错误 和异常
添加标题
添加标题
添加标题
编写单元测试:编写针对每个 方法的单元测试,确保每个方 法都能独立运行
调试单元测试:在测试过程中 发现错误时,使用调试工具定
位问题并修复
优化单元测试:根据测试结果 对单元测试进行优化,提高测
试覆盖率和效率
集成测试的概念:将多个模块组合起来进行测试,验证模块间的交互和协作是否正确
编写集成测试的步骤:确定测试目标、设计测试用例、编写测试代码、执行测试
添加标题
测试方法:单元测试、集成测试、 系统测试等
测试结论:对测试结果的分析和总 结,提出改进建议
收获:掌握了Java编程基础,了解了计算器的设计原理和实现方法 不足之处:项目规模较小,功能较为简单,需要进一步学习和实践 展望:未来可以尝试设计更复杂的计算器,或者将Java编程应用到其他领域
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:设计一个Windows计算器。

摘要
在当今这个网络的时代,我找了好多java的代码材料。

修改后程序是一个图形界面的java计算器,其界面主要采用了awt包,程序实现了:
(1)实现简单加、减、乘、除的运算。

(2)实现除了加、减、乘、除按钮外其他按钮功能。

(3)给软件添加一个编辑、查看、帮助的主菜单。

(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。

(5)科学型计算器与标准计算器之间的菜单切换。

关键字:java程序编辑器面向对象计算器
目录
第1章概要设计 (8)
1.标准型计算器界面设计 (8)
第2章程序整体设计说明 (10)
2.1程序中所用到的变量 (10)
2.2程序部分源代码及注释 (11)
3章程序运行效果 (22)
3.程序运行主界面 (22)
3.程序中各按钮运行界面 (24)
3.本章小节 (26)
作业结论 (26)
第1章概要设计
1.1标准型计算器界面设计
1.1.1 JAVA文件的建立
(1)建立一个名称为“java”Java工程, package文件包名称为 :scr;计算器主类:Calculator。

(2)界面的设计:
图1.1标准型计算器界面
数字按钮字体和颜色设置图1.2
功能按钮字体和颜色设置
图1.3
(3)保持代码简洁
复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。

(4)功能实现
在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。

1.1.2明确任务
用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。

第2章程序整体设计说明
2.2 程序部分源代码及注释
(1)复制菜单的功能创建代码如下:
(2)粘贴菜单的功能创建代码如下:
(3)标准型和科学型菜单的功能创建代码下:(4)数字分组的功能创建代码如下:
(5)帮助主题菜单的功能实现代码如下:
(6)关于计算器菜单的功能实现代码如下:
2.2.2程序中各个按钮的功能实现:
(1)计算器中数字(1)按钮所创建的功能代码如下:
其余数字按钮代码类似;
(2)点按钮创建的代码如下:
(3)正负号按钮功能的创建代码如下:
(4)计算器中四则运算符(+)创建的功能代码如下:
运算符(-、*、/)的代码类似;
(5)按钮创建的功能代码如下:
(6)按钮创建的功能代码如下:
(7) 按钮实现的功能:按百分比的形式显示乘积结果。

输入一个数,单击“*”,输入第二个数,然后单击“%”。

例如,50 * 25% 将显示为 12.5。

也可执行带百分数的运算。

输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。

例如,50 + 25%(指的是 50 的 25%)= 62.5。

(8)按钮创建的功能代码如下:
(9)内存数据处理的功能代码:①清除内存数据:
②读取内存数据:
③保存数据到内存中:
④使计算结果与内存中的数据相加:
2.2.3科学型计算器中部分按钮功能的实现:(1)求数字阶乘按钮的代码如下:
(2)求数字对数按钮的代码如下:①log函数的代码如下:
②ln函数的代码如下:
(3)求数字的三角函数(sin、cos、tan)按钮的代码如下:
以tan函数为例代码如下:(sin和cos同理)
(4)求数字的平方按钮的代码如下:(5)Int按钮功能的代码如下:(6)PI按钮功能的代码如下:
第3章程序运行效果:
3.1 程序运行主要界面:
(1)标准型计算器与科学型计算器之间的切换:(2)帮助主题和关于计算器的运行界面:
3.2 计算器部分按钮运行主要界面:
(1)加减乘除运算:(以除法为例:9/4和9/0)
(2)开平方根运算:(3)百分号运算:
(4)求倒数据运算:
①有效值的倒数据运行效果:
②0求倒数运算:
(5)求负数的平方根:
3.3本章小结
本章主要介绍了用java创建计算器的运行后的效果图。

作业结论。

相关文档
最新文档