zoukankan      html  css  js  c++  java
  • 计算器

      1 import java.awt.*;
      2 import java.awt.event.*;
      3 public class calculator//一个类。
      4 {
      5 public static void main(String args[])//主函数。
      6 {
      7 MyWindow my=new MyWindow("计算器"); //设置框架标题
      8 }
      9 }
     10 class MyWindow extends Frame implements ActionListener
     11 {    StringBuffer m=new StringBuffer();//创建一个实例。
     12      int p;
     13  TextField tex;//定义一个文本行。
     14  Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,jia,jian,cheng,chu,deng,dian,qingling,sin,cos,tan;//定义按钮。
     15 MyWindow(String s)//类的构造方法。
     16 {super(s);
     17 StringBuffer s2=new StringBuffer();
     18 String s;
     19 tex=new  TextField(18);
     20    b0=new Button("    0   ");
     21    b1=new Button("    1   ");
     22    b2=new Button("    2   ");
     23    b3=new Button("   3    ");
     24    b4=new Button("    4   ");
     25    b5=new Button("    5   ");
     26    b6=new Button("    6   ");
     27    b7=new Button("    7   ");
     28    b8=new Button("    8   ");
     29    b9=new Button("     9   ");
     30     dian=new Button("     .   ");
     31      jia=new Button("     +   ");
     32     jian=new Button("     -    ");
     33    cheng=new Button("     ×   ");
     34      chu=new Button("    /    ");
     35     deng=new Button("    =   ");
     36    qingling=new Button("  清零 ");
     37     sin=new Button("sin");
     38     cos=new Button("cos");
     39     tan=new Button("tan");//创建实例,并对实例成员变量进行初始化。setLayout(new FlowLayout());//设置为流布局管理。
     40  add(tex);
     41  add(b0);
     42  add(b1);
     43  add(b2);
     44  add(b3);
     45  add(b4);
     46  add(b5);
     47  add(b6);
     48  add(b7);
     49  add(b8);
     50  add(b9);
     51  add(dian);
     52  add(jia);
     53 add(jian);
     54 add(cheng);
     55 add(chu);
     56  add(qingling);
     57  add(deng);
     58  add(cos);
     59  add(sin);
     60  add(tan);//添加每个按钮和文本行放在窗口上。
     61  b0.addActionListener(this);
     62  b1.addActionListener(this);
     63  b2.addActionListener(this);
     64  b3.addActionListener(this);
     65  b4.addActionListener(this);
     66  b5.addActionListener(this);
     67  b6.addActionListener(this);
     68  b7.addActionListener(this);
     69  b8.addActionListener(this);
     70  b9.addActionListener(this);
     71  jia.addActionListener(this);
     72  jian.addActionListener(this);
     73  cheng.addActionListener(this);
     74  chu.addActionListener(this);
     75  dian.addActionListener(this);
     76  deng.addActionListener(this);
     77  qingling.addActionListener(this);
     78   sin.addActionListener(this);
     79  cos.addActionListener(this);
     80  tan.addActionListener(this);//为按钮注册窗口事件监听器,委托Winclose对象处理事件。
     81 setBounds(200,200,160,280);//设置窗口大小。
     82  setResizable(false);//不可改变大小
     83  setVisible(true);//窗口可视化。
     84  validate();//布局美观。
     85 addWindowListener(new WindowAdapter()//实现窗口事件监听器接口。
     86  {   public void windowClosing(WindowEvent ee)//窗口关闭事件处理方法。
     87    { System.exit(0);}}}
     88 public void actionPerformed(ActionEvent e)//单机事件处理方法,实现//ActionListener接口。
     89 {
     90  if(e.getSource()==b0)//获得当前事件源组件,比较引用
     91  { 
     92    m=m.append("0");//字符串转换为整数。
     93  tex.setText(String.valueOf(m)); //将m转换成字符串。
     94  }if(e.getSource()==b1)
     95  { m=m.append("1"); tex.setText(String.valueOf(m)); 
     96  }
     97  if(e.getSource()==b2){ 
     98 m=m.append("2"); tex.setText(String.valueOf(m)); 
     99  }
    100  if(e.getSource()==b3)
    101  { 
    102    m=m.append("3"); tex.setText(String.valueOf(m)); 
    103  }
    104  if(e.getSource()==b4)
    105  { 
    106    m=m.append("4"); tex.setText(String.valueOf(m)); 
    107  }
    108  if(e.getSource()==b5)
    109  { 
    110    m=m.append("5"); tex.setText(String.valueOf(m)); 
    111  }
    112  if(e.getSource()==b6)
    113  { 
    114    m=m.append("6"); tex.setText(String.valueOf(m)); 
    115  }
    116  if(e.getSource()==b7)
    117  { 
    118    m=m.append("7"); tex.setText(String.valueOf(m)); 
    119  }
    120  if(e.getSource()==b8)
    121  { 
    122    m=m.append("8"); tex.setText(String.valueOf(m)); 
    123  }if(e.getSource()==b9)
    124  {m=m.append("9"); tex.setText(String.valueOf(m)); 
    125  }
    126  if(e.getSource()==jia)
    127  { m=m.append("+"); tex.setText(String.valueOf(m)); 
    128  }if(e.getSource()==jian)
    129  {m=m.append("-"); tex.setText(String.valueOf(m)); 
    130  }
    131  if(e.getSource()==cheng)
    132  { m=m.append("*"); tex.setText(String.valueOf(m)); 
    133  }
    134  if(e.getSource()==chu)
    135  { m=m.append("/"); tex.setText(String.valueOf(m)); 
    136  }
    137 if(e.getSource()==dian)
    138  { m=m.append("."); tex.setText(String.valueOf(m)); 
    139  }
    140  String mm=String.valueOf(m);
    141  int p1=mm.indexOf("+");//字符串的IndexOf()方法搜索在该字符串上是否出现了作为//参数传递的字符串,
    142 int p2=mm.indexOf("-");//如果找到字符串,则返回字符的起始位置 (0表示第
    143  int p3=mm.indexOf("*");//一个字符,1表示第二个字符依此类推)如果说没有找到则返//回 -1.
    144 int p4=mm.indexOf("/");
    145  if(p1!=-1){
    146  p=p1;
    147  }
    148 else if(p3!=-1)
    149  {p=p3;
    150  } else if(p2!=-1)
    151  {
    152   p=p2;
    153  }
    154  else if(p4!=-1)
    155  {p=p4;
    156  }
    157 if(e.getSource()==deng)
    158  { String m1=mm.substring(0,p);
    159    String m2=mm.substring(p+1);
    160    String ch=mm.substring(p,p+1);
    161     if(ch.equals("+"))
    162    {
    163    float n1=Float.parseFloat(m1); //字符串转换为整数。
    164    float n2=Float.parseFloat(m2); 
    165    float sum=n1+n2;
    166    String su=String.valueOf(sum);//数字转换为字符串。
    167    tex.setText(su);
    168    }
    169 if(ch.equals("-"))//按钮为“-”。
    170    { float n1=Float.parseFloat(m1); 
    171    float n2=Float.parseFloat(m2); 
    172    float sum=n1-n2;
    173    String su=String.valueOf(sum);
    174    tex.setText(su);
    175    }
    176 if(ch.equals("*"))
    177    {
    178    float n1=Float.parseFloat(m1); 
    179    float n2=Float.parseFloat(m2); 
    180    float sum=n1*n2;
    181    String su=String.valueOf(sum);
    182    tex.setText(su);
    183    }if(ch.equals("/"))
    184    {
    185    float n1=Float.parseFloat(m1); 
    186    float n2=Float.parseFloat(m2); 
    187    float sum=n1/n2;
    188    String su=String.valueOf(sum);
    189    tex.setText(su);
    190    }}
    191 if(e.getSource()==qingling)
    192  {StringBuffer kk=new StringBuffer();
    193    m=kk;
    194   tex.setText("0"); 
    195  }
    196  if(e.getSource()==sin)
    197  {
    198   String t=tex.getText();
    199   double num=Float.parseFloat(t);
    200   num=num*(Math.PI/180);
    201   double nub=Math.sin(num);
    202   tex.setText(String.valueOf(nub));
    203    }
    204  if(e.getSource()==cos)
    205  {
    206   String t=tex.getText();
    207   double num=Float.parseFloat(t);
    208   num=num*(Math.PI/180);//弧度转换为角度。
    209   double nub=Math.cos(num);
    210   tex.setText(String.valueOf(nub));
    211   }
    212  if(e.getSource()==tan)
    213  {
    214   String t=tex.getText();
    215   double num=Float.parseFloat(t);
    216   num=num*(Math.PI/180);
    217   double nub=Math.tan(num);
    218   tex.setText(String.valueOf(nub))
    219   }
    220   }
    221 }
    222                               
  • 相关阅读:
    Android系统设置— android.provider.Settings
    调用Android系统设置项
    一维数组当成二维使用
    WP系统推广难的原因之中的一个之我见
    Button和ImageButton
    Struts2 页面url请求怎样找action
    Python一日一练05----怒刷点击量
    OC中语法糖,最新语法总结
    Mybatis分页插件PageHelper正确的用法(网上有2篇不够科学的文章)
    辛星解读mysql的用户管理
  • 原文地址:https://www.cnblogs.com/cancangood/p/3278893.html
Copyright © 2011-2022 走看看