diff --git a/readme.md b/readme.md deleted file mode 100644 index 4af16add33b576d095308a1888db35774618715d..0000000000000000000000000000000000000000 --- a/readme.md +++ /dev/null @@ -1,2 +0,0 @@ -# 科学计算器 -0103 张三 \ No newline at end of file diff --git a/src/java2022spring/Calculate.java b/src/java2022spring/Calculate.java new file mode 100644 index 0000000000000000000000000000000000000000..0de8fa19fc97338d66b1b844ac8627d23b7ef93a --- /dev/null +++ b/src/java2022spring/Calculate.java @@ -0,0 +1,383 @@ +package java2022spring; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.*; + +public class Calculate extends JFrame{ + JFrame frame=new JFrame("calculator"); + JPanel panel,panel2,panel3; + JTextField textfield; + Container con; + JButton number[],backspace,sqrt,fuhao[],point,pingfang,qiuyu,equal,zhengfu,daoshu; + JButton Backspace,C,CE; + JButton M1,M2,M3,M4; + String string1; + double num1,num2; //用来存放计算的数值 + double num3; //临时存放用来累加运算的数字 + private double figure=0; //存放M的数字 + char oper; //存放操作符 + Color color; //更改背景颜色 + public Calculate() { + init(); + frame.setSize(500,400); + frame.setVisible(true); + frame.setResizable(false); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + textfield.setEditable(false); //设置文本框为不可编辑 + textfield.setBackground(color); //设置文本框的背景颜色 + } + + void init(){ + textfield=new JTextField(); + textfield.setPreferredSize(new Dimension (200,70)); + Font font=new Font("黑体",Font.PLAIN,50); + Font font1=new Font("黑体",Font.PLAIN,25); + textfield.setFont(font); + textfield.setBackground(color); + panel=new JPanel(); + panel2=new JPanel(); + panel3=new JPanel(); + color=new Color(252,232,234); + + con=frame.getContentPane(); + con.setBackground(Color.white); + + number=new JButton[10]; + for(int i=0;i0) + textfield.setText("-"+num1); + else if(num1<0) + textfield.setText(""+-1*num1); + else { + + } + } + + } + //平方根监视器 + class SqrtListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+Math.sqrt(num1)); + } + + } + //平方监视器 + class PFListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+num1*num1); + } + } + //倒数监视器 + class DSListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + textfield.setText(""+1/num1); + } + + } + //CE监视器 + class CEListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + textfield.setText(""); + } + + } + //退格键监视器 + class BackSpaceListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + string1=string1.substring(0,string1.length()-1); + textfield.setText(string1); + } + + } + //C清除键监视器 + class CListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + oper='\0'; + textfield.setText(""); + } + + } + //操作符监听器 + class OperListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + num1=Double.parseDouble(textfield.getText()); + oper=e.getActionCommand().charAt(0); + textfield.setText(""); + } + + } + //等于监听器 + class EqualListener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + double result=0; + num2=Double.parseDouble(textfield.getText()); + switch(oper) { + case '+':result=num1+num2;break; + case '-':result=num1-num2;break; + case '*':result=num1*num2;break; + case '/':if(num2!=0) { + result=num1/num2; + break; + } + else { + textfield.setText("警告:除数不能为0"); + return ; + } + case '%':result=num1%num2;break; + } + textfield.setText(""+result); + } + + } + //M+监听器 + class M1Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + num3=Double.parseDouble(textfield.getText()); + figure=figure+num3; + textfield.setText(string1); + } + + } + //M-监听器 + class M2Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + string1=textfield.getText(); + num3=Double.parseDouble(textfield.getText()); + figure=figure-num3; + textfield.setText(string1); + } + + } + //MR监听器 + class M3Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + textfield.setText(""+figure); + } + + } + //MC监听器 + class M4Listener implements ActionListener{ + + @Override + public void actionPerformed(ActionEvent e) { + // TODO 自动生成的方法存根 + figure=0; + } + + } + +} \ No newline at end of file diff --git a/src/java2022spring/Test.java b/src/java2022spring/MainClass.java similarity index 51% rename from src/java2022spring/Test.java rename to src/java2022spring/MainClass.java index 24deb29bfc0e5f50fdedcd21b504e77b529d48b6..929863df71ad020018a15bac822476293bf8efdc 100644 --- a/src/java2022spring/Test.java +++ b/src/java2022spring/MainClass.java @@ -1,7 +1,9 @@ package java2022spring; -public class Test { +public class MainClass { + public static void main(String[] args) { - System.out.println("Hello world!"); + Calculate f=new Calculate(); } + }