Java编写简单计算器(附源代码)

Java编写简单计算器(附源代码)
Java编写简单计算器(附源代码)

西安交通大学

《Java技术与应用》大作业

简单计算器的编写

一、选题理由

这个学期我选择《Java技术与应用》这门课(其实我的选修课已经修完了),完全是对java语言的兴趣和老师的个人魅力使然。这门课让我学到了许多知识,了解到了java语言的基本语法、结构和特点。由于个人觉得水平有限,并且没有队友,所以选择了较为容易的简易计算器作为我的大作业。

二、系统目标

实现对代数表达式的输入、计算、输出。

三、系统分析与设计

(1)计算类cal设计编写

public class cal {

public static boolean check(String str) //检验表达式是否正确public static Float transfer(String str ) //转化为栈的形式并计算public static boolean compare(char a,char b) //比较优先级,判断b的优先级是否大于等于a的优先级

}

public static Float transfer(String str)方法为该程序的核心代码,涉及数据结构的知识。

(2)人机界面设计

通过swing可以容易的设计出计算器的人机界面。

(3)部分细节

①普通Button内部代码的编写

由于要在文本框中输入一串字符串,而不是覆盖之前的输入。因此采用方法:先将文本框中原有的字符串取出,再加上要输入的字符,最后一同输出到文本框。具体代码为

String str1 = jButton1.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

②”=“ Button的代码编写

”=“作为一个特殊的Button,其作用为:先将文本框中的字符串取出,取出后首先判断字符串即表达式是否正确,运用cal.check 方法,若返回值为true,将字符串表达式送入cal.transfer,返回代数式的值,并在文本框jTextField输出。过程涉及各种数据类型的转换。具体代码为

String str1 = jTextField1.getText();

boolean m = cal.check(str1);

if (m = true) {

Float result = cal.transfer(str1);

String last = String.valueOf(result);

jTextField1.setText(last);

} else

jTextField1.setText("default");

(4)实验数据与测试用例

四、使用说明

输入数学表达式(可以用鼠标点按钮,也可直接在文本框键盘输入),输入后点击”=“按钮,得到计算结果。

五、人员安排

自己动手,丰衣足食。

六、程序漏洞与不足。

(1)程序健壮性不足。Cal.check方法代码存在问题,对于部分错误表达式没有报错。

(2)按等号按键计算输出后,再按数字按钮不会清空文本框,会在计算结果的基础上继续输入。先自动清空文本框会更好一些。

七、开发总结

编写这个简易计算器是我编写的第一个成型的小软件,有很多不足。但是在编写的过程中,我对java语言有了更加深刻的理解,知道了设计制作软件的一般过程。老师给我的最深的印象就是认真负责,现场编程现场讲解,让我最真实的感受到了一个开发者的思维过程和遇到问题时的处理方法,这在我之前两年课程从来都没有遇到过。总之,感谢老师精彩的课程。

八、附录:完整代码及jar文件

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JTextField;

import javax.swing.WindowConstants;

import javax.swing.SwingUtilities;

/**

* This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI

* Builder, which is free for non-commercial use. If Jigloo is being used

* commercially (ie, by a corporation, company or business for any purpose

* whatever) then you should purchase a license for each developer using Jigloo.

* Please visit https://www.360docs.net/doc/e710764004.html, for details. Use of Jigloo implies

* acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN

* PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR

* ANY CORPORATE OR COMMERCIAL PURPOSE.

*/

public class NewJFrame extends javax.swing.JFrame {

private JTextField jTextField1;

private JButton jButton1;

private JButton jButton15;

private JButton jButton16;

private JButton jButton21;

private JButton jButton20;

private JButton jButton19;

private JButton jButton18;

private JButton jButton17;

private JButton jButton14;

private JButton jButton13;

private JButton jButton12;

private JButton jButton11;

private JButton jButton10;

private JButton jButton9;

private JButton jButton8;

private JButton jButton7;

private JButton jButton5;

private JButton jButton4;

private JButton jButton3;

private JButton jButton2;

/**

* Auto-generated main method to display this JFrame */

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

NewJFrame inst = new NewJFrame();

inst.setLocationRelativeTo(null);

inst.setVisible(true);

}

});

}

public NewJFrame() {

super();

initGUI();

}

private void initGUI() {

try {

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

getContentPane().setLayout(null);

this.setTitle("Mycalculation");

{

jTextField1 = new JTextField();

getContentPane().add(jTextField1, "North");

jTextField1.setPreferredSize(new java.awt.Dimension(460, 72));

jTextField1.setBounds(0, 0, 460, 72);

jTextField1.setFont(new java.awt.Font("Microsoft YaHei UI", 1,

16));

}

{

jButton1 = new JButton();

getContentPane().add(jButton1);

jButton1.setText("1");

jButton1.setBounds(25, 87, 82, 48);

jButton1.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton1.actionPerformed, event="

+ evt);

// TODO add your code for jButton1.actionPerformed

String str1 = jButton1.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton2 = new JButton();

getContentPane().add(jButton2);

jButton2.setText("2");

jButton2.setBounds(120, 87, 82, 48);

jButton2.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton2.actionPerformed, event="

+ evt);

// TODO add your code for jButton2.actionPerformed

String str1 = jButton2.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton3 = new JButton();

getContentPane().add(jButton3);

jButton3.setText("3");

jButton3.setBounds(214, 87, 82, 48);

jButton3.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton3.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton3.actionPerformed, event="

+ evt);

// TODO add your code for jButton3.actionPerformed

String str1 = jButton3.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton4 = new JButton();

getContentPane().add(jButton4);

jButton4.setText("4");

jButton4.setBounds(25, 142, 82, 48);

jButton4.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton4.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton4.actionPerformed, event="

+ evt);

// TODO add your code for jButton4.actionPerformed

String str1 = jButton4.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton5 = new JButton();

getContentPane().add(jButton5);

jButton5.setText("5");

jButton5.setBounds(122, 142, 82, 48);

jButton5.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton5.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton5.actionPerformed, event="

+ evt);

// TODO add your code for jButton5.actionPerformed

String str1 = jButton5.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton7 = new JButton();

getContentPane().add(jButton7);

jButton7.setText("6");

jButton7.setBounds(215, 142, 82, 48);

jButton7.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton7.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton7.actionPerformed, event="

+ evt);

// TODO add your code for jButton7.actionPerformed

String str1 = jButton7.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton8 = new JButton();

getContentPane().add(jButton8);

jButton8.setText("7");

jButton8.setBounds(26, 201, 82, 50);

jButton8.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton8.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton8.actionPerformed, event="

+ evt);

// TODO add your code for jButton8.actionPerformed

String str1 = jButton8.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton9 = new JButton();

getContentPane().add(jButton9);

jButton9.setText("8");

jButton9.setBounds(122, 201, 82, 50);

jButton9.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton9.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton9.actionPerformed, event="

+ evt);

// TODO add your code for jButton9.actionPerformed

String str1 = jButton9.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton10 = new JButton();

getContentPane().add(jButton10);

jButton10.setText("9");

jButton10.setBounds(215, 201, 82, 50);

jButton10

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton10.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton10.actionPerformed, event="

+ evt);

// TODO add your code for jButton10.actionPerformed

String str1 = jButton10.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton11 = new JButton();

getContentPane().add(jButton11);

jButton11.setText("0");

jButton11.setBounds(26, 269, 82, 48);

jButton11

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton11.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton11.actionPerformed, event="

+ evt);

// TODO add your code for jButton11.actionPerformed

String str1 = jButton11.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton12 = new JButton();

getContentPane().add(jButton12);

jButton12.setText("+");

jButton12.setBounds(309, 147, 64, 45);

jButton12

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton12.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton12.actionPerformed, event="

+ evt);

// TODO add your code for jButton12.actionPerformed

String str1 = jButton12.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton13 = new JButton();

getContentPane().add(jButton13);

jButton13.setText("-");

jButton13.setBounds(384, 148, 64, 44);

jButton13

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton13.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton13.actionPerformed, event="

+ evt);

// TODO add your code for jButton13.actionPerformed

String str1 = jButton13.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton14 = new JButton();

getContentPane().add(jButton14);

jButton14.setText("*");

jButton14.setBounds(309, 208, 64, 44);

jButton14

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton14.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton14.actionPerformed, event="

+ evt);

// TODO add your code for jButton14.actionPerformed

String str1 = jButton14.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton15 = new JButton();

getContentPane().add(jButton15);

jButton15.setText("/");

jButton15.setBounds(384, 208, 64, 44);

jButton15

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton15.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton15.actionPerformed, event="

+ evt);

// TODO add your code for jButton15.actionPerformed

String str1 = jButton15.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton16 = new JButton();

getContentPane().add(jButton16);

jButton16.setText("=");

jButton16.setBounds(386, 271, 64, 44);

jButton16

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton16.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton16.actionPerformed, event="

+ evt);

// TODO add your code for jButton16.actionPerformed

String str1 = jTextField1.getText();

boolean m = cal.check(str1);

if (m = true) {

Float result = cal.transfer(str1);

String last = String.valueOf(result);

jTextField1.setText(last);

} else

jTextField1.setText("default");

}

});

}

{

jButton17 = new JButton();

getContentPane().add(jButton17);

jButton17.setText("^");

jButton17.setBounds(311, 271, 64, 44);

jButton17

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton17.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton17.actionPerformed, event="

+ evt);

// TODO add your code for jButton17.actionPerformed

String str1 = jButton17.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton18 = new JButton();

getContentPane().add(jButton18);

jButton18.setText("C");

jButton18.setBounds(215, 271, 82, 48);

jButton18

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 18));

jButton18.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton18.actionPerformed, event="

+ evt);

// TODO add your code for jButton18.actionPerformed

jTextField1.setText("");

}

});

}

{

jButton19 = new JButton();

getContentPane().add(jButton19);

jButton19.setText(")");

jButton19.setBounds(384, 93, 64, 44);

jButton19

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton19.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton19.actionPerformed, event="

+ evt);

// TODO add your code for jButton19.actionPerformed

String str1 = jButton19.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton20 = new JButton();

getContentPane().add(jButton20);

jButton20.setText("(");

jButton20.setBounds(308, 93, 64, 44);

jButton20

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton20.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton20.actionPerformed, event="

+ evt);

// TODO add your code for jButton20.actionPerformed

String str1 = jButton20.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

{

jButton21 = new JButton();

getContentPane().add(jButton21);

jButton21.setText(".");

jButton21.setBounds(122, 270, 82, 48);

jButton21

.setFont(new java.awt.Font("Microsoft YaHei UI", 0, 28));

jButton21.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent evt) {

System.out.println("jButton21.actionPerformed, event="

+ evt);

// TODO add your code for jButton21.actionPerformed

String str1 = jButton21.getText();

String str2 = jTextField1.getText();

jTextField1.setText(str2 + str1);

}

});

}

pack();

this.setSize(476, 373);

} catch (Exception e) {

// add your error handling code here

e.printStackTrace();

}

}

}

Cal类

import javax.swing.JOptionPane;

import java.util.Stack;

public class cal {

//检验表达式是否正确(1.2.3此种错误未解决)

public static boolean check(String str){

boolean bool=false;

//检验是否有非法符号

for(int i=0;i

if(str.charAt(i)=='+'||str.charAt(i)=='-'||str.charAt(i)=='*'||str.charAt(i)=='/'||

str.charAt(i)=='^'||str.charAt(i)=='('||str.charAt(i)==')'|| str.charAt(i)=='.'||(str.charAt(i)>=48&&str.charAt(i)<=57))

continue;

else{

JOptionPane.showMessageDialog(null, "输入错误!");

return bool;

}

}

//检验是否有连续出现的运算符,()除外

int num1=0,num2=0;

int i=0;

while(!(str.charAt(i)>=48&&str.charAt(i)<=57)&&i

if(str.charAt(i)=='(') num1++;

if(str.charAt(i)==')') num2++;

if(i+1

if(((str.charAt(i)!='.'||str.charAt(i)!=')')&&str.charAt(i+1)=='(')||

(str.charAt(i)==')'&&(str.charAt(i+1)!='('||str.charAt(i+1)=='.'))){}

else{

JOptionPane.showMessageDialog(null, "输入错误!");

return bool;

}

}

else

break;

i++;

}

if(num1==num2){bool=true;}

else JOptionPane.showMessageDialog(null, "输入错误!");

return bool;

}

//转化为栈的形式并计算

public static Float transfer(String str){

str=str+'$';

String str2=new String();

str2="";

//数字栈

Stack number=new Stack();

//操作符栈

Stack operator=new Stack();

//操作符栈栈底元素#,优先级最低

operator.push('#');

//System.out.println(operator.peek());

//扫描字符串每一个元素

loop:for(int i=0;i

//如果当前字符为数字或小数点,则存入str2备用

if(str.charAt(i)=='.'||str.charAt(i)=='0'||str.charAt(i)=='1'||str.charAt(i)=='2'|| str.charAt(i)=='3'||str.charAt(i)=='4'||str.charAt(i)=='5'||str.charAt(i)=='6'|| str.charAt(i)=='7'||str.charAt(i)=='8'||str.charAt(i)=='9'){

str2=str2+str.charAt(i);

continue;

}

else{

if(str2!=""){

//如果str2不为空,既之前有扫描到数字,则进行压栈

number.push(Float.parseFloat(str2));

//str2还原

str2="";

}

//比较当前元素(其实为一操作符)与操作符栈中的栈顶元素的优先级

for(;;){

//如果当前元素的优先级低于或等于栈顶元素的优先级

if(compare(str.charAt(i),operator.peek())){

float temp;

//做如下操作

switch(operator.peek()){

//栈顶元素为+,弹出数字栈的前两个元素,进行运算

case '+':

temp=number.pop()+number.pop();

number.push(temp);

//弹出操作符栈中用过的元素

operator.pop();

break;

//栈顶元素为-,弹出数字栈的前两个元素,进行运算

case '-':

temp=-number.pop()+number.pop();

number.push(temp);

//弹出操作符栈中用过的元素

operator.pop();

break;

//栈顶元素为*,弹出数字栈的前两个元素,进行运算

case '*':

temp=number.pop()*number.pop();

number.push(temp);

//弹出操作符栈中用过的元素

operator.pop();

break;

//栈顶元素为/,弹出数字栈的前两个元素,进行运算

case '/':

temp=1/number.pop()*number.pop();

number.push(temp);

//弹出操作符栈中用过的元素

operator.pop();

break;

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

简单计算器JAVA

浙江科技学院 经济管理学院 JAVA语言课程设计报告 选题名称简单计算器 学生学号 专业班级信管101 学生姓名 学生成绩 指导教师朱军 工作时间2013-7-5

目录 第一章选题简介 第二章需求分析 1.系统要实现的目标分析 2.对输入输出数据及流程的分析 3.开发环境及运行环境分析 第三章系统设计 1.系统功能模块设计 2.类设计 3.数据库的设计(如果有) 4.界面设计 第四章测试 1.测试用例及结果 2.程序功能的评价 第五章总结 1.遇到的问题及解决的方法 2.开发体会及自评成绩 参考文献 第一章选题简介:简单计算器

第二章需求分析 1.系统要实现的目标分析:设计一个简单计算器,点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除求模四则运算;如果输入有误时可以按Clear撤销后重新输入新数据。 2.对输入输出数据及流程的分析:输入的符号有JiSuanQi、File、Edit、Help、on、off、close、copy、0、1、2、3、4、5、6、7、8、9、+、-、*、/、=、Backspace、CE、C,中文意思依次是计算器、文件夹、项目、帮助、开、关、复制、0、1、2、3、4、5、6、7、8、9、加、减、乘、除、等于、退格; 3.开发环境及运行环境分析:Microsoft Windows2000、jdk1.7.0_25、JCreator Pro; 第三章系统设计 1.系统功能模块设计:加、减、乘、除运算;“等于”符号;复位; 2.类设计:public void disp() 创建无值函数disp(),用来存放界面所需要展示的元素,包 括有面板,按钮,弹出对话框,显示框等。 public void actionPerformed(ActionEvent e) 创建无值函数actionPerformed(ActionEvent e),其允许的输入 值类型为ActionEvent e,在里面编写的是加减乘除等一些算 法。 public void setSum() 创建无值函数setSum(),显示出经过算法计算出的结果, public void windowClosing(WindowEvent e)

java编写的简单计算器代码

import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Vector; public class Tuo { String str1="0"; //运算数1 初值一定为0 为了程序的安全 String str2="0"; //运算数2 String fh="+"; //运算符 String jg="";//结果 //状态开关重要 int k1=1;//开关1 用于选择输入方向将要写入str2或 str2 int k2=1;//开关2 符号键次数 k2>1说明进行的是2+3-9+8 这样的多符号运算 int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0 int k4=1;//开关4 str2 同上 int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉 JButton jicunqi; //寄存器记录是否连续按下符号键 Vector vt=new Vector(20,10); JFrame frame=new JFrame("sunshine---计算器"); JTextField jg_TextField=new JTextField(jg,20);//20列 JButton clear_Button=new JButton("清除"); JButton button0=new JButton("0"); JButton button1=new JButton("1"); JButton button2=new JButton("2"); JButton button3=new JButton("3"); JButton button4=new JButton("4"); JButton button5=new JButton("5"); JButton button6=new JButton("6"); JButton button7=new JButton("7"); JButton button8=new JButton("8"); JButton button9=new JButton("9"); JButton button_Dian=new JButton("."); JButton button_jia=new JButton("+"); JButton button_jian=new JButton("-"); JButton button_cheng=new JButton("*"); JButton button_chu=new JButton("/"); JButton button_dy=new JButton("="); //////////////////////////////////////////////////////////////////////// public static void main(String[] args) {

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/e710764004.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

JAVA编写的计算器源代码

package jsq; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; public class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel();

java计算器源代码(仿win7)

java计算器源代码(仿win7) import java.awt.*; import javax.swing.*; import java.awt.event.*; class Cal extends JFrame implements ActionListener,MouseListener{ JMenuBar menubar; JMenu menu_check,menu_edit,menu_help; JMenuItem menuitem_science,menuitem_check,menuitem_exit,menuitem_copy, menuitem_paste,menuitem1_copy,menuitem1_paste,menuitem_chelp,menuitem_about; JCheckBoxMenuItem menuitem_standard; JTextField ta1; int x,result2; double op1,op2,opall; private boolean end=false,flag=false,add=false,sub=false,cheng=false,chu=false,flagop2=false; JButton b_mc,b_mr,b_ms,b_mjia,b_mjian,b_tui,b_ce,b_c,b_jj, b_dui,b_7,b_8,b_9,b_chu,b_baifenhao,b_4,b_5,b_6,b_cheng, b_daoshu,b_1,b_2,b_3,b_jian,b_0,b_dian,b_jia,b_dengyu; JPanel p_all,p_button1,p_button2,p_txt,p1,p2,p3,p4,p5; private String str,resultstr;

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

简易计算器Java实训报告

实训名称: Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术学生姓名: 学号: 指导教师:张民 完成日期:

山东科技大学泰山科技学院

目录 1 实训目的 (2) 2 简易计算机的分析与设计 (2) 系统功能描述 (2) 系统模块设计 (2) 数据库结构设计 (3) 3 主要代码清单 (4)

4 程序运行与测试 (8) 5 实训总结 (10)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

java编写的加法计算器

/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author asus */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Calculator implements ActionListener { JFrame sb; String s1,s2; int T1,T2,T3; JTextField t1,t2,t3; JLabel jl1,jl2; public Calculator() { sb=new JFrame("加法计算器"); sb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); sb.setSize(260,100); Container a=sb.getContentPane(); a.setLayout(new FlowLayout()); t1=new JTextField(5); t2=new JTextField(5); t3=new JTextField(5); t1.setEditable(true); t2.setEditable(true); t3.setEditable(false); jl1=new JLabel("+"); jl2=new JLabel("="); JButton he=new JButton("求和"); he.addActionListener(this); a.add(t1); a.add(jl1); a.add(t2); a.add(jl2); a.add(t3); a.add(he);

java简单界面计算器

package calculator; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /** * * @author 某某某 * */ public class Calculator extends JFrame implements ActionListener{ //设计按钮数组1包含数字键和删除键DEL和清屏键,小数点。 JButton[] but1 = {new JButton("1"),new JButton("2"),new JButton("3"),new JButton("4"),new JButton("5"),new JButton("6") ,new JButton("7"),new JButton("8"),new JButton("9"),new JButton("."),new JButton("0"),new JButton("del")}; //设计按钮数组2包含加减乘除,开根号,取余,等于键,平方,三次方。 JButton[] but2 = {new JButton("+"),new JButton("-"),new JButton("*"),new JButton("/"),new JButton("^2"),new JButton("^3"),new JButton("%") ,new JButton("sqrt"),new JButton("exit"),new JButton("="),new JButton("AC")} ; //创建一个单行文本 JTextField text = new JTextField(25); //创建五个面板 JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel(); JPanel jp3 = new JPanel(); JPanel jp4 = new JPanel(); JPanel jp5 = new JPanel();

java课设计算器

java课设计算器 华东交通大学理工学院 课程设计报告书 所属课程名称Java语言程序设计题目简单计算器设计 分院电信分院 专业班级12通信工程1班学号212 学生姓名 指导教师 2014 年6 月20日

java课设计算器 目录 第1章计算器机要求及内 容 (3) 第2章计算器设计............................................................. 4 第3章计算器程序代码 (14) 第4章计算器测试............................................................. 49 第5章课程设计心 得 (53) 第6章参考文献.............................................................. ....54第1章计算器内容及要求 一设计内容: 1. 实现基本的加减乘除法的运算; 2 实现常用的函数计算功能;

3. 实现将系统时间在界面上显示; 4. 实现菜单对计算器的关闭、开启及设置运算法则的操作。 二设计要求 1.使用菜单控制计算器界面的显示,关闭; 2.使用菜单控制运算的法则; 3.使用菜单显示函数运算窗口及运算; 4.数据采用手工输入方式; 5.对异常的数据进行异常处理,比如1/0的情况。

第2章计算器设计 一.设计模式 采用MVC设计模式,将模型,视图,控制分别单独完成。在模型中将视图,控制添加到其中,再分别完成视图的,控制的程序。 二.结构设计 在界面中分为四个视图的组件,控制分为按钮事件,菜单选择事件,以及键盘输入控制事件。如图1 图1

JAVA编写的计算器源代码

import class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel(); JButton btBk = new JButton(" Backspace"); JButton btCe = new JButton("Ce"); JButton btCl = new JButton("C"); JButton bt7 = new JButton("7"); JButton bt8 = new JButton("8"); JButton bt9 = new JButton("9"); JButton btDiv = new JButton("/"); JButton btSqrt = new JButton("sqrt"); JButton bt4 = new JButton("4"); JButton bt5 = new JButton("5"); JButton bt6 = new JButton("6"); JButton btMult = new JButton("*"); JButton btMol = new JButton(" % "); JButton bt1 = new JButton("1"); JButton bt2 = new JButton("2"); JButton bt3 = new JButton("3"); JButton btMinu = new JButton("-"); JButton btCoun = new JButton(" 1/x");

简易计算器Java实训报告

实训报告书实训名称:Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术 学生姓名: 学号: 指导教师:张民 完成日期:2015.12.11 山东科技大学泰山科技学院

课程实训报告书

目录 1 实训目的 (3) 2 简易计算机的分析与设计 (3) 2.1 系统功能描述 (3) 2.2 系统模块设计 (3) 2.3 数据库结构设计 (4) 3 主要代码清单 (5) 4 程序运行与测试 (9) 5 实训总结 (11)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 2.1 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作 2.2 系统模块设计 (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。( 3)乘法

java简单计算器源代码

package calcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { “=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;“=”,注册事件监听器,设置1行3列的布局,添加到到西边的面板buttonzero=new JButton("0"); buttondot=new JButton("."); buttonequal=new JButton("="); (h); (h); (h); (new GridLayout(3,1)); (buttonzero); (buttondot); (buttonequal); ; }

if()==buttontozero){//归零操作 (""); } if()==buttonzero){//按键0操作 ()+"0"); flag1=());//将文本区域转换成Double类型,赋给flag1 } } else if()==buttontwo){//按键2操作 ()+"2"); flag1=()); } else if()==buttonthree){//按键3操作 ()+"3"); flag1=()); } else if()==buttonfour){//按键4操作 ()+"4"); flag1=()); } else if()==buttonfive){//按键5操作

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

用JAVA编写计算器程序(模拟Windows计算器)

用JAVA编写计算器程序(模拟Windows计算器) import java.awt.*; import java.awt.event.*; public class Calculation extends WindowAdapter implements ActionListener { double dResult=0; double dNowInput=0; double dMemory; int n=0; //记载小数位数 int nOperation=1; // 记录运算符类型 int nBitsNum=0; //记录总共输入的位数 boolean alreadyHaveDot=false; //已经有小数点? boolean keyAvailable=true; boolean alreadyClickedEqueal=false; //是否按下过"="? boolean isTempNowInput=false; //是否在计算出结果后直接按运算符将结果赋给了当前输入值? Frame f; Panel p1,p2,p3,p4,p5,p6; TextField tf1,tf2; Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button bDiv,bSqrt,bMulti,bMinus,bPercent,bPlus,bReciprocal,bEqual,bDot,bNegative; Button bBackspace,bCE,bC,bMR,bMS,bMC,bM; public void display() { f=new Frame("计算器"); f.setSize(280,213);

java编写的简单的计算器程序

j a v a编写的简单的计 算器程序 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化

参考代码: import .*; import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

相关文档
最新文档