文档库 最新最全的文档下载
当前位置:文档库 › Java语言编写的标准计算器(实现了windows标准型计算器的全部功能)

Java语言编写的标准计算器(实现了windows标准型计算器的全部功能)

Java语言编写的标准计算器(实现了windows标准型计算器的全部功能)
Java语言编写的标准计算器(实现了windows标准型计算器的全部功能)

标准型计算器(Java语言编写)

下面的java源码是本人连续工作48小时的成果,也许对于高手来说这只是小菜一碟,但是如果你不是高手,我推荐你研究下面的程序。程序中包含了Java反射机制、图形界面编程等一系列的知识运用。研究完后你不一定会变成高手,但对于Java和C语言你都会有更深度的理解。源码中的注释很详细。

○1建立java工程

○2输入工程名

○3新建一个包

○4输入包名

○5新建一个类

○6输入类名

以上步骤都是基础,会的可以略过。源码:

package three.num1;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Calculator extends JFrame implements ActionListener { /**

*

*/

private static final long serialVersionUID = 1L;

private JTextField text1;// 未实例化

private JLabel lable_text;

private JButton bt_backspace, bt_ce, bt_c;

private JPanel gridpanel;

private String str = "";

private String str_note = " ";

private char operator = '\0';

private double data_before;

private boolean equal_flag = false;

public Calculator() {

super("计算器");// 标题栏

setBounds(100, 100, 198, 244); // 程序在屏幕上的显示位置(100,100),宽*高=300*233

this.setResizable(false);

this.getContentPane().setLayout(new

FlowLayout(FlowLayout.RIGHT));

lable_text = new JLabel(" ", JLabel.RIGHT);

this.getContentPane().add(lable_text);

text1 = new JTextField("0", 16); // 将文本框text1实例化,并设置文本框的长度

text1.setHorizontalAlignment(JTextField.RIGHT); // 文字在文本框中从右边开始显示

text1.setEditable(false); // 不可编辑

this.getContentPane().add(text1);

bt_backspace = new JButton("backspace");

bt_backspace.setMargin(new Insets(2, 5, 2, 6));

bt_ce = new JButton("CE"); // bt_ce.setMargin(new

Insets(2,2,2,2));

bt_c= new JButton("C"); // bt_c.setMargin(new Insets(2,2,2,2));

this.getContentPane().add(bt_backspace);

this.getContentPane().add(bt_ce);

this.getContentPane().add(bt_c);

bt_backspace.addActionListener(this);

bt_ce.addActionListener(this);

bt_c.addActionListener(this);

keyboard(); // 调用keyboard()

this.setVisible(true);

}

/*** 添加按钮 ***/

public void keyboard() {

String str[] = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%",

"1", "2", "3", "-", "1/X", "0", "+/-", ".", "+", "=" };

gridpanel = new JPanel();

gridpanel.setLayout(new GridLayout(4, 5, 9, 8));// 4行5列,水平间距9,垂直间距7

this.getContentPane().add(gridpanel);

JButton button[] = new JButton[str.length];

for (int i = 0; i < button.length; i++) {

button[i] = new JButton(str[i]);

button[i].setMargin(new Insets(0, 0, 0, 0));

button[i].setForeground(new Color(252, 51, 51));//

button[i].setBackground(new

//

Color(131,95,56));

gridpanel.add(button[i]);

button[i].addActionListener(this); // 为按钮注册单击事件监听器

}

}

/*** 实现监听器接口 ***/

public void actionPerformed(ActionEvent e) {

double data_after;

String bt = e.getActionCommand();

/*** 按0数字键 */

if (bt == "0")// bt.equals("0")

{

if (equal_flag == false) {

if (text1.getText().equals("0")) {

return;

} else {

str += bt;

text1.setText(str);

}

} else {

equal_flag= false; // 添加这行代码使下次按数字键从if行执行,否则每次按0键都执行本行else语句,即str清空。

str = "";

str += bt;

text1.setText(str);

}

}

/*** 按非零数字键 */

if (bt.charAt(0) > '0' && bt.charAt(0) <= '9' && bt != "1/X")// bt是字符串,当它是数字键时,它只有一个字符。故用bt.charAt(0)来得到这个字符。

{

if (equal_flag == false) {

if (text1.getText().equals("0")) {

str= ""; // 清零之后的str="0",文本框显示0,再按数字键应该先将str清空,否则会显示023.9,012等带零数。

str += bt;

text1.setText(str);

} else {

str += bt;

text1.setText(str);

}

} else { // "="键按下,equal_flag=true

equal_flag = false; // 添加这行代码使下次按数字键从

if(equal_flag ==

// false)行执行,否则每次按数字键都执行本行else语句,即str和str_note清空,导致只显示一位数。

str = "";

str += bt;

text1.setText(str);

}

// Calculator.this.setVisible(false);//隐藏之

}

/** 按符号键及功能键 */

switch (bt) {

case".":

if (equal_flag == true) {

str = "0";

str += bt;

text1.setText(str);

equal_flag = false;

}

if (text1.getText().contains(".") == true)// 或

text1.getText().indexOf(".")>=0,表示不能连续输入‘.’。

{

return;

} else {

if (text1.getText().equals("0")

|| text1.getText().length() == 0) {// 文本框是0或空时,按.键显示0.。

str = "0";

str += bt;

text1.setText(str);

} else {

str += bt;

text1.setText(str);

}

}

equal_flag= false;// 按完?.?键后,按数字键会在.后添加该数字。参见102行;另外此行代码还处理了按?=?键后再按?.?键的显示问题。

break;

case"+":

// if(operator!='\0')//刚刚按了符号键,就不能再次处理了,直接退出函数。

// return;

if (operator != '\0' && text1.getText().length() != 0) { if(str.charAt(str.length()-1)=='.')

str_note

=str_note+str.substring(0,str.length()-1)+bt;

else

str_note =str_note+ str + bt;

lable_text.setText(str_note);

switch (operator) {

case'+':

data_before += Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'-':

data_before -= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'*':

data_before *= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'/':

data_before /= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

default:

break;

}

equal_flag= true;// 这行代码是为了按新的数字键时,先清空str 和text1,再显示新的数字键值。

operator = '+';// 将当前的(最新的)运算符给operator,以使下次运算匹配正确的运算符。

} else {

operator = '+';

data_before = Double.parseDouble(text1.getText());

if(text1.getText().charAt(text1.getText().length()-1)=='.')//去.

str_note

=text1.getText().substring(0,str.length()-1)+bt;

else

str_note = text1.getText() + bt;

lable_text.setText(str_note);

str = "";

text1.setText(str);

}

break;

case"-":

if (operator != '\0' && text1.getText().length() != 0) { if(str.charAt(str.length()-1)=='.')

str_note

=str_note+str.substring(0,str.length()-1)+bt;

else

str_note =str_note+ str + bt;

lable_text.setText(str_note);

switch (operator) {

case'+':

data_before += Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'-':

data_before -= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'*':

data_before *= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'/':

data_before /= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

default:

break;

}

equal_flag = true;// 这行代码是为了按新的数字键时,先清空str和text1,再显示新的数字键值。

operator = '-';// 将当前的(最新的)运算符给operator,以使下次运算匹配正确的运算符。

} else {

operator = '-';

data_before = Double.parseDouble(text1.getText());

if(text1.getText().charAt(text1.getText().length()-1)=='.')//去.

str_note

=text1.getText().substring(0,str.length()-1)+bt;

else

str_note = text1.getText() + bt;

lable_text.setText(str_note);

str = "";

text1.setText(str);

}

break;

case"*":

if (operator != '\0' && text1.getText().length() != 0) { if(str.charAt(str.length()-1)=='.')

str_note

=str_note+str.substring(0,str.length()-1)+bt;

else

str_note =str_note+ str + bt;

lable_text.setText(str_note);

switch (operator) {

case'+':

data_before += Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'-':

data_before -= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'*':

data_before *= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'/':

data_before /= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

default:

break;

}

equal_flag= true;// 这行代码是为了按新的数字键时,先清空str 和text1,再显示新的数字键值。

operator = '*';// 将当前的(最新的)运算符给operator,以使下次运算匹配正确的运算符。

} else {

operator = '*';

data_before = Double.parseDouble(text1.getText());

if(text1.getText().charAt(text1.getText().length()-1)=='.')//去.

str_note

=text1.getText().substring(0,str.length()-1)+bt;

else

str_note = text1.getText() + bt;

lable_text.setText(str_note);

str = "";

text1.setText(str);

}

break;

case"/":

if (operator != '\0' && text1.getText().length() != 0) {

if(str.charAt(str.length()-1)=='.')

str_note

=str_note+str.substring(0,str.length()-1)+bt;

else

str_note =str_note+ str + bt;

lable_text.setText(str_note);

switch (operator) {

case'+':

data_before += Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'-':

data_before -= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'*':

data_before *= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

case'/':

data_before /= Double.parseDouble(str);

str = Double.toString(data_before);

text1.setText(str);

break;

default:

break;

}

equal_flag= true;// 这行代码是为了按新的数字键时,先清空str 和text1,再显示新的数字键值。

operator = '/';// 将当前的(最新的)运算符给operator,以使下次运算匹配正确的运算符。

} else {

operator = '/';

data_before = Double.parseDouble(text1.getText());

if(text1.getText().charAt(text1.getText().length()-1)=='.')//去.

str_note

=text1.getText().substring(0,str.length()-1)+bt;

else

str_note = text1.getText() + bt;

lable_text.setText(str_note);

str = "";

text1.setText(str);

}

break;

case"+/-":

try {

if (Double.parseDouble(str) > 0) {

str = "-" + str;

text1.setText(str);

} else {

if (Double.parseDouble(str) == 0) {

return;

} else {

str = str.substring(1, str.length());

text1.setText(str);

}

}

} catch (NumberFormatException e1) {

return;

}

break;

case"sqrt":

equal_flag = true;// 这行代码是为了按新的数字键时,先清空str和text1,再显示新的数字键值。

try {

data_before = Double.parseDouble(str);

// str_note ="sqrt("+str+")";//不会产生异常的语句不要放这里,否则会跳过该语句

} catch (NumberFormatException e2) {

// e2.printStackTrace();

// System.err.println("空字符串无法开平方!");

str = "0";

}

if (str.charAt(str.length() - 1) == '.') {// 若0.、2.、23.,等类似"xx."的数开方,label_text应显示sqrt(xx),而不是sqrt(xx.)。

str_note = "sqrt(" + str.substring(0,str.length()-1) + ")";

} else {

str_note = "sqrt(" + str + ")";

}

str = Double.toString(Math.sqrt(data_before));

text1.setText(str);

lable_text.setText(str_note);

break;

case"%":

equal_flag = true;

switch (operator) {

case'+':

str_note = str_note

+ Double.toString(Double.parseDouble(str) / 100);

lable_text.setText(str_note);

str = Double.toString(data_before +

Double.parseDouble(str)

/ 100);

text1.setText(str);

break;

case'-':

str_note = str_note

+ Double.toString(Double.parseDouble(str) / 100);

lable_text.setText(str_note);

str = Double.toString(data_before -

Double.parseDouble(str)

/ 100);

text1.setText(str);

break;

case'*':

str_note = str_note

+ Double.toString(Double.parseDouble(str) / 100);

lable_text.setText(str_note);

str = Double.toString(data_before *

Double.parseDouble(str)

/ 100);

text1.setText(str);

break;

case'/':

str_note = str_note

+ Double.toString(Double.parseDouble(str) / 100);

lable_text.setText(str_note);

str = Double.toString(data_before

/ (Double.parseDouble(str) / 100));

text1.setText(str);

break;

default:

str_note = str + "%";

lable_text.setText(str_note);

str = Double.toString(Double.parseDouble(str) / 100);

text1.setText(str);

break;

}

operator = '\0';

break;

case"1/X":

equal_flag = true;

data_before = Double.parseDouble(str);

str_note = "reciproc(" + str + ")";

str = Double.toString(1 / data_before);

text1.setText(str);

lable_text.setText(str_note);

break;

case"C":

operator = '\0';

str = "";

str_note = " ";

data_before = 0;

data_after = 0;

equal_flag = false;

text1.setText("0");

lable_text.setText(str_note);// 设为空格,否则设空串label会很小(label大小根据其内字符串而定),以至于显示在text1的左边

break;

case"CE":

operator = '\0';

str = "";

str_note = " ";

data_before = 0;

data_after = 0;

equal_flag = false;

text1.setText("0");

lable_text.setText(str_note);

break;

case"backspace":

if (str.length() > 1) {

str = str.substring(0, str.length() - 1);

text1.setText(str);

} else { // 一位数时按backspace键相当于清零

str = "";

str_note = " ";

text1.setText("0");

}

break;

default:

break;

}

/** 按?=?键 ******/

if (bt.equals("=")) {

try {

equal_flag = true; // 下次按数字键从true行执行

switch (operator) {

case'+':

if (str.charAt(str.length() - 1) == '.'){

str_note +=str.substring(0,str.length()-1);

}

else

str_note += str; // 例如1.5+0.5=2.0,则此处str="0.5",str_note赋值前="1.5+"赋值后="1.5+0.5"

lable_text.setText(str_note);

data_after = Double.parseDouble(str);

data_before += data_after;

str = Double.toString(data_before);

text1.setText(str);

break;

case'-':

if (str.charAt(str.length() - 1) == '.'){

str_note +=str.substring(0,str.length()-1);

}

else

str_note += str;

lable_text.setText(str_note);

data_after = Double.parseDouble(str);

data_before -= data_after;

str = Double.toString(data_before);

text1.setText(str);

break;

case'*':

if (str.charAt(str.length() - 1) == '.'){

str_note +=str.substring(0,str.length()-1);

}

else

str_note += str;

lable_text.setText(str_note);

data_after = Double.parseDouble(str);

data_before *= data_after;

str = Double.toString(data_before);

text1.setText(str);

break;

case'/':

if (str.charAt(str.length() - 1) == '.'){

str_note +=str.substring(0,str.length()-1);

}

else

str_note += str;

lable_text.setText(str_note);

data_after = Double.parseDouble(str);

data_before /= data_after;

str = Double.toString(data_before);

text1.setText(str);

break;

default:

break;

}

} catch (NumberFormatException e1) {

// TODO Auto-generated catch block

// e1.printStackTrace();

return;

}

operator= '\0';// 每次运算完后,将运算符置空,防止连续运算,以及防止按%键匹配到运算符?+、-、*、/?(匹配到会导致%运算结果显示异常) }

}

public static void main(String[] args) {

Calculator c1 = new Calculator();

c1.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

简单计算器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实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

用java编写的计算器(Calculator)

import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Calculator { public static void main(String[] args) { new MyfirstCalculator(); } } class MyfirstCalculator { Frame f=new Frame("calculator"); TextField tf=new TextField(50); ArrayList sa=new ArrayList();//sa用来存储sb中的数据 StringBuilder sb=new StringBuilder();//sb用来存储0-9中的数据 StringBuilder sb1=new StringBuilder();//用作判断,里面数据为:+,-,*,/四个中的任意一个或多个 StringBuilder sb2=new StringBuilder();//用作判断,里面数据为:= MyfirstCalculator() { init(); } public void init() { Button b0=new Button("0"); Button b1=new Button("1"); Button b2=new Button("2"); Button b3=new Button("3"); Button b4=new Button("4"); Button b5=new Button("5"); Button b6=new Button("6"); Button b7=new Button("7"); Button b8=new Button("8"); Button b9=new Button("9"); Button ba=new Button("="); Button bb=new Button("-"); Button bc=new Button("+"); Button bd=new Button("*"); Button be=new Button("/"); //Button bf=new Button("D");//定义一个清空按钮,用来从头开始计数

java图形化界面实现简单计算器

学号 天津城建大学 Java 语言程序设计C 实验报告 实验5:计算器 学生姓名路江飞 班级11卓越7班 一、实验目的 1.掌握Java图形组件与布局管理器的使用; 2.掌握使用Java事件处理机制的使用; 3.掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。 二、实验要求 1.采用布局管理器进行界面的布局; 2.学会对不同的事件用相应的事件处理器; 3.写出实验报告。要求记录编译与执行Java程序当中的系统错误信息提材示,并给出解决办法。 三、实验内容 1.在随堂练习的简单计算器基础上设计一个多功能计算器。包括复杂的功能:比如记忆功能,三角函数,成方,对数等等。 五、实验结果 文件1: package computer; import java、awt、BorderLayout; public class Compuer extends JFrame { private JPanel contentPane; private JTextField textField; private JTextField textField_1;

private JTextField textField_2; private JTextField textField_3; /** * Launch the application、 */ public static void main(String[] args) { EventQueue、invokeLater(new Runnable() { public void run() { //运行程序时,点击按钮输入公式,当点击等于号时显示出计算结果 try { Compuer frame = new Compuer(); frame、setVisible(true); Time time=new Time(); time、setTime(frame、textField_3); Thread thread=new Thread(time); thread、start(); } catch (Exception e) { e、printStackTrace(); } } }); } /** * Create the frame、 */ public Compuer() { setTitle("\u8BA1\u7B97\u5668"); setName(""); final StringBuffer s=new StringBuffer(); setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE); setBounds(100, 100, 412, 448); contentPane = new JPanel(); contentPane、setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane、setLayout(null); textField = new JTextField(); textField、setEnabled(false); textField、setLocale(Locale、UK); textField、setForeground(Color、PINK); textField、setText(" \u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668"); textField、setBounds(10, 20, 368, 30); contentPane、add(textField);

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简单计算器源代码

简单计算器代码 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编写简单计算器

【关键字】建立 今天闲着没事,用java写了一个简单计算器,能实现简单的数据计算。 语言:java 开发环境:eclipse (因为是按自己的想法写的,所以有些不尽人意的地方请谅解,希望对初学java者有些许帮助,有不好理解的地方,我尽量注释,有不理解的可以在百度HI我)事先一定要安装好JDK,可以在下载,配置好环境变量,再安装好eclipse,也可以在网上下载到,具体自己去找; 然后打开eclipse建立一个工程,取名随便,我这里取名Calculator;然后在建立好的工程里面新建两个包,报名也自己取,尽量易懂,容易让人理解;我这里建立了两个包,Client 和UI,等下在Client里面放的是主函数,UI里面放的是界面文件和控制器;好了下面开始写代码; 一、先写界面代码: 在UI包里面新建一个Class文件,取名自己想,这里我写的是CalculatorFrame package ui; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class CalculatorFrame extends JFrame { private static final long serialVersionUID = 1L; public String opt; public String str; private JTextArea show; private ClientContext clientContext;//引用控制器东西 /*因为调用了控制器里面的方法,所以要对控制器的东西进行赋值,否则运行会出现空指针异常*/ public void setClientContext(ClientContext clientContext) { this.clientContext = clientContext; }

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编写的加法计算器

/* * 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程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术 学生姓名: 学号: 指导教师:张民 完成日期: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实训报告

实训名称: 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编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.wendangku.net/doc/f813949889.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编写简单计算器

用java写了一个简单计算器,能实现简单的数据计算。 一、先写界面代码: 在UI包里面新建一个Class文件,取名自己想,这里我写的是CalculatorFrame package ui; import java.awt.Color; import java.awt.Font; 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.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.TitledBorder; public class CalculatorFrame extends JFrame { private static final long serialV ersionUID = 1L; public String opt; public String str; private JTextArea show; private ClientContext clientContext;//引用控制器对象 /*因为调用了控制器里面的方法,所以要对控制器的对象进行赋值,否则运行会出现空指针异常*/ public void setClientContext(ClientContext clientContext) { this.clientContext = clientContext; } public CalculatorFrame() { init(); } private void init() { setTitle(" Simple Calculator"); setBounds(533, 184, 300, 400); setContentPane(creatContentPane()); }

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

Java实现简易计算器

Java实训作业题目:Java实现简易计算器 学院: 姓名: 学号: 班级: 20 年月

一、实验目的 通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。此次课程设计实训主要是Java语言程序设计的实现。通过该课程设计,可以将课堂上掌握的理论知识与处理数据的业务相结合,以检验自己掌握知识的宽度、深度及对知识的综合运用能力。 二、实验要求 用Java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,平方等功能。 三、详细内容 1.界面设计 界面设计使用GUI,其中有用到swing组件的TextField和Button,用到awt中的BorderLayout和GridLayout布局管理方式,其图形界面如图1-1所示:

图1-1 其中主要代码为: public mainWindow(){ this.setTitle("计算器");//用户图形界面标题 this.setVisible(true);//用户图形界面可缩小 this.setResizable(false);//用户图形界面不可放大 this.setSize(350,300);//设置用户图形界面的大小 this.setLocation(400,150);//用户图形界面在屏幕中的显示位置 JPanel panel1 = new JPanel();//新建一个画板 JPanel panel2 = new JPanel(); button1 = new JButton("1"); ... reset = new JButton("CE"); Container container = this.getContentPane(); container.add(panel2,BorderLayout.NORTH); container.add(panel1); panel1.setLayout(new GridLayout(5,4));//将画板1分为4行5列 result.setEnabled(false); result.setFont(new Font("Dialog",Font.BOLD,25));//运算结果的字体大小 result.setEditable(false); result.setHorizontalAlignment(SwingConstants.RIGHT); panel1.add(reciprocal);//分别将20个按钮依次添加到画板panel1中,并设置各自的大小 reciprocal.setFont(new Font("Dialog",Font.PLAIN,20)); ... panel1.add(divide);

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编写计算器程序

用JAVA编写计算器程序(模拟Windows计算器) import java.awt.*; import java.awt.event.*; public class Calculation extends WindowAdapter implements ActionList ener { 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); f.setLocation(200,200); f.setBackground(Color.LIGHT_GRAY); f.setResizable(false); f.setLayout(new BorderLayout(3,3)); p1=new Panel(new GridLayout(1,3,5,5)); //用于存放backspace,ce,c三键 p2=new Panel(new GridLayout(4,5,5,5)); //用于存放数字区及附近共20键, 此处间隙设置可能不合理,以后调整 p3=new Panel(new GridLayout(5,1,5,5)); //用于存放MC,MR,MS,M+键及显示M状态文本框,此处间隙设置可能不合理,以后调整 p4=new Panel(new FlowLayout()); //用于存放p1,p2 p5=new Panel(new FlowLayout()); p6=new Panel(new FlowLayout()); p4.add(p1); p4.add(p2); tf1=new TextField(35); //存放显示区 tf1.setText("0."); tf1.setEditable(false); p5.add(tf1); f.add(p5,BorderLayout.NORTH); f.add(p4,BorderLayout.CENTER); f.add(p3,BorderLayout.WEST); b1=new Button("1"); b2=new Button("2"); b3=new Button("3"); b4=new Button("4"); b5=new Button("5"); b6=new Button("6");

相关文档
相关文档 最新文档