java计算器源代码

java计算器源代码
java计算器源代码

package计算器;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.math.BigDecimal;

import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.border.BevelBorder;

import javax.swing.text.BadLocationException;

public class Counter1 extends JFrame implements ActionListener { public static final int DEF_DIV_SCALE = 10; //默认的精度

private JMenuBar jmBar = new JMenuBar(); // 菜单条

private JMenu edit = new JMenu("编辑(E)");

private JMenu find = new JMenu("查看(V)");

private JMenu help = new JMenu("帮助(H)");

// 创建JPanel便于管理

private JPanel panTxt = new JPanel();

private JPanel panBack = new JPanel();

private JPanel panMen = new JPanel();

private JPanel panNum = new JPanel();

// 创建文本域

private JTextField txt = new JTextField();

// 创建文本标签

private JLabel jlm = new JLabel();

private boolean flag = false; // 是否可以消除文本

private double a = 0; // 数字a的值

private double b = 0; // 数字b的值

private double result = 0; // 两个数字运算的结果

private String sign = ""; // 标记运算法则

private double m = 0; // 暂时储存数据

// 创建按钮

private NewButton jbBack = new NewButton("Backspace", Color.RED);

private NewButton jbCE = new NewButton("CE", Color.RED);

private NewButton jbC = new NewButton("C", Color.RED);

private NewButton jbMC = new NewButton("MC", Color.RED);

private NewButton jbMR = new NewButton("MR", Color.RED);

private NewButton jbMS = new NewButton("MS", Color.RED);

private NewButton jbM = new NewButton("M+", Color.RED);

public Counter1() {

setSize(260, 260);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

setLayout(null);

setJMenuBar(jmBar);

setTitle("计算器");

setResizable(false);

init();

// Container contentPane = getContentPane();

// Controller c = new Controller(this);

// contentPane.addKeyListener(c);

}

private void init() {

// 设置第一个JPanel里面的内容

panTxt.setSize(230, 20);

panTxt.setLocation(15, 5);

// panTxt.setBorder(BorderFactory.createLineBorder(Color.RED));

panTxt.setLayout(new BorderLayout()); // 设置布局管理器

txt.setHorizontalAlignment(JTextField.RIGHT); // 使光标定位在右边

txt.setBorder(BorderFactory.createLoweredBevelBorder()); // 设置边框凹下去

txt.setEditable(false); // 设置是否可以编辑

txt.setBackground(Color.WHITE);

// txt.setEnabled(true); //设置是否激活

// txt.setFocusable(false); // 设置是否可以获得焦点(显示光标)

txt.setText("0");

add(panTxt);

panTxt.add(txt);

Controller c = new Controller(this);

txt.addKeyListener(c);

// 设置第二个JPanel里面的内容

panBack.setSize(190, 25);

panBack.setLocation(52, 35);

// 画出边框便于查看

// panBack.setBorder(BorderFactory.createLineBorder(Color.RED)); GridLayout layPanBack = new GridLayout(); // 创建布局管理器layPanBack.setHgap(5); // 设置布局管理器的边距

panBack.setLayout(layPanBack); // 设置布局管理器

// 添加按钮

jbBack.setFont(new Font("宋体", 0, 12));

panBack.add(jbBack);

panBack.add(jbCE);

panBack.add(jbC);

add(panBack);

// 设置第三个JPanel里面的内容

panMen.setSize(40, 140);

panMen.setLocation(5, 65);

GridLayout layPanMen = new GridLayout(4, 1); // 创建布局管理器layPanMen.setVgap(5); // 设置布局管理器的边距

panMen.setLayout(layPanMen);

// panMen.setBorder(BorderFactory.createLineBorder(Color.RED)); panMen.add(jbMC);

panMen.add(jbMR);

panMen.add(jbMS);

panMen.add(jbM);

add(panMen);

// 设置第四个JPanel里面的内容

panNum.setSize(200, 140);

panNum.setLocation(50, 65);

// panNum.setBorder(BorderFactory.createLineBorder(Color.RED)); add(panNum);

GridLayout layPanNum = new GridLayout(4, 5); // 创建布局管理器panNum.setLayout(layPanNum);

newButtonNum();

// 添加菜单项

jmBar.add(edit);

jmBar.add(find);

jmBar.add(help);

// 设置文本标签的属性和添加文本标签

jlm.setBorder(BorderFactory.createBevelBorder(1));

jlm.setSize(25, 25);

jlm.setLocation(15, 35);

add(jlm);

}

public void newButtonNum() {

NewButton jb7 = new NewButton("7", Color.BLUE);

NewButton jb8 = new NewButton("8", Color.BLUE);

NewButton jb9 = new NewButton("9", Color.BLUE);

NewButton jbDivide = new NewButton("/", Color.RED);

NewButton jbSqrt = new NewButton("sqrt", Color.BLUE);

NewButton jb4 = new NewButton("4", Color.BLUE);

NewButton jb5 = new NewButton("5", Color.BLUE);

NewButton jb6 = new NewButton("6", Color.BLUE);

NewButton jbRide = new NewButton("*", Color.RED);

NewButton jbPer = new NewButton("%", Color.BLUE);

NewButton jb1 = new NewButton("1", Color.BLUE);

NewButton jb2 = new NewButton("2", Color.BLUE);

NewButton jb3 = new NewButton("3", Color.BLUE);

NewButton jbCut = new NewButton("-", Color.RED);

NewButton jbReciprocal = new NewButton("1/x", Color.BLUE);

NewButton jb0 = new NewButton("0", Color.BLUE);

NewButton jbMinus = new NewButton("+/-", Color.BLUE);

NewButton jbDot = new NewButton(".", Color.BLUE);

NewButton jbAdd = new NewButton("+", Color.RED);

NewButton jbEquals = new NewButton("=", Color.RED);

panNum.add(jb7);

panNum.add(jb8);

panNum.add(jb9);

panNum.add(jbDivide);

panNum.add(jbSqrt);

panNum.add(jb4);

panNum.add(jb5);

panNum.add(jb6);

panNum.add(jbRide);

panNum.add(jbPer);

panNum.add(jb1);

panNum.add(jb2);

panNum.add(jb3);

panNum.add(jbCut);

panNum.add(jbReciprocal);

panNum.add(jb0);

panNum.add(jbMinus);

panNum.add(jbDot);

panNum.add(jbAdd);

panNum.add(jbEquals);

}

public static void main(String[] args) {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 设置和win7的布局一样

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (UnsupportedLookAndFeelException e) {

e.printStackTrace();

}

new Counter1().setVisible(true);

}

private class NewButton extends JButton {

public NewButton(String s, Color c) {

super(s);

// setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));

setBorder(BorderFactory.createEmptyBorder());

setForeground(c);

setFocusable(false); // 设置是否可以获得焦点(显示光标)

addActionListener(Counter1.this);

}

}

// 实现监听

public void actionPerformed(ActionEvent e) {

if (e.getActionCommand() == "+") {

a = Double.parseDouble(txt.getText());

sign = "+";

flag = true;

} else if (e.getActionCommand() == "-") {

a = Double.parseDouble(txt.getText());

sign = "-";

flag = true;

} else if (e.getActionCommand() == "*") {

a = Double.parseDouble(txt.getText());

sign = "*";

flag = true;

} else if (e.getActionCommand() == "/") {

a = Double.parseDouble(txt.getText());

sign = "/";

flag = true;

} else if (e.getActionCommand() == "=") {

try {

b = Double.parseDouble(txt.getText());

} catch (NumberFormatException nfe) {

b = 0;

}

try {

if (sign == "+") {

result = doubleAdd(a, b);

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

result = doubleSub(a, b);

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

result = doubleMul(a, b);

} else if (sign == "/" && b != 0) {

result = doubleDiv(a, b, 15);

} else {

result = b;

}

} catch (NumberFormatException nfe) {

result = 0;

}

a = result;

if (sign == "/" && b == 0) {

txt.setText("0");

} else {

txt.setText(result + "");

}

flag = true;

} else if (e.getActionCommand() == "C") {

a = 0;

result = 0;

sign = "";

txt.setText("0");

} else if (e.getActionCommand() == "CE") {

txt.setText("0");

} else if (e.getActionCommand() == "Backspace") {

try {

if (txt.getText().length() > 1) {

txt.setText(txt.getText(0, txt.getText().length() - 1));

} else {

txt.setText("0");

}

} catch (BadLocationException e1) {

txt.setText("0");

}

} else if (e.getActionCommand() == "sqrt") {

a = Double.parseDouble(txt.getText());

result = Math.sqrt(a);

a = result;

txt.setText(result + "");

flag = true;

} else if (e.getActionCommand() == "%") {

b = Double.parseDouble(txt.getText());

result = doubleMul(doubleDiv(b, 100), a);

txt.setText(result + "");

flag = true;

} else if (e.getActionCommand() == "1/x") {

a = Double.parseDouble(txt.getText());

result = 1 / a;

a = result;

txt.setText(result + "");

flag = true;

} else if (e.getActionCommand() == "+/-") {

txt.setText("" + (-Double.parseDouble(txt.getText()))); } else if (e.getActionCommand() == "MC") {

m = 0;

jlm.setText("");

} else if (e.getActionCommand() == "MR") {

txt.setText(m + "");

} else if (e.getActionCommand() == "MS") {

m = Double.parseDouble(txt.getText());

jlm.setText(" M");

flag = true;

} else if (e.getActionCommand() == "M+") {

m += Double.parseDouble(txt.getText());

flag = true;

} else {

boolean isDoc = false;

for (int i = 0; i < txt.getText().length(); i++) { if (txt.getText().charAt(i) == '.') {

isDoc = true;

}

}

if (!isDoc || e.getActionCommand() != ".") {

if (flag) {

txt.setText("");

flag = false;

}

if (txt.getText().equals("0") && e.getActionCommand() != ".") { txt.setText("");

}

txt.setText(txt.getText() + e.getActionCommand());

}

}

}

// 实现键盘监听

public void keyAction(KeyEvent e) {

if (e.getKeyChar() == '+') {

a = Double.parseDouble(txt.getText());

sign = "+";

flag = true;

} else if (e.getKeyChar() == '-') {

a = Double.parseDouble(txt.getText());

sign = "-";

flag = true;

} else if (e.getKeyChar() == '*') {

a = Double.parseDouble(txt.getText());

sign = "*";

flag = true;

} else if (e.getKeyChar() == '/') {

a = Double.parseDouble(txt.getText());

sign = "/";

flag = true;

} else if (e.getKeyChar() == '=') {

try {

b = Double.parseDouble(txt.getText());

} catch (NumberFormatException nfe) {

b = 0;

}

try {

if (sign == "+") {

result = doubleAdd(a, b);

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

result = doubleSub(a, b);

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

result = doubleMul(a, b);

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

if (b == 0) {

txt.setText("除数不能为0");

} else {

result = doubleDiv(a, b, 15);

}

} else {

result = b;

}

} catch (NumberFormatException nfe) {

result = 0;

}

a = result;

if (sign == "/" && b == 0) {

txt.setText("0");

} else {

txt.setText(result + "");

}

flag = true;

} else if (e.getKeyChar() == 'c' || e.getKeyChar() == 'C') {

a = 0;

result = 0;

sign = "";

txt.setText("0");

} else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {

try {

if (txt.getText().length() > 1) {

txt.setText(txt.getText(0, txt.getText().length() - 1));

} else {

txt.setText("0");

}

} catch (BadLocationException e1) {

txt.setText("0");

}

} else if (e.getKeyChar() == '%') {

b = Double.parseDouble(txt.getText());

result = doubleMul(doubleDiv(b, 100), a);

txt.setText(result + "");

flag = true;

} else {

if (e.getKeyChar() >= 0x30 && e.getKeyChar() <= 0x39

|| e.getKeyChar() == '.') {

boolean isDoc = false;

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

if (txt.getText().charAt(i) == '.') {

isDoc = true;

}

}

if (!isDoc || e.getKeyChar() != '.') {

if (flag) {

txt.setText("");

flag = false;

}

if (txt.getText().equals("0") && e.getKeyChar() != '.') {

txt.setText("");

}

txt.setText(txt.getText() + e.getKeyChar());

}

}

}

}

private class Controller extends KeyAdapter {

private Counter1 frame;

public Controller(Counter1 frame) {

this.frame = frame;

}

public void keyPressed(KeyEvent e) {

frame.keyAction(e);

}

}

// 提供相对精确的加法运算

public static double doubleAdd(double d1, double d2) {

BigDecimal bd1 = new BigDecimal(Double.toString(d1));

BigDecimal bd2 = new BigDecimal(Double.toString(d2));

return bd1.add(bd2).doubleValue();

}

// 提供相对精确的减法运算

public static double doubleSub(double d1, double d2) {

BigDecimal bd1 = new BigDecimal(Double.toString(d1));

BigDecimal bd2 = new BigDecimal(Double.toString(d2));

return bd1.subtract(bd2).doubleValue();

}

// 提供相对精确的乘法运算

public static double doubleMul(double d1, double d2) {

BigDecimal bd1 = new BigDecimal(Double.toString(d1));

BigDecimal bd2 = new BigDecimal(Double.toString(d2));

return bd1.multiply(bd2).doubleValue();

}

// 提供相对精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入。

public static double doubleDiv(double d1, double d2) {

return doubleDiv(d1, d2, DEF_DIV_SCALE);

}

// 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入。

public static double doubleDiv(double d1, double d2, int scale) { if (scale < 0) {

throw new IllegalArgumentException(

"The scale must be a positiveinteger or zero");

}

BigDecimal bd1 = new BigDecimal(Double.toString(d1));

BigDecimal bd2 = new BigDecimal(Double.toString(d2));

return bd1.divide(bd2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();

}

}

(注:可编辑下载,若有不当之处,请指正,谢谢!)

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

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/5b15612419.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程序设计 题目:计算器设计 年级:级 专业:信息一班 学号: 姓名: 组员: 指导教师:

课程设计(论文)任务书 基础学院信息与计算科学专业—1班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自年 6 月23日起至年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)参考文献: (1)丁振凡.《J ava语言程序设计》清华大学出版社 (2)丁振凡.《J ava语言程序设计实验指导与习题解析》清华大学出版社 (3)http:/ /https://www.360docs.net/doc/5b15612419.html, 6)课程设计进度安排 内容天数地点

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

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计算器源代码(仿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 实训目的 (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课设计算器

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

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);

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 程序设计 题 目: 计算器设计 年 级: 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源代码

计算器JAVA源代码 这是我在培训班时,学了一个月后编写的一个简易计算器的源代码。从设计、编码、实现该程序共用时一天(10个小时)。当时只是学完了JAVA的基础知识,各位也看得出,这里面没有用到高深的技术,全是基础的,所以我当时理解的就是:编程主要需要的是解决问题的思维、思想!现将其公布,希望能给初学者一点起示: [注:将考贝后,在JDK环境下可直接运行] [源代码] import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; class Jsqzj implements ActionListener { JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16; JFrame f; GridLayout c=new GridLayout(4,4); JTextField tf = new JTextField(); public void init() { f=new JFrame("CardLayout testing"); Container ct = f.getContentPane();

tf.setHorizontalAlignment(JTextField.RIGHT); ct.add(tf,"North"); JPanel p2=new JPanel(); ct.add(p2,"Center"); GridLayout c=new GridLayout(4,4); p2.setLayout(c); JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16; b1=new JButton("1"); b2=new JButton("2"); b3=new JButton("3"); b4=new JButton("4"); b5=new JButton("5"); b6=new JButton("6"); b7=new JButton("7"); b8=new JButton("8"); b9=new JButton("9"); b10=new JButton("0"); b11=new JButton("."); b12=new JButton("="); b13=new JButton("+"); b14=new JButton("-");

用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代码

功能举例: 源程序如下: import import import import import import import import import import import import import import import import import import import 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;###");, new Dot(), ; addButton(panel2, "+", new Signs(), ; addButton(panel2, "tan", new Signs(), ; addButton(panel2, "%", new Signs(), ; addButton(panel2, "π", numActionListener, ; addButton(panel2, "e", numActionListener, ; addButton(panel2, "′″", new Signs(), ; addButton(panel2, "=", new Signs(), ; JButton btns = new JButton("计算器"); createLoweredBevelBorder()); false);rim()); (i)); }else if(str == "Backspace"){ if()) > 0){ if().length() > 1){ ().substring(0, ().length() - 1)); ength() > 2){ ().substring(0, ().length() - 1)); }else{

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

package Swing; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; 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.JTextField; public class Work1 { public static void main(String[] args) { new JsqV iew(340, 240); } } @SuppressWarnings("serial") class JsqV iew extends JFrame { JTextField jtf; JButton jb1, jb2, jb3; JButton[] jb; JPanel jp1, jp2, jp3, jp4; MyActionListener l; public JsqView(int weith, int heigh) { Container con = this.getContentPane(); con.setLayout(new BorderLayout(5, 10)); l = new MyActionListener(this); jtf = new JTextField(26); jp1 = new JPanel(); jp1.add(jtf); jtf.setHorizontalAlignment(JTextField.RIGHT); jp3 = new JPanel(); jp3.setLayout(new BorderLayout(5, 10)); jb1 = new JButton("Backspace"); jb2 = new JButton("CE"); jb3 = new JButton("C");

相关文档
最新文档