java图形界面之电子算盘
java图形化界面实现简单混合运算计算器的示例代码
![java图形化界面实现简单混合运算计算器的示例代码](https://img.taocdn.com/s3/m/32c2c537abea998fcc22bcd126fff705cc175c62.png)
java图形化界⾯实现简单混合运算计算器的⽰例代码写了好⼏天了终于写完了这个四则运算计算器,总代码放在后⾯截图如下:⾸先是布局都⽐较简单,最上⾯的⼀个框是总的输出框,第⼆个框是每次输⼊的数字显⽰在框内,对于每⼀个按钮都增加监听器,对于数字按钮:当长度⼤于8的或者等号已经出现之后就不再处理按钮事件if(e.getSource().equals(button1)) {s=numberText.getText();//数字长度⼤于8或者等号已出现if(s.length()>8 || equalbook == 1) {}else if(s.equals("0") || s.equals("")) {numberText.setText("1");}else {numberText.setText(s + "1");}}其余的按钮都差不多。
当按钮为⼩数点时,长度⼤于7就不再处理,因为总的长度不能超过8,⽽⼩数点后⾯还要与数字,同时标记⼩数点已经出现过,因为⼀个数中最多出现⼀个⼩数点//当按钮为⼩数点时if(e.getSource().equals(buttonpoint)) {s=numberText.getText();if(s.length()>7 || equalbook == 1) {}if(pointbook==0) {numberText.setText(s + ".");pointbook = 1;}}当按钮为加号时:当数字输⼊框为空时不做处理也有可能是最后⼀位是⼩数点,当然也不处理当最上⽅的输出框的最后⼀位是右括号的时候,可以⽤加号//当按钮为加号时if(e.getSource().equals(buttonadd)) {s=numberText.getText();char ch1[] = s.toCharArray();int length1 = s.length() - 1;String S = expressText.getText();char ch2[] = S.toCharArray();int length2 = S.length() - 1;//当数字为空或为0或数字的最后⼀位是⼩数点时不作处理if((length2 == -1 ||ch2[length2] != ')') && (s.equals("0") || s.equals("") || ch1[length1] == '.')) {}else {numberText.setText("");expressText.setText(expressText.getText() + s + "+");}}+, -, *, /都差不多当前⾯是运算符或者左括号的时候才能⽤左括号,注意当框内⽆元素的时候也可以加左括号,但是需要判断元素的个数是否⼤于0if(e.getSource().equals(buttonleft)) {if(!numberText.getText().equals("0") && !numberText.getText().contentEquals("")) {expressText.setText(expressText.getText() + numberText.getText());}s=expressText.getText();char ch[] = s.toCharArray();int length = s.length() - 1;/** 当前⾯是运算符或者左括号的时候才能⽤左括号* 注意当框内⽆元素的时候也可以加左括号* 但是需要判断元素的个数是否⼤于0*/if(length == -1 || ch[length] == '+' || ch[length] == '-' ||ch[length] == '*' || ch[length] == '/' ||ch[length] == '(' || s.equals("")) {expressText.setText(expressText.getText() + '(');leftNum++;}}右括号就不⼀样if(e.getSource().equals(buttonright)) {if(!numberText.getText().equals("0")) {expressText.setText(expressText.getText() + numberText.getText());numberText.setText("");}s=expressText.getText();char ch[] = s.toCharArray();int length = s.length() - 1;/** 只有前⾯是数字的时候且左括* 号的数量⼤于右括号的数量的时候才能加右括号*/if(Character.isDigit(ch[length]) && leftNum > rightNum) {rightNum++;expressText.setText(expressText.getText() + ')');}}当按钮为 C时,清除所有内容并更新等号状态, 左括号数量, 右括号数量, ⼩数点状态,当⼀次计算完成之后,只有按C按钮才能进⾏新的计算。
java swing实现简易计算器
![java swing实现简易计算器](https://img.taocdn.com/s3/m/7b67ea65777f5acfa1c7aa00b52acfc789eb9fcc.png)
简易计算器【案例介绍】1.案例描述本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。
2.运行结果运行结果【案例目标】●学会分析“简易计算器”程序实现的逻辑思路。
●能够独立完成“简易计算器”程序的源代码编写、编译及运行。
●掌握Java Swing界面编程的应用。
●了解计算器逻辑运算实现。
【案例分析】要制作一个计算器,首先要知道它由哪些部分组成,如下图所示:一个简单的图形化界面计算器,需要由界面组件、组件的时间监听器和具体的事件处理逻辑组成。
实现一个简易图形化界面计算器可分以下几个步骤:1.UI组件创建和初始化:包括窗体的创建,显示计算结果文本框、清除按钮、数字按钮、运算符等按钮的初始化。
2.在窗体中添加UI组件:包括放置数字键及运算符面板、放置清除框面板。
3.布局结束之后,就是计算器的难点:编写事件处理程序。
4.按键的响应实现。
5.计算逻辑的实现。
6.注册监听器【案例实现】Calculator.java1 package chapter1102;2 import java.awt.*;3 import java.awt.event.*;4 import javax.swing.*;5 import java.util.Vector;6 import java.math.BigDecimal;7 public class Calculator {8 // 操作数1,为了程序的安全,初值一定设置,这里我们设置为0。
9 String str1 = "0";10 // 操作数211 String str2 = "0";12 // 运算符13 String signal = "+";14 // 运算结果15 String result = "";16 // 以下k1至k5为状态开关17 // 开关1用于选择输入方向,将要写入str1或str218 // 为 1 时写入 str1,为 2 时写入 str219 int k1 = 1;20 // 开关 2 用于记录符号键的次数21 // 如果 k2>1 说明进行的是 2+3-9+8 这样的多符号运算22 int k2 = 1;23 // 开关3用于标识 str1 是否可以被清 024 // 等于 1 时可以,不等于1时不能被清025 int k3 = 1;26 // 开关4用于标识 str2 是否可以被清 027 // 等于 1 时可以,不等于1时不能被清028 int k4 = 1;29 // 开关5用于控制小数点可否被录入30 // 等于1时可以,不为1时,输入的小数点被丢掉31 int k5 = 1;32 // store的作用类似于寄存器,用于记录是否连续按下符号键33 JButton store;34 //vt 存储之前输入的运算符。
java计算器程序代码及文档(带异常处理,括号等。注释详细易懂)
![java计算器程序代码及文档(带异常处理,括号等。注释详细易懂)](https://img.taocdn.com/s3/m/23e21ad728ea81c758f5786c.png)
四则运算计算器设计说明书一.设计目标本次计算器的程序设计,通过使用JA V A中的AWT包和Swing包的类库设计图形界面的计算器。
此计算器能够完成加减乘除的四则混合运算。
利用面向对象程序设计的思想,将各个组件的事件响应分别用不同的方式表达出来,并且使用了图形界面中的事件委托机制来处理事件响应。
二.设计流程1. 分析该计算器需要完成的功能。
用户能够完成添加括号和负号的四则混合运算,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。
同时还完成了计算器中C按钮清屏功能和Backspace退格键。
2. 考虑异常处理。
(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。
(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮,将弹出提示框显示“对不起,您没有任何输入,请重新输入:”。
(4)当第一次输入乘号键,除号键,右括号,小数点,求余键,等号键,ce 键,Backspace键时提示错误。
4. 考虑数据的处理目标计算表达式通过点击计算器界面上的按钮进行输入,当按下等号之后,计算器通过调用JA V A中script这个包中的相关类和方法来实现数据的处理。
5. 编码实现计算器的功能。
(1)新建相关的文件。
(2)引入JA V A中相关的包。
(3)新建类Jsq,并继承了类Frame,而且实现了接口ActionListener(4)定义相关的变量,创建相关组件,并对组件的属性进行设置。
(5)对所创建的组件进行布局,完成界面的实现。
(6)为各个组件添加事件监听器。
(7)重写事件接口ActionListener的方法public void actionPerformed(ActionEvent e)。
(8)为各个组件编写事件代码,完成每个按钮的不同功能。
三.测试过程的截图1. 程序初始运行界面2运算测试3.混合运算测试:异常处理测试:1.输入错误的表达式2、除数为0时:四.设计结果此计算器以完成设计,所有功能都以实现,并达到了预想的设计目标。
java图形化界面实现简单计算器
![java图形化界面实现简单计算器](https://img.taocdn.com/s3/m/76f5c804bdd126fff705cc1755270722192e59f1.png)
java图形化界面实现简单计算器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(/doc/9518291727. html,);textField.setForeground(Color.PINK);textField.setText("\u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668");textField.setBounds(10, 20, 368, 30);contentPane.add(textField);textField.setColumns(10);textField_1 = new JTextField();//文本框textField_1,显示公式textField_1.setBounds(10, 102, 368, 30);contentPane.add(textField_1);textField_1.setColumns(10);textField_2= new JTextField();//文本框textField_2.显示计算结果textField_2.setBounds(10, 142, 368, 30);contentPane.add(textField_2);textField_2.setColumns(10);textField_3 = new JTextField();//文本框textField_3,显示电子表textField_3.setForeground(new Color(205, 133, 63));textField_3.setBounds(10, 60, 368, 30);contentPane.add(textField_3);textField_3.setColumns(10);//按钮'清零',监听到按钮后清零JButton btnC = new JButton("\u6E05\u96F6");btnC.setForeground(Color.RED);btnC.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {textField_1.setT ext("");textField_2.setT ext("");s.delete(0, s.length());}});btnC.setBounds(10, 182, 183, 44);contentPane.add(btnC);//按钮'退格',监听到按钮后退格JButton button_16 = new JButton("\u9000\u683C");button_16.setForeground(Color.RED);button_16.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.delete(s.length()-1, s.length());String str=s.toString();textField_1.setT ext(str);}button_16.setBounds(193, 182, 185, 44); contentPane.add(button_16);//按钮'*',监听到按钮后显示*JButton button_1 = new JButton("*");button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('*');String str=s.toString();textField_1.setT ext(str);}});button_1.setBounds(285, 271, 93, 44);contentPane.add(button_1);//按钮'6',监听到按钮后显示6JButton button_2 = new JButton("6");button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('6');String str=s.toString();textField_1.setT ext(str);}});button_2.setBounds(193, 271, 93, 44);contentPane.add(button_2);//按钮'5',监听到按钮后显示5JButton button_3 = new JButton("5");button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('5');String str=s.toString();textField_1.setT ext(str);}button_3.setBounds(100, 271, 93, 44);contentPane.add(button_3);//按钮'4',监听到按钮后显示4button_4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('4');String str=s.toString();textField_1.setT ext(str);}});button_4.setBounds(10, 271, 93, 44);contentPane.add(button_4);//按钮'-',监听到按钮后显示-JButton button_5 = new JButton("-");button_5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('-');String str=s.toString();textField_1.setT ext(str);}});button_5.setBounds(285, 313, 93, 44); contentPane.add(button_5);//按钮'3',监听到按钮后显示3JButton button_6 = new JButton("3");button_6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('3');String str=s.toString();textField_1.setT ext(str);}});button_6.setBounds(193, 313, 93, 44); contentPane.add(button_6);//按钮'2',监听到按钮后显示2JButton button_7 = new JButton("2");button_7.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('2');String str=s.toString();textField_1.setT ext(str);}});button_7.setBounds(100, 313, 93, 44); contentPane.add(button_7);//按钮'1',监听到按钮后显示1button_8.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {s.append('1');String str=s.toString();textField_1.setT ext(str);}});button_8.setBounds(10, 313, 93, 44);contentPane.add(button_8);//按钮'+',监听到按钮后显示+JButton button_9 = new JButton("+");button_9.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {s.append('+');String str=s.toString();textField_1.setT ext(str);}button_9.setBounds(285, 355, 93, 44); contentPane.add(button_9);//按钮'=',点击按钮'=',将计算出结果**********************************JButton button_10 = new JButton("=");button_10.setForeground(Color.RED);button_10.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str=s.toString();String ss=str;String index="[-]|[+]|[/]|[*]";String number[]=str.split(index);int count=number.length;double num[]=new double[count];for(int i=0;i<count;i++){< p="">num[i]=Double.parseDouble(number[i]);}double result=0;if(ss.contains("+")){result=num[0];for(int i=1;i<count;i++){< p="">result+=num[i];}}if(ss.contains("-")){result=num[0];for(int i=1;i<count;i++){< p="">result-=num[i];}if(ss.contains("*")){result=num[0];for(int i=1;i<count;i++){< p="">result*=num[i];}}if(ss.contains("/")){result=num[0];for(int i=1;i<count;i++){< p="">if(num[i]==0){//除数等于0时,显示错误信息textField_2.setT ext("出错");return;}else {result/=num[i];}}}//int i=(int)Math.round(result*100);//result=(double)i/100;textField_2.setT ext(""+result);}});button_10.setBounds(193, 355, 93, 44); contentPane.add(button_10);//按钮'.',监听到按钮后显示。
Java实现简易计算器
![Java实现简易计算器](https://img.taocdn.com/s3/m/7fd01255011ca300a7c3901a.png)
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);divide.setFont(new Font("Dialog",Font.PLAIN,20));panel2.setLayout(new GridLayout());panel2.add(result);//画板panel2添加运算结果2.四则运算较为简单的实现了简单的加、减、乘、除运算,主要代码如下:ActionListener equal1 = new ActionListener(){ //实现四则运算public void actionPerformed(ActionEvent e){String str = result.getText();b = DatatypeConverter.parseDouble(str);{if(flag == "+")c = a + b;else if(flag == "-")c = a - b;else if(flag == "*")c = a * b;else if(flag == "/" || b != 0)c = a / b;}if(flag != "=")result.setText("" + c);elseresult.setText("零不能做除数!");a = 0;b = 0;c = 0;flag = "";}};3.其他功能另外添加了平方根,倒数,平方等功能,主要代码如下:平方根运算的实现:ActionListener sqrt1= new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = Math.sqrt(i);result.setText("" + i);}};倒数运算的实现:ActionListener reciprocal1 = new ActionListener(){ public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = 1/i;result.setText("" + i);}};平方运算的实现:ActionListener square1 = new ActionListener(){public void actionPerformed(ActionEvent e){String str = result.getText();double i = DatatypeConverter.parseDouble(str);i = i*i;result.setText("" + i);}};4.程序测试经测试发现本计算器基本功能均能实现,可正常运行计算,针对功能实现的代码部分过于简单,可以对其进行改善提高,方便用户使用!5.实训小结通过对计算器窗体的编写,熟悉了java图形用户界面的设计原理和程序结构,熟悉了java中awt和swing的组合。
JAVA中用GUI编程实现计算器模拟
![JAVA中用GUI编程实现计算器模拟](https://img.taocdn.com/s3/m/1524f74c767f5acfa1c7cd30.png)
JA V A中用GUI编程实现计算器模拟摘要:本文论述了用java对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。
设计GUI界面的计算器,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除及求负、取余等,主要用到的组件有框架、面板、文本框、按钮和菜单栏等。
关键词:GUI 计算器一.编程思想定义计算器类calculator,该类继承JFrame类并实现ActionListener接口。
整体窗口采用边界布局,通过另外建立若干面板组件。
North位置的面板上放置一个文本框,用于显示运算中的数据及结果;center位置放置两个按钮,分别用来返回原界面和清零。
再用GridLayout(网格布局)对数字控件和操作按钮进行布局。
此外,单击任何一个按钮都会触发ActionEvent事件,要处理这些事件就必须实现ActionListener接口的actionPerformed方法。
二.程序代码如下import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;//变量设置如下//继承JFrame类并实现ActionListenter接口public class calculator extends JFrame implements ActionListener{JFrame frame;//数字及操作按钮JButton num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,Back,c;//运算按钮JButtonplusButton,minusButton,multiplyButton,divideButton,residueButton,equalButton,changeButton,d otButton,sqrtButton,reciprocalButton;JMenu fileM;JMenuItem exitM,helpM;JTextField text;//状态变量boolean clicked=true;boolean clear=true;int all=0;double previous;String fuhao;int first=1;//界面设计public calculator(){setTitle("计算器");setSize(300,250);setLocation(400,400);text=new JTextField(25);text.setHorizontalAlignment(JTextField.LEFT);JPanel cp1=new JPanel();JPanel cp2=new JPanel();JPanel cp3=new JPanel();//设置整体布局getContentPane().add(cp1,"North");getContentPane().add(cp2,"Center");getContentPane().add(cp3,"South");cp1.setLayout(new GridLayout(1,1));cp2.setLayout(new GridLayout(1,2));cp3.setLayout(new GridLayout(5,4));plusButton=new JButton("+");//加minusButton=new JButton("-");//减multiplyButton=new JButton("*");//乘divideButton=new JButton("/");//除residueButton=new JButton("%");//余数equalButton=new JButton("=");//等号changeButton=new JButton("+/-");//正负号切换dotButton=new JButton(".");//小数点sqrtButton=new JButton("sqrt");//开方reciprocalButton=new JButton("1/x");//倒数//数字按钮num0=new JButton("0");num1=new JButton("1");num2=new JButton("2");num3=new JButton("3");num4=new JButton("4");num5=new JButton("5");num6=new JButton("6");num7=new JButton("7");num8=new JButton("8");num9=new JButton("9");cp1.add(text);text.setEditable(false);text.setBackground(Color.white);//监听设置Back=new JButton("Back");Back.addActionListener(this);c=new JButton("C");c.addActionListener(this);cp2.add(Back);cp2.add(c);cp3.add(num7);num7.addActionListener(this);cp3.add(num8);num8.addActionListener(this);cp3.add(num9);num9.addActionListener(this);cp3.add(divideButton); divideButton.addActionListener(this);cp3.add(num4);num4.addActionListener(this);cp3.add(num5);num5.addActionListener(this);cp3.add(num6);num6.addActionListener(this);cp3.add(multiplyButton); multiplyButton.addActionListener(this); cp3.add(num1);num1.addActionListener(this);cp3.add(num2);num2.addActionListener(this);cp3.add(num3);num3.addActionListener(this);cp3.add(minusButton); minusButton.addActionListener(this);cp3.add(num0);num0.addActionListener(this);cp3.add(changeButton); changeButton.addActionListener(this); cp3.add(dotButton);dotButton.addActionListener(this);cp3.add(plusButton);plusButton.addActionListener(this);cp3.add(reciprocalButton); reciprocalButton.addActionListener(this); cp3.add(residueButton); residueButton.addActionListener(this); cp3.add(sqrtButton);sqrtButton.addActionListener(this);cp3.add(equalButton);equalButton.addActionListener(this);//添加菜单组件JMenuBar mainMenu= new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu=new JMenu("文件");JMenu helpMenu=new JMenu("帮助");helpM= new JMenuItem("关于");mainMenu.add(editMenu);mainMenu.add(helpMenu);helpMenu.add(helpM);helpM.addActionListener(this);fileM=new JMenu(" 文件");exitM=new JMenuItem(" 退出");fileM.addActionListener(this);exitM.addActionListener(this);editMenu.add(fileM);editMenu.add(exitM);setVisible(true);addWindowListener(new WindowDestroyer());//结束窗口}//响应动作代码public void actionPerformed(ActionEvent e){if (first ==1)text.setText("");first=0;Object temp=e.getSource();if (temp==exitM)System.exit(0);if (temp==helpM)JOptionPane.showMessageDialog(null,"请查看帮助文档","帮助", RMA TION_MESSAGE);//退格if (temp== Back){String s=text.getText();text.setText("");for (int i=0;i<s.length()-1;i++){char a=s.charAt(i);text.setText(text.getText()+a);}}//清零if (temp==c){text.setText("0.");clear=true;first=1;}if (temp==num0){//判断是否单击了符号位if (clear==false)text.setText("");text.setText(text.getText()+"0"); }if (temp==num1){if (clear==false)text.setText("");text.setText(text.getText()+"1");clear=true;}if (temp==num2){if (clear==false)text.setText("");text.setText(text.getText()+"2");clear=true;}if (temp==num3){if (clear==false)text.setText("");text.setText(text.getText()+"3");clear=true;}if (temp==num4){if (clear==false)text.setText("");text.setText(text.getText()+"4");clear=true;}if (temp==num5){if (clear==false)text.setText("");text.setText(text.getText()+"5");clear=true;}if (temp==num6){if (clear==false)text.setText("");text.setText(text.getText()+"6");clear=true;}if (temp==num7){if (clear==false)text.setText("");text.setText(text.getText()+"7");clear=true;}if (temp==num8){if (clear==false)text.setText("");text.setText(text.getText()+"8");clear=true;}if (temp==num9){if (clear==false)text.setText("");text.setText(text.getText()+"9");clear=true;}//判断是否含有小数点if (temp == dotButton){clicked=true;for (int i=0;i<text.getText().length();i++)if ('.'==text.getText().charAt(i)){clicked = false;break;}if (clicked == true)text.setText(text.getText()+".");}try{if (temp==plusButton){previous=Double.parseDouble(text.getText());fuhao="+";clear=false;}if (temp==minusButton){previous=Double.parseDouble(text.getText());fuhao="-";clear=false;}if (temp==multiplyButton){previous=Double.parseDouble(text.getText());fuhao="*";clear=false;}if (temp==divideButton){previous=Double.parseDouble(text.getText());fuhao="/";clear=false;}if (temp==equalButton){double next = Double.parseDouble(text.getText());text.setText("");if (fuhao =="+")text.setText(previous + next +"");if (fuhao =="-")text.setText(previous - next +"");if (fuhao =="*")text.setText(previous * next +"");if (fuhao =="/")if (next==0)text.setText("除数不能为零");elsetext.setText(previous + next +"");if (fuhao =="%")text.setText(previous % next +"");clear=false;}if (temp==sqrtButton){String s=text.getText();if (s.charAt(0)== '-')text.setText("负数不能开根号");elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (temp==reciprocalButton){if (text.getText().charAt(0)=='0'&& text.getText().length()==1)text.setText("除数不能为零");else{boolean isDec = true;int i,j,k;String s=Double.toString(1/Double.parseDouble(text.getText()));for (i=0;i<s.length();i++)if (s.charAt(i)=='.')break;for (j=i+1;j<s.length();j++)if (s.charAt(j)=='0'){isDec=false;break;}if (isDec == true){String stemp = "";for (k=0;k<i;k++)stemp += s.charAt(k);text.setText(stemp);}elsetext.setText(s);}clear = false;}if ( temp == residueButton){previous=Double.parseDouble(text.getText());fuhao="%";clear=false;}if ( temp == changeButton){boolean isNumber = true;String s = text.getText();for (int i=0;i<s.length();i++)if (!(s.charAt(i)>= '0'&& s.charAt(i)<= '9' ||s.charAt(i)>= '.'||s.charAt(i)>= '-' )){isNumber = false;break;}if (isNumber == true)//切换‘-’号{if (s.charAt(0) == '-'){text.setText("");for (int i=1;i<s.length();i++){char a=s.charAt(i);text.setText(text.getText()+ a);}}elsetext.setText('-'+ s);}}}catch (Exception e3){text.setText("There is a wrong");clear = false;}}//关闭窗口class WindowDestroyer extends WindowAdapter{public void windowClosing(WindowEvent e){System.exit(0);}}public static void main(String arg[]){JFrame.setDefaultLookAndFeelDecorated(true);calculator cal = new calculator();}}三.程序运行结果如下图图3-1 计算器界面四.总结该程序显示GUI用户界面,既能实现实数的加、减、乘、除四则运算,也能进行开方、求余、倒数以及正负号转换的运算。
利用Java图形界面制作简单的计算器
![利用Java图形界面制作简单的计算器](https://img.taocdn.com/s3/m/a6cd930ae009581b6ad9eb6e.png)
利用Java图形界面制作简单的计算器利用Java图形界面制作简单的计算器,第一构思需要的组件,构思好以后进行版面设计,最后在Java编译器中输入代码,进行调试。
代码如下:import .*;import class Feiyong implements ActionListener{Frame f;Panel p1,p2,p3;Label lbl1,lbl2,lbl3;TextField tf1,tf2,tf3;Button btn1,btn2;CheckboxGroup cbg;Checkbox cbg1,cbg2,cbg3,cbg4;double Feiyong;public static void main(String args[]){Feiyong feiyong=new Feiyong();();}public void go(){f=new Frame("计算各类费用");(400,180);p1=new Panel();p2=new Panel();p3=new Panel();tf1=new TextField(10);lbl1=new Label("所用数量:");lbl2=new Label("总价:");tf3=new TextField(10);lbl3=new Label("单价:");btn1=new Button("计算");btn2=new Button("终止");(lbl1);(tf1);(lbl3);(tf3);cbg=new CheckboxGroup();cbg1=new Checkbox("水费",true,cbg);cbg2=new Checkbox("电费",false,cbg);cbg3=new Checkbox("煤气费",false,cbg);cbg4=new Checkbox("费",false,cbg);tf2=new TextField(10);(cbg1);(cbg2);(cbg3);(cbg4);(lbl2);(tf2);(btn1);(btn2);(this);(this);(p1,"North");(p2,"Center");(p3,"South");(true);}public void actionPerformed(ActionEvent ae) {String yy,ll,total;double ab,cd;yy=();if("计算")){yy=();ll=();ab=(yy);cd=(ll);if()==true)Feiyong=ab*cd;if()==true)Feiyong=ab*cd;if()==true)Feiyong=ab*cd;if()==true)Feiyong=ab*cd;total=(Feiyong);(total);}else{ (0);}}}制作出来以后,碰运气计算器做的对不对:。
使用Java中的Swing技术实现一个简单的计算器
![使用Java中的Swing技术实现一个简单的计算器](https://img.taocdn.com/s3/m/30882320af45b307e87197e4.png)
一.实验题目:使用Java中的Swing技术实现一个简单的计算器二.实验目的及要求1.实验目的:掌握java图形界面设计方法,理解委托事件处理模型2.实验要求(1)程序结构清晰,运行正确。
(2)通过界面能用按钮输入0~9十个数字,并至少能进行+、-、* 和/运算。
(3)给出实验内容的程序设计、实现和结果,并对结果进行分析。
三.试验步骤1、打开NetBeans IDE 6.9.1,点击“文件”菜单选择“新建项目”在弹出的对话框中输入相应的项目名JiSuanQi、项目位置D:\java,系统将根据项目位置建立相应的项目文件夹D:\java\JiSuanQi。
2、项目新建好后点击项目下面的子目录,在“源包”上右键-->选择“新建”--->java类,在弹出的对话框中输入相应的类名,单击“完成”,就创建了一个.java 文件。
3、若程序事先已设计好,则可将其放置在项目文件夹下面的src子文件夹下面,在打开项目时缺省包下面会显示相应的.java文件。
4、在程序设计好之后,右键相应的.java文件,选择“调试文件”,在程序调试成功没有错误后右键.java文件,选择“运行文件”,如下图示:5、Java源文件(*.java)通过编译器javac.exe编译生成字节码文件(*.class),再由解释器java.exe执行四.源程序文件import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Dialog;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.GridLayout;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class JiSuanQi {public static void main(String[] args){ MyFrame52 mm = new MyFrame52();}}class MyFrame52 extends Frame {TextField tf = new TextField(25);JButton b3 = new JButton("DEL");JButton b33 = new JButton("AC/ON");JButton b4 = new JButton("0");JButton b41 = new JButton("=");JButton b42 = new JButton("+");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b_3 = new JButton("3");JButton b_4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton b_chu = new JButton("÷");JButton b_cheng = new JButton("×");JButton b_jian = new JButton("-");MyFrame52() {JLabel l = new JLabel(" 单功能计算器");l.setForeground(Color.black);JPanel pla = new JPanel();pla.add(l); // 将第一行放在一个panel最上边b3.addActionListener(new listen(this));b33.addActionListener(new listen(this));b4.addActionListener(new listen(this));b41.addActionListener(new listen(this));b42.addActionListener(new listen(this));b1.addActionListener(new listen(this));b2.addActionListener(new listen(this));b_3.addActionListener(new listen(this));b_4.addActionListener(new listen(this));b5.addActionListener(new listen(this));b6.addActionListener(new listen(this));b7.addActionListener(new listen(this));b8.addActionListener(new listen(this));b9.addActionListener(new listen(this));b_chu.addActionListener(new listen(this));b_cheng.addActionListener(new listen(this));b_jian.addActionListener(new listen(this));JFrame f = new JFrame("计算器");JPanel p = new JPanel();p.setLayout(new GridLayout(3, 1, 4, 4));JPanel p1 = new JPanel();JPanel p2 = new JPanel();p2.setLayout(new GridLayout(3, 3, 4, 4)); //布局管理器中各种按钮的排布p2.add(b7);p2.add(b8);p2.add(b9);p2.add(b_cheng);p2.add(b_4);p2.add(b5);p2.add(b6);p2.add(b_chu);p2.add(b1);p2.add(b2);p2.add(b_3);p2.add(b_jian);JPanel p3 = new JPanel();p3.setLayout(new GridLayout(1, 2, 0, 0)); Panel p4 = new Panel(); BorderLayout s = new BorderLayout();p4.setLayout(s);p4.setBackground(Color.red);p4.add(b4, BorderLayout.WEST);p4.add(b41, BorderLayout.CENTER);p4.add(b42, BorderLayout.EAST);p1.add(tf);// 放置的是计算器的输入框b33.setForeground(Color.black);b3.setForeground(Color.black);p3.add(b3);p3.add(b33);p.add(l, BorderLayout.NORTH);p.add(p1, BorderLayout.CENTER);p.add(p3, BorderLayout.SOUTH);f.setLayout(new BorderLayout(30, 5)); f.add(p, BorderLayout.NORTH);f.add(p2, BorderLayout.CENTER);f.add(p4, BorderLayout.SOUTH);f.pack();f.setVisible(true);f.setLocation(900, 300);f.setSize(200, 300);f.setResizable(false);}}class listen implements ActionListener { MyFrame52 dd;listen(MyFrame52 ds) {this.dd = ds;}public static int zhi = 0;public static int nextzhi = 0;public static int sum = 0;public static int fuhao;public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (dd.b1 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "1");} else if (dd.b2 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "2");} else if (dd.b_3 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "3");} else if (dd.b_4 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "4");} else if (dd.b5 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "5");} else if (dd.b6 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "6");} else if (dd.b7 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "7");} else if (dd.b8 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "8");} else if (dd.b9 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "9");} else if (dd.b_cheng == e.getSource()) {// 计算乘法fuhao = 1;zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值;dd.tf.setText("");} else if (dd.b_chu == e.getSource()) {// 计算除法fuhao = 2;zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值;dd.tf.setText("");} else if (dd.b_jian == e.getSource()) {// 计算减法fuhao = 3;zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值;dd.tf.setText("");} else if (dd.b3 == e.getSource()) {// 退格得到里面的值.从最后的一位开始删除StringBuffer sb = new StringBuffer(dd.tf.getText());int changdu = sb.length();if (changdu > 0) {sb.deleteCharAt(changdu - 1);// 删除的是最后的一位dd.tf.setText(sb.toString());} else {dd.tf.setText("");}} else if (dd.b33 == e.getSource()) {// 清零zhi = 0;nextzhi = 0;sum = 0;dd.tf.setText("");} else if (dd.b4 == e.getSource()) {dd.tf.setText(dd.tf.getText() + "0");} else if (dd.b41 == e.getSource()) {// 等号;nextzhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值;dd.tf.setText("");if (fuhao == 1) {// 计算的是乘法;sum = zhi * nextzhi;dd.tf.setText(sum + "");} else if (fuhao == 2) {// 计算除法sum = zhi / nextzhi;dd.tf.setText(sum + "");} else if (fuhao == 3) {// 计算减法sum = zhi - nextzhi;dd.tf.setText(sum + "");} else if (fuhao == 4) {// 符号为四算的是加法;sum = zhi + nextzhi;dd.tf.setText(sum + "");}} else if (dd.b42 == e.getSource()) {// 计算加法fuhao = 4;zhi = Integer.parseInt(dd.tf.getText());// 得到了文本框里的值;dd.tf.setText("");}}}五.程序的执行过程:1.加法操作100+502.减法操作100-503.乘法操作100×504.除法操作100÷50其中DEL为退格操作,AC/ON为清零操作六.试验总结:通过本次计算器的实现试验,进一步了解了Swing技术,掌握java图形界面设计方法,理解委托事件处理模型,通过本次试验进一步熟悉了JA V A的开发流程和NetBeans集成开发环境。
JAVA计算器PPT
![JAVA计算器PPT](https://img.taocdn.com/s3/m/a9db082b561252d380eb6e76.png)
谢谢观看!
MR、MS、M+”实现存储器存储以及加和运算。
• 功能3:按“+”“-”“*”“/”分别进行四则运算。 • 功能4:在任何时候按下“+/-”键,计算器文本框上的数字置反号。 • 功能6:按下“Backspace”实现向前进格,按下“C”键清除数据,按下“CE”键,数据被全部清零,此时存储器
中不再保存任何数据。
需求分析
• 通过日常的习惯以及询问周边好友,发现更多的人倾向于鼠标直接操作,而对
于传统的键盘输入,在节省时间以及面向客户需求等问题上,都不如鼠标快速 而直接。所以此次实验采用GUI方式实现计算器,并采用Swing组件,AWT事件 处理等实现具体功能。
• 需求分析:在我们日常生活学习中,面对数据量庞大的计算,或者计算开支、
全正确,只有代码和运行结果全都正确那才是真起码的正确呢。
主要收获
• 这次的程序设计,从一个简单的计算器就可以看出JAVA的程序设计不是那么简单,仅仅是一个小小的计算器,就
已经有很多需要注意的问题,一不小心就会出错,还会有很多地方没怎么明白,而计算器的设计是最简单的几个设 计其中之一,可见,平时的知识积累是很重要的。没有知识的积累,再简单的东西也不可能设计出来。课程设计还 让我们练习了动手能力,使我们平时学习的知识得以在实际中应用,不会学死书,活学活用,很大程度上提高了我 们的能力,对以后的学习、工作、生活也会有一定的帮助。通过此次的程序设计,让我了解了JAVA的更多知识, 使平时的知识可以运用,更好的理解了JAVA这门课程。
程序设计
• 按照设计需求以及目的,设计计算机主面板,定功能键为红色,数字键
以及部分功能键为蓝色,数字的命名为“董鑫的计算器”
功能的实现
Java-实验四GUI简易计算器
![Java-实验四GUI简易计算器](https://img.taocdn.com/s3/m/67fe90a3e2bd960590c677a5.png)
}
@Override
publicvoidactionPerformed(ActionEvente)
{
if(reflag== 1 &&e.getSource()!=equ)
show.setText("");
if(e.getSource() ==b[0])
{
show.setText(show.getText()+"0");
b[0]=newJButton("0");
b[1]=newJButton("1");
b[2]=newJButton("2");
b[3]=newJButton("3");
b[4;);
b[5]=newJButton("5");
b[6]=newJButton("6");
b[7]=newJButton("7");
equ.addActionListener(this);
point.addActionListener(this);
c.addActionListener(this);
for(inti=0;i<10;i++)
{
b[i].addActionListener(this);
}
//设置布局管理器
this.add(jp1,BorderLayout.NORTH);
cheng=newJButton(" * ");
chu=newJButton(" / ");
用Java实现的计算器
![用Java实现的计算器](https://img.taocdn.com/s3/m/16f02bc7d5d8d15abe23482fb4daa58da1111c6b.png)
用Java实现的计算器计算器是一个广泛应用的工具,用于进行数学运算。
如今,随着计算机技术的不断发展,计算器也逐渐被软件程序所替代。
本文将介绍如何使用Java语言实现一个简单的计算器程序。
一、程序概述计算器程序主要包括用户界面和计算逻辑两部分。
用户界面负责显示计算器的按钮和输入输出框,计算逻辑负责根据用户输入进行运算并返回结果。
二、用户界面设计在Java中,我们可以使用Swing或JavaFX等图形库来设计用户界面。
本文选用JavaFX来实现计算器的界面。
界面需要包括数字按钮、运算符按钮、输入输出框等组件。
在程序启动时,我们需要初始化界面并设置各个组件的位置、大小和样式。
为了方便布局,我们可以使用GridPane等布局管理器来管理组件。
三、计算逻辑实现1. 表达式解析计算器需要将用户输入的表达式解析为计算机可以识别的格式。
Java中可以使用正则表达式或者逆波兰表达式来解析表达式。
本文选用简单的正则表达式方法进行解析。
2. 运算逻辑解析表达式后,我们需要根据运算符的优先级进行运算。
Java中可以使用栈来实现运算符的优先级判断和运算。
我们可以定义一个操作数栈和一个运算符栈,按照规则将表达式中的数字和运算符依次入栈,并根据运算符的优先级进行运算并将结果入栈。
四、完整代码示例import javafx.application.Application;import javafx.geometry.Insets;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.scene.control.TextField;import yout.GridPane;import javafx.stage.Stage;public class Calculator extends Application {private TextField inputField; // 输入框private Button[] numberButtons; // 数字按钮private Button[] operatorButtons; // 运算符按钮@Overridepublic void start(Stage primaryStage) {primaryStage.setTitle("计算器");primaryStage.setResizable(false);// 初始化界面GridPane gridPane = new GridPane();gridPane.setHgap(10);gridPane.setVgap(10);gridPane.setPadding(new Insets(10));// 初始化输入框inputField = new TextField();inputField.setEditable(false);inputField.setPrefHeight(40);inputField.setMaxWidth(Double.MAX_VALUE);gridPane.add(inputField, 0, 0, 4, 1);// 初始化数字按钮numberButtons = new Button[10];for (int i = 0; i < 10; i++) {numberButtons[i] = createNumberButton(String.valueOf(i), i); }gridPane.add(numberButtons[7], 0, 1);gridPane.add(numberButtons[9], 2, 1);gridPane.add(numberButtons[4], 0, 2);gridPane.add(numberButtons[5], 1, 2);gridPane.add(numberButtons[6], 2, 2);gridPane.add(numberButtons[1], 0, 3);gridPane.add(numberButtons[2], 1, 3);gridPane.add(numberButtons[3], 2, 3);gridPane.add(numberButtons[0], 0, 4);gridPane.add(createDotButton(), 1, 4);gridPane.add(createEqualButton(), 2, 4);// 初始化运算符按钮operatorButtons = new Button[4];operatorButtons[0] = createOperatorButton("+"); operatorButtons[1] = createOperatorButton("-"); operatorButtons[2] = createOperatorButton("*"); operatorButtons[3] = createOperatorButton("/"); gridPane.add(operatorButtons[0], 3, 1);gridPane.add(operatorButtons[1], 3, 2);gridPane.add(operatorButtons[3], 3, 4);Scene scene = new Scene(gridPane);primaryStage.setScene(scene);primaryStage.show();}private Button createNumberButton(String text, int number) { Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + number);});return button;}private Button createDotButton() {Button button = new Button(".");button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + ".");});return button;}private Button createEqualButton() {Button button = new Button("=");button.setPrefSize(60, 40);button.setOnAction(e -> {String expression = inputField.getText();// 调用计算逻辑进行计算if (expression != null && !expression.isEmpty()) { double result = calculate(expression);inputField.setText(String.valueOf(result));}});return button;}private Button createOperatorButton(String text) {Button button = new Button(text);button.setPrefSize(60, 40);button.setOnAction(e -> {String oldText = inputField.getText();inputField.setText(oldText + text);});return button;}private double calculate(String expression) {// 进行计算逻辑的实现// ...}public static void main(String[] args) {launch(args);}}五、总结通过本文的介绍,我们可以了解到使用Java语言实现一个简单计算器的基本框架和思路。
Java-实验四GUI简易计算器
![Java-实验四GUI简易计算器](https://img.taocdn.com/s3/m/f81c46e94431b90d6c85c7fa.png)
实验四GUI图形界面设计一实验要求1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;二实验内容1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。
(1)源代码package com.cal;import java。
awt。
*;import javax。
swing。
*;import java。
awt。
event。
*;import java。
util。
Stack;import java.awt。
GridLayout;class Cal extends JFrame implements ActionListener {JTextField show=null;JPanel jp1,jp2;JButton c,jia,jian,cheng,chu,equ,point;//按钮清空加,减,乘 ,除,等号,小数点JButton b[] = new JButton[10];//按钮数组 0-9//栈控制标记位int flag=1;//结果标记位int reflag=0;public Cal(){//创建组件jp1=new JPanel();jp2=new JPanel();show=new JTextField(45);show.setFont(new Font(”宋体",Font。
PLAIN,16));jia=new JButton(” + ");jian=new JButton(” —”);cheng=new JButton(” * ”);chu=new JButton(” / ");equ=new JButton(” = ”);equ。
java课程设计 设计一个图形界面的计算器,完成简单的算术运算
![java课程设计 设计一个图形界面的计算器,完成简单的算术运算](https://img.taocdn.com/s3/m/da4d78094431b90d6c85c775.png)
目录一、课设任务及要求 (1)二、需求分析 (2)三、设计思路 (3)四、详细设计 (5)五、运行调试与分析讨论 (9)六、设计体会与小结 (14)七、参考文献 (15)附录 (16)中文摘要Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器,显示了Java 的魅力:跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
另一方面,Java技术也不断更新。
Java平台由Java虚拟机和Java 应用编程接口构成。
Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java 分为三个体系J2SE,J2EE,J2ME。
说起计算器,值得我们骄傲的是,最早的计算工具的诞生地是中国。
在17世纪初,西方国家的计算工具才有了较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,进而成为了现代社会应用广泛的计算工具。
关键词:java Java平台计算器一、课设任务及要求1.课设任务这次课程设计选择的题目为设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。
这次课程设计的基本要求为设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算,且有小数点、正负号、求倒数、退格和清零功能。
拓展功能根据自己的能力添加。
java图形化界面实现简单计算器Word版
![java图形化界面实现简单计算器Word版](https://img.taocdn.com/s3/m/07009a8d4afe04a1b071deab.png)
学号11710115天津城建大学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();textField.setForeground(Color.PINK);textField.setText(" \u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668");textField.setBounds(10, 20, 368, 30);contentPane.add(textField);textField.setColumns(10);textField_1 = new JTextField();//文本框textField_1,显示公式textField_1.setBounds(10, 102, 368, 30);contentPane.add(textField_1);textField_1.setColumns(10);textField_2 = new JTextField();//文本框textField_2.显示计算结果textField_2.setBounds(10, 142, 368, 30);contentPane.add(textField_2);textField_2.setColumns(10);textField_3 = new JTextField();//文本框textField_3,显示电子表textField_3.setForeground(new Color(205, 133, 63));textField_3.setBounds(10, 60, 368, 30);contentPane.add(textField_3);textField_3.setColumns(10);//按钮'清零',监听到按钮后清零JButton btnC = new JButton("\u6E05\u96F6");btnC.setForeground(Color.RED);btnC.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {textField_1.setText("");textField_2.setText("");s.delete(0, s.length());}});btnC.setBounds(10, 182, 183, 44);contentPane.add(btnC);//按钮'退格',监听到按钮后退格JButton button_16 = new JButton("\u9000\u683C");button_16.setForeground(Color.RED);button_16.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s.delete(s.length()-1, s.length());String str=s.toString();textField_1.setText(str);}});button_16.setBounds(193, 182, 185, 44);contentPane.add(button_16);//按钮'*',监听到按钮后显示*JButton button_1 = new JButton("*");button_1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s.append('*');String str=s.toString();textField_1.setText(str);}});button_1.setBounds(285, 271, 93, 44);contentPane.add(button_1);//按钮'6',监听到按钮后显示6JButton button_2 = new JButton("6");button_2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String str=s.toString();textField_1.setText(str);}});button_2.setBounds(193, 271, 93, 44); contentPane.add(button_2);//按钮'5',监听到按钮后显示5JButton button_3 = new JButton("5");button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('5');String str=s.toString();textField_1.setText(str);}});button_3.setBounds(100, 271, 93, 44); contentPane.add(button_3);//按钮'4',监听到按钮后显示4JButton button_4 = new JButton("4");button_4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('4');String str=s.toString();textField_1.setText(str);}});button_4.setBounds(10, 271, 93, 44); contentPane.add(button_4);//按钮'-',监听到按钮后显示-JButton button_5 = new JButton("-");button_5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { s.append('-');String str=s.toString();textField_1.setText(str);}});button_5.setBounds(285, 313, 93, 44); contentPane.add(button_5);//按钮'3',监听到按钮后显示3JButton button_6 = new JButton("3");button_6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {String str=s.toString();textField_1.setText(str);}});button_6.setBounds(193, 313, 93, 44);contentPane.add(button_6);//按钮'2',监听到按钮后显示2JButton button_7 = new JButton("2");button_7.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s.append('2');String str=s.toString();textField_1.setText(str);}});button_7.setBounds(100, 313, 93, 44);contentPane.add(button_7);//按钮'1',监听到按钮后显示1JButton button_8 = new JButton("1");button_8.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s.append('1');String str=s.toString();textField_1.setText(str);}});button_8.setBounds(10, 313, 93, 44);contentPane.add(button_8);//按钮'+',监听到按钮后显示+JButton button_9 = new JButton("+");button_9.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {s.append('+');String str=s.toString();textField_1.setText(str);}});button_9.setBounds(285, 355, 93, 44);contentPane.add(button_9);//按钮'=',点击按钮'=',将计算出结果********************************** JButton button_10 = new JButton("=");button_10.setForeground(Color.RED);button_10.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) { String str=s.toString();String ss=str;String index="[-]|[+]|[/]|[*]";String number[]=str.split(index);int count=number.length;double num[]=new double[count];for(int i=0;i<count;i++){num[i]=Double.parseDouble(number[i]);}double result=0;if(ss.contains("+")){result=num[0];for(int i=1;i<count;i++){result+=num[i];}}if(ss.contains("-")){result=num[0];for(int i=1;i<count;i++){result-=num[i];}}if(ss.contains("*")){result=num[0];for(int i=1;i<count;i++){result*=num[i];}}if(ss.contains("/")){result=num[0];for(int i=1;i<count;i++){if(num[i]==0){//除数等于0时,显示错误信息textField_2.setText("出错");return;}else {result/=num[i];}}}//int i=(int)Math.round(result*100);//result=(double)i/100;textField_2.setText(""+result);}});button_10.setBounds(193, 355, 93, 44); contentPane.add(button_10);//按钮'.',监听到按钮后显示。
Java的可视化计算器实现
![Java的可视化计算器实现](https://img.taocdn.com/s3/m/2ddded99cc22bcd126ff0c48.png)
Java的可视化计算器实现在MyEclipse 8.6 运行环境下,应用图形用户界面采用JA V A程序设计语言,实现简单的计算器功能。
本文利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
1.界面设计新建类caculator_1继承JFrame并设置其位置大小关闭方式等即出现以上窗体。
在整体布局中添加JPanel,采用网格布局添加20个JButton,分别代表不同的数字以及功能,还要添加一个现实输入信息的文本框,用来显示输入的信息与最后结果。
将文本框放在布局最上面,将20个JButton按一列5个按钮显示在布局中,使20个按钮顺序排列在布局上。
计算器的整体界面如图1所示。
图1 可视化计算器界面2.具体功能设计(1)实现加、减、乘、除四则基本运算在输入加减乘除运算符之前,要先判断一下是否已经输入操作数,若输入了,要先记录前面输入的操作数,然后再进行运算,否则默认第一个操作数是零。
用符号区分各种运算,来进行不同种类的运算。
(2)能够实现求倒数、开方、取反运算在进行这几个运算中只需要一个操作数,所以输入一个操作数之后,点击对应运算的按钮,进行运算操作。
(3)按键“C”能够实现清除文本框中的信息功能。
“CE”按钮能够实现撤销文本框的信息功能。
3.关键代码(1)实现四则运算的关键代码if (operator.equals(”+”)){resultNum += getNumberFromText();}else if (operator.equals(”-”)){resultNum -= getNumber FromText();}else if (operator.equals(”*”)){resultNum *= getNumber FromText();}private void handleOperator(String key){if (operator.equals(”/”);}if (getNumberFromText()== .0){operateValidFlag = false;resultText.setText (“除数不能为零”);}else {resultNum /= etNumberFromText();}(2)实现开根号、倒数、定义相反数等运算的关键代码// 开根号运if (temp == btn_Sqrt){ String s = txt.getText();if (s.charAt(0)== …-‟){JOptionPane.showMessageDialog(null,“负数不能开根号”);} // 判断符号是否符合运算规则else {txt.setText(Double.toString(ng.Math.sqrt(Double.parseDouble (txt.getText()))));}// 倒数运算if (temp == btn_Dao){if (txt.getText().charAt(0)== …0‟ && txt.getText ().length()== 1){// 判断此数是否符合进行倒数运算规则JOptionPane.showMessageDialog(null,“零不能求倒数”);} else { boolean isDec = true;int i,j,k;String s = Double.toString(1 / Double(txt.getText()));for (i = 0;i < s.length();i++){ if (s.charAt(i)== ….‟){ break;}} for (j = i + 1;j < s.length();j++){if (s.charAt(j)!= …0‟){ isDec = false;break;} } if (isDec == true){String stemp = ““;for (k = 0;k < i;k++){ stemp += s.charAt(k);}xt.setText(stemp);} else {txt.setText(s);} }}// 定义相反数按钮jButton16 = new JButton(”+/-”);0-Double.parseDouble(jTextField.getText().trim());Button16.addActionListener(new ActionListener(){ public void actionPerformed (ActionEvent e){ double i2=0-Double.parseDouble(jTextField.getText().trim ());jTextField.setText(Double.toString(i2));}});通过使用文本框中的数据变成其相反数(3)实现“C”键、定义进制转换的关键代码// 按下’C’按钮,文本框内数据清除,同时middle,result清0if (temp == btn_C){middle = result = 0;txt.setText(“”);}//定义进制转换按钮,jButton31、jButton34、jButton37、jButton40分别为十六进制、十进制、八进制、二进制,通过调用Integer.toHexString(n)十六进制、Integer.toOctalString(n)八进制、Integer.toBinaryString(n)二进制来实现进制之间的相互转换。
使用Java图形界面制作简单的计算器
![使用Java图形界面制作简单的计算器](https://img.taocdn.com/s3/m/d65cc6d1a1c7aa00b52acb47.png)
使用Java图形界面制作简单的计算器使用Java图形界面制作简单的计算器,首先构想需要的组件,构想好之后进行版面设计,最后在Java编译器中输入代码,进行调试。
代码如下:import java.awt.*;import java.awt.event.*;public class Feiyong implements ActionListener {Frame f;Panel p1,p2,p3;Label lbl1,lbl2,lbl3;TextField tf1,tf2,tf3;Button btn1,btn2;CheckboxGroup cbg;Checkbox cbg1,cbg2,cbg3,cbg4;double Feiyong;public static void main(String args[]){Feiyong feiyong=new Feiyong();feiyong.go();}public void go(){f=new Frame("计算各种费用");f.setSize(400,180);p1=new Panel();p2=new Panel();p3=new Panel();tf1=new TextField(10);lbl1=new Label("所用数量:"); lbl2=new Label("总价:");tf3=new TextField(10);lbl3=new Label("单价:");btn1=new Button("计算");btn2=new Button("结束"); p1.add(lbl1);p1.add(tf1);p1.add(lbl3);p1.add(tf3);cbg=new CheckboxGroup();cbg1=new Checkbox("水费",true,cbg); cbg2=new Checkbox("电费",false,cbg);cbg3=new Checkbox("煤气费",false,cbg);cbg4=new Checkbox("电话费",false,cbg);tf2=new TextField(10);p2.add(cbg1);p2.add(cbg2);p2.add(cbg3);p2.add(cbg4);p2.add(lbl2);p2.add(tf2);p3.add(btn1);p3.add(btn2);btn1.addActionListener(this);btn2.addActionListener(this);f.add(p1,"North");f.add(p2,"Center");f.add(p3,"South");f.setVisible(true);}public void actionPerformed(ActionEvent ae) {String yy,ll,total;double ab,cd;yy=ae.getActionCommand();if(yy.equals("计算")){yy=tf1.getText();ll=tf3.getText();ab=Double.parseDouble(yy);cd=Double.parseDouble(ll);if(cbg1.getState()==true)Feiyong=ab*cd;if(cbg2.getState()==true)Feiyong=ab*cd;if(cbg3.getState()==true)Feiyong=ab*cd;if(cbg4.getState()==true)Feiyong=ab*cd;total=Double.toString(Feiyong);tf2.setText(total);}else{ System.exit(0);}}}制作出来之后,试试看计算器做的对不对:。
java课程设计 设计一个图形界面的计算器,完成简单的算术运算
![java课程设计 设计一个图形界面的计算器,完成简单的算术运算](https://img.taocdn.com/s3/m/d3b6f6200a4e767f5acfa1c7aa00b52acec79c63.png)
java课程设计设计一个图形界面的计算器,完成简单的算术运算2.课设要求要求使用Java语言编写程序,实现基本的加、减、乘、除四种运算,并且要求在图形界面中显示运算过程和结果。
此外,还要求程序具有良好的用户交互性,能够处理用户的输入错误,并给出友好的提示信息。
二、需求分析通过对计算器的功能和用户需求进行分析,我们确定了以下需求:1.支持基本的加、减、乘、除四种运算;2.支持小数和负数的运算;3.支持多次连续运算;4.支持括号运算;5.支持清空、删除和撤销功能;6.支持错误输入的提示和纠正。
三、设计思路我们采用MVC架构设计模式,将程序分为三个模块:模型、视图和控制器。
1.模型:负责进行数学运算,计算结果并返回给控制器;2.视图:负责显示运算过程和结果,以及处理用户的输入;3.控制器:负责将用户输入传递给模型进行计算,并将计算结果传递给视图进行显示。
四、详细设计1.界面设计我们采用Java Swing框架设计图形界面,主要包括以下组件:1)文本框:用于显示运算过程和结果;2)按钮:用于输入数字、运算符和其他功能键;3)菜单栏:用于提供设置和帮助等功能。
2.模型设计我们设计了一个Calculator类,包括以下方法:1)n:加法运算;2)n:减法运算;3)n:乘法运算;4)n:除法运算;5)calculate:根据用户输入的表达式进行计算。
3.控制器设计我们设计了一个Controller类,负责将用户输入传递给模型进行计算,并将计算结果传递给视图进行显示。
Controller 类包括以下方法:1)handleInput:处理用户输入;2)updateView:更新视图。
五、运行调试与分析讨论在开发过程中,我们遇到了一些问题,如括号匹配、小数运算精度等,通过调试和讨论,最终解决了这些问题。
在测试过程中,我们发现程序运行稳定,界面友好,能够满足用户的需求。
六、设计体会与小结通过这次课程设计,我们深入了解了Java语言和GUI编程,掌握了MVC架构设计模式的应用,提高了团队合作和问题解决能力。
java图形界面AWT编写计算器
![java图形界面AWT编写计算器](https://img.taocdn.com/s3/m/c2ea2154a9956bec0975f46527d3240c8447a17b.png)
java图形界⾯AWT编写计算器⼀、前⾔1)、这个计算器是基于java语⾔下图形界⾯AWT编写的。
其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,⽽是在于对AWT中三⼤布局的及画板的使⽤简单控件的操作使⽤。
通过联系熟悉掌握AWT基础为深⼊学习打下基础。
这个计算器功能也⼗分简单,空有其表。
不过有兴趣的话可以继续添加功能完善操作等。
2)、使⽤平台:主要使⽤Myeclipse20143)、主要知识点:java 基础; awt+swing⼆、功能实现及代码展⽰1)、主要是layout布局的练习,对画板⽂本框的使⽤,以及控件button的事件的注册与监听。
因为功能也很简单,所以代码就简写到同⼀个类⾥了。
实现了基本的四则运算。
2)、代码如下: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;import java.awt.Color;public class JiSuanJi {private JFrame frame; //声明相关布局⾯板private JPanel panelwest;private JPanel panelcenter;private JPanel paneleast;private TextField tf;private JButton buttonzero; //声明按钮控件private JButton buttondot;private JButton buttonequal;private JButton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero;private JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine;private ButtonListener listener; //声明监听事件public static void main(String args[]){new JiSuanJi();}public JiSuanJi(){initView(); //实例化相关对象setCenter(); //布局添加控件及相关控件处理setWest();setEast();addListener(); //设置监听setFrame(); //对 frame设置布局及显⽰处理}class ButtonListener implements ActionListener{int biaozhi=0; //初始化相关变量double flag1=0,flag2=0,flag3=0;//@Overridepublic void actionPerformed(ActionEvent e){//(1)通过 e.getSource(),获取点击事件的按钮来源,作出相应处理}if(e.getSource()==buttontozero){tf.setText("");}if(e.getSource()==buttonzero){tf.setText(tf.getText()+"0");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonone){tf.setText(tf.getText()+"1");//⽂本框显⽰1、2、3.。
java简易计算器的设计思路
![java简易计算器的设计思路](https://img.taocdn.com/s3/m/97302914bdd126fff705cc1755270722192e59a4.png)
java简易计算器的设计思路随着计算机技术的不断发展,计算器也已经成为了我们生活中不可或缺的工具之一。
而Java语言作为一种面向对象的编程语言,也可以实现一个简易计算器。
下面,本文将介绍Java简易计算器的设计思路。
首先,我们需要设计一个计算器的图形用户界面(GUI)。
在Java 中,可以使用Swing来构建图形界面。
我们可以添加一个JPanel面板,然后向其中添加一些按钮来实现计算器的数字输入和运算。
例如,我们可以添加一个JButton,标签为“1”,当用户单击该按钮时,将数字1添加到计算器的文本框中。
其次,我们需要一个变量来存储计算器的运算结果。
在用户单击了计算器中的“=”按钮后,我们需要将这个变量中保存的结果显示在计算器的文本框中。
然后,我们需要实现计算器的算法。
不同的运算符号需要不同的算法实现。
例如,加法运算可以通过将两个数相加实现,而乘法运算可以通过将两个数相乘实现。
我们可以通过一个switch语句来判断用户选择的运算符号,然后调用相应的算法实现。
最后,我们需要添加一些边界检查和异常处理。
例如,当用户输入非法字符时,我们需要提示用户输入有误,或者当除数为零时,我们需要提示用户无法进行该运算。
综上所述,Java简易计算器的设计思路包括以下几个步骤:设计图形界面、实现运算结果变量的保存和显示、实现算法、添加边界检查和异常处理。
通过这些步骤的实现,我们可以打造出一个功能简单但实用的Java计算器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java图形用户界面院系: 计算机系姓名:后人好乘凉一实验目的●使学生综合运用图形用户界面设计的概念;●使学生熟悉使用中间面板,组成层次复杂的GUI界面;●使学生掌握使用事件驱动编程;二实验环境及实验准备●所需硬件环境为微机;●所需软件环境为JDK、Eclipse;●掌握Java下界面容器与基本组件的基本知识与应用;●掌握Java下事件处理模型;●掌握Java下图形绘制的方法;三实验内容(一)、设计实现电子算盘,并完成测试;[题目描述及要求] 给小朋友设计一个电子算盘。
要求绘制电子算盘界面,设计并实现打珠算过程(界面参考如下图示)。
电子算盘参考界面示意程序源代码:package calculator;import java、awt、Color; //导入import java、awt、GridLayout;import java、awt、Container;import javax、swing、JLabel;import javax、swing、JButton;import javax、swing、ImageIcon;import javax、swing、JPanel;import javax、swing、JFrame;import javax、swing、JTextField;import java、awt、event、*;public class Calculator extends JFrame{public int totalNumber;public int t = 0;public boolean[] isAddFive = new boolean[5];public int number[] = new int[5];public ImageIcon picture = new ImageIcon(System、getProperty("user、dir") + "/算珠、jpg" ); //添加图片public ImageIcon picture1= new ImageIcon(System、getProperty("user、dir") + "/算珠1、jpg" );Container con = getContentPane();JPanel j1 = new JPanel();JPanel j2 = new JPanel();JPanel j3 = new JPanel();JPanel time=new JPanel();JLabel q = new JLabel();JLabel nA = new JLabel();JLabel Time=new JLabel(new ImageIcon("、/时钟、jpg")); //添加时钟标签的图片JTextField a = new JTextField();JButton Buttons_1[][] = new JButton[2][5];JButton Buttons_2[][] = new JButton[5][5];GridLayout gl_1 = new GridLayout(2,5);GridLayout gl_2 = new GridLayout(5,5);GridLayout gl_3 =new GridLayout();public Calculator(){super("电子算盘");setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);setBounds(100,100,600,400);setVisible(true);setLayout(null);AbacusPanel();}public void AbacusPanel() // 算盘面板{j1、setLayout(null);j1、setBounds(15,60,400,300);j1、setBackground(Color、blue);con、add(j1);JPanel j2 = new JPanel();j2、setLayout(gl_1);j2、setBounds(10, 10, 380, 80);j1、add(j2);JPanel j3 = new JPanel();j3、setLayout(gl_2);j3、setBounds(10, 100, 380, 190);j1、add(j3);time、setLayout(gl_3);time、setBounds(430,220,130,130); //时钟面板大小time、setBackground(Color、white); //时钟面板颜色time、add(Time);//添加时钟标签con、add(time);for(int i = 0;i < 2;i++){for(int j = 0;j < 5;j++){Buttons_1[i][j] = new JButton("");Buttons_1[i][j]、addActionListener(new ClickIt());Buttons_1[i][j]、setBorderPainted(false);Buttons_1[i][j]、setContentAreaFilled(false);if(i != 1)Buttons_1[i][j]、setIcon(picture1);j2、add(Buttons_1[i][j]);}}for(int i = 0;i < 5;i++){for(int j = 0;j < 5;j++){Buttons_2[i][j] = new JButton("");Buttons_2[i][j]、addActionListener(new ClickIt());Buttons_2[i][j]、setBorderPainted(false);Buttons_2[i][j]、setContentAreaFilled(false);if(i != 0)Buttons_2[i][j]、setIcon(picture);j3、add(Buttons_2[i][j]);}}}private void addTotalNumber() // 计算算盘的结果{for(int j = 0;j < 5;j++){if(isAddFive[j] == true && number[j] <5)number[j] = number[j] + 5;elseif(isAddFive[j] == false && number[j] >= 5)number[j] = number[j] - 5;}totalNumber = 0;for(int j = 0;j < 5;j++){totalNumber = totalNumber + number[j] * (int)Math、pow(10,(double)j);}System、out、println(totalNumber);}private void DrawCol(int j) // 绘制j列算珠{for(int i = 1; i <=4;i++){B uttons_2[i][j]、setIcon(picture);}}class ClickIt implements ActionListener // 单击事件监听器 {public void actionPerformed(ActionEvent e){for(int i = 0;i < 2;i++)for(int j = 0;j < 5;j++)if(e、getSource() == Buttons_1[i][j]){if(i == 1){isAddFive[5-j-1] = false;Buttons_1[0][j]、setIcon(picture1);Buttons_1[1][j]、setIcon(null);}elseif(i == 0){isAddFive[5-j-1] = true;Buttons_1[1][j]、setIcon(picture1);Buttons_1[0][j]、setIcon(null); }}for(int i = 0;i <= 4;i++) // 点击后动作for(int j = 0;j < 5;j++)if(e、getSource() == Buttons_2[i][j]){number[5-j-1] = i;DrawCol(j);Buttons_2[0][j]、setIcon(picture);Buttons_2[i][j]、setIcon(null);}addTotalNumber();}}public static void main(String[] args) {// TODO Auto-generated method stubCalculator f = new Calculator();}}运行结果截图程序流程图(二)、以(一)中的电子算盘为基础,设计并实现珠算测试器,并完成测试。
[题目描述及要求]给小朋友设计一个珠算测试器,要求能够完成珠算加减法的测试。
具体的要求功能如下: (1) 用户启动测试,输入用户名后系统随机生成特定数目的加减法测试题;(2) 要求测试使用表盘式或数字时秒表进行界面计时显示(参考如上图示); (3) ,要求用户使用电子算盘完成珠算过程,当按下确认键时,将珠 算结果与正确答案比对,并在界面上显示总题数、已答题数与已做对题数;(4) 当测试完成,界面显示本次测试情况(包括用户名、测试题目及答题明细、对错情 况、测试用时与测试成绩)程序源代码package testcal; import java 、awt Color; //导入import java 、awt Font;import java 、awt GridLayout;import java 、awt Container;import javax 、swing 、JLabel; import javax 、swing 、JButton;import javax 、swing 、ImageIcon;import javax 、swing 、JOptionPane; 开 始添加框架输出电子算盘结 束添加时钟Label,并添加图片 添加单击事件监听器及单击后动作 添加面板j1、j2、j3实现算盘分块 按面板j2、j3上划分好的网格结构添加按钮及图片。