怎么用eclipse去编写一个计算器?

怎么用eclipse去编写一个计算器?,第1张

eclipse中一般是使用java swing做界面,计算器的函数功能使用一些工具函数,示例如下:

import javax.swing.*

import java.awt.*

import java.awt.event.*

public class Calculator extends JFrame implements ActionListener{

private static final long serialVersionUID = 8199443193151152362L

private JButton bto_s=new JButton("sqrt"),bto_zf=new JButton("+/-"),bto_ce=new JButton("CE"),bto_c=new JButton("C"),bto_7=new JButton("7"),

bto_8=new JButton("8"),bto_9=new JButton("9"),bto_chu=new JButton("/"),bto_4=new JButton("4"),bto_5=new JButton("5"),

bto_6=new JButton("6"),bto_cheng=new JButton("*"),bto_1=new JButton("1"),bto_2=new JButton("2"),bto_3=new JButton("3"),

bto_jian=new JButton("-"),bto_0=new JButton("0"),bto_dian=new JButton("."),bto_deng=new JButton("="),bto_jia=new JButton("+")

JButton button[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,

    bto_0,bto_dian,bto_deng,bto_jia}

private JTextField text_double// = new JTextField("0")

private String operator = "=" //当前运算的运算符

private boolean firstDigit = true // 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字

private double resultNum = 0.0 // 计算的中间结果

private boolean operateValidFlag = true //判断 *** 作是否合法

public Calculator()

{

   super("Calculator")

   this.setBounds(300, 300, 300, 300)

   this.setResizable(false)

   this.setBackground(Color.orange)

   this.setDefaultCloseOperation(EXIT_ON_CLOSE)

   this.getContentPane().setLayout(new BorderLayout())//设置布局

   text_double=new JTextField("0",20)//设置文本区

   text_double.setHorizontalAlignment(JTextField.RIGHT)//设置水平对齐方式未右对齐

   this.getContentPane().add(text_double,BorderLayout.NORTH)//将文本区添加到Content北部

   JPanel panel=new JPanel(new GridLayout(5,4))//在内容窗口添加一个网格布局

   this.getContentPane().add(panel)//添加panel面板

   for(int i=0i<button.lengthi++)//在面板上添加按钮

    panel.add(button[i])

  

   for(int i=0i<button.lengthi++)

   button[i].addActionListener(this)//为按钮注册

   text_double.setEditable(false)//文本框不可编辑

   text_double.addActionListener(this)//

  

   this.setVisible(true)

}

public void actionPerformed(ActionEvent e)//

{

   String c= e.getActionCommand()//返回与此动作相关的命令字符串。

   if(c.equals("C")){

    handleC()           //用户按了“C”键

   }

   else if (c.equals("CE"))       // 用户按了"CE"键

   {

    text_double.setText("0")

   }

   else if ("0123456789.".indexOf(c) >= 0) // 用户按了数字键或者小数点

   {

    handleNumber(c) // handlezero(zero)

   } else            //用户按了运算符键

   {

               handleOperator(c)

   }

}

private void handleC()       // 初始化计算器的各种值

{

   text_double.setText("0")

   firstDigit = true

   operator = "="

   }

private void handleNumber(String button) {

   if (firstDigit)//输入的第一个数字

   {

   text_double.setText(button)

   } else if ((button.equals(".")) && (text_double.getText().indexOf(".") < 0))//输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面

    //如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回 -1

   {

   text_double.setText(text_double.getText() + ".")

   } else if (!button.equals("."))//   如果输入的不是小数点,则将数字附在结果文本框的后面

   {

   text_double.setText(text_double.getText() + button)

   }

//   以后输入的肯定不是第一个数字了

   firstDigit = false

   }

private void handleOperator(String button) {

  

   if (operator.equals("/")) {

//   除法运算

//   如果当前结果文本框中的值等于0

   if (getNumberFromText() == 0.0){

//    *** 作不合法

   operateValidFlag = false

   text_double.setText("除数不能为零")

   } else {

   resultNum /= getNumberFromText()

   }

   } else if (operator.equals("+")){

//   加法运算

   resultNum += getNumberFromText()

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

//   减法运算

   resultNum -= getNumberFromText()

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

//   乘法运算

   resultNum *= getNumberFromText()

   } else if (operator.equals("sqrt")) {

//   平方根运算

    if(getNumberFromText()<0){

     operateValidFlag = false

    text_double.setText("被开方数不能为负数")}

    else

   resultNum = Math.sqrt(resultNum)

   }

   else if (operator.equals("+/-")){

//    正数负数运算

    resultNum = resultNum * (-1)

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

//    赋值运算

    resultNum = getNumberFromText()

    }

   if (operateValidFlag) {

//    双精度浮点数的运算

    long t1

    double t2

    t1 = (long) resultNum

    t2 = resultNum - t1

    if (t2 == 0) {

    text_double.setText(String.valueOf(t1))

    } else {

    text_double.setText(String.valueOf(resultNum))

    }

    }

   operator = button //运算符等于用户按的按钮

   firstDigit = true

   operateValidFlag = true

}

private double getNumberFromText() //从结果的文本框获取数字

{

   double result = 0

   try {

   result = Double.valueOf(text_double.getText()).doubleValue() // ValueOf()返回表示指定的 double 值的 Double 实例

   } catch (NumberFormatException e){

   }

   return result

   }

public static void main(final String[] args) {

new Calculator()

}

}

eclipse创建android项目1.选择android项目类型

2.填写项目属性

Application Name:是应用的名称,将来在app stop上看到;Project Name : 是工程名称;Packge Name :是项目JAVA代码的包路径;Minimum Required SDK:最低要求的SDK;Target SDK:目标的SDK;Compile With:在哪个版本上编译;Theme:项目的主题。

Create custom laubcher icon:创建启动的图标;Create activity:创建活动;Mark this project as a library:将此项目标记为库;(勾选执行的时候可能会出错:android library project can not launch)Create Project in Workspace : 项目所在工作路径;Add project to working sets:将项目添加到工作集。3.图标

4.活动类型

完成!

eclipse用waitch摸拟计算具体步骤如下

1、打开Eclipse,新建一个项目Calculate(File>New>Android Application Project)

2、本次目标是实现带有加减乘除清零功能的计算器

3、首先,先实现计算器的布局,双击项目Calculate>双击res>双击layout>双击activity_main.xml。计算器使用线性布局LinearLayout,从上图可以看出本次使用17个Button控件和2个TextView控件(显示文本),计算器的上方是2个TextView

4、实现了TextView的布局后就是Button了,这里为了美观,除了左边第一个的按钮外要设置marginLeft(距离左边的宽度)

5、同理设置剩余Button的布局

6、完成layout后,双击Calculate>src>com.example.calculate>MainActivity.java,然后开始对组件进行功能实现,首先对控件进行初始化,然后对每个控件添加监听器,实现加减乘除等功能

7、完成布局和功能实现后就可以保存并运行了,右击Calculate>Run As>Android Application


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6928950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-30
下一篇2023-03-30

发表评论

登录后才能评论

评论列表(0条)

    保存