java求倒数_java中求倒数
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.JPanel; import javax.swing.JTextField; public class Calculation extends JFrame implements
ActionListener{ private JTextField txfResult;//显⽰操作结果的⽂本框 JTextField txfM;//显⽰记忆的索引值的⽂本框 Double
dM=0d;//存储数据 public Calculation() { super("swing 计算器实例"); /*设置⽤于显⽰的⽂本框*/ txfResult =new
JTextField("0",30);//初始⽂本显⽰0 最⼤列数30 txfResult.setBackground(Color.WHITE);
txfResult.setHorizontalAlignment(JTextField.RIGHT);//数字在⽂本框中靠右显⽰ txfResult.setEditable(false);//⽂本框不可编辑 即为readOnly只读属性 JPanel ResultTextPanel=new JPanel();//放操作结果⽂本框的⾯板 ResultTextPanel.add(txfResult); /*设置⽤于控制数字的键与显⽰记
忆索引值的⽂本框*/ txfM=new JTextField(2);//最长2列 JButton b1=new JButton("Backspace");//退格键JButton b2=new JButton("CE");//重置键 JButton b3=new JButton("C");//清0键 JPanel ControlPanel=new JPanel(); ControlPanel.setLayout(new GridLayout(1, 4, 2, 2));//1⾏4列 ⽔平间距2 垂直间距2 ControlPanel.add(txfM);
ControlPanel.add(b1); ControlPanel.add(b2); ControlPanel.add(b3); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); /*数字和运算符键*/ String dcKey[]= {"MC","7","8","9","/","sqrt","MR","4","5","6","*","%","MS","1","2","3","-","1/x" ,"M+","0","+/-",".","+","="}; JPanel dcKeyPanel =new JPanel();//数字和运算符的⾯板 dcKeyPanel.setLayout(new GridLayout(4, 6,2,2)); //⼀个 循环放好所有数字和运算符组件 for(int
i=0;i<24;i++) { JButton b=new JButton(dcKey[i]); dcKeyPanel.add(b); b.addActionListener(this); } Container
ContentPane();//窗体内容⾯板对象 ct.setLayout(new BorderLayout());
ct.add(ResultTextPanel,BorderLayout.NORTH); ct.add(ControlPanel,BorderLayout.CENTER);
java valueofct.add(dcKeyPanel,BorderLayout.SOUTH); pack(); setVisible(true); setResizable(false);//禁⽌最⼤化
setLocationRelativeTo(null);//居中显⽰ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new Calculation(); } //数字键和功能键的实现/ private boolean newDigital=true;//类内全局boolean变量 ⽤于表⽰是否是输⼊数的标志 private String operation="";//表⽰运算符的字符串 private double d1;//⼆元运算前操数 private double d2;//⼆元运算后操作数 private int optionValue;//区别加减乘除运算符的变量 /*监听⽅法*/ @Override public void actionPerformed(ActionEvent e) { String s=(e.getActionCommand());//返回与此动作相关的命令字符串 就是button上显⽰的字 String Text(); /*后退键*/ if(s.equals("Backspace")) { if(str.equals("0")||str.equals("")) {//已经是清0状态下 不可再清0了 return; } String
Text(); txfResult.setText(s1.substring(0, s1.length()-1));//截掉最后⼀个数字 } /*重置键*/ if(s.equals("CE")) { txfResult.setText("0"); newDigital=true;//是否是新输⼊的数的标志设置为true } /*清0键*/ if(s.equals("C")) {
txfResult.setText("0"); optionValue=0;//表⽰运算符的变量设置为0 newDigital=true;//表⽰是否新输⼊的数的标志设置为true } /*数字键*/ if(s.length()==1&&s.charAt(0)>='0'&&s.charAt(0)<='9') { if(!newDigital) { txfResult.setText(str+s);//不是新输⼊的数
}else { txfResult.setText(s); newDigital=false;//表⽰是否新输⼊的数的标志设置为false } return; } /*⼩数点*/ if(s.equals(".")) {
Text().indexOf(".")==-1) {//若之前尚不存在⼩数点 /*判断数字是否0打头*/
Text().trim().startsWith("0")) {//强⼤的API txfResult.setText("0."); newDigital=false; }else {
txfResult.setText(str+".");//str事件刚开始就得到的Text() } } return; } /* 表⽰数字正负符号+/- */ if(s.equals("+/-")) { double d=Double.im());//获取输⼊的数字 txfResult.setText(String.valueOf(-d));//取得获取输⼊数字的相反数return; } //加减乘除运算的实现/ if(s.equals("+")) { d1=Double.Text());//⽴刻获取前操作数的值txfResult.setText(""); optionValue=1;//设置运算符标志 } if(s.equals("-")) { d1=Double.Text()); optionValue=2; } if(s.equals("*")) { d1=Double.Text()); optionValue=3; } if(s.equals("/")) {
d1=Double.Text()); optionValue=4; } if(s.equals("=")) {
d2=Double.Text());//获取后操作数的值 /*根据运算符标志的不同值确定计算结果*/ switch(optionValue) { case 1: txfResult.setText(String.valueOf(d1+d2)); break; case 2: txfResult.setText(String.valueOf(d1-d2)); break; case 3: txfResult.setText(String.valueOf(d1*d2)); break; case 4: if(d2!=0) { txfResult.setText(String.valueOf(d1/d2)); }else { txfResult.setText("除数不能
为0"); return; } break; } operation="";//运算结束 清空运算符 } 求平⽅根 倒数 百分⽐运算/
if(s.equals("sqrt")) { double d=Double.Text().trim());//获取操作数的值 if(d>0) {
txfResult.setText(String.valueOf(Math.sqrt(d)));//计算该值的平⽅根 }else { txfResult.setText("负数不能计算平⽅根"); } }else
if(s.equals("1/x")) { double d=Double.Text().trim());//计算倒数 if(str.equals("0")) {
txfResult.setText("除数不能为0"); }else { txfResult.setText(String.valueOf(1/d)); } }else if(s.equals("%")) {
txfResult.setText((String.valueOf(Double.parseDouble(str)/100))); } ///实现数据的记忆功能/// if(s.equals("MC")) {//清空存储数据 txfResult.setText(""); dM=0d; newDigital=true; } if(s.equals("MR")) { Text().trim()!="") {
txfResult.setText(""+dM);//显⽰存储数字当前值 } } if(s.equals("MS")) { dM=Double.Text().trim()); txfM.setText("M");//存储区显⽰M } if(s.equals("M
+")) { dM=dM+Double.Text().trim());//将显⽰的数字与已经存储的数据相加 即更新存储数据 } } }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论