JAVA实训报告--计算器

2018-11-16 21:01

《Java实训》设计报告

专业:班级:学号:姓名:

计算器

软件技术

09-23 090123037 范付明

石家庄科技信息职业学院

信息工程系

2011年10月15日

《Java实训》设计报告

项目简介 项目名称 项目简介 计算器 开发人员 范付明 本程序名称为计算器,主要功能是实现简单的数字,运算符号,计算,删除,复位等功能。 掌握计算器的各项基本功能 掌握编写计算器程序的所用方法 项目目的 掌握Swing组件的应用 掌握事件的应用 Java编程语言、javaSwing技术 主要技术 开发环境 JDK1.6.0_24 项 目 特 点 使用组件构建的C/S应用程序 各项功能的组织合理搭配应用 图标控制功能实现 构建基于C/S架构的应用程序 技 术 重 点 Swing组件应用 事件监听的应用 方法的编写 Swing组件的应用 技 术 难 点 事件监听器的使用 异常处理 方法简便的选择

《Java实训》设计报告

项目名称

一、项目需求

本程序的主要功能:

(1)单击“计算器”上的数字按钮(0~9)可以设置参与计算的运算数。 (2)单击“计算器”上的运算符按钮(+、-、*、/、1/x、sqrt、%)可以选择运算符号。

(3)单击“计算器”上的“=”按钮显示计算结果。 (4)单击“计算器”上的“复位”按钮清空计算结果。

(5)单击“计算器”上的“删除”按钮删除输入的最后一个数字。

二、项目设计

在设计计算器时,编写2个Java源文件:CalculatorWindow.java、NumberButton.java计算器除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。

下面是2个Java源文件的总体设计。 (1)CalculatorWindow.java(主类)

CalculatorWindow类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。CalculatorWindow类有4种类型的对象,分别是:LinkedList、NumberButton、JButton、JTextField。

(2)NumberButton.java

NumberButton类创建的对象是主类CalculatorWindow窗口的一个“数字”按钮。NumberButton有一个int类型的成员temp,用于标明所创建的按钮所含有的运算符号。NumberButton所创建的22个按钮被添加到CalculatorWindow窗口中。 1、CalculatorWindow类(主类)

(1)数据和方法

CalculatorWindow类是javax.swing包中JFrame的一个字类,并实现了ActionListener接口。类中有关数据和方法的详细说明。

1)成员变量

jbArray是NumberButton型数组,每个单元是一个NumberButton类创建的“数字

《Java实训》设计报告

按钮”对象,该数组长度为10。numberButton数组中的“数字按钮”含有的数字依次为0~9。每个“数字按钮”都注册有ActionEvent事件监听器。

2)方法

main(String args[])方法是计算器程序运行的入口方法。 CalculatorWindow()是构造方法,负责完成窗口的初始化。 (2)代码:

import java.awt.*;

import java.awt.event.*; import javax.swing.*;

public class jisuanqi extends JFrame implements ActionListener { private JTextField jtResult=new JTextField(); private JButton jb_clear=new JButton(\复位\ private JButton jb_delete=new JButton(\删除\ private static JButton[][] jbArray={{new JButton(\JButton(\JButton(\JButton(\

{new JButton(\JButton(\JButton(\

{new JButton(\JButton(\JButton(\

{new JButton(\JButton(\JButton(\

{new JButton(\JButton(\JButton(\

}; int first=0; double qian; String fuhao;

boolean clear=true,clickable=true; public jisuanqi() { setFrame(); addListener(); } public void setFrame() { this.setLayout(null); this.setTitle(\计算器\ jtResult.setBounds(120,100,310,30); jtResult.setEditable(false); jtResult.setHorizontalAlignment(JTextField.RIGHT);

《Java实训》设计报告

this.add(jtResult); jb_clear.setBounds(290,150,60,30); this.add(jb_clear); for(int i=0;i

public void addListener() { jtResult.addActionListener(this); jb_clear.addActionListener(this); jb_delete.addActionListener(this); for(int i=0;i

public void actionPerformed(ActionEvent e) { Object temp=e.getSource(); if(temp==jb_clear) { jtResult.setText(\ } if(temp==jb_delete) { String s = jtResult.getText(); jtResult.setText(\ for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i); jtResult.setText(jtResult.getText() + a);

《Java实训》设计报告

} }

if(temp==jbArray[0][3])//点击\按钮 { if(clear==false)//判断是否点击了符号位 jtResult.setText(\ jtResult.setText(jtResult.getText()+\}

if(temp==jbArray[0][2])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true;//第二次不在清空 }

if(temp==jbArray[1][2])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[2][2])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[0][1])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[1][1])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[2][1])//点击\按钮

《Java实训》设计报告

{ if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[0][0])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true;

}if(temp==jbArray[1][0])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[2][0])//点击\按钮 { if(clear==false) jtResult.setText(\ jtResult.setText(jtResult.getText()+\ clear=true; }

if(temp==jbArray[2][3])//点击\按钮 { clickable=true; for (int i = 0; i < jtResult.getText().length(); i++) if ('.' == jtResult.getText().charAt(i)) { clickable=false; break; } //第一层判断是否里面含有小数点; if(clickable==true)//第二坛判断 jtResult.setText(jtResult.getText()+\} try { if(temp==jbArray[3][3])//点击\按钮 { qian=Double.parseDouble(jtResult.getText()); fuhao=\

《Java实训》设计报告

clear=false; } if(temp==jbArray[3][2])//点击\按钮 { qian=Double.parseDouble(jtResult.getText()); fuhao=\ clear=false; } if(temp==jbArray[3][1])//点击\按钮 { qian=Double.parseDouble(jtResult.getText()); fuhao=\ clear=false; } if(temp==jbArray[3][0])//点击\按钮 { qian=Double.parseDouble(jtResult.getText()); fuhao=\ clear=false; } if(temp==jbArray[4][3])//点击\按钮 { double ss=Double.parseDouble(jtResult.getText()); jtResult.setText(\ if(fuhao==\ jtResult.setText(qian+ss+\ if(fuhao==\ jtResult.setText(qian-ss+\ if(fuhao==\ jtResult.setText(qian*ss+\ if(fuhao==\ jtResult.setText(qian/ss+\ clear=false;//要清空前一次的数据 } if(temp==jbArray[4][0])//点击\按钮 { String s = jtResult.getText(); if(s.charAt(0) == '-') { jtResult.setText(\负数不能开根号\ } else

jtResult.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(jtResult.getText()))));

《Java实训》设计报告

clear=false; }

if(temp==jbArray[4][2])//点击\按钮 { if (jtResult.getText().charAt(0) == '0'&&jtResult.getText().length() == 1) { jtResult.setText(\除数不能为零\ } else { boolean isDec = true; int i, j, k; String s = Double.toString(1 / Double.parseDouble(jtResult.getText())); for (i = 0; i < s.length(); i++) if (s.charAt(i) == '.') break; for (j = i + 1; j < s.length(); j++) if (s.charAt(j) != '0') { isDec = false; break; } if (isDec == true) { String stemp = \ for (k = 0; k < i; k++) stemp += s.charAt(k); jtResult.setText(stemp); } else jtResult.setText(s); } clear=false; }

if(temp==jbArray[4][1])//点击\按钮 { jtResult.setText(\ clear=false; }

if (temp == jbArray[1][3]) //点击\按钮 { boolean isNumber = true; String s = jtResult.getText(); for (int i = 0; i < s.length(); i++)

《Java实训》设计报告

去掉

}

if (! (s.charAt(i) >= '0'&&s.charAt(i) <= '9'||s.charAt(i) == '.'||s.charAt(i) == '-')) { isNumber = false; break; }

if (isNumber == true) { //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号

if(s.charAt(0) == '-')

{ jtResult.setText(\ for (int i = 1; i < s.length(); i++) { char a = s.charAt(i); jtResult.setText(jtResult.getText() + a); } } //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处 else jtResult.setText('-' + s); } } } catch(Exception eee) { System.out.println(\运算时,首先输入数字或字符\ jtResult.setText(\运算出错\ clear=false; } }

public static void main(String args[]) { new jisuanqi(); }

(3)效果图

CalculatorWindow创建的窗口效果如图1所示。

《Java实训》设计报告

三、项目总结

本程序为JAVA中简单的计算器,主要实现简单的数学计算,删除,复位等功能。运用JAVA中的类,数组,成员变量等知识,有简单的界面,按钮等。

本程序还存在一定的缺陷,功能简单,界面还需美化等。

四、心得体会

编写一个程序,无论会实现什么功能,都必须掌握这门语言的要领、基本知识及工具的运用,同时别的辅助工具也要有一定的了解。因此要更好的运用Java语言编程还需更深入的学习,这样才能把一个程序的功能实现的淋漓尽致,界面才会更加美观。

同时编写这个程序让我更好的理解了数组、类的运用及事件的监听和获取等功能。

《Java实训》设计报告

三、项目总结

本程序为JAVA中简单的计算器,主要实现简单的数学计算,删除,复位等功能。运用JAVA中的类,数组,成员变量等知识,有简单的界面,按钮等。

本程序还存在一定的缺陷,功能简单,界面还需美化等。

四、心得体会

编写一个程序,无论会实现什么功能,都必须掌握这门语言的要领、基本知识及工具的运用,同时别的辅助工具也要有一定的了解。因此要更好的运用Java语言编程还需更深入的学习,这样才能把一个程序的功能实现的淋漓尽致,界面才会更加美观。

同时编写这个程序让我更好的理解了数组、类的运用及事件的监听和获取等功能。


JAVA实训报告--计算器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:曼昆《经济学原理》答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: