diff --git a/src/java2022spring/Test.java b/src/java2022spring/Test.java index 24deb29bfc0e5f50fdedcd21b504e77b529d48b6..2b42c84679472c15e4da4e1967509928f433e890 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/Test.java @@ -1,7 +1,6 @@ package java2022spring; - public class Test { - public static void main(String[] args) { - System.out.println("Hello world!"); - } + public static void main(String[] args) { + new caculater(); + } } diff --git a/src/java2022spring/caculater.java b/src/java2022spring/caculater.java new file mode 100644 index 0000000000000000000000000000000000000000..589c206a240a870ece2a9ebcdadd09690e9bdda2 --- /dev/null +++ b/src/java2022spring/caculater.java @@ -0,0 +1,336 @@ +package java2022spring; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.math.*; +public class caculater extends JFrame implements ActionListener{ + JPanel mainwin=new JPanel();//主面板 + JPanel anniuwin=new JPanel();//按钮面板 + JTextArea result=new JTextArea(5,44);//结果框 + String str="",str1="",str2=""; + double z,number,x,y;int i=0; + public static String button[]= {"|x|","π","C","CE","1/x","x^2","√x", + "/","7","8","9","*","4","5","6", + "-","1","2","3","+","+/-","0",".","="}; + public JButton but[]= new JButton[button.length]; + + + public caculater() + { + this.init(); + } + //版面设计 + public void init() { + setBackground(Color.BLACK); + setTitle("sadiya的计算器"); + setBounds(200,200,460,528); + setVisible(true); + setResizable(true); + setDefaultCloseOperation(EXIT_ON_CLOSE); + //结果框设置 + result.setFont(new java.awt.Font("黑体", Font.PLAIN, 20)); + //按钮面板设置 + mainwin.add(result,BorderLayout.NORTH); + mainwin.add(anniuwin,BorderLayout.CENTER); + GridLayout gl=new GridLayout(6,4); + anniuwin.setLayout(gl); + for(int i=0;i=0) { + z = Math.sqrt (number); + str=""+z; + result.setText(str);} + else { + result.setText("大于0的数字才可以开根号"); + } + } + //+/-号问题解决 + if(e.getSource()==but[20]) { + if(str!="") { + str1=str; + str="-"+str1; + result.setText(str); + x=Double.parseDouble(str); + } + else { + str+="-"; + result.setText(str);} + } + //小数点设置 + if(e.getActionCommand().equals(".")) { + if(str!="") { + str= str +e.getActionCommand(); + result.setText(str);} + else { + result.setText("请先输入数字。"); + } + } + + + + //设置四则运算 + if(e.getActionCommand().equals("+")&&str1==""){ + if(str!="") {str1=str; + str=""; + result.setText(e.getActionCommand()); + i=1; + } + else { + result.setText("请先输入数字。"); + } + } + if(i==1 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=x+y; + str=""+number; + result.setText(str); + i=0; + //加法运算 + } + if(e.getActionCommand().equals("-")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + result.setText(e.getActionCommand()); + i=2;} + else { result.setText("请先输入数字。"); + } + } + if(i==2 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=y-x; + str=""+number; + result.setText(str); + i=0; + } + //减法运算 + if(e.getActionCommand().equals("*")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + result.setText(e.getActionCommand()); + i=3;} + else { result.setText("请先输入数字。"); + } + } + if(i==3 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=y*x; + str=""+number; + result.setText(str); + i=0; + } + //乘法运算 + if(e.getActionCommand().equals("/")&&str1==""){ + if(str!=""){ + str1=str; + str=""; + result.setText(e.getActionCommand()); + i=4;} + else { result.setText("请先输入数字。"); + } + } + if(i==4 && e.getActionCommand().equals("=")){ + x=Double.parseDouble(str); + y=Double.parseDouble(str1); + number=y/x; + str=""+number; + result.setText(str); + i=0; + } + //除法运算 + //连续运算 + if(str1!=""&&str!=""&&e.getActionCommand().equals("+")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=1; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("-")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=2; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("*")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=3; + } + if(str1!=""&&str!=""&&e.getActionCommand().equals("/")){ + x=Double.parseDouble(str1); + y=Double.parseDouble(str); + switch(i){ + case 1: + number=x+y; + break; + case 2: + number=y-x; + break; + case 3: + number=y*x; + break; + case 4: + number=y/x; + break; + } + str=""+number; + result.setText(str); + str1=str; + str=""; + i=4; + } + } + } + + + + + \ No newline at end of file