用java编写的具有保存计算过程的计算器

用java编写的具有保存计算过程的计算器
用java编写的具有保存计算过程的计算器

jisuan.java

import javax.swing.JMenuBar;

public class jisuan {

public static void main(String[] args) {

jisq ji = new jisq();

}

}

jisq.java

import java.awt.Color;

import https://www.360docs.net/doc/e21599987.html,ponent;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.StringReader;

import java.text.SimpleDateFormat;

import java.util.*;

import javax.swing.*;

import javax.swing.border.BevelBorder;

import javax.swing.border.SoftBevelBorder;

public class jisq extends JFrame implements ActionListener { JPanel pane = new JPanel();

String s, s1, s2;

double t1, t2, t = 0;

JTextField fiel, show;

JTextArea area;

JButton b0, b1, b2, add, b3, b4, b5, b6, b7, b8, sub, b9, mul, dele, equ,

dev;

JButton sqrt, pow, random, sin, p, log, zf, tui, save, clear, copy,point;

public jisq() {

init();

this.setBounds(123, 143, 500, 330);

this.setTitle("计算器");

this.setVisible(true);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Menu menu=new Menu();

this.setJMenuBar(menu);

}

void init() {

JLabel dangqian = new JLabel();

pane.setLayout(null);

this.add(pane);

Date now = new Date();

dangqian.setText(now.toString());

SimpleDateFormat ri = new SimpleDateFormat("dd"); // 封装为了获取日期

SimpleDateFormat shi = new SimpleDateFormat("kk"); // 封装为了获取小时

SimpleDateFormat fen = new SimpleDateFormat("mm"); // 封装为了获取分钟

SimpleDateFormat miao = new SimpleDateFormat("ss"); // 封装为了获取秒钟

int riqi = Integer.parseInt(ri.format(now)); // 获取日期

int shizhong = Integer.parseInt(shi.format(now)); // 获取小时

int fenzhong = Integer.parseInt(fen.format(now)); // 获取分钟

int miaozhong = Integer.parseInt(miao.format(now)); // 获取秒钟

dangqian.setBounds(170, 7, 553, 22);

pane.add(dangqian);

area = new JTextArea();

JScrollPane scrollPane = new JScrollPane(area,

JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

scrollPane.setBounds(280, 70, 200, 140);

area.setEditable(false);

pane.add(scrollPane);

fiel = new JTextField();

fiel.setBounds(10, 30, 250, 30);

fiel.setEditable(false);

fiel.setFont(new Font("TimesRoman", Font.BOLD, 16));// 显示框中的数字大小和颜色

fiel.setHorizontalAlignment(JTextField.RIGHT);// 文字右对齐

fiel.setBackground(Color.white);// 设置背景颜色

// fiel.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));

pane.add(fiel);

show = new JTextField();

show.setBounds(280, 30, 200, 30);

show.setEditable(false);

show.setFont(new Font("TimesRoman", Font.BOLD, 16));// 显示框中的数字大小和颜色

show.setHorizontalAlignment(JTextField.CENTER);// 文字居中

show.setBackground(Color.gray);// 设置背景颜色

pane.add(show);

b0 = new JButton("0");

b0.setBounds(10, 70, 43, 33);

pane.add(b0);

b0.addActionListener(new ActionListener() {// 匿名类实例做监视器

public void actionPerformed(ActionEvent e) {

if (e.getSource() == b0) {

fiel.setText(fiel.getText() + "0");

show.setText(fiel.getText());

}

}

});

b1 = new JButton("1");

b1.setBounds(59, 70, 43, 33);

pane.add(b1);

b1.addActionListener(this);

b2 = new JButton("2");

b2.setBounds(108, 70, 43, 33);

pane.add(b2);

b2.addActionListener(this);

add = new JButton("+");

add.setForeground(Color.BLUE);

add.setBounds(157, 70, 43, 33);

pane.add(add);

add.addActionListener(this);

b3 = new JButton("3");

b3.setBounds(10, 109, 43, 33);

pane.add(b3);

b3.addActionListener(this);

b4 = new JButton("4");

b4.setBounds(59, 109, 43, 33); pane.add(b4);

b4.addActionListener(this);

b5 = new JButton("5");

b5.setBounds(108, 109, 43, 33); pane.add(b5);

b5.addActionListener(this);

sub = new JButton("-");

sub.setForeground(Color.BLUE); sub.setBounds(157, 109, 43, 33); pane.add(sub);

sub.addActionListener(this);

b6 = new JButton("6");

b6.setBounds(10, 148, 43, 33); pane.add(b6);

b6.addActionListener(this);

b7 = new JButton("7");

b7.setBounds(59, 148, 43, 33); pane.add(b7);

b7.addActionListener(this);

b8 = new JButton("8");

b8.setBounds(108, 148, 43, 33); pane.add(b8);

b8.addActionListener(this);

mul = new JButton("*");

mul.setForeground(Color.BLUE); mul.setBounds(157, 148, 43, 33); pane.add(mul);

mul.addActionListener(this);

b9 = new JButton("9");

b9.setBounds(10, 187, 43, 33); pane.add(b9);

b9.addActionListener(this); dele = new JButton("C"); dele.setForeground(Color.red); dele.setBounds(59, 187, 43, 33); pane.add(dele);

dele.addActionListener(this); equ = new JButton("=");

equ.setBounds(108, 187, 43, 33); pane.add(equ);

equ.addActionListener(this);

dev = new JButton("/");

dev.setForeground(Color.blue); dev.setBounds(157, 187, 43, 33); pane.add(dev);

dev.addActionListener(this);

point = new JButton(".");

point.setBounds(10, 226, 43, 33); pane.add(point);

point.addActionListener(this);

p = new JButton("π");

p.setBounds(59, 226, 43, 33); pane.add(p);

p.addActionListener(this);

zf = new JButton("±");

zf.setBounds(108, 226, 43, 33); pane.add(zf);

zf.addActionListener(this);

tui = new JButton("←");

tui.setBounds(206, 70, 53, 33); pane.add(tui);

tui.addActionListener(this);

sqrt = new JButton("√");

sqrt.setBounds(206, 148, 53, 33); pane.add(sqrt);

sqrt.addActionListener(this);

pow = new JButton("xy");

pow.setBounds(206, 109, 53, 33); pane.add(pow);

pow.addActionListener(this); random = new JButton("R"); random.setBounds(156, 226, 43, 33); pane.add(random);

random.addActionListener(this);

sin = new JButton("sin");

sin.setBounds(206, 187, 53, 33); pane.add(sin);

sin.addActionListener(this);

log = new JButton("log");

log.setBounds(206, 226, 53, 33); pane.add(log);

log.addActionListener(this);

save = new JButton("保存");

save.setForeground(Color.RED);

save.setBounds(280, 220, 60, 42);

pane.add(save);

save.addActionListener(this);

copy = new JButton("复制");

copy.setForeground(Color.BLACK);

copy.setBounds(350, 220, 60, 42);

pane.add(copy);

copy.addActionListener(this);

clear = new JButton("清除");

clear.setForeground(Color.BLUE);

clear.setBounds(420, 220, 60, 42);

pane.add(clear);

clear.addActionListener(this);

save.setToolTipText("保存计算过程到文件");

copy.setToolTipText("复制选中的计算过程");

clear.setToolTipText("清除计算过程");

}

public void actionPerformed(ActionEvent e) { String str = e.getActionCommand();

if (str.equals("1")) {

fiel.setText(fiel.getText() + "1");

show.setText(fiel.getText());

} else if (str.equals("2")) {

fiel.setText(fiel.getText() + "2");

show.setText(fiel.getText());

} else if (str.equals("3")) {

fiel.setText(fiel.getText() + "3");

show.setText(fiel.getText());

} else if (str.equals("4")) {

fiel.setText(fiel.getText() + "4");

show.setText(fiel.getText());

} else if (str.equals("5")) {

fiel.setText(fiel.getText() + "5");

show.setText(fiel.getText());

} else if (str.equals("6")) {

fiel.setText(fiel.getText() + "6");

show.setText(fiel.getText());

} else if (str.equals("7")) {

fiel.setText(fiel.getText() + "7");

show.setText(fiel.getText());

} else if (str.equals("8")) {

fiel.setText( fiel.getText() +"8");

show.setText(fiel.getText());

} else if (str.equals("9")) {

fiel.setText(fiel.getText() + "9");

show.setText(fiel.getText());

}else if (str.equals("清除")) {

area.setText(null);

}else if (str.equals(".")) {

fiel.setText(fiel.getText() + ".");

show.setText(fiel.getText());

} else if (str.equals("C")) {

fiel.setText("");

show.setText("");

} if (str.equals("复制"))

area.copy();

if (str.equals("清除"))

area.setText(null);

if (str.equals("保存")) {

JFileChooser chooser = new JFileChooser();

int state = chooser.showSaveDialog(null);

File file = chooser.getSelectedFile();

if (file != null && state == JFileChooser.APPROVE_OPTION) { try {

String content = area.getText();

StringReader read = new StringReader(content);

BufferedReader in = new BufferedReader(read);

FileWriter outOne = new FileWriter(file);

BufferedWriter out = new BufferedWriter(outOne);

String str1 = null;

while ((str1 = in.readLine()) != null) {

out.write(str1);

out.newLine();

}

in.close();

out.close();

} catch (IOException exc) {}

}

}

else if (str.equals("←")) {

StringBuffer s = new StringBuffer(fiel.getText());

if (s.length() > 0) {

fiel.setText(s.delete(s.length() - 1, s.length()).toString());

}

} else if (str.equals("π")) {

t = Math.PI;

fiel.setText("" + t);

show.setText(fiel.getText());

area.append(" " + "π ="+fiel.getText()+ "\n"); } else if (str.equals("+")) {

s = fiel.getText();

s1 ="+";

fiel.setText("");

show.setText(s1);

} else if (str.equals("/")) {

s = fiel.getText();

s1 = "/";

fiel.setText("");

show.setText(s1);

} else if (str.equals("-")) {

s = fiel.getText();

s1 = "-";

fiel.setText("");

show.setText(s1);

} else if (str.equals("*")) {

s = fiel.getText();

s1 = "*";

fiel.setText("");

show.setText(s1);

} else if (str.equals("√")) {

s = fiel.getText();

t1 = Double.parseDouble(s);

t = Math.sqrt(t1);

fiel.setText(t + "");

String process = "sqrt(" + s + ") = " + t;

show.setText(process);

area.append(" " + process + "\n");

} else if (str.equals("±")) {

s = fiel.getText();

t = -Double.parseDouble(s);

if (t != 0)

fiel.setText(t + "");

show.setText(fiel.getText());

}

else if (str.equals("sin")) {

s = fiel.getText();

t1 = Math.PI / 180.0 * Double.parseDouble(s);

t = Math.sin(t1);

fiel.setText(t + "");

String process = "sin(" + s + ") = " + t;

show.setText(process);

area.append(" " + process + "\n");

} else if (str.equals("log")) {

s = fiel.getText();

t1 = Double.parseDouble(s);

t = Math.log10(t1);

fiel.setText(t + "");

String process = "log(" + s + ") = " + t;

show.setText(process);

area.append(" " + process + "\n");

} else if (str.equals("xy")) {

s = fiel.getText();

fiel.setText("");

s1 = "xy";

show.setText(s1);

} else if (str.equals("R")) {

int m = (int) (Math.random() * 100 / 3);

fiel.setText(m + "");

show.setText(fiel.getText());

} else if (str.equals("=")) {

s2 = fiel.getText();

t1 = Double.parseDouble(s);

t2 = Double.parseDouble(s2);

if (s1 == ("+")) {

t = t1 + t2;

} else if (s1 == ("-")) {

t = t1 - t2;

} else if (s1 == ("*")) {

t = t1 * t2;

} else if (s1 == ("/")) {

t = t1 / t2;

} else if (s1 == "xy") {

t = Math.pow(t1, t2);

}

fiel.setText("" + t);

String process=s+ " " + s1 + " " + s2+ " = " + t;

show.setText( process );

area.append(" "+ process + "\n");

}

}

menu.java

import https://www.360docs.net/doc/e21599987.html,ponent;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.swing.*;

import https://www.360docs.net/doc/e21599987.html,ment;

class Menu extends JMenuBar implements ActionListener {

JMenuBar menubar;

JMenu menu1, menu2, menu3, submenu;

JMenuItem item1, item2, item3, item4, item5;

public Menu() {

menubar = new JMenuBar();

menu1 = new JMenu("查看(V)");

menu2 = new JMenu("编辑(E)");

menu3 = new JMenu("帮助(H)");

submenu = new JMenu("工作表");

item1 = new JMenuItem("标准型", new ImageIcon("go.gif"));

item2 = new JMenuItem("科学型", new ImageIcon("jian.gif"));

item3 = new JMenuItem("复制", new ImageIcon("on.gif"));

item5 = new JMenuItem("粘贴", new ImageIcon("ic.gif"));

item4 = new JMenuItem("关于计算器", new ImageIcon("ic.gif"));

menu1.add(item1);

menu1.add(item2);

menu1.add(submenu);

submenu.add(new JMenuItem("单位换算", new ImageIcon("co.gif")));

submenu.add(new JMenuItem("日期计算", new ImageIcon("n.gif")));

submenu.add("统计信息");

menu2.add(item3);

menu2.add(item5);

menu3.add(item4);

menubar.add(menu1);

menubar.add(menu2);

menubar.add(menu3);

this.add(menubar);

}

@Override

public void actionPerformed(ActionEvent arg0) { String s = arg0.getActionCommand();

}

}

简单计算器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编写的计算器(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课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

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实现计算器课程设计 计算机科学系 计应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简单计算器源代码

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

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科学计算器程序代码

计算器布局显示: 功能举例: ①13+20=33 ②-7*14=-98:先输入7,再单击-/+将其变成负数,然后依次单击×号、14与= ③7!=5040 ④sin30°=0.5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果 ⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果 ⑥2*π=6.2832 …… 源程序如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField;

【建立】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

1课程实习内容概述 1.1 目的及任务 成功的Java课程设计是其课程学习到位的一个重要体现,通过课程设计使学生更加掌握JAVA语言编程的基础知识并能熟练运用。如: (1)、掌握Java开发面向对象的软件设计思想、方法及步骤; (2)、熟悉类声明与对象的使用,并进一步强化类的定义,掌握类的继承、接口以及变量、数组的应用; (3)、了解JAVA语言的图形用户界面的设计知识,并运用JAVA 编写简单计算器程序。 2 程序实现的基本思想 2.1 问题分析 编写一个简单计算器程序,它要具有0~9数及π的输入、加、减、乘、除、开根号、正三角反三角函数、e^x、ln(x)、lg(x)、tanh、角度和弧度的转换、删除、清空的功能。 2.2 总体设计 (1)、首先要设计其GUI界面,总体界面有一个文本框,共有32个按钮,总体界面用BorderLayout布局。 (2)、文本框放置在总体界的NORTH; (3)、0到9以及“.”=的按钮放置到一个面板Panel1中,并用GridLayout(4,3)来布局,再将其添加到一个面板panel_center中,最后将panel_center面板放进整体布局的CENTER; (4)、将正三角反三角函数、e^x、ln(x)、lg(x)、tanh、角度和弧度的转换等12个按钮放置到一个面板Panel3中,设计其按键字体为蓝色,并用GridLayout(4,3)来布局,再将其放进整体布局的WEST; (5)、将+、-、 *、/、 2√、π、以及删除和清空等8个按钮放置到一个面板Panel2中,设计其按键字体为蓝色,并用GridLayout(4,2)来布局,再将其放进整体布局的EAST中,界面设计完成。

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

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

目录 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)

运算截图

以下是源代码: package Calculator; /** * 计算器程序 * 本程序有两个类(这两个类都在本文件中): * Calculate类负责纯数学运算 * Calculator类负责图形界面显示 **/ importjava.awt.Font; importjava.awt.GridLayout; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.WindowAdapter; importjava.awt.event.WindowEvent; importjavax.swing.JButton; importjavax.swing.JDialog; importjavax.swing.JPanel; importjavax.swing.JScrollPane; importjavax.swing.JTextArea; @SuppressWarnings("serial") public class Calculator extends JDialog implements ActionListener { // 窗口组件 privateJPanel panel; privateJTextArea text; JScrollPanescrollPane; privateJButton[] number; privateJButtonbt_Point,bt_Equal,bt_Plus,bt_Cut,bt_Multiply, bt_Division,bt_Pow,bt_Clear,bt_L,bt_R; //数学运算处理 String inputStr = ""; Calculate objCalculate=new Calculate(); // "画"窗口 public Calculator() { setTitle("计算器"); setResizable(false); setSize(360, 400); Font font = new Font("宋体", Font.BOLD, 20);// 自定义字体

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/e21599987.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实训作业题目: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计算器设计报告

摘要 本计算器是由java语言所编程设计的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、求余、求倒数,还可以实现二进制与十进制之间的转换。通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。 关键词: java语言,计算器,算法

目录 摘要 (1) 1概述 (3) 1.1设计目的及思路 (3) 1.2功能模块设计 (3) 1.3系统功能图 (3) 2计算器的设计与实现 (4) 2.1程序界面 (4) 2.2程序源代码 (4) 3计算器演示 (10) 4运行调试及讨论分析 (13) 5小结 (14) 参考文献: (14)

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

相关文档
最新文档